Subversion Repositories HomeAutomation

Rev

Rev 867 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. #ifndef CANID_H_
  2. #define CANID_H_
  3.  
  4. //---------------------------------------------------------------------------
  5. // CAN ID definitions
  6.  
  7. #define CAN_MASK_CLASS      0x1E000000
  8. #define CAN_SHIFT_CLASS     25
  9. //------------------------------------
  10. #define CAN_NMT         0x00UL
  11. #define CAN_MASK_NMT_TYPE       0x00FF0000
  12. #define CAN_SHIFT_NMT_TYPE      16
  13. #define CAN_MASK_NMT_SID        0x0000FF00
  14. #define CAN_SHIFT_NMT_SID       8
  15. #define CAN_MASK_NMT_RID        0x000000FF
  16. #define CAN_SHIFT_NMT_RID       0
  17. #define CAN_NMT_TIME        0x00UL  //D0:3 UNIX_TIME, D4:7 {YY:6, MM:4, DD:5, hh:5, mm:6, ss:6}
  18. #define CAN_NMT_RESET       0x04UL
  19. #define CAN_NMT_BIOS_START      0x08UL  //D0: VER7:0, D1:VER15:8, D2: 0 if no app, >0 if app
  20. #define CAN_NMT_PGM_START       0x0CUL  //D0: ADR7:0, D1:ADR15:8, D2:ADR23:16, D3:ADR31:24
  21. #define CAN_NMT_PGM_DATA        0x10UL  //D0: OFS7:0, D1: OFS15:8, D(n+2): DATAn7:0 [n=0..x] [x=0..5]
  22. #define CAN_NMT_PGM_END     0x14UL  //D0: CRC7:0, D1: CRC15:8
  23. #define CAN_NMT_PGM_COPY        0x18UL  //D0: SRC7:0, D1:SRC15:8, D0: DST7:0, D1:DST15:8, D0: LEN7:0, D1:LEN15:8
  24. #define CAN_NMT_PGM_ACK     0x1CUL  //D0: OFS7:0, D1: OFS15:8
  25. #define CAN_NMT_PGM_NACK        0x20UL  //D0: OFS7:0, D1: OFS15:8
  26. #define CAN_NMT_START_APP       0x24UL
  27. #define CAN_NMT_APP_START       0x28UL  //D0: ID7:0, D1:ID15:8, D2: VER7:0, D3:VER15:8
  28. #define CAN_NMT_HEARTBEAT       0x2CUL
  29. //------------------------------------
  30.  
  31. // This is old definitions, not needed for modulebased applications
  32. #define CAN_SNS         0x02UL
  33. #define CAN_MASK_SNS_TYPE       0x01FF8000
  34. #define CAN_SHIFT_SNS_TYPE      15
  35. #define CAN_MASK_SNS_ID     0x00007E00
  36. #define CAN_SHIFT_SNS_ID        9
  37. #define CAN_MASK_SNS_SID        0x000001FF
  38. #define CAN_SHIFT_SNS_SID       0
  39.  
  40. #define CAN_ACT         0x04UL
  41. #define CAN_MASK_ACT_TYPE       0x01FF8000
  42. #define CAN_SHIFT_ACT_TYPE      15
  43. #define CAN_MASK_ACT_ID     0x00007E00
  44. #define CAN_SHIFT_ACT_ID        9
  45. #define CAN_MASK_ACT_SID        0x000001FF
  46. #define CAN_SHIFT_ACT_SID       0
  47.  
  48. #define CAN_PKT             0x06UL
  49.  
  50. #define CAN_CON             0x08UL
  51.  
  52. #define CAN_TST             0x0FUL
  53. //--------------------------------------------------------------------
  54.  
  55.  
  56. //--------------------------------------------------- //
  57. // New class definitions for modulebased applications //
  58. //--------------------------------------------------- //
  59.  
  60. // Module classes
  61. //------------------------------------
  62. #define CAN_CLASS_MODULE_NMT        0x0BUL      // If we move the functionality for this to BIOS we should use CAN_NMT instead
  63. #define CAN_CLASS_MODULE_ACT        0x0CUL
  64. #define CAN_CLASS_MODULE_SNS        0x0DUL
  65. #define CAN_CLASS_MODULE_DEF        0x0EUL
  66. #define CAN_CLASS_MODULE_CON_OPEN   0x0FUL
  67. #define CAN_CLASS_MODULE_CON        0x10UL
  68.  
  69. // Module frame direction
  70. //------------------------------------
  71. #define DIR_FROM_OWNER          1       // If a module sends a packet
  72. #define DIR_TO_OWNER            0       // If a module sends a packet to another module
  73.  
  74. // Module types
  75. //------------------------------------
  76. #define CAN_TYPE_MODULE_def_default 0x01
  77. #define CAN_TYPE_MODULE_sns_ds18x20 0x03
  78. #define CAN_TYPE_MODULE_sns_FOST02  0x05
  79. #define CAN_TYPE_MODULE_sns_BusVoltage  0x06
  80. #define CAN_TYPE_MODULE_sns_SimpleDTMF  0x07
  81. #define CAN_TYPE_MODULE_act_hd44789 0x04
  82.  
  83.  
  84. // Module commands
  85. //------------------------------------
  86. //#define CAN_CMD_MODULE_NMT_LIST       0x00UL      // Tell the application to report which modules it has
  87.  
  88.  
  89.  
  90.  
  91. //---------------------------------------------------------------------------
  92. // CAN ID definitions for NMT messages
  93.  
  94. #define CAN_ID_NMT_BIOS_START  ((CAN_NMT << CAN_SHIFT_CLASS) \
  95.                               | (CAN_NMT_BIOS_START << CAN_SHIFT_NMT_TYPE))
  96. #define CAN_ID_NMT_PGM_ACK     ((CAN_NMT << CAN_SHIFT_CLASS) \
  97.                               | (CAN_NMT_PGM_ACK << CAN_SHIFT_NMT_TYPE))
  98. #define CAN_ID_NMT_PGM_NACK    ((CAN_NMT << CAN_SHIFT_CLASS) \
  99.                               | (CAN_NMT_PGM_NACK << CAN_SHIFT_NMT_TYPE))
  100.  
  101. #define CAN_APPTYPES_IRRECEIVER     0xf010
  102. #define CAN_APPTYPES_RELAY          0xf015
  103. #define CAN_APPTYPES_SERVO          0xf020
  104. #define CAN_APPTYPES_SENSOR         0xf025
  105. #define CAN_APPTYPES_IRTRANSMITTER  0xf030
  106. #define CAN_APPTYPES_RGBLED         0xf035
  107. #define CAN_APPTYPES_FANCONTROLLER  0xf040
  108.  
  109. // CAN ID definitions for SNS messages
  110. #define SNS_TYPE_STATUS             0x10L
  111. #define SNS_TYPE_IR                 0x12L
  112. #define SNS_TYPE_TEMPERATURE        0x14L
  113. #define SNS_TYPE_LIGHT              0x18L
  114. #define SNS_TYPE_PHONENR            0x1aL
  115. #define SNS_TYPE_PRESSURE           0x1bL
  116. #define SNS_TYPE_VOLTAGE            0x1cL
  117. #define SNS_TYPE_ROTSPEED           0x1dL
  118. #define SNS_TYPE_VELOCITY           0x1eL
  119. #define SNS_TYPE_FUELCONS           0x1fL
  120.  
  121.  
  122. #define SNS_ID_RELAY_STATUS           0x0BL
  123. #define SNS_ID_SERVO_STATUS           0x0dL
  124.  
  125. //Definitions of precision of different sensors
  126. #define SNS_DECPOINT_TEMPERATURE    0x04
  127. #define SNS_DECPOINT_PRESSURE       0x06
  128. #define SNS_DECPOINT_ROTSPEED       0x02
  129. #define SNS_DECPOINT_VOLTAGE        0x06
  130. #define SNS_DECPOINT_VELOCITY       0x02
  131. #define SNS_DECPOINT_FUELCONS       0x06
  132.  
  133.  
  134. // CAN ID definitions for ACT messages
  135. #define ACT_TYPE_RELAY          0x01L
  136. #define ACT_TYPE_SERVO          0x02L
  137. #define ACT_TYPE_RGBLED         0x03L
  138. #define ACT_TYPE_IR             0x04L
  139. #define ACT_TYPE_LCD            0x05L
  140. #define ACT_TYPE_FAN            0x06L
  141.  
  142.  
  143.  
  144. #endif /*CANID_H_*/
  145.