# HG changeset patch # User Edouard Tisserant # Date 1568634304 -7200 # Node ID cdf6584953a0e2ba26a554ea8274205d0f115858 # Parent 246ae685ab6585ff1f6f8cd1508ea4db06621491 SVGHMI: WIP for python<->C data exchange : message from browser hit the C side. diff -r 246ae685ab65 -r cdf6584953a0 svghmi/svghmi.c --- a/svghmi/svghmi.c Mon Sep 16 11:44:20 2019 +0200 +++ b/svghmi/svghmi.c Mon Sep 16 13:45:04 2019 +0200 @@ -142,8 +142,8 @@ memcpy(visible_value_p, src_p, __get_type_enum_size(dsc->type)); } -static pthread_cond_t UART_WakeCond = PTHREAD_COND_INITIALIZER; -static pthread_mutex_t UART_WakeCondLock = PTHREAD_MUTEX_INITIALIZER; +static pthread_cond_t svghmi_send_WakeCond = PTHREAD_COND_INITIALIZER; +static pthread_mutex_t svghmi_send_WakeCondLock = PTHREAD_MUTEX_INITIALIZER; static int continue_collect; @@ -158,10 +158,10 @@ void __cleanup_svghmi() { - pthread_mutex_lock(&UART_WakeCondLock); + pthread_mutex_lock(&svghmi_send_WakeCondLock); continue_collect = 0; - pthread_cond_signal(&UART_WakeCond); - pthread_mutex_unlock(&UART_WakeCondLock); + pthread_cond_signal(&svghmi_send_WakeCond); + pthread_mutex_unlock(&svghmi_send_WakeCondLock); } void __retrieve_svghmi() @@ -174,7 +174,7 @@ global_write_dirty = 0; traverse_hmi_tree(write_iterator); if(global_write_dirty) { - pthread_cond_signal(&UART_WakeCond); + pthread_cond_signal(&svghmi_send_WakeCond); } } @@ -182,13 +182,13 @@ int svghmi_send_collect(uint32_t *size, void *ptr){ int do_collect; - pthread_mutex_lock(&UART_WakeCondLock); + pthread_mutex_lock(&svghmi_send_WakeCondLock); do_collect = continue_collect; if(do_collect){ - pthread_cond_wait(&UART_WakeCond, &UART_WakeCondLock); + pthread_cond_wait(&svghmi_send_WakeCond, &svghmi_send_WakeCondLock); do_collect = continue_collect; } - pthread_mutex_unlock(&UART_WakeCondLock); + pthread_mutex_unlock(&svghmi_send_WakeCondLock); if(do_collect) { @@ -203,6 +203,7 @@ } int svghmi_recv_dispatch(uint32_t size, void* ptr){ + printf("%%*s",size,ptr); /* TODO something with ptr and size - subscribe or diff -r 246ae685ab65 -r cdf6584953a0 svghmi/svghmi_server.py --- a/svghmi/svghmi_server.py Mon Sep 16 11:44:20 2019 +0200 +++ b/svghmi/svghmi_server.py Mon Sep 16 13:45:04 2019 +0200 @@ -65,7 +65,9 @@ # - refresh rates / subsriptions # TODO multiclient : pass client index as well - pass + + # + svghmi_recv_dispatch(len(msg), ctypes.c_void_p.from_buffer_copy(msg)) def sendMessage(self, msg): self.sendMessage(msg, True)