equal
deleted
inserted
replaced
46 |
46 |
47 int startPLC(int argc,char **argv) |
47 int startPLC(int argc,char **argv) |
48 { |
48 { |
49 if(__init(argc,argv) == 0){ |
49 if(__init(argc,argv) == 0){ |
50 /* sign retain buffer */ |
50 /* sign retain buffer */ |
51 memcpy(RetainedIdBuf, idBuf, idLen); |
|
52 PLC_SetTimer(0, common_ticktime__); |
51 PLC_SetTimer(0, common_ticktime__); |
53 return 0; |
52 return 0; |
54 }else{ |
53 }else{ |
55 return 1; |
54 return 1; |
56 } |
55 } |
110 /* Let PLC enter debug code */ |
109 /* Let PLC enter debug code */ |
111 __DEBUG = 1; |
110 __DEBUG = 1; |
112 debug_locked = 0; |
111 debug_locked = 0; |
113 } |
112 } |
114 |
113 |
|
114 void ValidateRetainBuffer(void) |
|
115 { |
|
116 memcpy(RetainedIdBuf, idBuf, idLen); |
|
117 } |
|
118 |
|
119 void InValidateRetainBuffer(void) |
|
120 { |
|
121 /* invalidate that buffer */ |
|
122 RetainedIdBuf[0] = 0; |
|
123 } |
|
124 |
115 int CheckRetainBuffer(void) |
125 int CheckRetainBuffer(void) |
116 { |
126 { |
117 /* compare RETAIN ID buffer with MD5 */ |
127 /* compare RETAIN ID buffer with MD5 */ |
118 /* return true if identical */ |
128 /* return true if identical */ |
119 int res = memcmp(RetainedIdBuf, idBuf, idLen) == 0; |
129 int res = memcmp(RetainedIdBuf, idBuf, idLen) == 0; |
120 /* invalidate that buffer, might help when value cause PLC crash before next publish */ |
|
121 RetainedIdBuf[0] = 0; |
|
122 return res; |
130 return res; |
123 |
|
124 } |
131 } |
125 |
132 |
126 void Retain(unsigned int offset, unsigned int count, void *p) |
133 void Retain(unsigned int offset, unsigned int count, void *p) |
127 { |
134 { |
128 if(offset + count < RETAIN_BUFFER_SIZE) |
135 if(offset + count < RETAIN_BUFFER_SIZE) |