PES_4_Spleisser / Mbed 2 deprecated SpleisserProgramm_V11

Dependencies:   mbed mbed-rtos X_NUCLEO_IHM02A1

ST_SOLO.cpp

Committer:
hagenrap
Date:
2019-05-08
Revision:
36:ba2e7eddbafa
Parent:
35:758191d5c6e1
Child:
37:a74d377d8f74

File content as of revision 36:ba2e7eddbafa:

#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 DigitalIn LS_1;
extern DigitalIn LS_2;
extern DigitalIn LS_3;

extern L6470 **motors;

extern DigitalIn  mybutton;

extern PwmOut Cutter_1;
extern PwmOut Cutter_2;
extern PwmOut Spleisser_1;
extern PwmOut Spleisser_2;

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:

            enable_Buttons();

            Stepper_1_Leerlauf();
            Stepper_3_Leerlauf();
            

            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();
            }

            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;

    }
}