Vodafone Test Suite

Dependencies:   mbed-rtos mbed HTTPClient VodafoneUSBModem

Committer:
ashleymills
Date:
Thu Aug 23 15:41:20 2012 +0000
Revision:
4:1f8e079924ba
Parent:
3:28336c2e94e4
Child:
8:6c30647f75d7
Child:
9:3ff68422f4d7
Added setup and teardown code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 3:28336c2e94e4 1 #pragma once
ashleymills 4:1f8e079924ba 2 #include "VodafoneTestCase.h"
ashleymills 3:28336c2e94e4 3 class Test50 : public VodafoneTestCase {
ashleymills 3:28336c2e94e4 4 public:
ashleymills 3:28336c2e94e4 5 Test50(VodafoneUSBModem *m) : VodafoneTestCase(m) {
ashleymills 4:1f8e079924ba 6 _smsLen = 32;
ashleymills 4:1f8e079924ba 7 _numberLen = 16;
ashleymills 4:1f8e079924ba 8 }
ashleymills 4:1f8e079924ba 9
ashleymills 4:1f8e079924ba 10 virtual void setupTest() {
ashleymills 4:1f8e079924ba 11 allocStorage();
ashleymills 4:1f8e079924ba 12 }
ashleymills 4:1f8e079924ba 13
ashleymills 4:1f8e079924ba 14 virtual bool endTest(bool state) {
ashleymills 4:1f8e079924ba 15 freeStorage();
ashleymills 4:1f8e079924ba 16 return state;
ashleymills 3:28336c2e94e4 17 }
ashleymills 3:28336c2e94e4 18
ashleymills 3:28336c2e94e4 19 virtual bool runTest() {
ashleymills 4:1f8e079924ba 20 size_t smCount;
ashleymills 4:1f8e079924ba 21 LOG("Getting MSISDN");
ashleymills 4:1f8e079924ba 22 _modem->sendUSSD("*#100#",_ownNumber,_numberLen);
ashleymills 4:1f8e079924ba 23 LOG("Got MSISDN %s",_ownNumber);
ashleymills 4:1f8e079924ba 24 for(int i=0; i<5; i++) {
ashleymills 4:1f8e079924ba 25 LOG("Creating random string");
ashleymills 4:1f8e079924ba 26 createRandomString(_smsOut,_smsLen);
ashleymills 4:1f8e079924ba 27 LOG("Created: %s",_smsOut);
ashleymills 4:1f8e079924ba 28 if(_modem->sendSM(_ownNumber,_smsOut)==0) {
ashleymills 4:1f8e079924ba 29 LOG("Sent short message");
ashleymills 4:1f8e079924ba 30 }
ashleymills 4:1f8e079924ba 31 bool gotMessage = false;
ashleymills 4:1f8e079924ba 32 while(!gotMessage) {
ashleymills 4:1f8e079924ba 33 if(_modem->getSMCount(&smCount)!=0) {
ashleymills 4:1f8e079924ba 34 LOG("Faiure getting SM count");
ashleymills 4:1f8e079924ba 35 return false;
ashleymills 4:1f8e079924ba 36 } else {
ashleymills 4:1f8e079924ba 37 //LOG("Got SMCount (%d)",smCount);
ashleymills 4:1f8e079924ba 38 }
ashleymills 4:1f8e079924ba 39
ashleymills 4:1f8e079924ba 40 if(smCount>0) {
ashleymills 4:1f8e079924ba 41 if(_modem->getSM(_senderNumber,_smsIn,_smsLen)!=0) {
ashleymills 4:1f8e079924ba 42 LOG("Failure getting SM");
ashleymills 4:1f8e079924ba 43 return false;
ashleymills 4:1f8e079924ba 44 }
ashleymills 4:1f8e079924ba 45 LOG("Got SMS: %s",_smsIn);
ashleymills 4:1f8e079924ba 46 gotMessage = true;
ashleymills 4:1f8e079924ba 47 }
ashleymills 4:1f8e079924ba 48 Thread::wait(50);
ashleymills 4:1f8e079924ba 49 }
ashleymills 4:1f8e079924ba 50 }
ashleymills 3:28336c2e94e4 51
ashleymills 4:1f8e079924ba 52 return true;
ashleymills 3:28336c2e94e4 53 }
ashleymills 3:28336c2e94e4 54
ashleymills 4:1f8e079924ba 55 private:
ashleymills 4:1f8e079924ba 56 void createRandomString(char *target, int len) {
ashleymills 4:1f8e079924ba 57 for(int i=0; i<len; i++) {
ashleymills 4:1f8e079924ba 58 target[i] = 65+rand()%32;
ashleymills 4:1f8e079924ba 59 }
ashleymills 4:1f8e079924ba 60 target[len-1] = 0x00;
ashleymills 4:1f8e079924ba 61 }
ashleymills 4:1f8e079924ba 62
ashleymills 4:1f8e079924ba 63 void allocStorage() {
ashleymills 4:1f8e079924ba 64 _ownNumber = (char*)malloc(_numberLen*sizeof(char));
ashleymills 4:1f8e079924ba 65 _senderNumber = (char*)malloc(_numberLen*sizeof(char));
ashleymills 4:1f8e079924ba 66 _smsOut = (char*)malloc(_smsLen*sizeof(char));
ashleymills 4:1f8e079924ba 67 _smsIn = (char*)malloc(_smsLen*sizeof(char));
ashleymills 4:1f8e079924ba 68 }
ashleymills 3:28336c2e94e4 69
ashleymills 4:1f8e079924ba 70 void freeStorage() {
ashleymills 4:1f8e079924ba 71 free(_ownNumber);
ashleymills 4:1f8e079924ba 72 free(_senderNumber);
ashleymills 4:1f8e079924ba 73 free(_smsOut);
ashleymills 4:1f8e079924ba 74 free(_smsIn);
ashleymills 4:1f8e079924ba 75 }
ashleymills 4:1f8e079924ba 76
ashleymills 4:1f8e079924ba 77 char* _ownNumber;
ashleymills 4:1f8e079924ba 78 char* _senderNumber;
ashleymills 4:1f8e079924ba 79 char* _smsOut;
ashleymills 4:1f8e079924ba 80 char* _smsIn;
ashleymills 4:1f8e079924ba 81 int _smsLen;
ashleymills 4:1f8e079924ba 82 int _numberLen;
ashleymills 3:28336c2e94e4 83 };