Trond Enger / d7a_1x

Fork of d7a_1x by WizziLab

Revision:
30:d775c1409849
Parent:
29:8e7c5c1e9aab
Child:
31:ab9bfdbc6b44
--- a/src/d7a_sys.cpp	Tue May 03 16:53:52 2016 +0000
+++ b/src/d7a_sys.cpp	Wed May 25 08:23:15 2016 +0000
@@ -20,7 +20,7 @@
 void d7a_sys_open( void )
 {
     FPRINT("\r\n");
-    g_sys_ctx.thread = new Thread(d7a_sys_thread, NULL, osPriorityBelowNormal, DEFAULT_STACK_SIZE*2);
+    g_sys_ctx.thread = new Thread(d7a_sys_thread, NULL, osPriorityBelowNormal, DEFAULT_STACK_SIZE);
 }
 
 void d7a_sys_new_pkt(d7a_com_rx_msg_t* pkt)
@@ -39,34 +39,44 @@
 void d7a_sys_tlev(uint8_t mod, uint16_t lev)
 {
     FPRINT("\r\n");
-    d7a_com_tx_msg_t msg;
     uint8_t buf[3];
+    
     buf[0] = mod;
     buf[1] = (uint8_t)(lev << 8);
     buf[2] = (uint8_t)(lev & 0x00FF);
-    msg.id = KAL_COM_FLOW_SYS_TLEV;
-    msg.pbuf = buf;
-    msg.plen = 3;
-    msg.alen = 0;
-    d7a_com_send_msg(&msg);
+    
+    d7a_com_dump(buf, 3, KAL_COM_FLOW_SYS_TLEV);
 }
 
-bool d7a_sys_ping_modem(void)
+bool d7a_sys_ping_modem(uint32_t millisec)
+{
+    FPRINT("\r\n");
+    uint8_t buf[5] = "PING";
+    
+    d7a_com_dump(buf, 4, KAL_COM_FLOW_SYS_PING);
+    
+    osEvent evt = g_sys_ctx.wait_pong.get(millisec);
+    
+    return (evt.status == osEventMessage)? true: false;
+}
+
+void d7a_sys_software_reset(void)
 {
     FPRINT("\r\n");
     d7a_com_tx_msg_t msg;
-    uint8_t buf[5] = "PING";
-    msg.id = KAL_COM_FLOW_SYS_PING;
-    msg.pbuf = buf;
-    msg.plen = 4;
-    msg.alen = 0;
-    d7a_com_send_msg(&msg);
+    uint8_t buf[4] = "RST";
+
+    d7a_com_dump(buf, 3, KAL_COM_FLOW_SYS_RST);
+}
+
+void d7a_sys_button(uint8_t button)
+{
+    FPRINT("\r\n");
+    button += '0';
     
-    osEvent evt = g_sys_ctx.wait_pong.get(100);
-    
-    return (evt.status == osEventMessage)? true: false;
+    d7a_com_dump(&button, 1, KAL_COM_FLOW_SYS_BUTTON);
 }
-    
+
 
 void d7a_sys_thread(const void *p)
 {
@@ -81,21 +91,21 @@
         switch(pkt->id)
         {
             case KAL_COM_FLOW_SYS_RST:
-                DPRINT("KAL_COM_FLOW_SYS_RST\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_RST\r\n");
                 FLUSH();
                 NVIC_SystemReset();
                 break;
             case KAL_COM_FLOW_SYS_BUTTON:
-                DPRINT("KAL_COM_FLOW_SYS_BUTTON\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_BUTTON\r\n");
                 break;
             case KAL_COM_FLOW_SYS_INFO:
-                DPRINT("KAL_COM_FLOW_SYS_INFO\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_INFO\r\n");
                 break;
             case KAL_COM_FLOW_SYS_CUP:
-                DPRINT("KAL_COM_FLOW_SYS_CUP\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_CUP\r\n");
                 break;
             case KAL_COM_FLOW_SYS_PING:
-                DPRINT("KAL_COM_FLOW_SYS_PING\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_PING\r\n");
                 d7a_com_tx_msg_t msg;
                 uint8_t buf[5] = "PONG";
                 msg.id = KAL_COM_FLOW_SYS_PONG;
@@ -105,17 +115,17 @@
                 d7a_com_send_msg(&msg);
                 break;
             case KAL_COM_FLOW_SYS_PONG:
-                DPRINT("KAL_COM_FLOW_SYS_PONG\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_PONG\r\n");
                 g_sys_ctx.wait_pong.put(NULL);
                 break;
             case KAL_COM_FLOW_SYS_CFG:
-                DPRINT("KAL_COM_FLOW_SYS_CFG\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_CFG\r\n");
                 break;
             case KAL_COM_FLOW_SYS_TLEV:
-                DPRINT("KAL_COM_FLOW_SYS_TLEV\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_TLEV\r\n");
                 break;
             case KAL_COM_FLOW_SYS_REDIR:
-                DPRINT("KAL_COM_FLOW_SYS_REDIR\r\n");
+                IPRINT("KAL_COM_FLOW_SYS_REDIR\r\n");
                 break;
             default:
                 EPRINT("SYS Unknown Flow ID 0x%02X\r\n", pkt->id);