equal
deleted
inserted
replaced
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); |