Vodafone Test Suite
Dependencies: mbed-rtos mbed HTTPClient VodafoneUSBModem
Tests/Test56.h
- Committer:
- ashleymills
- Date:
- 2012-09-17
- Revision:
- 44:6d0ac4747f5b
- Parent:
- 40:32b0558320ea
- Child:
- 60:7efce4a3c26f
File content as of revision 44:6d0ac4747f5b:
#pragma once #include "VodafoneTestCase.h" //#define __DEBUG__ 1 // this test case will wait to send an SMS from the modem. // if the method that sends a message returns an error it will fail. // it will report the test as failed if any of the above happens. // it does not wait after it has succesfully sent an SMS. extern const char* gTest56Description; class Test56 : public VodafoneTestCase { public: Test56(VodafoneUSBModem *m) : VodafoneTestCase(m) { _description = gTest56Description; _testCaseNumber = 56; } private: virtual bool executeTest() { LinkMonitor::REGISTRATION_STATE regState = LinkMonitor::REGISTRATION_STATE_UNKNOWN; LinkMonitor::BEARER bearer = LinkMonitor::BEARER_UNKNOWN; int rssi = -1000; if(_modem->getLinkState(&rssi, ®State, &bearer)==0) { if(rssi==-1000) { LOG("Checking signal strength - RSSI: Error."); return false;} else { LOG("Signal strength is: RSSI: %d",rssi);} switch(regState) { case LinkMonitor::REGISTRATION_STATE_UNKNOWN: LOG("regState: UNKNOWN. Failing."); return false; case LinkMonitor::REGISTRATION_STATE_REGISTERING: LOG("regState: REGISTERING"); break; case LinkMonitor::REGISTRATION_STATE_DENIED: LOG("regState: DENIED"); return false; case LinkMonitor::REGISTRATION_STATE_NO_SIGNAL: LOG("regState: NO SIGNAL"); return false; case LinkMonitor::REGISTRATION_STATE_HOME_NETWORK: LOG("regState: HOME NETWORK"); break; case LinkMonitor::REGISTRATION_STATE_ROAMING: LOG("regState: ROAMING"); break; default: LOG("regState: ERROR. Failing."); return false; } } LOG("Creating GSM test buffer"); LOG("Test %d sending an SMS message...", _testCaseNumber); LOG("Sending SMS:' %s ' to test phone: %s , waiting for response.", gIrregularMessage, gTestPhoneNumber); // create a buffer and send each character until you can send them all char shortBuffer[30]; // XXX What are you doing here nick? What is the size of gIrregularMessage? It's a pointer!! You're looking for strlen // And gIrregularMessage is longer than shortBuffer so you are goign to kill someone's memory for (int i=0; i < sizeof(gIrregularMessage); i++) { shortBuffer[i] = gIrregularMessage[i]; LOG("Buffer is now: %s", shortBuffer); LOG("Irregular message is %s", gIrregularMessage); int ret = _modem->sendSM(gTestPhoneNumber, shortBuffer); } int ret = _modem->sendSM(gTestPhoneNumber, gIrregularMessage); if (ret) { LOG("Error in sending the SMS message. The return values is: %d", ret); switch(ret){ case(NET_INVALID): LOG("Error message is: 'phone number is invalid size, must be less than 16 digits'.");break; case(NET_PROTOCOL): LOG("Error message is: 'protocol error from the modem'.");break; default: LOG("Undefined error message."); } return false; } LOG("Test %d passed...", _testCaseNumber); return true; } char gsm03dot38CharacterSet[127]; };