Update
Dependencies: mbed mbed-rtos X_NUCLEO_IHM02A1
Diff: ST_SOLO.cpp
- Revision:
- 36:ba2e7eddbafa
- Parent:
- 35:758191d5c6e1
- Child:
- 37:a74d377d8f74
--- a/ST_SOLO.cpp Sun May 05 16:18:20 2019 +0000 +++ b/ST_SOLO.cpp Wed May 08 09:35:40 2019 +0000 @@ -1,13 +1,77 @@ #include "SETUP.h" +/*** BEISPIEL FÜR RAPHI +if(evTasterStart == 1) +{ + + entryEinlegenIn(); + StatusSOLO=SOLO_EinlegenIN; + }*/ + +/* +if (count < 2) { + Set_Servo_Bad_Fil(); + count = count + 1; +} else { + +} +*/ + +/* +Set_Servo_Bad_Fil(); +Thread::wait(1000); +Set_Servo_Good_Fil(); +*/ +/* +if (buttonSTART_pressed == true) +{ + printf("BUTTON_START\n\r"); + Thread::wait(1000); + buttonSTART_pressed = false; +} +if (buttonAbbruch_pressed == true) +{ + printf("BUTTON_ABBRUCH\n\r"); + Thread::wait(1000); + buttonAbbruch_pressed = false; +} +*/ +/* +printf("SOLO\n\r"); +printf(" LS1 %d\n\r", LS_1.read()); +printf(" LS2 %d\n\r", LS_2.read()); +printf(" LS3 %d\n\r", LS_3.read()); +*/ +/* +printf("SOLO\n\r"); +motors[0]->run(StepperMotor::FWD, 500); +Thread::wait(1000); +*/ + +/* +motors[0]->run(StepperMotor::FWD, 500); +*/ +/* +if(mybutton.read() == 0) +{ + printf("Blitz\n\r"); + Set_Cutter(500, 2000, ); + +} +*/ + + + + + int StatusSOLO=SOLO_DEFAULT; extern PwmOut Servo; extern volatile bool buttonSTART_pressed; extern volatile bool buttonSTART_enabled; extern volatile bool buttonAbbruch_pressed; -extern volatile bool buttonAbbruch_enabled; +extern volatile bool buttonAbbruch_enabled; extern DigitalIn LS_1; extern DigitalIn LS_2; @@ -22,103 +86,286 @@ extern PwmOut Spleisser_1; extern PwmOut Spleisser_2; -int count; +int material = 0; +float zeit = 0; +int val_LS1 = 0; +int val_LS2 = 0; +int val_LS3 = 0; + +Timer machNichts; + +void enable_Buttons() +{ + buttonSTART_enabled_cb(); + buttonAbbruch_enabled_cb(); +} + +void entry_SOLO_DEFAULT() +{ + StatusSOLO = SOLO_DEFAULT; + machNichts.stop(); + machNichts.reset(); + zeit = 0; + val_LS1 = LS_1.read(); + if(val_LS1 == 0) { + while(val_LS1 == 0) { + Stepper_1_Run('R', 200); + DisplaySendeBefehl(0x01); + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("ABBRUCH:"); + gotoxy(1, 2); + DisplaySendeString("Filament rechts"); + gotoxy(1, 4); + DisplaySendeString("entfernen"); + val_LS1 = LS_1.read(); + } + } + val_LS3 = LS_3.read(); + if(val_LS3 == 0) { + while(val_LS3 == 0) { + Stepper_3_Run('V', 200); + DisplaySendeBefehl(0x01); + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("ABBRUCH:"); + gotoxy(1, 2); + DisplaySendeString("Filament links"); + gotoxy(1, 4); + DisplaySendeString("entfernen"); + val_LS1 = LS_1.read(); + } + } + DisplaySendeBefehl(0x01); +} + +void entry_SOLO_EinlegenIN() +{ + StatusSOLO = SOLO_EinlegenIN; + DisplaySendeBefehl(0x01); + machNichts.start(); + Set_Servo_Good_Fil(); + +} + +void entry_SOLO_INtoSPLEISSER() +{ + StatusSOLO = SOLO_INtoSPLEISSER; + DisplaySendeBefehl(0x01); + machNichts.stop(); + machNichts.reset(); + zeit = 0; + machNichts.start(); + enable_Buttons(); +} + +void entry_SOLO_EinlegenOUT() +{ + StatusSOLO = SOLO_EinlegenOUT; + DisplaySendeBefehl(0x01); + machNichts.stop(); + machNichts.reset(); + zeit = 0; + machNichts.start(); + enable_Buttons(); +} + +void entry_SOLO_OUTtoSPLEISSER() +{ + StatusSOLO = SOLO_OUTtoSPLEISSER; + DisplaySendeBefehl(0x01); + machNichts.stop(); + machNichts.reset(); + zeit = 0; + machNichts.start(); + enable_Buttons(); +} + +void entry_SOLO_Spleissen() +{ + StatusSOLO = SOLO_Spleissen; +} void EntrySOLO() { - switch(StatusSOLO) - { - case SOLO_DEFAULT: - /*** BEISPIEL FÜR RAPHI - if(evTasterStart == 1) - { - - entryEinlegenIn(); - StatusSOLO=SOLO_EinlegenIN; - }*/ - - /* - if (count < 2) { - Set_Servo_Bad_Fil(); - count = count + 1; - } else { + switch(StatusSOLO) { + case SOLO_DEFAULT: + + enable_Buttons(); + + Stepper_1_Leerlauf(); + Stepper_3_Leerlauf(); - } - */ - - /* - Set_Servo_Bad_Fil(); - Thread::wait(1000); - Set_Servo_Good_Fil(); - */ - /* - if (buttonSTART_pressed == true) - { - printf("BUTTON_START\n\r"); - Thread::wait(1000); - buttonSTART_pressed = false; - } - if (buttonAbbruch_pressed == true) - { - printf("BUTTON_ABBRUCH\n\r"); - Thread::wait(1000); - buttonAbbruch_pressed = false; - } - */ - /* - printf("SOLO\n\r"); - printf(" LS1 %d\n\r", LS_1.read()); - printf(" LS2 %d\n\r", LS_2.read()); - printf(" LS3 %d\n\r", LS_3.read()); - */ - /* - printf("SOLO\n\r"); - motors[0]->run(StepperMotor::FWD, 500); - Thread::wait(1000); - */ - - /* - motors[0]->run(StepperMotor::FWD, 500); - if(mybutton.read() == 0) - { - printf("Blitz\n\r"); - Set_Cutter(500, 2000, 6); + + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("Modus: SOLO-Betrieb"); + if(material == 1) { + gotoxy(1, 4); + DisplaySendeString("Start ABS"); + } else if(material == 0) { + gotoxy(1, 4); + DisplaySendeString("Start PLA"); + } + + if(buttonAbbruch_pressed == true) { + buttonAbbruch_pressed = false; + buttonAbbruch_diable_cb(); + material = !material; + } + + + if(buttonSTART_pressed == true) { + buttonSTART_pressed = false; + buttonSTART_diable_cb(); + entry_SOLO_EinlegenIN(); + } + break; + + + + + case SOLO_EinlegenIN: + + //Servo_Off(); + + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("Filament rechts"); + gotoxy(1, 3); + DisplaySendeString("einlegen"); + gotoxy(1, 4); + DisplaySendeString(" Abbruch"); + + + if(buttonAbbruch_pressed == true) { + buttonAbbruch_pressed = false; + buttonAbbruch_diable_cb(); + entry_SOLO_DEFAULT(); + } + + zeit = machNichts.read(); + if(zeit >= WARTEZEIT) { + + entry_SOLO_DEFAULT(); + } + + + val_LS2 = LS_2.read(); + if(val_LS2 == 1) { + Stepper_1_Run('V', 200); + } else if (val_LS2 == 0) { + Stepper_1_Stop(); + entry_SOLO_INtoSPLEISSER(); + } + + break; + + + + + case SOLO_INtoSPLEISSER: + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("Filament rechts"); + gotoxy(1, 3); + DisplaySendeString("bereit"); + gotoxy(1, 4); + DisplaySendeString("Weiter Abbruch"); + + zeit = machNichts.read(); + if(zeit >= WARTEZEIT) { + + entry_SOLO_DEFAULT(); + } - } - - DisplaySendeBefehl(0x0C); - gotoxy(1, 1); - DisplaySendeString("Fuck You"); - gotoxy(1, 3); - DisplaySendeString("Fuck You"); - */ - printf("SOLO\n\r"); - Thread::wait(1000); - - break; - - case SOLO_EinlegenIN: - break; - - case SOLO_INtoSPLEISSER: - break; - - case SOLO_EinlegenOUT: - break; - - case SOLO_OUTtoSPLEISSER: - break; - - case SOLO_Spleissen: - break; - - case SOLO_FERTIG: - break; - - case SOLO_STOERUNG: - break; - - } + if(buttonAbbruch_pressed == true) { + buttonAbbruch_pressed = false; + buttonAbbruch_diable_cb(); + entry_SOLO_DEFAULT(); + } + + if(buttonSTART_pressed == true) { + buttonSTART_pressed = false; + buttonSTART_diable_cb(); + entry_SOLO_EinlegenOUT(); + } + + break; + + case SOLO_EinlegenOUT: + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("Filament links"); + gotoxy(1, 3); + DisplaySendeString("einlegen"); + gotoxy(1, 4); + DisplaySendeString(" Abbruch"); + + if(buttonAbbruch_pressed == true) { + buttonAbbruch_pressed = false; + buttonAbbruch_diable_cb(); + entry_SOLO_DEFAULT(); + } + + zeit = machNichts.read(); + if(zeit >= WARTEZEIT) { + + entry_SOLO_DEFAULT(); + } + + val_LS3 = LS_3.read(); + if(val_LS3 == 1) { + Stepper_3_Run('R', 200); /// das isch no Scheisse + } else if (val_LS3 == 0) { + Stepper_3_Stop(); + entry_SOLO_OUTtoSPLEISSER(); + } + break; + + case SOLO_OUTtoSPLEISSER: + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("Filament links"); + gotoxy(1, 3); + DisplaySendeString("bereit"); + gotoxy(1, 4); + DisplaySendeString("Spleissen Abbruch"); + + zeit = machNichts.read(); + if(zeit >= WARTEZEIT) { + + entry_SOLO_DEFAULT(); + } + + if(buttonAbbruch_pressed == true) { + buttonAbbruch_pressed = false; + buttonAbbruch_diable_cb(); + entry_SOLO_DEFAULT(); + } + + if(buttonSTART_pressed == true) { + buttonSTART_pressed = false; + buttonSTART_diable_cb(); + entry_SOLO_Spleissen(); + } + break; + + case SOLO_Spleissen: + DisplaySendeBefehl(0x0C); + gotoxy(1, 1); + DisplaySendeString("Spleissen"); + gotoxy(1, 3); + DisplaySendeString("Spleissent"); + break; + + case SOLO_FERTIG: + break; + + case SOLO_STOERUNG: + break; + + } }