targets/plc_debug.c
changeset 507 bf6f623d7450
parent 504 688e84df3408
child 511 518c30f2a507
equal deleted inserted replaced
506:24629d4fc805 507:bf6f623d7450
    63             break;
    63             break;
    64 
    64 
    65 #define __BufferDebugDataIterator_case_p(TYPENAME)\
    65 #define __BufferDebugDataIterator_case_p(TYPENAME)\
    66         case TYPENAME##_P_ENUM :\
    66         case TYPENAME##_P_ENUM :\
    67             *flags = ((__IEC_##TYPENAME##_p *)varp)->flags;\
    67             *flags = ((__IEC_##TYPENAME##_p *)varp)->flags;\
    68             if (*flags && __IEC_FORCE_FLAG)\
    68             if (*flags & __IEC_FORCE_FLAG)\
    69                *ptrvalue = &((__IEC_##TYPENAME##_p *)varp)->fvalue;\
    69                *ptrvalue = &((__IEC_##TYPENAME##_p *)varp)->fvalue;\
    70             else\
    70             else\
    71                *ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value;\
    71                *ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value;\
    72             break;
    72             break;
    73 
    73 
    88 {
    88 {
    89     void *ptrvalue = NULL;
    89     void *ptrvalue = NULL;
    90     char flags = 0;
    90     char flags = 0;
    91     UnpackVar(varp, vartype, &ptrvalue, &flags);
    91     UnpackVar(varp, vartype, &ptrvalue, &flags);
    92 
    92 
    93     if(flags && __IEC_RETAIN_FLAG){
    93     if(flags & __IEC_RETAIN_FLAG){
    94         USINT size = __get_type_enum_size(vartype);
    94         USINT size = __get_type_enum_size(vartype);
    95         /* compute next cursor positon*/
    95         /* compute next cursor positon*/
    96         unsigned int next_retain_offset = retain_offset + size;
    96         unsigned int next_retain_offset = retain_offset + size;
    97         /* if buffer not full */
    97         /* if buffer not full */
    98         Remind(retain_offset, size, ptrvalue);
    98         Remind(retain_offset, size, ptrvalue);