Subversion Repositories HomeAutomation

Rev

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

  1. typedef enum _PACKET_TYPE { ptBOOT=0x0, ptPGM=0x1 } PACKET_TYPE;
  2. typedef enum _BOOT_TYPE { btADDR = 0x0, btPGM = 0x1, btDONE = 0x2, btACK = 0x4, btNACK = 0x5, btCRC = 0x6, btCHANGEID = 0x7 } BOOT_TYPE;
  3. typedef enum _PGM_CLASS {pcCTRL=0x0, pcSENSOR=0x1, pcACTUATOR=0x2} PGM_CLASS;
  4.  
  5. /*Control like heartbeat, eeprom, etc.*/
  6. typedef enum _PGM_CTRL_TYPE {pctBOOTBOOT=0x0000, pctAPPBOOT=0x0001, pctEE_START=0x0002, pctEE_PGM=0x0003, pctEE_CRC=0x0004, pctEE_ACK=0x0005, pctEE_NACK=0x0006, pctEE_DONE=0x0007, pctHEARTBEAT=0x0008} PGM_CTRL_TYPE;
  7. /*
  8. pctBOOTBOOT
  9. data[2] = startup reason data[1] = Bootloader version high byte.
  10. data[0] = Bootloader version low byte.
  11. */
  12. /*
  13. pctAPPBOOT
  14. data[1] = Bootloader version high byte.
  15. data[0] = Bootloader version low byte.
  16. */
  17. /*
  18. pctEE_START
  19. data[4] = RID
  20. data[3] = 1 = external, 0 = internal eeprom
  21. data[2] = ADDRU
  22. data[1] = ADDRH
  23. data[0] = ADDRL
  24. */
  25. /*
  26. pctEE_PGM
  27. data[7] = offset
  28. data[6-0] = DATA
  29. */
  30. /*
  31. pctEE_CRC
  32. data[4] = CRCH
  33. data[3] = CRCL
  34. data[2] = ADDRU
  35. data[1] = ADDRH
  36. data[0] = ADDRL
  37. */
  38. /*
  39. pctEE_ACK
  40.  
  41. */
  42. /*
  43. pctEE_NACK
  44.  
  45. */
  46. /*
  47. pctEE_DONE
  48. data[2] = number of valid bytes U
  49. data[1] = number of valid bytes H
  50. data[0] = number of valid bytes L
  51. */
  52. /*
  53. pctHEARTBEAT
  54.  
  55. */
  56.  
  57.  
  58. /*Sensors.*/
  59. typedef enum _PGM_SENSOR_TYPE {pstIR=0x0000, pstTEMP_INSIDE=0x0001, pstTEMP_OUTSIDE=0x0002, pstTEMP_FREEZER=0x0003, pstTEMP_REFRIGERATOR=0x0004, pstTEMP_DOOR_OUTSIDE=0x0005, pstDOOR_FREEZER=0x0006, pstDOOR_REFRIGERATOR=0x0007, pstDOOR_OUTSIDE=0x0008, pstBLIND_TR=0x0009} PGM_SENSOR_TYPE;
  60. /*
  61. pstIR
  62. data[3] = type
  63. data[2] = toogle
  64. data[1] = addr
  65. data[0] = data
  66. */
  67. /*
  68. pstTEMP_INSIDE
  69. data[1] = integer value -127 to 127
  70. data[0] = decimal value 0-9
  71. */
  72. /*
  73. pstTEMP_OUTSIDE
  74. data[1] = integer value -127 to 127
  75. data[0] = decimal value 0-9
  76. */
  77. /*
  78. pstTEMP_FREEZER
  79. data[1] = integer value -127 to 127
  80. data[0] = decimal value 0-9
  81. */
  82. /*
  83. pstTEMP_REFRIGERATOR
  84. data[1] = integer value -127 to 127
  85. data[0] = decimal value 0-9
  86. */
  87. /*
  88. pstTEMP_DOOR_OUTSIDE
  89. data[1] = integer value -127 to 127
  90. data[0] = decimal value 0-9
  91. */
  92. /*
  93. pstDOOR_FREEZER
  94. data[0] = 0 closed, 1 open
  95. */
  96. /*
  97. pstDOOR_REFRIGERATOR
  98. data[0] = 0 closed, 1 open
  99. */
  100. /*
  101. pstDOOR_OUTSIDE
  102. data[0] = 0 closed, 1 open
  103. */
  104. /*
  105. pstBLIND_TR
  106. data[0] = Precent value 0-100
  107. */
  108.  
  109.  
  110. /*actuators.*/
  111. typedef enum _PGM_ACTUATOR_TYPE {patBLIND_TR=0x0000} PGM_ACTUATOR_TYPE;
  112. /*
  113. patBLIND_TR
  114. data[1]=0 = absoulte, 1 = relative
  115. When 0 absolute = data[0] = Precent value 0-100
  116. When 1  relative =  data[0] = signed -100 to 100
  117. */
  118.  
  119.  
  120.