svghmi/svghmi.c
branchsvghmi
changeset 2862 a108677bd3d0
parent 2829 4c2c50f60730
child 2863 e120d6985a2f
equal deleted inserted replaced
2861:84c16ece8e10 2862:a108677bd3d0
   147         }
   147         }
   148         else
   148         else
   149         {
   149         {
   150             printf("BUG!!! %%d + %%ld + %%d >  %%ld \n", sbufidx, sizeof(uint32_t), sz,  sizeof(sbuf));
   150             printf("BUG!!! %%d + %%ld + %%d >  %%ld \n", sbufidx, sizeof(uint32_t), sz,  sizeof(sbuf));
   151             AtomicCompareExchange(&dsc->wlock, 1, 0);
   151             AtomicCompareExchange(&dsc->wlock, 1, 0);
   152             return EOVERFLOW; 
   152             return EOVERFLOW;
   153         }
   153         }
   154     }
   154     }
   155 
   155 
   156     AtomicCompareExchange(&dsc->wlock, 1, 0);
   156     AtomicCompareExchange(&dsc->wlock, 1, 0);
   157     return 0; 
   157     return 0;
   158 }
   158 }
   159 
   159 
   160 static int read_iterator(uint32_t index, hmi_tree_item_t *dsc)
   160 static int read_iterator(uint32_t index, hmi_tree_item_t *dsc)
   161 {
   161 {
   162     if(AtomicCompareExchange(&dsc->rlock, 0, 1) == 0)
   162     if(AtomicCompareExchange(&dsc->rlock, 0, 1) == 0)
   286         {
   286         {
   287             case setval:
   287             case setval:
   288             {
   288             {
   289                 uint32_t index = *(uint32_t*)(cursor);
   289                 uint32_t index = *(uint32_t*)(cursor);
   290                 uint8_t const *valptr = cursor + sizeof(uint32_t);
   290                 uint8_t const *valptr = cursor + sizeof(uint32_t);
   291                 
   291 
   292                 if(index == heartbeat_index)
   292                 if(index == heartbeat_index)
   293                     was_hearbeat = 1;
   293                     was_hearbeat = 1;
   294 
   294 
   295                 if(index < HMI_ITEM_COUNT)
   295                 if(index < HMI_ITEM_COUNT)
   296                 {
   296                 {
   314                         dsc->rstate = buf_set;
   314                         dsc->rstate = buf_set;
   315 
   315 
   316                         AtomicCompareExchange(&dsc->rlock, 1, 0);
   316                         AtomicCompareExchange(&dsc->rlock, 1, 0);
   317                         progress = sz + sizeof(uint32_t) /* index */;
   317                         progress = sz + sizeof(uint32_t) /* index */;
   318                     }
   318                     }
   319                     else 
   319                     else
   320                     {
   320                     {
   321                         return -EINVAL;
   321                         return -EINVAL;
   322                     }
   322                     }
   323                 }
   323                 }
   324                 else 
   324                 else
   325                 {
   325                 {
   326                     return -EINVAL;
   326                     return -EINVAL;
   327                 }
   327                 }
   328             }
   328             }
   329             break;
   329             break;
   343                 if(index < HMI_ITEM_COUNT)
   343                 if(index < HMI_ITEM_COUNT)
   344                 {
   344                 {
   345                     hmi_tree_item_t *dsc = &hmi_tree_item[index];
   345                     hmi_tree_item_t *dsc = &hmi_tree_item[index];
   346                     update_refresh_period(dsc, refresh_period_ms);
   346                     update_refresh_period(dsc, refresh_period_ms);
   347                 }
   347                 }
   348                 else 
   348                 else
   349                 {
   349                 {
   350                     return -EINVAL;
   350                     return -EINVAL;
   351                 }
   351                 }
   352 
   352 
   353                 progress = sizeof(uint32_t) /* index */ + 
   353                 progress = sizeof(uint32_t) /* index */ +
   354                            sizeof(uint16_t) /* refresh period */;
   354                            sizeof(uint16_t) /* refresh period */;
   355             }
   355             }
   356             break;
   356             break;
   357             default:
   357             default:
   358                 printf("svghmi_recv_dispatch unknown %%d\n",cmd);
   358                 printf("svghmi_recv_dispatch unknown %%d\n",cmd);