SMS message display on LED Matrix board with printer option
Dependencies: AdafruitThermalPrinter HT1632_LedMatrix VodafoneUSBModem mbed-rtos mbed
Revision 1:243371cb92c8, committed 2013-01-30
- Comitter:
- SomeRandomBloke
- Date:
- Wed Jan 30 16:58:33 2013 +0000
- Parent:
- 0:9d29b886d41b
- Child:
- 2:787cbb491f8f
- Commit message:
- library updates and attempt to acquire own number
Changed in this revision
--- a/main.cpp Fri Jan 18 08:41:20 2013 +0000
+++ b/main.cpp Wed Jan 30 16:58:33 2013 +0000
@@ -54,14 +54,14 @@
#endif
#ifdef USE_PRINTER
#include "AdafruitThermal.h"
-//#include "test.h"
#endif
#define DEBUG 1
#ifdef USE_LED
// Cound try to get own number usine USSD request
-#define INFO_MSG " Send a message to 07765946942 "
+#define INFO_MSG " Send a message to "
+//#define INFO_MSG " Send a message to 07765946942 "
#endif
// Vodafone USSD commands
@@ -71,8 +71,6 @@
#ifdef DEBUG
-//Serial pc(USBTX, USBRX); // tx, rx
-//Serial debug_pc(p13,p14); // tx, rx
Serial debug_pc(USBTX, USBRX); // tx, rx
#endif
@@ -101,6 +99,8 @@
static char msgBuf[MAX_MSG_LENGTH];
#ifdef USE_LED
+static char ownNumber[20];
+
int crtPos = 0;
int msgx = 1; // position on message screen of current character, set to 1 to allow for first scroll
bool resetMessage = false;
@@ -222,6 +222,62 @@
}
}
+#ifdef USE_LED
+void getOwnNumber(VodafoneUSBModem *_modem, char *numPtr )
+{
+ char numBuf[10];
+ // Set RTC using received message, format is DD-MMM-YYYY HH:MM
+ // Month is in text name, e.g. NOV, time is using 24 hour clock.
+ struct tm t;
+ int retryCount = 3;
+
+ while( retryCount ) {
+ sendUSSDCommand( _modem, USSD_COMMAND_OWN_NUMBER, false );
+
+#ifdef DEBUG
+ debug_pc.printf("Own Number received %s\n", newMsgBuf);
+#endif
+
+ // Save number in array pointed to be numPtr
+
+ // Terminator
+ *numPtr = '\0';
+
+/*
+
+
+ t.tm_sec = 0; // 0-59
+ strncpy(numBuf, &newMsgBuf[15], 2 );
+ t.tm_min = atoi(numBuf); // 0-59
+ strncpy(numBuf, &newMsgBuf[12], 2 );
+ t.tm_hour = atoi(numBuf); // 0-23
+ strncpy(numBuf, &newMsgBuf[0], 2 );
+ t.tm_mday = atoi(numBuf); // 1-31
+ strncpy(numBuf, &newMsgBuf[3], 3 );
+ t.tm_mon = 0; // 0-11
+ for( int i=0; i<12; i++ ) {
+ if( strncmp( months[i], numBuf, 3 ) == 0 ) {
+ t.tm_mon = i; // 0-11
+ break;
+ }
+ }
+ strncpy(numBuf, &newMsgBuf[9], 2 );
+ t.tm_year = 100 + atoi( numBuf ); // year since 1900
+
+ if( t.tm_year >110 ) {
+ // convert to timestamp and display
+ time_t seconds = mktime(&t);
+ set_time( seconds );
+ retryCount = 0; // No more retries, terminate while
+ } else {
+ // Failed to set time, decrement tries
+ retryCount--;
+ }
+*/
+ }
+}
+#endif
+
void receiveSMS(void const*)
{
@@ -242,6 +298,11 @@
// debug_pc.printf("Link state Rssi: %d, Registration state %x Bearer %x\n",pRssi,pRegistrationState, pBearer);
#endif
+#ifdef USE_LED
+ // Get own number fromt he network
+ getOwnNumber( &modem, ownNumber );
+#endif
+
// sprintf(msgBuf, "Link state Rssi: %d, Registration state %x Bearer %x ",pRssi,pRegistrationState, pBearer);
#ifdef USE_PRINTER
// Check if time already set, if not then get it. Use year = 0 as test
@@ -255,7 +316,8 @@
#endif
#ifdef USE_LED
//strcpy( msgBuf, INFO_MSG );
- setNewMessage( INFO_MSG );
+ sprintf(newMsgBuf, "%s %s ", INFO_MSG, ownNumber );
+ setNewMessage( newMsgBuf );
led.displayOn();
#endif
@@ -291,11 +353,14 @@
#ifdef USE_LED
resetMessage = true;
} else if ( strncmp( cmdBuf, "INFO", 4 ) == 0 ) {
- setNewMessage( INFO_MSG );
+// setNewMessage( INFO_MSG );
+ sprintf(newMsgBuf, "%s %s ", INFO_MSG, ownNumber );
+ setNewMessage( newMsgBuf );
#endif
// } else if ( strncmp( cmdBuf, "DEMO", 4 ) == 0 ) {
-// matrixDemo();
-// setNewMessage( INFO_MSG );
+// matrixDemo();
+// sprintf(newMsgBuf, "%s %s ", INFO_MSG, ownNumber );
+// setNewMessage( newMsgBuf );
#ifdef USE_LED
} else if ( strncmp( cmdBuf, "CLEAR", 5 ) == 0 ) {
setNewMessage( " " );
--- a/mbed-rtos.lib Fri Jan 18 08:41:20 2013 +0000 +++ b/mbed-rtos.lib Wed Jan 30 16:58:33 2013 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-rtos/#88a1a9c26ae3 +http://mbed.org/users/mbed_official/code/mbed-rtos/#53e6cccd8782
--- a/mbed.bld Fri Jan 18 08:41:20 2013 +0000 +++ b/mbed.bld Wed Jan 30 16:58:33 2013 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/3753e96f3c8b \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/0954ebd79f59 \ No newline at end of file