agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
vfs/module/arduino/gpio.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 ykat UG (haftungsbeschraenkt) - All Rights Reserved
3  *
4  * Permission for non-commercial use is hereby granted,
5  * free of charge, without warranty of any kind.
6  */
7 #ifndef ZRTOS_VFS_MODULE_ARDUINO_GPIO_H
8 #define ZRTOS_VFS_MODULE_ARDUINO_GPIO_H
9 
10 #include <Arduino.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include <zrtos/error.h>
18 
20  zrtos_gpio_t *thiz
21  ,zrtos_gpio_pin_t pin
22  ,zrtos_gpio_mode_t mode
23 ){
24  int tmp;
25  switch(mode){
27  tmp = INPUT;
28  break;
30  tmp = OUTPUT;
31  break;
33  tmp = INPUT_PULLUP;
34  break;
35  }
36  pinMode(pin,tmp);
37  return ZRTOS_ERROR__SUCCESS;
38 }
39 
41  zrtos_gpio_t *thiz
42  ,zrtos_gpio_pin_t pin
44 ){
45  *val = digitalRead(pin);
46  return ZRTOS_ERROR__SUCCESS;
47 }
48 
50  zrtos_gpio_t *thiz
51  ,zrtos_gpio_pin_t pin
53 ){
54  digitalWrite(pin, val);
55  return ZRTOS_ERROR__SUCCESS;
56 }
57 
59  zrtos_gpio_t *thiz
60  ,zrtos_gpio_pin_t pin
62 ){
63  //*val = analogRead(pin);
64  return ZRTOS_ERROR__NOSYS;
65 }
66 
68  zrtos_gpio_t *thiz
69  ,zrtos_gpio_pin_t pin
71 ){
72  //analogWrite(pin, val);
73  return ZRTOS_ERROR__NOSYS;
74 }
75 
82 );
83 
85  zrtos_vfs_dentry_t *thiz
86 ){
87  zrtos_vfs_dentry__set_inode_data(thiz,&zrtos_vfs_module_arduino_gpio);
88  return ZRTOS_ERROR__SUCCESS;
89 }
90 
91 ZRTOS_VFS_PLUGIN__INIT(arduino_gpio,
102 );
103 
104 
105 #ifdef __cplusplus
106 }
107 #endif
108 #endif
zrtos_error_t zrtos_vfs_module_arduino_gpio__analog_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)
ZRTOS_VFS_PLUGIN__INIT(arduino_gpio, ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT() ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT() ZRTOS_VFS_PLUGIN__2_ON_MOUNT(zrtos_vfs_module_arduino_gpio__on_mount) ZRTOS_VFS_PLUGIN__3_ON_UMOUNT_DEFAULT() ZRTOS_VFS_PLUGIN__4_ON_READ_DEFAULT() ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT() ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT() ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE_DEFAULT() ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT() ZRTOS_VFS_PLUGIN__9_ON_IOCTL_DEFAULT())
#define ZRTOS_VFS_PLUGIN__4_ON_READ_DEFAULT()
Definition: vfs_plugin.h:216
#define ZRTOS_VFS_PLUGIN__3_ON_UMOUNT_DEFAULT()
Definition: vfs_plugin.h:199
zrtos_error_t zrtos_vfs_module_arduino_gpio__set_mode(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)
#define ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT()
Definition: vfs_plugin.h:148
bool zrtos_gpio_value_digital_t
Definition: gpio.h:30
#define ZRTOS_VFS_PLUGIN__9_ON_IOCTL_DEFAULT()
Definition: vfs_plugin.h:319
zrtos_gpio_mode_t
Definition: gpio.h:24
#define ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT()
Definition: vfs_plugin.h:238
#define ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE_DEFAULT()
Definition: vfs_plugin.h:277
#define ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT()
Definition: vfs_plugin.h:294
#define ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT()
Definition: vfs_plugin.h:165
zrtos_error_t zrtos_vfs_module_arduino_gpio__digital_read(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
Definition: gpio.h:22
#define ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT()
Definition: vfs_plugin.h:260
zrtos_error_t zrtos_vfs_module_arduino_gpio__analog_read(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)
#define ZRTOS_VFS_PLUGIN__2_ON_MOUNT(callback)
Definition: vfs_plugin.h:181
void zrtos_vfs_dentry__set_inode_data(zrtos_vfs_dentry_t *thiz, void *ctx)
Definition: vfs_dentry.h:192
zrtos_error_t zrtos_vfs_module_arduino_gpio__digital_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
Successful program execution status.
Definition: error.h:22
zrtos_gpio_t zrtos_vfs_module_arduino_gpio
Function not implemented.
Definition: error.h:62
zrtos_arch_gpio_value_analog_t zrtos_gpio_value_analog_t
Definition: gpio.h:31
#define ZRTOS_GPIO__INIT(set_mode_, digital_read_, digital_write_, analog_read_, analog_write_)
Definition: gpio.h:78
zrtos_error_t zrtos_vfs_module_arduino_gpio__on_mount(zrtos_vfs_dentry_t *thiz)
zrtos_error_t
Definition: error.h:20