mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
add pika RTDevice.py
This commit is contained in:
parent
c5ddd40fd6
commit
fe900b79d8
27
package/pikaRTDevice/pikaRTDevice.py
Normal file
27
package/pikaRTDevice/pikaRTDevice.py
Normal file
@ -0,0 +1,27 @@
|
||||
import PikaStdDevice
|
||||
|
||||
|
||||
class GPIO(PikaStdDevice.GPIO):
|
||||
# need be overrid
|
||||
def platformHigh():
|
||||
pass
|
||||
|
||||
# need override
|
||||
def platformLow():
|
||||
pass
|
||||
|
||||
# need override
|
||||
def platformEnable():
|
||||
pass
|
||||
|
||||
# need override
|
||||
def platformDisable():
|
||||
pass
|
||||
|
||||
# need override
|
||||
def platformSetMode():
|
||||
pass
|
||||
|
||||
# need override
|
||||
def platformRead():
|
||||
pass
|
57
package/pikaRTDevice/pikaRTDevice_GPIO.c
Normal file
57
package/pikaRTDevice/pikaRTDevice_GPIO.c
Normal file
@ -0,0 +1,57 @@
|
||||
#include "pikaRTDevice_GPIO.h"
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
rt_base_t pika_get_rt_mode_num(char *mode, char* pull);
|
||||
void pikaRTDevice_GPIO_platformEnable(PikaObj *self){
|
||||
char* pin = obj_getStr(self, "pin");
|
||||
char* mode = obj_getStr(self, "mode");
|
||||
char* pull = obj_getStr(self, "pull");
|
||||
rt_base_t pin_num = rt_pin_get(pin);
|
||||
if(pin_num < 0){
|
||||
obj_setSysOut(self, "[error]: gpio hardware fault, can not get pin number.");
|
||||
obj_setErrorCode(self, 1);
|
||||
}
|
||||
rt_base_t mode_num = pika_get_rt_mode_num(mode, pull);
|
||||
rt_pin_mode(pin_num, mode_num);
|
||||
}
|
||||
|
||||
rt_base_t pika_get_rt_mode_num(char *mode, char* pull){
|
||||
if(strEqu(mode, "out")){
|
||||
return PIN_MODE_OUTPUT;
|
||||
}
|
||||
if(strEqu(mode, "in")){
|
||||
if(strEqu(pull, "none")){
|
||||
return PIN_MODE_INPUT;
|
||||
}
|
||||
if(strEqu(pull, "up")){
|
||||
return PIN_MODE_INPUT_PULLUP;
|
||||
}
|
||||
if(strEqu(pull, "down")){
|
||||
return PIN_MODE_INPUT_PULLDOWN;
|
||||
}
|
||||
}
|
||||
/* default */
|
||||
return PIN_MODE_OUTPUT;
|
||||
}
|
||||
|
||||
void pikaRTDevice_GPIO_platformDisable(PikaObj *self){
|
||||
|
||||
}
|
||||
void pikaRTDevice_GPIO_platformHigh(PikaObj *self){
|
||||
char* pin = obj_getStr(self, "pin");
|
||||
rt_base_t pin_num = rt_pin_get(pin);
|
||||
rt_pin_write(pin_num, PIN_HIGH);
|
||||
}
|
||||
void pikaRTDevice_GPIO_platformLow(PikaObj *self){
|
||||
char* pin = obj_getStr(self, "pin");
|
||||
rt_base_t pin_num = rt_pin_get(pin);
|
||||
rt_pin_write(pin_num, PIN_LOW);
|
||||
}
|
||||
void pikaRTDevice_GPIO_platformRead(PikaObj *self){
|
||||
char* pin = obj_getStr(self, "pin");
|
||||
rt_base_t pin_num = rt_pin_get(pin);
|
||||
obj_setInt(self, "readBuff", rt_pin_read(pin_num));
|
||||
}
|
||||
void pikaRTDevice_GPIO_platformSetMode(PikaObj *self){
|
||||
pikaRTDevice_GPIO_platformEnable(self);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user