APP 4

Dependencies:   mbed CRC16 mbed-rtos

Revision:
21:137d010e7469
Parent:
20:f0932bfe09ed
--- a/MEF.cpp	Tue Feb 23 00:22:49 2016 +0000
+++ b/MEF.cpp	Tue Feb 23 00:28:40 2016 +0000
@@ -16,122 +16,121 @@
     switch (state)
     {
         case PREAMBLE : 
+            {
+                m_InputBuffer[m_Counter] = bit;
+                m_Counter++;
+                if(m_Counter == 8 )
                 {
-                    m_InputBuffer[m_Counter] = bit;
-                    m_Counter++;
-                    if(m_Counter == 8 )
-                    {
-                        if(preambleChecker())
-                        {
-                            state = START;
-                        }
-                        m_Counter = 0;
-                    }
-
-                }break;
-        case START :
-                {
-                    m_InputBuffer[m_Counter] = bit;
-                    m_Counter++;
-                    if(m_Counter == 8)
+                    if(preambleChecker())
                     {
-                        if(startChecker())
-                        {
-                            state = TYPE;
-                            m_Counter = 0;
-                        }
-                        else
-                        {
-                            //Bluboom
-                            _decodeError();
-                            state = PREAMBLE;
-                            init();                            
-                        }
-                    }                    
-                }break;
-        case TYPE :
+                        state = START;
+                    }
+                    m_Counter = 0;
+                }
+
+            } break;
+        case START :
+            {
+                m_InputBuffer[m_Counter] = bit;
+                m_Counter++;
+                if(m_Counter == 8)
                 {
-                    m_Counter ++;
-                    if(m_Counter == 8)
+                    if(startChecker())
                     {
-                        state = LENGTH;
-                        m_Counter = 0;
-                    }
-                    
-                }break;
-        case LENGTH :
-                {
-                    m_InputBuffer[m_Counter] = bit;
-                    m_Counter++;
-                    if(m_Counter == 8)
-                    {
-                        state = DATA;
-                        m_DataSize = calculateSize();
+                        state = TYPE;
                         m_Counter = 0;
                     }
-                    
-                }break;
-        case DATA :
-                {
-                    m_BSPayload[m_Counter] = bit;
-                    if (((m_Counter + 1) % 8) == 0 && m_Counter != 0)
-                    {
-                        m_CPayload[(m_Counter + 1)/ 8 - 1] = (m_BSPayload[m_Counter] << 0) | (m_BSPayload[m_Counter - 1] << 1) | (m_BSPayload[m_Counter - 2] << 2) | (m_BSPayload[m_Counter - 3] << 3) | (m_BSPayload[m_Counter - 4] << 4) | (m_BSPayload[m_Counter - 5] << 5) | (m_BSPayload[m_Counter - 6] << 6) | (m_BSPayload[m_Counter - 7] << 7);
-                    }
-                    m_Counter++;
-                    if(m_Counter == m_DataSize*8)
-                    {
-                        state = CRC16STATE;
-                        m_CRC = CRC16::calculateCRC16(m_CPayload, m_DataSize);
-                        m_Counter = 0;
-                    }
-                }break;
-        case CRC16STATE :
-                {
-                    m_InputBuffer[m_Counter] = bit;
-                    m_Counter++;
-                    if(m_Counter == 16)
+                    else
                     {
-                        if(!compareCRC())
-                        {
-                            //BOOMBOOM
-                            _decodeError();
-                            state = PREAMBLE;
-                            init();    
-                        }
-                        else
-                        {
-                           state = END;                               
-                        }
-                        m_Counter = 0;
+                        //Bluboom
+                        _decodeError();
+                        state = PREAMBLE;
+                        init();                            
                     }
-                    
-                }break;
-        case END :
+                }                    
+            } break;
+        case TYPE :
+            {
+                m_Counter ++;
+                if(m_Counter == 8)
+                {
+                    state = LENGTH;
+                    m_Counter = 0;
+                }
+                
+            } break;
+        case LENGTH :
+            {
+                m_InputBuffer[m_Counter] = bit;
+                m_Counter++;
+                if(m_Counter == 8)
+                {
+                    state = DATA;
+                    m_DataSize = calculateSize();
+                    m_Counter = 0;
+                }
+                
+            } break;
+        case DATA :
+            {
+                m_BSPayload[m_Counter] = bit;
+                if (((m_Counter + 1) % 8) == 0 && m_Counter != 0)
+                {
+                    m_CPayload[(m_Counter + 1)/ 8 - 1] = (m_BSPayload[m_Counter] << 0) | (m_BSPayload[m_Counter - 1] << 1) | (m_BSPayload[m_Counter - 2] << 2) | (m_BSPayload[m_Counter - 3] << 3) | (m_BSPayload[m_Counter - 4] << 4) | (m_BSPayload[m_Counter - 5] << 5) | (m_BSPayload[m_Counter - 6] << 6) | (m_BSPayload[m_Counter - 7] << 7);
+                }
+                m_Counter++;
+                if(m_Counter == m_DataSize*8)
                 {
-                    m_InputBuffer[m_Counter] = bit;
-                    m_Counter++;
-                    if(m_Counter == 8)
+                    state = CRC16STATE;
+                    m_CRC = CRC16::calculateCRC16(m_CPayload, m_DataSize);
+                    m_Counter = 0;
+                }
+            } break;
+        case CRC16STATE :
+            {
+                m_InputBuffer[m_Counter] = bit;
+                m_Counter++;
+                if(m_Counter == 16)
+                {
+                    if(!compareCRC())
+                    {
+                        //BOOMBOOM
+                        _decodeError();
+                        state = PREAMBLE;
+                        init();    
+                    }
+                    else
                     {
-                        if(startChecker())
-                        {
-                            state = PREAMBLE;
-                            m_Counter = 0;
-                            //CALLBACK
-                            _decodeCallback(m_BSPayload, m_DataSize);   
-                        }
-                        else
-                        {
-                            //BOOMBOOM
-                            _decodeError();
-                            state = PREAMBLE;
-                            init();
-                        }
+                       state = END;                               
                     }
+                    m_Counter = 0;
+                }
+                
+            } break;
+        case END :
+            {
+                m_InputBuffer[m_Counter] = bit;
+                m_Counter++;
+                if(m_Counter == 8)
+                {
+                    if(startChecker())
+                    {
+                        state = PREAMBLE;
+                        m_Counter = 0;
+                        //CALLBACK
+                        _decodeCallback(m_BSPayload, m_DataSize);   
+                    }
+                    else
+                    {
+                        //BOOMBOOM
+                        _decodeError();
+                        state = PREAMBLE;
+                        init();
+                    }
+                }
 
-                }break;           
+            } break;
     }
-    _updateState(state);
 }
 
 bool MEF::preambleChecker()
@@ -188,8 +187,3 @@
 
     return m_CRC == incommingCRC;
 }
-
-void MEF::error()
-{
-    
-}
\ No newline at end of file