![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
arm studio build
Diff: src/main.cpp
- 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);