void manageAlarm(void) { int ii; char szBuf[1024]; for (ii = 0; ii < TH_LAST; ii++) { if (thermometer[ii].smsSent == 0) { if ((time(NULL) - thermometer[ii].mesure_date) > 60 * 30) { thermometer[ii].smsSent = 1; sprintf(szBuf, " --- HomeControl ---\n%s thermometer looks to be off", thermometer[ii].name); sendSMS(szBuf); } } else { if ((time(NULL) - thermometer[ii].mesure_date) < 60 * 2) { thermometer[ii].smsSent = 0; sprintf(szBuf, " --- HomeControl ---\n%s thermometer is back to normal", thermometer[ii].name); sendSMS(szBuf); } } } }
void SendView::Send() { QString text = ui_sendview_base.SmsTextEdit->toPlainText(); QString address = ui_sendview_base.AddressEdit->text(); if (text!="" && address!="") { emit sendSMS( address, text ); } }
void OnClick0() { uint8_t msg[] = "How are you?"; uint8_t recipient[] = "+31641600986"; uint8_t pdu[160]; sendSMS(recipient, msg); }
MainWidget::MainWidget(QWidget *parent) : QWidget(parent) { m_controller = new ControllerObject; m_gpsWgt = new GPSWidget; m_gsmWgt = new GSMWidget; /////////////////////////////////////////////// QGroupBox* gpsGroupBox = new QGroupBox("GPS"); m_gpsWgt = new GPSWidget; QVBoxLayout* gpsLayout = new QVBoxLayout; gpsLayout->addWidget( m_gpsWgt ); gpsGroupBox->setLayout(gpsLayout); QGroupBox* gsmGroupBox = new QGroupBox("GSM"); m_gsmWgt = new GSMWidget; QVBoxLayout* gsmLayout = new QVBoxLayout; gsmLayout->addWidget( m_gsmWgt ); gsmGroupBox->setLayout(gsmLayout); QHBoxLayout* mainLayout = new QHBoxLayout; mainLayout->addWidget( gpsGroupBox ); mainLayout->addWidget( gsmGroupBox ); setLayout( mainLayout ); ///////////////////////////////////////// connect( m_gsmWgt, SIGNAL(newSMS(QString,QString)), m_controller, SLOT(setMessage(QString,QString))); connect( m_controller, SIGNAL(newSMS(QString,QString)), this, SLOT(sendSMS(QString,QString))); }
int GM862::extractData(char *buf2){ String date; String command; String tempS; int counter = 0; int counter2 = 0; int state = -1; char * temp2; char * temp = strtok(buf2,","); while(temp != NULL){ tempS = temp; switch(counter){ case 2: // phone number // Serial.println("phone number (pre): " + tempS); // Serial.println("length: " + tempS.length()); messagePhoneNumber = getPhone(tempS); // Serial.println("phone number: " + phoneNumber); break; case 4: // year month and day // Serial.println("ymd: " + tempS); // Serial.println("current date: " + year() +"/"+ month() +"/"+ day()); date = tempS; break; case 5: // time // Serial.println("time: " + tempS); // Serial.println("current date: " + hour() +":"+ minute() +":"+ second() + "-24"); temp2 = strtok(temp,"\""); while(temp2 != NULL){ tempS = temp2; tempS = tempS.trim(); // Serial.println("inner temp: " + tempS); switch(counter2){ case 1: command = getCommand(tempS); break; default: // Serial.println("don't care: " + tempS); break; } counter2++; temp2 = strtok(NULL,"\""); } date += tempS; break; default: // Serial.println("don't care: " + tempS); break; } counter++; // Serial.println("temp: " + tempS); // Serial.println("counter: " + counter); temp = strtok(NULL,","); } if(verifyPhoneNumber(messagePhoneNumber)){ state = executeCommand(command); // sendSMS(messagePhoneNumber, returnMessage(state)); // don't want to send till after it has completed now. } else { sendSMS(messagePhoneNumber, "This phone number is not authorized."); } return state; }
int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer // Setup and pin configurations clkSetup(); directionSetup(); timerA0Setup(); boardSetup(); rtcSetup(); initUART(); pinGSM(); // clkDebug(); readDip(); // test V4Stop(); V5Stop(); // Sensor variables int sensorValue = 0; int sensorData[LengthOfSensordata] = {0}; char dataEnable = 0; // != 0 if the vector is filled ones int dataPosition = 0; int overflowCount = 0; char alarm = '0'; // Parameters (From and to the flash) int lowerThresholds = readFlashLowTolerance(); int upperThresholds = readFlashHighTolerance(); int normalLvl = readFlashSensorOffset(); // Default higth over the water lvl // GSM decision variable char execution = '0'; char disableAlarmFlag = '0'; // Disable = 1 // RTC variable time offset1 = 1 min unsigned int rtcOffsetH = 0xFC6C; unsigned int rtcOffsetL = 0x78FF; __enable_interrupt(); while(1) { V5Start(); _no_operation(); char c = '0'; if(loop2Mode == '1' || startMode == '1') { // Power on the GSM regulator V4Start(); // Enable power to GSMJa if(P8IN &= BIT4) { c = checkAT(); if(c =='0') pwrOnOff(); } else { pwrOnOff(); Delay(); c = '0'; } } sensorValue = mainFunctionSensor(sensorData, LengthOfSensordata, &dataPosition, &dataEnable, &overflowCount); if (loop2Mode == '1' || startMode == '1') { // wait for connection and check if SMS unsigned int count = 0; while(!(P8IN &= BIT4) || count < 40000) { count++; __delay_cycles(100); } if(c == '0') c = checkAT(); if(c == '0') { V4Stop(); Delay(); Delay(); V5Start(); V4Start(); if(P8IN &= BIT4) { c = checkAT(); if(c =='0') pwrOnOff(); } else { pwrOnOff(); Delay(); } } initGSM(); execution = readSMS(); if (execution == '0') { // Nothing _no_operation();// test } else if (execution == 'S') { // Status report responseStatus("STATUS i ", (normalLvl-sensorValue)); deleteSMS(); } else if (execution == 'N') { // Confirm Nr change responseNrChange("Nummerlista uppdaterad i "); deleteSMS(); } else if (execution == 'L') { // Confirm changed normal level normalLvl = readFlashSensorOffset(); responseLvlChange("Offset i ", normalLvl); deleteSMS(); } else if (execution == 'T') { // Confirm changed thresholds lowerThresholds = readFlashLowTolerance(); upperThresholds = readFlashHighTolerance(); responseThChange("Toleranser i ", lowerThresholds, upperThresholds); deleteSMS(); } else if (execution == 'E') { // Enable SMS sendSMS("Modulen har blivit aktiverad i "); disableAlarmFlag = '0'; deleteSMS(); } else if (execution == 'D') { // Disable SMS sendSMS("Modulen har blivit inaktiverad i"); disableAlarmFlag = '1'; deleteSMS(); } else if (execution == 'A') { // Disable SMS with when alarm sendSMS("Larmet stoppat"); deleteSMS(); disableAlarmFlag = '1'; // Reseted when the lvl goes back to normal. } else { /* Nothing */ } } // if the GSM mode disable turn off the power if (loop2Mode != '1' && startMode != '1') { V5Stop(); V4Stop(); } if (dataEnable != 0 && overflowCount == 0) { // Process the sensor value alarm = evaluateData(sensorValue, normalLvl, upperThresholds, lowerThresholds, &rtcOffsetH, &rtcOffsetL, &timerAlarmFlag); } else if (overflowCount > 10) { // Alarm overflow (Problem om man minskar RTC och något ligger ivägen!!!!) alarm = 'O'; } else {} if (alarm != '0') { if (loop2Mode != '1' && startMode != '1' && disableAlarmFlag != '1' && timerAlarmFlag == '1') startGSMmodule(); if(loop2Mode == '1' && startMode == '1' && disableAlarmFlag != '1' && timerAlarmFlag == '1') { c = checkAT(); if(c == '0') startGSMmodule(); } if (alarm == '+') { // Alarm for high water lvl if (disableAlarmFlag != '1' && timerAlarmFlag == '1') { sendAlarm("Hog vattenniva i ", (normalLvl-sensorValue)); timerAlarmFlag = '0'; } } else if (alarm == '-') { // Alarm for low water lvl if (disableAlarmFlag != '1' && timerAlarmFlag == '1') { sendAlarm("Lag vattenniva i ", (normalLvl-sensorValue)); timerAlarmFlag = '0'; } } else if (alarm == 'O' && timerAlarmFlag == '1') { // Alarm for overflow sendSMS("Sensor kan vara ur funktion i "); timerAlarmFlag = '0'; } else {} if (loop2Mode != '1' && startMode != '1' && timerAlarmFlag == '1') { V5Stop(); V4Stop(); } } else if (alarm == '0' && timerAlarmFlag == '1') { // return to normal mode disableAlarmFlag = '0'; // RTC for Repeat alarm // Send sms } rtcStart(rtcOffsetH, rtcOffsetL); } }