/* sequences.ino This file contains the sequences for handling the power up / down reset logic as well as reading the status LEDs from front-panel headers */ /* Programmable Buttons Functions Edit the customButtonOnPress and customButtonOnRelease function to fit your needs. Leave it as default for acting like a power button. */ void customButtonOnPress(){ digitalWrite(PWR_BTN, HIGH); digitalWrite(BTN_LED, LOW); } void customButtonOnRelease(){ digitalWrite(PWR_BTN, LOW); digitalWrite(BTN_LED, HIGH); } //Handle call to press / release function events void handleCustomButtonEvents(){ //Note: The button pin is pulled low when button is pressed int btnPinState = digitalRead(BTN_INPUT); if (btnPinState == HIGH && customBtnPressed == true){ //The button has just been released. Call to the onRelease event customBtnPressed = false; customButtonOnRelease(); }else if (btnPinState == LOW && customBtnPressed == false){ //The button has just been pressed. Call to the onPress event customBtnPressed = true; customButtonOnPress(); } } //Read the current front panel LED state and store to global variables void updateFrontPanelLEDStatus() { val = digitalRead(HDD_LED); hddLedState = (val == LOW); //Active low val = digitalRead(PWR_LED); pwrLedState = (val == LOW); //Active low } //Emulate power button press void pressPowerButton() { digitalWrite(PWR_BTN, HIGH); delay(1000); digitalWrite(PWR_BTN, LOW); } //Emulate reset button perss void pressResetButton() { digitalWrite(RST_BTN, HIGH); delay(1000); digitalWrite(RST_BTN, LOW); }