WizziLab's serial protocol library

Dependents:   modem_ref_helper_for_v5_3_217 modem_ref_helper

Revision:
1:ca1c9bfb1cf4
Parent:
0:95b73d0b37b7
Child:
4:a37e42de1ba7
--- a/WizziCom.h	Wed Apr 26 12:29:35 2017 +0000
+++ b/WizziCom.h	Wed May 03 11:30:22 2017 +0000
@@ -129,12 +129,14 @@
     uint8_t buf[1];
 } wizzi_com_tx_buf_t;
 
+uint8_t wizzicom_type_to_flow(uint8_t packet_type);
+uint8_t wizzicom_flow_to_type(uint8_t flow_id);
 
 class WizziCom {
-    typedef void (*WizziComCallback)(WizziCom* com, WizziComPacket_t* packet);
+    typedef void (*WizziComCallback)(WizziCom*, WizziComPacket_t*);
 
 private:
-    uint8_t                         _state;
+    volatile uint8_t                _state;
     wizzi_com_rx_msg_t              _msg;
     uint16_t                        _skipped_bytes;
     uint8_t                         _tx_seq;
@@ -154,7 +156,7 @@
     Queue<wizzi_com_tx_buf_t, 8>    _tx_queue;
     Queue<WizziComPacket_t, 8>      _rx_queue;
     
-    Callback<void(WizziCom*, WizziComPacket_t*)>      _callback[WIZZICOM_PKT_QTY+1];
+    Callback<void(WizziCom*, WizziComPacket_t*)> _callback[WIZZICOM_PKT_QTY+1];
     
     void                            _rx_isr();
     void                            _irq_in_isr();
@@ -163,7 +165,6 @@
     wizzi_com_tx_buf_t*             _new_msg(wizzi_com_tx_msg_t* msg);
     void                            _post_msg(wizzi_com_tx_msg_t* msg);
     void                            _new_pkt(WizziComPacket_t* pkt);
-    uint8_t                         _flow_to_type(uint8_t flow_id);
     void                            _parse_packet_header(void);
     void                            _parse_packet_body(void);
     void                            _thread_rx(void);
@@ -185,6 +186,8 @@
     void reset(void);
     void send(WizziComPacketType type, uint8_t length, uint8_t* data);
     void send(WizziComPacket_t* packet);
+    
+    uint8_t type_to_flow(WizziComPacketType packet_type);
 };
 
 #endif // _D7A_COM_H_
\ No newline at end of file