targets/LPC/plc_LPC_main.c
changeset 580 9dd978e6537c
parent 579 554ba6df4ee0
equal deleted inserted replaced
579:554ba6df4ee0 580:9dd978e6537c
    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)