Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: C027_Support mbed-dev
Fork of C027_SupportTest_coapp by
Diff: main.cpp
- Revision:
- 39:4f3f7463e55f
- Parent:
- 37:43d48521d4d7
- Child:
- 40:da5f84f19a24
--- a/main.cpp Wed May 24 07:51:33 2017 +0000
+++ b/main.cpp Thu May 25 11:53:45 2017 +0000
@@ -7,10 +7,11 @@
#include "GPS.h"
#include "MDM.h"
#include "main.h"
-
+#include "coap_msg.h"
+#include "coap_client.h"
+
extern "C" {
- #include "coap_msg.h"
- #include "coap_client.h"
+
#include "rtc_api.h"
}
//
@@ -31,7 +32,7 @@
unsigned long ulGSMRxCntr=0, ulGSMTxCntr=0 ; //-- Asset
unsigned long ulTotalRxCntr=0,ulTotalTxCntr=0; //-- Asset
char caLssFinalAssetMsg[150];
-double dLatitude=0,dLongitude=0;
+double dLatitude=31.47691,dLongitude=74.34259;
static unsigned int uiWakeupCounter=0,uiWatchdogCounter=0;
unsigned char ucBtteryLevel=0;
MDMParser::DevStatus devStatus={};
@@ -43,6 +44,9 @@
//unsigned int uiAlarmIntervalCounter = 0;
//unsigned int uiHeartBeatCounter = 0;
+
+char ucReturnCode[10]; //Return code array
+int alarmtime = 1495698480;//2017-3-29-11:56:7
//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
/*
@@ -50,7 +54,7 @@
{
LPC_SC->PCONP |=1<1; //timer0 power on
LPC_TIM0->MR0 = sec * 23980000; //1sec * sec
- LPC_TIM0->MCR = 3; //interrupt and reset control
+ LPC_TIM0->MCR = 1; //interrupt and reset control
//3 = Interrupt & reset timer0 on match
//1 = Interrupt only, no reset of timer0
NVIC_EnableIRQ(TIMER0_IRQn); //enable timer0 interrupt
@@ -63,33 +67,34 @@
if((LPC_TIM0->IR & 0x01) == 0x01) // if MR0 interrupt, proceed
{
LPC_TIM0->IR |= 1 << 0; // Clear MR0 interrupt flag
-
- uiAlarmIntervalCounter++;
- if(uiAlarmIntervalCounter >= 10)//20 sec
- {
- bAlarmIntervalFlag = true;
- uiAlarmIntervalCounter = 0;
- printf("Alarm Packet time...\r\n");
- }
-
- uiHeartBeatCounter++;
- if(uiHeartBeatCounter >= 60)//2 min
- {
- bHeartBeatFlag = true;
- uiHeartBeatCounter = 0;
- printf("Heartbeat Packet time...\r\n");
- }
+ printf("Timer 0 interrupt generated 10 sec\r\n");
+ LPC_TIM0->TCR = 0;
}
}
*/
//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
-void rtc_setup(void)
+void rtc_setup(time_t t, unsigned int sec)
{
+ struct tm *timeinfo = localtime(&t);
+ unsigned int min;
+
rtc_init();
- rtc_write(1490788567);//2017-3-29-11:56:7
+ rtc_write(alarmtime);//2017-3-29-11:56:7
+
+ //min = sec/60;
+ //sec = sec%60;
+ //set alarm time
+ LPC_RTC->ALSEC = timeinfo->tm_sec+sec;//10 sec
+ //LPC_RTC->ALMIN = timeinfo->tm_min+min;//10 sec
+
+ LPC_RTC->AMR &= (~(1 << 0)) & 0xFF;
+
+ LPC_RTC->ILR = (1 << 0) | (1 << 1);
+
+ printf("RTC Alarm Time Set\r\n");
NVIC_EnableIRQ(RTC_IRQn);
@@ -130,7 +135,7 @@
MDMSerial mdm;
gmdm = &mdm;
us_ticker_init();
- //timer0_init(2);
+
while(1)
{
@@ -142,10 +147,8 @@
if(bSendingDataFlag)//&& bAlarmIntervalFlag)
{
//bAlarmIntervalFlag = false;
- unsigned int counter = 50;
- while( (ret = gps.getMessage(buf, sizeof(buf))) > 0 || counter > 0)
+ while( (ret = gps.getMessage(buf, sizeof(buf))) > 0)
{
- counter--;
int len = LENGTH(ret);
ulGPSRxCntr = len;
if( (PROTOCOL(ret)==GPSParser::NMEA) && (len > 6) )
@@ -200,13 +203,13 @@
sprintf( caLssFinalAssetMsg, "$AQLSS,02,%s,%s*xx",devStatus.imei,devStatus.imsi);
printf( "HeartBeat: %s\r\n", caLssFinalAssetMsg );
}
-
+
ssocket = mdm.socketSocket(MDMParser::IPPROTO_UDP, pport);
if( ssocket >= 0 )
{
mdm.socketSetBlocking(ssocket, 10);
ipp = 0x97092263;//0x052753CE;
- if (PASS == test_exchange_func(caLssFinalAssetMsg,strlen(caLssFinalAssetMsg)))
+ if (PASS == test_exchange_func(caLssFinalAssetMsg,strlen(caLssFinalAssetMsg),ucReturnCode))
{
printf("\r\n-----------------<pass>-----------------\n");
}
@@ -215,22 +218,26 @@
mdm.socketFree(ssocket);
responce_checker();
- }
+ }
mdm.disconnect();
- mdm.powerOff();
+ /*mdm.powerOff();*/
+
if(bSleepModeFlag)
{
- rtc_setup();
- hal_deepsleep();
- //sleep_mode();
- //uiWakeupCounter++;
+ rtc_setup(alarmtime,10);
+ printf("Enter Sleep Mode\r\n");
+ hal_sleep();
+ printf("Exit Sleep Mode\r\n");
+ myled = !myled;
+ uiWakeupCounter++;
}
- if(bSendingDataFlag)
+
+ /*if(bSendingDataFlag)
wait( 10 );
else
wait( 60 );
- myled = !myled;
+ myled = !myled;*/
}
//}
}
@@ -295,17 +302,9 @@
printf("Ussd Got Answer: \"%s\"\r\n", buffer);
}
*/
-void sleep_mode(void)
-{
- /* Deep-Sleep Mode, set SLEEPDEEP bit */
- //SCB->SCR |= 0x4;
- LPC_SC->PCON = 0x9;
- __WFI();
- //SystemInit();
-}
void responce_checker(void)
-{/*
+{
if(!strcmp((const char*)ucReturnCode,"RC 000"))
{
printf("Acknowledged RC 000\r\n");
@@ -350,5 +349,5 @@
else if(!strcmp((const char*)ucReturnCode,"EC 002"))
{
printf("Error Code 002 Received Payload is corrupted\r\n");
- }*/
+ }
}
