|
|
@@ -1,96 +1,6 @@
|
|
|
#include "PikaStdDevice_UART.h"
|
|
|
#include "PikaStdDevice_common.h"
|
|
|
|
|
|
-void PikaStdDevice_UART_enable(PikaObj* self) {
|
|
|
- obj_runNativeMethod(self, "platformEnable", NULL);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_disable(PikaObj* self) {
|
|
|
- obj_runNativeMethod(self, "platformDisable", NULL);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_init(PikaObj* self) {
|
|
|
- /* const */
|
|
|
- obj_setInt(self, "FLOW_CONTROL_NONE", PIKA_HAL_UART_FLOW_CONTROL_NONE);
|
|
|
- obj_setInt(self, "FLOW_CONTROL_RTS", PIKA_HAL_UART_FLOW_CONTROL_RTS);
|
|
|
- obj_setInt(self, "FLOW_CONTROL_CTS", PIKA_HAL_UART_FLOW_CONTROL_CTS);
|
|
|
- obj_setInt(self, "FLOW_CONTROL_RTS_CTS",
|
|
|
- PIKA_HAL_UART_FLOW_CONTROL_RTS_CTS);
|
|
|
-
|
|
|
- obj_setInt(self, "SIGNAL_RX", PIKA_HAL_UART_EVENT_SIGNAL_RX);
|
|
|
- obj_setInt(self, "SIGNAL_TX", PIKA_HAL_UART_EVENT_SIGNAL_TX);
|
|
|
-
|
|
|
- obj_setInt(self, "STOP_BITS_1", PIKA_HAL_UART_STOP_BITS_1);
|
|
|
- obj_setInt(self, "STOP_BITS_2", PIKA_HAL_UART_STOP_BITS_2);
|
|
|
- obj_setInt(self, "STOP_BITS_1_5", PIKA_HAL_UART_STOP_BITS_1_5);
|
|
|
- obj_setInt(self, "PARITY_NONE", PIKA_HAL_UART_PARITY_NONE);
|
|
|
- obj_setInt(self, "PARITY_ODD", PIKA_HAL_UART_PARITY_ODD);
|
|
|
- obj_setInt(self, "PARITY_EVEN", PIKA_HAL_UART_PARITY_EVEN);
|
|
|
-
|
|
|
- /* default */
|
|
|
- obj_setInt(self, "baudRate", 115200);
|
|
|
- obj_setInt(self, "id", 1);
|
|
|
- obj_setStr(self, "readBuff", "");
|
|
|
- obj_setInt(self, "flowControl", PIKA_HAL_UART_FLOW_CONTROL_NONE);
|
|
|
- obj_setStr(self, "TXpin", "none");
|
|
|
- obj_setStr(self, "RXpin", "none");
|
|
|
- obj_setStr(self, "RTSpin", "none");
|
|
|
- obj_setStr(self, "CTSpin", "none");
|
|
|
- obj_setInt(self, "dataBits", 8);
|
|
|
- obj_setInt(self, "parity", PIKA_HAL_UART_PARITY_NONE);
|
|
|
- obj_setInt(self, "stopBits", PIKA_HAL_UART_STOP_BITS_1);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART___init__(PikaObj* self) {
|
|
|
- PikaStdDevice_UART_init(self);
|
|
|
-}
|
|
|
-
|
|
|
-char* PikaStdDevice_UART_read(PikaObj* self, int length) {
|
|
|
- obj_setInt(self, "length", length);
|
|
|
- obj_runNativeMethod(self, "platformRead", NULL);
|
|
|
- return obj_getStr(self, "readData");
|
|
|
-}
|
|
|
-
|
|
|
-Arg* PikaStdDevice_UART_readBytes(PikaObj* self, int length) {
|
|
|
- obj_setInt(self, "length", length);
|
|
|
- obj_runNativeMethod(self, "platformReadBytes", NULL);
|
|
|
- return arg_copy(obj_getArg(self, "readData"));
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_setBaudRate(PikaObj* self, int baudRate) {
|
|
|
- obj_setInt(self, "baudRate", baudRate);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_setFlowControl(PikaObj* self, int flowControl) {
|
|
|
- obj_setInt(self, "flowControl", flowControl);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_setDataBits(PikaObj* self, int dataBits) {
|
|
|
- obj_setInt(self, "dataBits", dataBits);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_setParity(PikaObj* self, int parity) {
|
|
|
- obj_setInt(self, "parity", parity);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_setStopBits(PikaObj* self, int stopBits) {
|
|
|
- obj_setInt(self, "stopBits", stopBits);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_setId(PikaObj* self, int id) {
|
|
|
- obj_setInt(self, "id", id);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_write(PikaObj* self, char* data) {
|
|
|
- obj_setStr(self, "writeData", data);
|
|
|
- obj_runNativeMethod(self, "platformWrite", NULL);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_writeBytes(PikaObj* self, uint8_t* data, int length) {
|
|
|
- obj_setBytes(self, "writeData", data, length);
|
|
|
- obj_runNativeMethod(self, "platformWriteBytes", NULL);
|
|
|
-}
|
|
|
-
|
|
|
static pika_dev* _get_dev(PikaObj* self) {
|
|
|
pika_dev* dev = PIKA_HAL_OBJ2DEV(self);
|
|
|
if (NULL != dev) {
|
|
|
@@ -107,7 +17,7 @@ static pika_dev* _get_dev(PikaObj* self) {
|
|
|
return dev;
|
|
|
}
|
|
|
|
|
|
-void PikaStdDevice_UART_platformEnable(PikaObj* self) {
|
|
|
+void PikaStdDevice_UART_enable(PikaObj* self) {
|
|
|
pika_dev* dev = _get_dev(self);
|
|
|
if (NULL == dev) {
|
|
|
__platform_printf("Error: open UART '%d' failed.\r\n",
|
|
|
@@ -163,23 +73,7 @@ void PikaStdDevice_UART_platformEnable(PikaObj* self) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void PikaStdDevice_UART_platformRead(PikaObj* self) {
|
|
|
- int len = obj_getInt(self, "length");
|
|
|
- obj_setBytes(self, "_readData", NULL, len + 1);
|
|
|
- char* buff = (char*)obj_getBytes(self, "_readData");
|
|
|
- pika_dev* dev = _get_dev(self);
|
|
|
- int len_get = pika_hal_read(dev, buff, len);
|
|
|
- buff[len_get] = 0;
|
|
|
- obj_setStr(self, "readData", buff);
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_platformWrite(PikaObj* self) {
|
|
|
- char* data = obj_getStr(self, "writeData");
|
|
|
- pika_dev* dev = _get_dev(self);
|
|
|
- pika_hal_write(dev, data, strlen(data));
|
|
|
-}
|
|
|
-
|
|
|
-void PikaStdDevice_UART_platformDisable(PikaObj* self) {
|
|
|
+void PikaStdDevice_UART_disable(PikaObj* self) {
|
|
|
pika_dev* dev = _get_dev(self);
|
|
|
if (NULL == dev) {
|
|
|
__platform_printf("Error: open UART '%d' failed.\r\n",
|
|
|
@@ -189,18 +83,94 @@ void PikaStdDevice_UART_platformDisable(PikaObj* self) {
|
|
|
pika_hal_ioctl(dev, PIKA_HAL_IOCTL_DISABLE);
|
|
|
}
|
|
|
|
|
|
-void PikaStdDevice_UART_platformReadBytes(PikaObj* self) {
|
|
|
- int len = obj_getInt(self, "length");
|
|
|
+void PikaStdDevice_UART_init(PikaObj* self) {
|
|
|
+ /* const */
|
|
|
+ obj_setInt(self, "FLOW_CONTROL_NONE", PIKA_HAL_UART_FLOW_CONTROL_NONE);
|
|
|
+ obj_setInt(self, "FLOW_CONTROL_RTS", PIKA_HAL_UART_FLOW_CONTROL_RTS);
|
|
|
+ obj_setInt(self, "FLOW_CONTROL_CTS", PIKA_HAL_UART_FLOW_CONTROL_CTS);
|
|
|
+ obj_setInt(self, "FLOW_CONTROL_RTS_CTS",
|
|
|
+ PIKA_HAL_UART_FLOW_CONTROL_RTS_CTS);
|
|
|
+
|
|
|
+ obj_setInt(self, "SIGNAL_RX", PIKA_HAL_UART_EVENT_SIGNAL_RX);
|
|
|
+ obj_setInt(self, "SIGNAL_TX", PIKA_HAL_UART_EVENT_SIGNAL_TX);
|
|
|
+
|
|
|
+ obj_setInt(self, "STOP_BITS_1", PIKA_HAL_UART_STOP_BITS_1);
|
|
|
+ obj_setInt(self, "STOP_BITS_2", PIKA_HAL_UART_STOP_BITS_2);
|
|
|
+ obj_setInt(self, "STOP_BITS_1_5", PIKA_HAL_UART_STOP_BITS_1_5);
|
|
|
+ obj_setInt(self, "PARITY_NONE", PIKA_HAL_UART_PARITY_NONE);
|
|
|
+ obj_setInt(self, "PARITY_ODD", PIKA_HAL_UART_PARITY_ODD);
|
|
|
+ obj_setInt(self, "PARITY_EVEN", PIKA_HAL_UART_PARITY_EVEN);
|
|
|
+
|
|
|
+ /* default */
|
|
|
+ obj_setInt(self, "baudRate", 115200);
|
|
|
+ obj_setInt(self, "id", 1);
|
|
|
+ obj_setStr(self, "readBuff", "");
|
|
|
+ obj_setInt(self, "flowControl", PIKA_HAL_UART_FLOW_CONTROL_NONE);
|
|
|
+ obj_setStr(self, "TXpin", "none");
|
|
|
+ obj_setStr(self, "RXpin", "none");
|
|
|
+ obj_setStr(self, "RTSpin", "none");
|
|
|
+ obj_setStr(self, "CTSpin", "none");
|
|
|
+ obj_setInt(self, "dataBits", 8);
|
|
|
+ obj_setInt(self, "parity", PIKA_HAL_UART_PARITY_NONE);
|
|
|
+ obj_setInt(self, "stopBits", PIKA_HAL_UART_STOP_BITS_1);
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART___init__(PikaObj* self) {
|
|
|
+ PikaStdDevice_UART_init(self);
|
|
|
+}
|
|
|
+
|
|
|
+char* PikaStdDevice_UART_read(PikaObj* self, int length) {
|
|
|
+ int len = length;
|
|
|
+ obj_setBytes(self, "_readData", NULL, len + 1);
|
|
|
+ char* buff = (char*)obj_getBytes(self, "_readData");
|
|
|
+ pika_dev* dev = _get_dev(self);
|
|
|
+ int len_get = pika_hal_read(dev, buff, len);
|
|
|
+ buff[len_get] = 0;
|
|
|
+ obj_setStr(self, "readData", buff);
|
|
|
+ return obj_getStr(self, "readData");
|
|
|
+}
|
|
|
+
|
|
|
+Arg* PikaStdDevice_UART_readBytes(PikaObj* self, int length) {
|
|
|
+ int len = length;
|
|
|
obj_setBytes(self, "_readData", NULL, len + 1);
|
|
|
uint8_t* buff = obj_getBytes(self, "_readData");
|
|
|
pika_dev* dev = _get_dev(self);
|
|
|
int len_get = pika_hal_read(dev, buff, len);
|
|
|
obj_setBytes(self, "readData", buff, len_get);
|
|
|
+ return arg_copy(obj_getArg(self, "readData"));
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART_setBaudRate(PikaObj* self, int baudRate) {
|
|
|
+ obj_setInt(self, "baudRate", baudRate);
|
|
|
}
|
|
|
|
|
|
-void PikaStdDevice_UART_platformWriteBytes(PikaObj* self) {
|
|
|
- uint8_t* data = obj_getBytes(self, "writeData");
|
|
|
- int len = obj_getBytesSize(self, "writeData");
|
|
|
+void PikaStdDevice_UART_setFlowControl(PikaObj* self, int flowControl) {
|
|
|
+ obj_setInt(self, "flowControl", flowControl);
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART_setDataBits(PikaObj* self, int dataBits) {
|
|
|
+ obj_setInt(self, "dataBits", dataBits);
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART_setParity(PikaObj* self, int parity) {
|
|
|
+ obj_setInt(self, "parity", parity);
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART_setStopBits(PikaObj* self, int stopBits) {
|
|
|
+ obj_setInt(self, "stopBits", stopBits);
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART_setId(PikaObj* self, int id) {
|
|
|
+ obj_setInt(self, "id", id);
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART_write(PikaObj* self, char* data) {
|
|
|
+ pika_dev* dev = _get_dev(self);
|
|
|
+ pika_hal_write(dev, data, strlen(data));
|
|
|
+}
|
|
|
+
|
|
|
+void PikaStdDevice_UART_writeBytes(PikaObj* self, uint8_t* data, int length) {
|
|
|
+ int len = length;
|
|
|
pika_dev* dev = _get_dev(self);
|
|
|
pika_hal_write(dev, data, len);
|
|
|
}
|