Details | Last modification | View Log | SVN | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 365 | johboh | 1 | [IR: repeat count] [IR: addr] [IR: data] [pgm: CLASS] [pgm: IDH] [pgm: HDL] [pgm: DATA1] [pgm: DATA0] |
| 363 | johboh | 2 | |
| 3 | |||
| 365 | johboh | 4 | |
| 5 | struct _IR_COMMAND |
||
| 6 | { |
||
| 7 | BOOL valid; |
||
| 8 | BYTE repeat; |
||
| 9 | BYTE addr; |
||
| 10 | BYTE data; |
||
| 11 | BYTE pgm_class; |
||
| 12 | WORD pgm_id; |
||
| 13 | BYTE pgm_data[2]; |
||
| 14 | } IR_COMMAND; |
||
| 15 | |||
| 16 | |||
| 17 | IR_COMMAND irCommand[128]; |
||
| 18 | |||
| 19 | |||
| 20 | |||
| 363 | johboh | 21 | EE_START |
| 22 | // data[4] = RID |
||
| 23 | // data[3] = 1 = external, 0 = internal eeprom |
||
| 24 | // data[2] = ADDRU |
||
| 25 | // data[1] = ADDRH |
||
| 26 | // data[0] = ADDRL |
||
| 27 | |||
| 28 | |||
| 29 | EE_ACK |
||
| 30 | |||
| 31 | EE_NACK |
||
| 32 | |||
| 33 | EE_CRC |
||
| 34 | // data[4] = CRCH |
||
| 35 | // data[3] = CRCL |
||
| 36 | // data[2] = ADDRU |
||
| 37 | // data[1] = ADDRH |
||
| 38 | // data[0] = ADDRL |
||
| 39 | |||
| 40 | EE_DONE |
||
| 365 | johboh | 41 | // data[2] = number of valid bytes U |
| 42 | // data[1] = number of valid bytes H |
||
| 43 | // data[0] = number of valid bytes L |
||
| 363 | johboh | 44 | |
| 45 | EE_PGM |
||
| 46 | // data[7] = offset |
||
| 47 | // data[6-0] = DATA |
||
| 48 | |||
| 49 | |||
| 50 | H = Hostprogramvara. |
||
| 51 | N = Nod att programmera. |
||
| 52 | |||
| 53 | |||
| 54 | P1: H skickar EE_START, data[4]=N.id, data[3]=0/1, data[2]=ADDRH, data[1]=ADDRL, data[0]=ADDR. |
||
| 55 | H väntar på EE_ACK SID=N.id, RID=H.id. |
||
| 56 | P2: När N mottagit P1 skickar den EE_ACL SID=N.id, RID=H.id. |
||
| 57 | N sätter startaddress till data[2]:[0]; |
||
| 58 | Om H ej mottar P2 innom tid skickas P1 igen. |
||
| 59 | annars |
||
| 60 | P4: H skickar EE_PGM data[6..0], data[7]=addroffset. |
||
| 61 | H skickar åtta (eller hur mycket som finns kvar) sådana här paket, med ökande offset. |
||
| 62 | P5: När åtta paket skickade skickas EE_CRC SID=H.id, RID=N.id, OFFSET=numpacket data[7..0]=CRC |
||
| 63 | H väntar på EE_ACK, SID=N.id, RID=H.id. |
||
| 64 | |||
| 65 | N tar emot varje skickat P4 paket och sparar undan chunk av sju byte. |
||
| 66 | När N får ett P5 paket beräknas crc på OFFSET mottagna paket. |
||
| 67 | P6: om ok, skicka EE_ACK, SID=N.id, RID=H.id. |
||
| 68 | P7: annars skicka EE_NACK, SID=N.id, RID=H.id. |
||
| 69 | |||
| 70 | Om H får P6, forsätt med P4. |
||
| 71 | Om H får P7 eller timeout, skicka om senast åtta P4. |
||
| 72 | |||
| 73 | P8: När H har slut på data, skickas EE_DONE, SID=H.id, RID=N.id. |
||
| 365 | johboh | 74 | H skickar detta paket 10 gånger med 100ms intervall. |