led_object.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "led.h"
  2. #include "led_object.h"
  3. #include "stdint.h"
  4. #include "stdio.h"
  5. #include "stdlib.h"
  6. #include "pando_object.h"
  7. #include "sub_device_protocol.h"
  8. #include "usart.h"
  9. typedef struct {
  10. BOOL status;
  11. }led;
  12. void led_init(void)
  13. {
  14. LED_Init();
  15. }
  16. led* create_led()
  17. {
  18. led* led_str = (led*)malloc(sizeof(led));
  19. return led_str;
  20. }
  21. void led_set(led * value)
  22. {
  23. SIM7600_led = value->status;
  24. }
  25. void led_get(led * value)
  26. {
  27. value->status = 0;
  28. }
  29. void delete_led(led* led)
  30. {
  31. if(led!=NULL)
  32. {
  33. free(led);
  34. }
  35. }
  36. void led_object_pack(PARAMS * params)
  37. {
  38. if(NULL==params)
  39. {
  40. PRINTF("create first tlv param failed\r\n");
  41. return;
  42. }
  43. led* led = create_led();
  44. led_get(led);
  45. if(add_next_bool(params, led->status))
  46. {
  47. PRINTF("add next tlv failed\r\n");
  48. return;
  49. }
  50. delete_led(led);
  51. }
  52. void led_object_unpack(PARAMS * params)
  53. {
  54. led * led = create_led();
  55. led->status = get_next_bool(params);
  56. led_set(led);
  57. delete_led(led);
  58. }
  59. void led_object_init(void)
  60. {
  61. led_init();
  62. pando_object led_object = {
  63. 1,
  64. led_object_pack,
  65. led_object_unpack,
  66. };
  67. register_pando_object(led_object);
  68. }