PikaStdDevice_common.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "PikaStdDevice_common.h"
  2. extern PikaEventListener* g_pika_device_event_listener;
  3. void _PikaStdDevice_GPIO_event_handler(pika_dev* dev,
  4. PIKA_HAL_GPIO_EVENT_SIGNAL signal) {
  5. pika_eventListener_sendSignal(g_pika_device_event_listener, (uintptr_t)dev,
  6. signal);
  7. }
  8. void _PikaStdDevice_TIM_event_handler(pika_dev* dev,
  9. PIKA_HAL_TIM_EVENT_SIGNAL signal) {
  10. pika_eventListener_sendSignal(g_pika_device_event_listener, (uintptr_t)dev,
  11. signal);
  12. }
  13. void _PikaStdDevice_UART_event_handler(pika_dev* dev,
  14. PIKA_HAL_UART_EVENT_SIGNAL signal) {
  15. pika_eventListener_sendSignal(g_pika_device_event_listener, (uintptr_t)dev,
  16. signal);
  17. }
  18. void _PikaStdDevice_setCallback(PikaObj* self,
  19. Arg* eventCallback,
  20. uintptr_t eventId) {
  21. if (NULL == g_pika_device_event_listener) {
  22. pika_eventListener_init(&g_pika_device_event_listener);
  23. }
  24. pika_eventListener_registEventCallback(g_pika_device_event_listener,
  25. eventId, eventCallback);
  26. }
  27. extern volatile PikaObj* __pikaMain;
  28. PikaObj* PikaStdDevice_Time(PikaObj* self) {
  29. PikaObj* time = obj_getPtr((PikaObj*)__pikaMain, "time");
  30. if (NULL == time) {
  31. obj_setErrorCode(self, -1);
  32. obj_setSysOut(self, "Error: please install and import 'time' module");
  33. return NULL;
  34. }
  35. obj_refcntInc(time);
  36. return time;
  37. }