dotled.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #ifndef __DOTLED_H
  2. #define __DOTLED_H
  3. #include <stdio.h>
  4. #include <rtthread.h>
  5. #include <rtdevice.h>
  6. #include <board.h>
  7. #include "string.h"
  8. #include "bsp_user_lib.h"
  9. //#include "sys_config.h"
  10. #include "signal_led.h"
  11. //extern char dotledtitle[60] ; // LED显示屏抬头,最大显示30个汉字
  12. //extern char dotledtitle_down[60] ; // LED显示屏下发抬头内容,最大显示30个汉字
  13. //extern uint32_t title_timeout; // 下发后抬头显示超时失效时间。
  14. /*枚举定义控制卡*/
  15. enum bx_5k_card_type{
  16. BX_Any = 0xFE,
  17. BX_5K1 = 0x51,
  18. BX_5K2 = 0x58,
  19. BX_5MK2 = 0x53,
  20. BX_5MK1 = 0x54,
  21. };
  22. /* @task 结构体定义区域数据参数*/
  23. typedef struct {
  24. uint8_t *Frame; //帧头 8 bytes (A5)
  25. uint8_t *Header; //包头 12 bytes (01 00 00 80 00 00 00 00 00 00 FE 02)
  26. uint8_t Len[2]; //整个发送数据出去帧头,包头,CRC校验后长度 2 bytes
  27. uint8_t Cmd_dis[2]; //发送实时显示信息命令 A3 06
  28. uint8_t Reply_f; //控制器回复标志 01
  29. uint8_t Reserved0[2]; //2D 00→保留字节(此值未使用)
  30. uint8_t Areadealnum; //00→要删除的区域个数
  31. uint8_t AreaNum; //区域个数,默认为 0x01,1 bytes
  32. uint8_t AreaLen[2]; //动态区域0数据长度,2 bytes
  33. uint8_t AreaType; //设置区域类型,默认为 0x00 1 bytes
  34. uint8_t AreaX[2]; //设置 X 坐标 2 bytes
  35. uint8_t AreaY[2]; //设置 Y 坐标 2 bytes
  36. uint8_t AreaWidth[2]; //设置屏宽度 2 bytes
  37. uint8_t AreaHeight[2]; //设置屏高度 2 bytes
  38. uint8_t DynamicAreaLoc; //设置动态区编号 1 bytes
  39. uint8_t Lines_sizes; //(00)行间距1 bytes
  40. uint8_t RunMode ; //动态区数据循环模式 1 bytes
  41. /*动态区运行模式
  42. 0—动态区数据循环显示。
  43. 1—动态区数据显示完成后静止显示最后一页数
  44. 据。
  45. 2—动态区数据循环显示,超过设定时间后数据仍
  46. 未更新时不再显示
  47. 3—动态区数据循环显示,超过设定时间后数据仍
  48. 未更新时显示 Logo 信息,Logo 信息即为动态区域
  49. 的最后一页信息
  50. 4—动态区数据顺序显示,显示完最后一页后就不
  51. 再显示
  52. 5—动态区数据顺序显示,超过设定次数后数据仍
  53. 未更新时不再显示*/
  54. uint8_t Timeout[2]; //设置超时时间 2 bytes
  55. uint8_t Reserved1[3]; //保留 3 bytes
  56. uint8_t SingleLine; //设置是否单行显示 1 bytes
  57. uint8_t NewLine; //设置是否自动换行 1 bytes
  58. uint8_t DisplayMode; //设置显示方式 1 bytes
  59. uint8_t ExitMode; //设置退出方式 1 bytes
  60. uint8_t Speed; //设置运行速度 1 bytes
  61. uint8_t StayTime; //设置停留时间 1 bytes
  62. uint8_t DataLen[4]; //要显示内容的个数 4 bytes
  63. uint8_t *dis_buff; //显示内容
  64. uint8_t crc_data[2]; //CRC
  65. }bx_5k_area_header;
  66. /* 系统时间校正命令*/
  67. typedef struct {
  68. uint8_t *Frame; //帧头 8 bytes (A5)
  69. uint8_t *Header; //包头 12 bytes (01 00 00 80 00 00 00 00 00 00 FE 02)
  70. uint8_t Len[2]; //整个发送数据出去帧头,包头,CRC校验后长度 2 bytes
  71. uint8_t Cmd_Group; //命令分组编号 0XA2
  72. uint8_t Cmd; //命令编号 0X03
  73. uint8_t Response; //01:必须回复,02不必回复
  74. // uint8_t Reserved[2];; //保留 0
  75. uint8_t DataLen[2]; //数据长度 2 bytes
  76. uint8_t System_time[8]; //控制器时间
  77. uint8_t crc_data[2]; //CRC
  78. }SYSTEMTIMESET;
  79. /* LED显示属性*/
  80. typedef struct {
  81. uint8_t dis_x;
  82. uint8_t dis_y;
  83. uint8_t dis_wide;
  84. uint8_t dis_high;
  85. uint8_t stay_time;
  86. }LED_DIS_PAR;
  87. /*控制led开关标志位*/
  88. extern uint8_t led_onoff_flag;
  89. #endif