arm studio build

Dependencies:   libxDot-mbed5

Revision:
9:cc23b2049639
Parent:
8:a5316708e51d
Child:
10:061fab1195e7
--- a/src/main.cpp	Sat Aug 11 17:34:42 2018 +0000
+++ b/src/main.cpp	Mon Aug 13 15:58:00 2018 +0000
@@ -57,12 +57,12 @@
 
 bool adr = false;    //set adaptive data rate
 //------------------------------------------------------------------------------------------------------
-//wait_after_sleep_usec
+//wait_after_sleep_usec  ---------------- NO !!!!!!!!!!!!!!!
 // -when xdot terminal display is disabled we need to add a delay between exiting sleep and polling for
 //  incoming i2c data from proc
 //  values of    300-5000 usec works
 // - not sure why this is needed, it may take additional time for the uP to power up i2c io?
-int16_t wait_after_sleep_usec =1000;   
+int16_t wait_after_sleep_usec =2500;   
 //------------------------------------------------------------------------------------------------------
 
 
@@ -226,9 +226,9 @@
 
     if (pNvmData->bLogOutputOn == 0){
         pc.printf("\r\nDISABLING TERMINAL OUTPUT\r\n");
-        dot->setLogLevel(mts::MTSLog::NONE_LEVEL);         //doesn't work
+        //dot->setLogLevel(mts::MTSLog::NONE_LEVEL);         //doesn't work
         //dot->setLogLevel((true) ? mts::MTSLog::WARNING_LEVEL : mts::MTSLog::WARNING_LEVEL); //!!!!!!!!!!!! deosn't work
-        //dot->setLogLevel((true) ? mts::MTSLog::INFO_LEVEL : mts::MTSLog::INFO_LEVEL); //!!!!!!!!!!!! this works
+        dot->setLogLevel((true) ? mts::MTSLog::INFO_LEVEL : mts::MTSLog::INFO_LEVEL); //!!!!!!!!!!!! this works
         //dot->setLogLevel((true) ? mts::MTSLog::TRACE_LEVEL : mts::MTSLog::TRACE_LEVEL); //!!!!!!!!!!!! this works
         verbose = false;
     }             
@@ -274,7 +274,7 @@
    
    i2c_proc_init();  //init i2c comm  
    sleep_wake_interrupt_only(deep_sleep); //wake on rising edge of wake signal from proc
-   wait_us(wait_after_sleep_usec);
+  // wait_us(wait_after_sleep_usec);
 //scope test    
 //    gpio1 =1;
 //==============================================================================
@@ -297,7 +297,7 @@
                 bPulseLoraWake = false;                
 //                gpio1 =0;
                 sleep_wake_interrupt_only(deep_sleep);   ////sleep until rising edge of wake signal from proc
-                wait_us(wait_after_sleep_usec); 
+               // wait_us(wait_after_sleep_usec); 
 //                gpio1 =1;
                 if(verbose)pc.printf("\n\r lora wake detected -> monitoring i2c bus\n\r ");                                                                 
                 break;                            
@@ -376,11 +376,6 @@
                                 pAck->rssi = (int8_t)rssiStats.last;  
                                 mDot::snr_stats snrStats = dot->getSnrStats();        //snr stat                                                                       
                                 pAck->snr = (int8_t)snrStats.last;  
-                                
-//test
-                                pAck->rsvd[0] = 0x55;
-                                pAck->rsvd[1] = 0xAA;           
-                                
                                 if (verbose)printf("\n\rdata->send()=true; ack:%d, rssi:%d snr:%d\r\n",pAck->bAck,pAck->rssi,pAck->snr);                                                                     
                                 if (events.is_packet_received()){    //downstream data from the Rx1/Rx2 pkt?                                     
                                     if (verbose)printf("\n\revents.is_packet_received = true\r\n");                                       
@@ -476,11 +471,23 @@
                         for (i=0; i< 4;i++) peui->apiLvlData[i] =  api_level[i];
                         for (i=0; i< 4;i++) peui->verLvlData[i] =  ver_level[i];
                         peui->dataLen = sizeof(pkt_eui)-3;  //size of struc minus first 3 bytes                                      
-                        if(verbose)pc.printf("\n\r eui data length: %d",peui->dataLen);                          
-                        //if(verbose)pc.printf("\n\r eui waiting min len: %d",I2C_MIN_WAIT_DELAY);  
-                        //wait_ms(I2C_MIN_WAIT_DELAY);  //TEST
-                                                                                                                    
+                        if(verbose)pc.printf("\n\r eui data length: %d",peui->dataLen);                                                                                                                                              
                         break;    
+                    case XDOT_CMD_NVM:
+                        if(verbose)pc.printf("\n\r proc cmd: NVM");                                                
+                        pkt_setnvmup  *pUpNvm = (pkt_setnvmup*)&buf_rcv[0];                
+                        pkt_setnvmdwn *pDwnNvm= (pkt_setnvmdwn*)&buf_xmt[0];                                                 
+                        pDwnNvm->ack = I2C_ACK_PROC;
+                        pDwnNvm->cmd = XDOT_CMD_NVM;
+                        pDwnNvm->dataLen = sizeof(nvm)-2;
+                        if (pUpNvm->nvm_option == XDOT_NVM_SET)     nvmWrite(&pUpNvm->nvmData);
+                        if (pUpNvm->nvm_option == XDOT_NVM_RESTORE) nvmRestore(&pUpNvm->nvmData);
+                            
+                        pDwnNvm->bChkSumOK = 0;        
+                        if (nvmRead(&pDwnNvm->nvmData))
+                            pDwnNvm->bChkSumOK = 1;    
+                        printNmvData(&pDwnNvm->nvmData);    
+                        break;                            
                     case XDOT_CMD_SET_NTWKSESS:  //read or write network seesion to xdot flash
                         bool bWriteSession = (bool)buf_rcv[1];
                         if (bWriteSession){
@@ -495,19 +502,7 @@
                         pktwrk->ack = I2C_ACK_PROC;
                         pktwrk->cmd = XDOT_CMD_SET_NTWKSESS;
                         pktwrk->bSetNetwrk = (uint8_t)bWriteSession;                        
-                        break;    
-                    case XDOT_CMD_SET_NVM:
-                        pkt_setnvmdwn *pDwnNvm= (pkt_setnvmdwn*)&buf_xmt[0];                                 
-                        pkt_setnvmup  *pUpNvm = (pkt_setnvmup*)&buf_rcv[0];                                
-                        pDwnNvm->ack = I2C_ACK_PROC;
-                        pDwnNvm->cmd = XDOT_CMD_SET_NVM;
-                        if (pUpNvm->bWriteNvm)
-                            nvmWrite(&pUpNvm->nvmData);
-                        pDwnNvm->bChkSumOK = 0;        
-                        if (nvmRead(&pDwnNvm->nvmData))
-                            pDwnNvm->bChkSumOK = 1;    
-                        printNmvData(&pDwnNvm->nvmData);    
-                        break;    
+                        break;                        
                     case XDOT_CMD_SET_KEY_X:
                         if(verbose)pc.printf("\n\r proc cmd: this command not used\r\n");                                  
                         wait_ms(I2C_MIN_WAIT_DELAY);