bool Sim900::powerUp() { if(SIM900_DEBUG_OUTPUT) { SIM900_DEBUG_OUTPUT_STREAM->println("Powering up Modem!"); } if(!isPoweredUp()) { //if(_ser != NULL) //{ // _ser->listen(); //} powerToggle(); if(waitFor("Call Ready", true, NULL)) { return true; } else { if(isPoweredUp()) { powerToggle(); } } } return false; }
bool Sim900::powerDown() { if(isPoweredUp()) { powerToggle(); return waitFor("NORMAL POWER DOWN", true, NULL); } return false; }
void loop() { if(!switch_1.getState() && millis()-sw1_last_click_time > BUTTON_DEBOUNCE_INTERVAL) { powerToggle(); while(!switch_1.getState()); //wait until switch release. sw1_last_click_time = millis(); } if(powerFlag) //main body code { if(!switch_2.getState() && millis()-sw2_last_click_time > BUTTON_DEBOUNCE_INTERVAL) { directionToggle(); while(!switch_2.getState()); //wait until switch released. sw2_last_click_time = millis(); } motorEnable.High(); if(soft_start_flag) { uint8_t currentPwmVal = map(analogRead(POT),0,1023,0,255); if(incrementer < currentPwmVal && millis() - softStartInterval > STARTUP_INTERVAL_DELAY) { incrementer+=10; pwmValue = incrementer; softStartInterval = millis(); } else if(incrementer >= currentPwmVal) { soft_start_flag = 0; incrementer = INCREMENTER_INIT_VALUE; } } else { pwmValue = map(analogRead(POT),0,1023,0,255); } if(!directionFlag) clockwise(); else anti_clockwise(); Serial.println(analogRead(SHUNT_RES)); if(analogRead(SHUNT_RES)>=14) { // uint32_t startCheck = millis(); Serial.println("OverCurrent_detected"); /* while(millis() - startCheck < 500 && analogRead(SHUNT_RES) >= 10); if (millis()-startCheck >= 300) { Serial.println("stop"); motorEnable.Low(); delay(1000); } */ delay(400); if(analogRead(SHUNT_RES)>=14) { ledRed.High(); Serial.println("stop"); motorEnable.Low(); delay(2000); soft_start_flag=1; } } else { //soft_start_flag = 1; motorEnable.High(); ledRed.Low(); } } else { //power down all , blue led is controlled in powerToggle(). motorEnable.Low(); ledRed.Low(); ledGreen.Low(); ledYellow.Low(); digitalWrite(MOTOR_PWM_1,LOW); digitalWrite(MOTOR_PWM_2,LOW); } }
void CEC_TV::loop() { if (CECSerial->available()){ switch (CECSerial->read()) { case MESSAGE_REPORT_LOGICAL: _logicalAddress = CECBlockRead(); DbgPrint("got logical addr: %d.\r\n", _logicalAddress); TransmitMsg(CECDEVICE_BROADCAST, 4, CEC_OPCODE_REPORT_PHYSICAL_ADDRESS, 0, 0, 0); break; case MESSAGE_RECIEVED: byte len = CECBlockRead(); if (len < 1) { //error DbgPrint("got bogus len %d.\r\n", len); break; } len--;//remove addr byte address = CECBlockRead();//contains both dst and src! byte* message = (byte*)malloc(len); for (int i = 0; i<len; i++){ message[i] = CECBlockRead(); } OnReceive(address >> 4, address & 0xF, message, len); } } checkStartupTimeout(); decode_results results; if (irrecv.decode(&results)) { //#ifdef DEBUG_IRCODES //Serial.print("received something!\r\n"); //#endif if (results.value == REPEAT){//defined in IRremote.h unsigned long timeNow = millis(); if (_lastRemoteInputTime /*&& timeNow-_lastRemoteInputTime >= 20*/ && timeNow - _lastRemoteInputTime <= 200) { results.value = _lastRemoteInputCode; _lastRemoteInputTime = millis(); //Serial.println("REPEAT"); //Serial.println(results.value, HEX); } //Serial.println(timeNow - _lastRemoteInputTime); } else { if (results.decode_type == RC6) results.value &= ~(1L << 16); //Serial.println(results.value, HEX); _lastRemoteInputTime = millis(); _lastRemoteInputCode = results.value; //Serial.println(results.value, HEX); //Serial.println(_lastRemoteInputCode, HEX); } switch (results.value) { case REMOTE_POWER: check_remote_protocol delay(250); powerToggle(); break; case REMOTE_GUIDE: check_remote_protocol delay(250); sendKoganCode(&irsend, KOGAN_ASPECT); break; case REMOTE_UP: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_UP); break; case REMOTE_DOWN: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_DOWN); break; case REMOTE_LEFT: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_LEFT); break; case REMOTE_RIGHT: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_RIGHT); break; case REMOTE_ENTER: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_SELECT); break; case REMOTE_BACK: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_EXIT); break; case REMOTE_PLAY: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_PLAY); break; case REMOTE_PAUSE: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_PAUSE); break; case REMOTE_SKIP_BACK: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_BACKWARD); break; case REMOTE_SKIP_FORWARD: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_FORWARD); break; case REMOTE_STOP: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_STOP); break; case REMOTE_RECORD: check_remote_protocol //delay(100); sendUC(CEC_USER_CONTROL_CODE_RECORD); break; case REMOTE_VOL_UP: check_remote_protocol //delay(100); SendRemoteCode(CECDEVICE_AUDIOSYSTEM, CEC_USER_CONTROL_CODE_VOLUME_UP); break; case REMOTE_VOL_DOWN: check_remote_protocol //delay(100); SendRemoteCode(CECDEVICE_AUDIOSYSTEM, CEC_USER_CONTROL_CODE_VOLUME_DOWN); break; case REMOTE_1: check_remote_protocol powerOn(); RequestPath(0x1100); RequestAudio(0x1100); break; case REMOTE_2: check_remote_protocol powerOn(); RequestPath(0x1200); RequestAudio(0x1200); break; case REMOTE_3: check_remote_protocol powerOn(); RequestPath(0x1300); RequestAudio(0x1300); break; case REMOTE_4: check_remote_protocol powerOn(); RequestPath(0x1400); RequestAudio(0x1400); //DbgPrint("Done requesting\n"); break; #ifdef DEBUG_IRCODES default: debugIRCode(&results); #endif } irrecv.resume(); // resume receiver //DbgPrint("resumed\n"); } }