Subversion Repositories HomeAutomation

Rev

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.