can_app.h 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: can_app.h
  4. 文件版本: 01.01
  5. 创建作者: sunxi
  6. 创建日期: 2013-02-28
  7. 功能说明: can传输应用层
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _CAN_APP_H
  12. #define _CAN_APP_H
  13. /*------------------------------- 头文件 --------------------------------------
  14. */
  15. /*------------------------------- 宏定义 --------------------------------------
  16. */
  17. // 帧类型,带优先级,数字越小,优先级越高
  18. // 分为4大类,每类64个
  19. // !!!!!!!!!!!!!同一大类的帧不能在不能的中断级别中发送,切记!!!!!!!!!!!!!!!
  20. // 开入开出类
  21. #define CAN_FRAME_TYPE_DO_ON 0x01 // 开出, 发送:5ms中断
  22. #define CAN_FRAME_TYPE_DO_OFF 0x02 // 开出, 发送:5ms中断
  23. #define CAN_FRAME_TYPE_DI_INIT 0x21 // 遥信板前32个遥信 接收:can中断
  24. #define CAN_FRAME_TYPE_DI_ON 0x22 // 遥信板前32个遥信 接收:can中断
  25. #define CAN_FRAME_TYPE_DI_OFF 0x23 // 遥信板前32个遥信 接收:can中断
  26. #define CAN_FRAME_TYPE_DI_INIT1 0x24 // 遥信板后32个遥信 接收:can中断
  27. #define CAN_FRAME_TYPE_DI_ON1 0x25 // 遥信板后32个遥信 接收:can中断
  28. #define CAN_FRAME_TYPE_DI_OFF1 0x26 // 遥信板后32个遥信 接收:can中断
  29. // 对时类
  30. #define CAN_FRAME_TYPE_TIMING 0x40 // 对时/召子板信息,发送:5ms中断
  31. // 控制类
  32. #define CAN_FRAME_TYPE_SB_INFO 0x81 // 子板应答信息, 接收:can中断
  33. #define CAN_FRAME_TYPE_ARGUMENT_DO 0x82 // 开出参数设置, 发送:主循环中发送
  34. #define CAN_FRAME_TYPE_ARGUMENT_DI 0x83 // 遥信参数设置, 发送:主循环中发送
  35. #define CAN_FRAME_TYPE_ARGUMENT_LED 0x84 // LED参数设置, 发送:主循环中发送
  36. // 其它类
  37. #define CAN_FRAME_TYPE_PROGRAM_UPDATE 0xc0 // 子板程序更新, 发送:主循环中; 接收:主循环中
  38. #define CAN_FRAME_TYPE_PROGRAM_READ 0xc1 // 子板程序读取, 发送:主循环中; 接收:主循环中
  39. #define CAN_FRAME_TYPE_LED 0xc2 // 告警LED灯, 发送:主循环中
  40. #define CAN_FRAME_TYPE_RESET 0xc3 // 复位所有子板, 发送:主循环
  41. #define CAN_FRAME_TYPE_SB_MONITOR 0xc4 // 子板监视信息, 发送:主循环; 接收:主循环
  42. #define CAN_FRAME_TYPE_TEST 0xc5 // 测试帧 发送:主循环; 接收:主循环
  43. /*线损,针对主机来说的功能码*/
  44. #define CAN_FRAME_TYPE_LL_YX 0XC6 //查询遥信 发送:主循环中; 接收:主循环中
  45. #define CAN_FRAME_TYPE_LL_YC 0XC7 //查询遥测
  46. #define CAN_FRAME_TYPE_LL_DD 0XC8 //查询电度
  47. #define CAN_FRAME_TYPE_LL_CALIB1 0XC9 //校准1
  48. #define CAN_FRAME_TYPE_LL_CALIB2 0XCA //校准2
  49. #define CAN_FRAME_TYPE_DISCOVER 0xCB // 子板查找
  50. #define CAN_FRAME_TYPE_GIVE_CAN_SLOT 0xCC // 给与CAN子板卡槽号
  51. #define CAN_FRAME_TYPE_LL_FIXD 0X27 //定时冻结
  52. #define CAN_FRAME_TYPE_LL_RAND 0X28 //瞬时冻结
  53. #define CAN_FRAME_TYPE_LL_FRZD 0X29 //日冻结
  54. #define CAN_FRAME_TYPE_LL_SHARPD 0X2A //整点冻结
  55. #define CAN_FRAME_TYPE_LL_MONTHD 0X2B //考核日冻结
  56. #define CAN_FRAME_TYPE_LL_SET 0X85 //设置参数
  57. #define CAN_FRAME_TYPE_LL_SET_TIME CAN_FRAME_TYPE_TIMING //对时
  58. #define CAN_FRAME_TYPE_LL_SOE 0X03 //遥信突发上送
  59. /*------------------------------ 类型结构 -------------------------------------
  60. */
  61. /*------------------------------ 函数声明 -------------------------------------
  62. */
  63. int can_app_init(void);
  64. int can_app_exit(void);
  65. u8 can_app_checksum(u8 *buf,u8 len);
  66. int can_app_timing(void);
  67. int can_app_reset(int is_watchdog);
  68. int can_app_sb_monitor(void);
  69. int can_app_test_printf(void);
  70. int can_task(void);
  71. #endif //_CAN_APP_H
  72. /*------------------------------ 文件结束 -------------------------------------
  73. */