Details | Last modification | View Log | SVN | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 341 | johboh | 1 | /********************************************************************* |
| 93 | johboh | 2 | * |
| 94 | johboh | 3 | * Defines functs and funccs and other global definitions. |
| 93 | johboh | 4 | * |
| 5 | ********************************************************************* |
||
| 6 | * FileName: $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/funcdefs.h $ |
||
| 7 | * Last changed: $LastChangedDate: 2007-02-26 21:38:37 +0100 (Mon, 26 Feb 2007) $ |
||
| 8 | * By: $LastChangedBy: johboh $ |
||
| 9 | * Revision: $Revision: 342 $ |
||
| 10 | ********************************************************************/ |
||
| 11 | |||
| 339 | johboh | 12 | #include <typedefs.h> |
| 93 | johboh | 13 | |
| 339 | johboh | 14 | #define DEFAULT_ID 0x78 // Default ID for bootloader/node when no id is set. |
| 15 | #define NODE_ID_EE 0x00 // EEPROM first index where to look for ID and NID. |
||
| 16 | // NODE_ID_EE = NODE_HAS_ID if has correct ID, otherwise use DEFAULT_ID and DEFAULT_NID |
||
| 17 | // NODE_ID_EE + 1 = ID |
||
| 18 | #define NODE_HAS_ID 0x2A // Value which indicate valid ID and NID. |
||
| 93 | johboh | 19 | |
| 20 | |||
| 21 | |||
| 339 | johboh | 22 | typedef enum _PACKET_TYPE {ptBOOT=0x0,ptPGM=0x1} PACKET_TYPE; |
| 23 | typedef enum _BOOT_TYPE {btADDR=0x0,btPGM=0x1,btDONE=0x2,btACK=0x4,btNACK=0x5,btCRC=0x6,btCHANGEID=0x7} BOOT_TYPE; |
||
| 24 | typedef enum _PGM_CLASS {pcCTRL=0x0,pcSENSOR=0x1,pcACTUATOR=0x2} PGM_CLASS; |
||
| 107 | johboh | 25 | |
| 339 | johboh | 26 | typedef struct _CAN_BOOT_PACKET |
| 27 | { |
||
| 28 | BOOT_TYPE type; //3 |
||
| 29 | BYTE offset; //8 |
||
| 30 | BYTE rid; //8 |
||
| 31 | } CAN_BOOT_PACKET; |
||
| 93 | johboh | 32 | |
| 94 | johboh | 33 | |
| 339 | johboh | 34 | typedef struct _CAN_PGM_PACKET |
| 35 | { |
||
| 36 | PGM_CLASS class; //4 |
||
| 37 | WORD id; //15 |
||
| 38 | } CAN_PGM_PACKET; |
||
| 139 | johboh | 39 | |
| 339 | johboh | 40 | typedef struct _CAN_PACKET |
| 41 | { |
||
| 42 | PACKET_TYPE type; |
||
| 43 | CAN_PGM_PACKET pgm; |
||
| 44 | CAN_BOOT_PACKET boot; |
||
| 45 | BYTE sid; //8 |
||
| 46 | BYTE length; |
||
| 47 | BYTE data[8]; |
||
| 48 | } CAN_PACKET; |
||
| 94 | johboh | 49 | |
| 126 | johboh | 50 | |
| 141 | johboh | 51 | |
| 339 | johboh | 52 | // When CAN_BOOT_PACKET.type==btADDR |
| 53 | // data[2] = ADDRU |
||
| 54 | // data[1] = ADDRH |
||
| 55 | // data[0] = ADDRL |
||
| 94 | johboh | 56 | |
| 339 | johboh | 57 | // When CAN_BOOT_PACKET.type==btCRC |
| 58 | // data[4] = CRCH |
||
| 59 | // data[3] = CRCL |
||
| 60 | // data[2] = ADDRU |
||
| 61 | // data[1] = ADDRH |
||
| 62 | // data[0] = ADDRL |
||
| 94 | johboh | 63 | |
| 339 | johboh | 64 | // When CAN_BOOT_PACKET.type==btCHANGEID |
| 65 | // data[0] = new id |
||
| 99 | johboh | 66 | |
| 339 | johboh | 67 | typedef enum _PGM_CTRL_TYPE {pctBOOTBOOT=0x0,pctAPPBOOT=0x1,pctHEARTBEAT=0x2} PGM_CTRL_TYPE; |
| 68 | // When CAN_PGM_PACKET.type==pcCTRL |
||
| 69 | // When CAN_PGM_PACKET.id==pctBOOTBOOT |
||
| 342 | johboh | 70 | // data[2] = startup reason |
| 71 | // data[1] = Bootloader version high byte. |
||
| 72 | // data[0] = Bootloader version low byte. |
||
| 73 | // When CAN_PGM_PACKET.id==pctAPPBOOT |
||
| 74 | // data[1] = Application version high byte. |
||
| 75 | // data[0] = Application version low byte. |
||
| 99 | johboh | 76 | |
| 339 | johboh | 77 | typedef enum _PGM_SENSOR_TYPE { |
| 78 | pstIR=0x0, |
||
| 79 | pstTEMP_INSIDE=0x1, pstTEMP_OUTSIDE=0x2, pstTEMP_FREEZER=0x3, pstTEMP_REFRIGERATOR=0x4, |
||
| 80 | pstDOOR_FREEZER=0x5, pstDOOR_REFRIGERATOR=0x6, |
||
| 81 | pstBLIND_TR=0x7 |
||
| 82 | } PGM_SENSOR_TYPE; |
||
| 83 | // When CAN_PGM_PACKET.type==pcSENSOR |
||
| 84 | // When CAN_PGM_PACKET.id==pstIR |
||
| 341 | johboh | 85 | // data[3] = type |
| 86 | // data[2] = toogle |
||
| 87 | // data[1] = addr |
||
| 88 | // data[0] = data |
||
| 89 | |||
| 339 | johboh | 90 | // When CAN_PGM_PACKET.id==pstTEMP_* |
| 91 | // data[1] = integer value -127 to 127 |
||
| 92 | // data[0] = decimal value 0-9 |
||
| 341 | johboh | 93 | |
| 339 | johboh | 94 | // When CAN_PGM_PACKET.id==pstBLIND_* |
| 95 | // data[0] = Precent value 0-100 |
||
| 99 | johboh | 96 | |
| 339 | johboh | 97 | typedef enum _PGM_ACTUATOR_TYPE { |
| 98 | patBLIND_TR=0x7 |
||
| 99 | } PGM_ACTUATOR_TYPE; |
||
| 100 | // When CAN_PGM_PACKET.type==pcACTUATOR |
||
| 101 | // When CAN_PGM_PACKET.id==pstBLIND_* |
||
| 102 | // data[0] = Precent value 0-100 |
||
| 111 | johboh | 103 | |
| 104 | |||
| 339 | johboh | 105 | |
| 106 | |||
| 107 | |||
| 108 | |||
| 141 | johboh | 109 |