فهرست منبع

add soft_tim.py test

Lyon 2 سال پیش
والد
کامیت
cecaee8e63

+ 18 - 0
examples/PikaStdDevice/soft_tim.py

@@ -0,0 +1,18 @@
+from PikaStdDevice import Timer
+
+tim = Timer()
+cb_times = 0
+def cb_test(signal):
+    global cb_times
+    cb_times += 1
+    print("cb_test: signal = %d, cb_times = %d" % (signal, cb_times))
+
+tim.setCallback(cb_test, Timer.SIGNAL_ANY)
+tim.setId(-1) # -1 means soft timer
+tim.setPeriod(500) # 500ms
+tim.enable()
+
+while True:
+    if cb_times >= 10:
+        tim.close()
+        break

+ 8 - 8
package/PikaStdDevice/pika_hal.c

@@ -334,12 +334,12 @@ int pika_hal_TIM_ioctl_merge_config(pika_hal_TIM_config* dst,
     return 0;
 }
 
-int pika_hal_SOFT_TIM_ioctl_merge_config(pika_hal_SOFT_TIM_config *dst,
-                                         pika_hal_SOFT_TIM_config *src) {
-  _IOCTL_CONFIG_USE_DEFAULT(period, PIKA_HAL_TIM_PERIOD_1S);
-  _IOCTL_CONFIG_USE_DEFAULT(mode, PIKA_HAL_TIM_MODE_CONTINUOUS);
-  _IOCTL_CONFIG_USE_DEFAULT(event_callback_ena,
-                            PIKA_HAL_EVENT_CALLBACK_ENA_ENABLE);
-  _IOCTL_CONFIG_USE_DEFAULT(event_callback, NULL);
-  return 0;
+int pika_hal_SOFT_TIM_ioctl_merge_config(pika_hal_SOFT_TIM_config* dst,
+                                         pika_hal_SOFT_TIM_config* src) {
+    _IOCTL_CONFIG_USE_DEFAULT(period, PIKA_HAL_TIM_PERIOD_1S);
+    _IOCTL_CONFIG_USE_DEFAULT(mode, PIKA_HAL_TIM_MODE_CONTINUOUS);
+    _IOCTL_CONFIG_USE_DEFAULT(event_callback_ena,
+                              PIKA_HAL_EVENT_CALLBACK_ENA_ENABLE);
+    _IOCTL_CONFIG_USE_DEFAULT(event_callback, NULL);
+    return 0;
 }

+ 8 - 8
port/linux/package/pikascript/pikascript-lib/PikaStdDevice/pika_hal.c

@@ -334,12 +334,12 @@ int pika_hal_TIM_ioctl_merge_config(pika_hal_TIM_config* dst,
     return 0;
 }
 
-int pika_hal_SOFT_TIM_ioctl_merge_config(pika_hal_SOFT_TIM_config *dst,
-                                         pika_hal_SOFT_TIM_config *src) {
-  _IOCTL_CONFIG_USE_DEFAULT(period, PIKA_HAL_TIM_PERIOD_1S);
-  _IOCTL_CONFIG_USE_DEFAULT(mode, PIKA_HAL_TIM_MODE_CONTINUOUS);
-  _IOCTL_CONFIG_USE_DEFAULT(event_callback_ena,
-                            PIKA_HAL_EVENT_CALLBACK_ENA_ENABLE);
-  _IOCTL_CONFIG_USE_DEFAULT(event_callback, NULL);
-  return 0;
+int pika_hal_SOFT_TIM_ioctl_merge_config(pika_hal_SOFT_TIM_config* dst,
+                                         pika_hal_SOFT_TIM_config* src) {
+    _IOCTL_CONFIG_USE_DEFAULT(period, PIKA_HAL_TIM_PERIOD_1S);
+    _IOCTL_CONFIG_USE_DEFAULT(mode, PIKA_HAL_TIM_MODE_CONTINUOUS);
+    _IOCTL_CONFIG_USE_DEFAULT(event_callback_ena,
+                              PIKA_HAL_EVENT_CALLBACK_ENA_ENABLE);
+    _IOCTL_CONFIG_USE_DEFAULT(event_callback, NULL);
+    return 0;
 }

+ 3 - 0
port/linux/test/module-test.cpp

@@ -629,6 +629,9 @@ TEST_RUN_SINGLE_FILE(modbus,
 
 TEST_RUN_SINGLE_FILE_PASS(proxy, proxy3, "test/python/proxy/proxy3.py")
 
+TEST_RUN_SINGLE_FILE(stddevice, soft_tim, "test/python/PikaStdDevice/soft_tim.py")
+
+
 #endif
 
 TEST_END

+ 18 - 0
port/linux/test/python/PikaStdDevice/soft_tim.py

@@ -0,0 +1,18 @@
+from PikaStdDevice import Timer
+
+tim = Timer()
+cb_times = 0
+def cb_test(signal):
+    global cb_times
+    cb_times += 1
+    print("cb_test: signal = %d, cb_times = %d" % (signal, cb_times))
+
+tim.setCallback(cb_test, Timer.SIGNAL_ANY)
+tim.setId(-1) # -1 means soft timer
+tim.setPeriod(500) # 500ms
+tim.enable()
+
+while True:
+    if cb_times >= 10:
+        tim.close()
+        break