targets/plc_debug.c
changeset 511 518c30f2a507
parent 507 bf6f623d7450
child 521 02cb9e5fb6f6
equal deleted inserted replaced
510:8038c08b9874 511:518c30f2a507
    62             *ptrvalue = &((__IEC_##TYPENAME##_t *)varp)->value;\
    62             *ptrvalue = &((__IEC_##TYPENAME##_t *)varp)->value;\
    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         case TYPENAME##_O_ENUM :\
    67             *flags = ((__IEC_##TYPENAME##_p *)varp)->flags;\
    68             *flags = ((__IEC_##TYPENAME##_p *)varp)->flags;\
    68             if (*flags & __IEC_FORCE_FLAG)\
    69             if (*flags & __IEC_FORCE_FLAG)\
    69                *ptrvalue = &((__IEC_##TYPENAME##_p *)varp)->fvalue;\
    70                *ptrvalue = &((__IEC_##TYPENAME##_p *)varp)->fvalue;\
    70             else\
    71             else\
    71                *ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value;\
    72                *ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value;\
   225 #define __RegisterDebugVariable_case_p(TYPENAME)\
   226 #define __RegisterDebugVariable_case_p(TYPENAME)\
   226         case TYPENAME##_P_ENUM :\
   227         case TYPENAME##_P_ENUM :\
   227             ((__IEC_##TYPENAME##_p *)varp)->flags |= flags;\
   228             ((__IEC_##TYPENAME##_p *)varp)->flags |= flags;\
   228             if(force)\
   229             if(force)\
   229              ((__IEC_##TYPENAME##_p *)varp)->fvalue = *((TYPENAME *)force);\
   230              ((__IEC_##TYPENAME##_p *)varp)->fvalue = *((TYPENAME *)force);\
       
   231             break;\
       
   232         case TYPENAME##_O_ENUM :\
       
   233             ((__IEC_##TYPENAME##_p *)varp)->flags |= flags;\
       
   234             if(force)\
       
   235              ((__IEC_##TYPENAME##_p *)varp)->fvalue = *((TYPENAME *)force);\
       
   236              *(((__IEC_##TYPENAME##_p *)varp)->value) = *((TYPENAME *)force);\
   230             break;
   237             break;
   231 void RegisterDebugVariable(int idx, void* force)
   238 void RegisterDebugVariable(int idx, void* force)
   232 {
   239 {
   233     void *varp = NULL;
   240     void *varp = NULL;
   234     unsigned char flags = force ? __IEC_DEBUG_FLAG | __IEC_FORCE_FLAG : __IEC_DEBUG_FLAG;
   241     unsigned char flags = force ? __IEC_DEBUG_FLAG | __IEC_FORCE_FLAG : __IEC_DEBUG_FLAG;