auto init and deinit eventLisener

This commit is contained in:
pikastech 2022-06-17 15:03:12 +08:00
parent dbeb9ab239
commit 1f20472491
4 changed files with 12 additions and 6 deletions

View File

@ -79,3 +79,6 @@ class CAN(PikaStdDevice.CAN):
def platformReadBytes(self): ...
def platformDisable(self): ...
def platformGetEventId(self): ...
def __del__(self): ...

View File

@ -3,10 +3,14 @@
#include "PikaObj.h"
#include "dataStrs.h"
PikaEventListener* g_pika_device_event_listener;
extern PikaEventListener* g_pika_device_event_listener;
void PikaStdDevice_BaseDev_addEventCallBack(PikaObj* self, Arg* eventCallBack) {
obj_setArg(self, "eventCallBack", eventCallBack);
/* init event_listener for the first time */
if (NULL == g_pika_device_event_listener) {
pks_eventLisener_init(&g_pika_device_event_listener);
}
if (PIKA_RES_OK != obj_runNativeMethod(self, "platformGetEventId", NULL)) {
obj_setErrorCode(self, 1);
__platform_printf("Error: Method %s no found.\r\n",

View File

@ -5,8 +5,6 @@ extern PikaEventListener* g_pika_device_event_listener;
TEST(event, gpio) {
/* init */
PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
pks_eventLisener_init(&g_pika_device_event_listener);
/* run */
pikaVM_runFile(pikaMain, "../../examples/TemplateDevice/gpio_cb.py");
@ -25,7 +23,6 @@ TEST(event, gpio) {
EXPECT_STREQ(log_buff[0], "get falling edge!\r\n");
/* deinit */
obj_deinit(pikaMain);
pks_eventLisener_deinit(&g_pika_device_event_listener);
EXPECT_EQ(pikaMemNow(), 0);
}

View File

@ -1099,8 +1099,10 @@ void pks_eventLisener_init(PikaEventListener** p_self) {
}
void pks_eventLisener_deinit(PikaEventListener** p_self) {
obj_deinit(*p_self);
*p_self = NULL;
if (NULL != *p_self) {
obj_deinit(*p_self);
*p_self = NULL;
}
}
void pks_eventLisener_sendSignal(PikaEventListener* self,