' Gambas class file PUBLIC konfigurace_timeout_status AS Boolean PUBLIC konfigurace_timeout AS Integer PUBLIC konfigurace_pocet_cyklu AS Integer PUBLIC konfigurace_prelearning_cas_piti AS Integer PUBLIC konfigurace_prelearning_cas_dalsi_ciklus AS Integer PUBLIC konfigurace_prelearning_neopakovat AS Boolean PUBLIC konfigurace_prelearning_pauza AS Boolean PUBLIC konfigurace_experiment_cas_zobrazeni_stimulu AS Integer PUBLIC konfigurace_experiment_cas_zhasnuteho_stimulu AS Integer PUBLIC konfigurace_experiment_cas_piti AS Integer PUBLIC konfigurace_experiment_cas_dalsi_ciklus AS Integer PUBLIC konfigurace_experiment_nahoda AS Boolean PUBLIC konfigurace_experiment_neopakovat AS Boolean PUBLIC konfigurace_experiment_vypni_stimul AS Boolean PUBLIC konfigurace_experiment_vypni_stimul_pauza_enable AS Boolean PUBLIC konfigurace_experiment_casovani AS Boolean PUBLIC konfigurace_experiment_slot_enable_1 AS Boolean PUBLIC konfigurace_experiment_slot_enable_2 AS Boolean PUBLIC konfigurace_experiment_slot_enable_3 AS Boolean PUBLIC konfigurace_experiment_slot_enable_4 AS Boolean PUBLIC konfigurace_experiment_slot_enable_5 AS Boolean PUBLIC konfigurace_experiment_slot_enable_6 AS Boolean PUBLIC konfigurace_experiment_casovani_s1 AS Integer PUBLIC konfigurace_experiment_casovani_s2 AS Integer PUBLIC konfigurace_experiment_casovani_s3 AS Integer PUBLIC konfigurace_experiment_casovani_s4 AS Integer PUBLIC konfigurace_experiment_casovani_s5 AS Integer PUBLIC konfigurace_experiment_casovani_s6 AS Integer PUBLIC stav_sloty AS Integer PUBLIC simulace_zacenichani AS Boolean PUBLIC mod_idx AS Integer PUBLIC buffer_casovac AS Integer PUBLIC status_casovac AS Boolean PUBLIC buffer_timeout AS Integer PUBLIC buffer_sloty_aktual_state AS Integer PUBLIC buffer_sloty_last_state AS Integer PUBLIC InputBuffer_TMP AS Integer PUBLIC InputBlock AS Boolean PUBLIC STOP_State AS Boolean PUBLIC tmp_cyklus AS Integer PUBLIC tmp_stimul_idx AS Integer PUBLIC tmp_stimul_last AS Integer PUBLIC tmp_mils AS Long PUBLIC SUB Form_Open() FMain.Visible = TRUE FMain.FullScreen = TRUE SysLogWrite("Startuji_System.........") SysLogWrite("NAHRANI_PARAMETRU") DefKonfLoad() SysLogWrite("UPLATNENI_PARAMETRU") UplatniParametry() VypisParametry() SysLogWrite("System_nastartovan") CfgList() END PUBLIC SUB BtnKonec_Click() SysLogWrite("Dotaz_Ukonceni_Aplikace") IF Message.Warning("Opravdu chcete ukoncit aplikaci ?", "NE", "ANO") = 2 THEN SysLogWrite("Ukoncovani_Behu_Aplikace") TimerSystime.Enabled = FALSE Form1.Close FINALLY IF SerialPort1.Status <> 0 THEN SerialPort1.Close SysLogWrite("Konec_Systemu") Form1.Close FMain.Close ELSE SysLogWrite("Navrat_Do_Aplikace") ENDIF END PUBLIC SUB TimerSystime_Timer() WAIT PosliInfo() TxtInfoCyklus.Text = Str(tmp_cyklus) TxtSysTime.Text = Format$(Now, "dd.mm.yy") & " " & Format$(Now, "hh:nn:ss") WAIT IF SerialPort1.Status = 0 THEN TxtCommPort.BackColor = Color.Red WAIT IF SerialPort1.Status = 1 THEN TxtCommPort.BackColor = Color.Green WAIT VypisStavSlotu() IF TxtWDT.BackColor = Color.Red THEN TxtWDT.BackColor = Color.Green ELSE TxtWDT.BackColor = Color.Red ENDIF FINALLY IF ERROR THEN ErrLogWrite("NESYNCHRONI_UKONCENI_TimerSystime_Timer() - " & Error.Text) ENDIF END PUBLIC SUB SysLogWrite(Udalost AS String) DIM SysLogFile AS File SysLogFile = OPEN "/ratbox/log/system.log" FOR APPEND TxtSysLog.Text = Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & udalost & Chr(13) & TxtSysLog.Text WAIT PRINT #SysLogFile, Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & udalost WAIT SysLogFile.Close END PUBLIC SUB ErrLogWrite(Udalost AS String) DIM SysLogFile AS File SysLogFile = OPEN "/ratbox/log/err.log" FOR APPEND PRINT #SysLogFile, Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & udalost SysLogFile.Close END PUBLIC SUB ExpLogWrite(Udalost AS String) DIM SysLogFile AS File IF Exist("/ratbox/log/last_experiment.log") = TRUE THEN SysLogFile = OPEN "/ratbox/log/last_experiment.log" FOR APPEND PRINT #SysLogFile, Str(tmp_mils) & ";" & Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & ";" & udalost Form1.loginfo(Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & udalost) SysLogFile.Close ENDIF END PUBLIC SUB ExpLogInit() DIM SysLogFile AS File SysLogWrite("GENERUJI_LOG_EXPERIMENTU") IF Exist("/ratbox/log/last_experiment.log") = TRUE THEN SHELL ("mv /ratbox/log/last_experiment.log /ratbox/log/last_experiment.log.backup") SHELL ("touch /ratbox/log/last_experiment.log") ELSE SHELL ("touch /ratbox/log/last_experiment.log") ENDIF SysLogWrite("ZAPISUJI_HLAVICKU_LOGU_EXPERIMENTU") SysLogFile = OPEN "/ratbox/log/last_experiment.log" FOR APPEND PRINT #SysLogFile, Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") PRINT #SysLogFile, TxtExperimentID.Text PRINT #SysLogFile, TxtPotkanID.Text PRINT #SysLogFile, "-----------------------------------------------------------" SysLogFile.Close END PUBLIC SUB BtnPripoj_Click() SysLogWrite("PRIPOJOVANI_BOXU_PORT: " & TxtCommPort.Text) IF SerialPort1.status = 0 THEN SerialPort1.PortName = TxtCommPort.Text SerialPort1.Speed = 9600 SerialPort1.DataBits = 8 SerialPort1.StopBits = 1 SerialPort1.FlowControl = FALSE SerialPort1.Open FINALLY IF ERROR THEN ErrLogWrite("PRIPOJOVANI_CHYBA_PORTU_" & TxtCommPort.Text & " - " & Error.Text) SysLogWrite("CHYBA_PORTU/BOXU") Message("CHYBA BOXU / PORTU") ENDIF ELSE SerialPort1.Close ENDIF END PUBLIC SUB SerialPort1_Read() DIM InByte AS Byte READ #SerialPort1, InByte WAIT IF (simulace_zacenichani = FALSE) AND (InputBlock = FALSE) THEN IF InByte > 0 THEN IF InByte = 1 THEN stav_sloty = 1 IF InByte = 2 THEN stav_sloty = 2 IF InByte = 4 THEN stav_sloty = 3 IF InByte = 8 THEN stav_sloty = 4 IF InByte = 16 THEN stav_sloty = 5 IF InByte = 32 THEN stav_sloty = 6 IF InByte = 0 THEN stav_sloty = 0 InputBlock = TRUE ENDIF ELSE InputBuffer_TMP = InByte ENDIF WAIT END PUBLIC SUB Pauza(cas AS Integer) IF status_casovac = FALSE THEN status_casovac = TRUE buffer_casovac = 0 TmrCasovac.Enabled = TRUE WHILE cas > buffer_casovac WAIT WEND buffer_casovac = 0 TmrCasovac.Enabled = FALSE TxtInfoCasovac.text = Str(buffer_casovac) status_casovac = FALSE ENDIF FINALLY IF ERROR THEN ErrLogWrite("NESYNCHRONI_UKONCENI - Pauza() - " & Error.Text) ENDIF END PUBLIC SUB AparaturaNastavPitko(n AS Integer) SysLogWrite("APARATURA_NASTAVENI_PITKA: " & Str(n)) IF SerialPort1.status = 1 THEN IF n = 1 THEN WRITE #SerialPort1, "s1" IF n = 1 THEN WRITE #SerialPort1, "S0" IF n = 2 THEN WRITE #SerialPort1, "s2" IF n = 2 THEN WRITE #SerialPort1, "S0" IF n = 3 THEN WRITE #SerialPort1, "s3" IF n = 3 THEN WRITE #SerialPort1, "S0" IF n = 4 THEN WRITE #SerialPort1, "S1" IF n = 4 THEN WRITE #SerialPort1, "s0" IF n = 5 THEN WRITE #SerialPort1, "S2" IF n = 5 THEN WRITE #SerialPort1, "s0" IF n = 6 THEN WRITE #SerialPort1, "S3" IF n = 6 THEN WRITE #SerialPort1, "s0" IF n = 0 THEN WRITE #SerialPort1, "s0" IF n = 0 THEN WRITE #SerialPort1, "S0" SysLogWrite("APARATURA_NASTAVENI_PITKA_OK") ELSE SysLogWrite("APARATURA_NASTAVENI_PITKA_CHYBA") ENDIF END PUBLIC SUB AparaturaReset() SysLogWrite("APARATURA_RESET") IF SerialPort1.status = 1 THEN WRITE #SerialPort1, "S0" WRITE #SerialPort1, "s0" WRITE #SerialPort1, "d" SysLogWrite("APARATURA_RESET_OK") ELSE SysLogWrite("APARATURA_RESET_CHYBA") ENDIF END PUBLIC SUB AparaturaOtevriDvere() SysLogWrite("APARATURA_OTEVRENI_DVERI") IF SerialPort1.status = 1 THEN WRITE #SerialPort1, "D" SysLogWrite("APARATURA_OTEVRENI_DVERI_OK") ELSE SysLogWrite("APARATURA_OTEVRENI_DVERI_CHYBA") ENDIF END PUBLIC SUB AparaturaZavriDvere() SysLogWrite("APARATURA_ZAVRENI_DVERI") IF SerialPort1.status = 1 THEN WRITE #SerialPort1, "d" SysLogWrite("APARATURA_ZAVRENI_DVERI_OK") ELSE SysLogWrite("APARATURA_ZAVRENI_DVERI_CHYBA") ENDIF END PUBLIC SUB VypisStavSlotu() IF stav_sloty = 0 THEN CheckBox2.BackColor = Color.Red CheckBox3.BackColor = Color.Red CheckBox4.BackColor = Color.Red CheckBox5.BackColor = Color.Red CheckBox6.BackColor = Color.Red CheckBox7.BackColor = Color.Red ENDIF WAIT IF stav_sloty = 1 THEN CheckBox2.BackColor = Color.Green IF stav_sloty = 2 THEN CheckBox3.BackColor = Color.Green IF stav_sloty = 3 THEN CheckBox4.BackColor = Color.Green IF stav_sloty = 4 THEN CheckBox5.BackColor = Color.Green IF stav_sloty = 5 THEN CheckBox6.BackColor = Color.Green IF stav_sloty = 6 THEN CheckBox7.BackColor = Color.Green WAIT END PUBLIC SUB BtnSZ1_MouseDown() SysLogWrite("SIMULACE_ZACENICHANI_1") simulace_zacenichani = TRUE stav_sloty = 1 END PUBLIC SUB BtnSZ1_MouseUp() simulace_zacenichani = FALSE stav_sloty = 0 END PUBLIC SUB BtnSZ2_MouseDown() SysLogWrite("SIMULACE_ZACENICHANI_2") simulace_zacenichani = TRUE stav_sloty = 2 END PUBLIC SUB BtnSZ2_MouseUp() simulace_zacenichani = FALSE stav_sloty = 0 END PUBLIC SUB BtnSZ3_MouseDown() SysLogWrite("SIMULACE_ZACENICHANI_3") simulace_zacenichani = TRUE stav_sloty = 3 END PUBLIC SUB BtnSZ3_MouseUp() simulace_zacenichani = FALSE stav_sloty = 0 END PUBLIC SUB BtnSZ4_MouseDown() SysLogWrite("SIMULACE_ZACENICHANI_4") simulace_zacenichani = TRUE stav_sloty = 4 END PUBLIC SUB BtnSZ4_MouseUp() simulace_zacenichani = FALSE stav_sloty = 0 END PUBLIC SUB BtnSZ5_MouseDown() SysLogWrite("SIMULACE_ZACENICHANI_5") simulace_zacenichani = TRUE stav_sloty = 5 END PUBLIC SUB BtnSZ5_MouseUp() simulace_zacenichani = FALSE stav_sloty = 0 END PUBLIC SUB BtnSZ6_MouseDown() SysLogWrite("SIMULACE_ZACENICHANI_6") simulace_zacenichani = TRUE stav_sloty = 6 END PUBLIC SUB BtnSZ6_MouseUp() simulace_zacenichani = FALSE stav_sloty = 0 END PUBLIC SUB BtnMod_Click() mod_idx = mod_idx + 1 IF mod_idx > 1 THEN mod_idx = 0 IF mod_idx = 1 THEN BtnMod.Text = "Experiment" IF mod_idx = 0 THEN BtnMod.Text = "PreLearning" IF mod_idx = 1 THEN SysLogWrite("PREPNUTI_MODU: Experiment") IF mod_idx = 0 THEN SysLogWrite("PREPNUTI_MODU: PreLearning") END PUBLIC SUB BtnReset_Click() AparaturaReset() END PUBLIC SUB BtnOpenDor_Click() AparaturaOtevriDvere() END PUBLIC SUB BtnCloseDor_Click() AparaturaZavriDvere() END PUBLIC SUB BtnPitS_Click() AparaturaNastavPitko(1) END PUBLIC SUB BtnPitS2_Click() AparaturaNastavPitko(2) END PUBLIC SUB BtnPitS3_Click() AparaturaNastavPitko(3) END PUBLIC SUB BtnPitS4_Click() AparaturaNastavPitko(4) END PUBLIC SUB BtnPitS5_Click() AparaturaNastavPitko(5) END PUBLIC SUB BtnPitS6_Click() AparaturaNastavPitko(6) END PUBLIC SUB ChkTimeout_Click() konfigurace_timeout_status = ChkTimeout.Value IF konfigurace_timeout_status = TRUE THEN SysLogWrite("KONFIGURACE_TIMEOUT: ZAPNUTO") IF konfigurace_timeout_status = FALSE THEN SysLogWrite("KONFIGURACE_TIMEOUT: VYPNUTO") END PUBLIC SUB ChkPreNeopakovat_Click() konfigurace_prelearning_neopakovat = ChkPreNeopakovat.Value IF konfigurace_prelearning_neopakovat = TRUE THEN SysLogWrite("KONFIGURACE_PreLearning_NEOPAKOVAT: ZAPNUTO") IF konfigurace_prelearning_neopakovat = FALSE THEN SysLogWrite("KONFIGURACE_Prelearning_NEOPAKOVAT: VYPNUTO") END PUBLIC SUB ChkPrePauza_Click() konfigurace_prelearning_pauza = ChkPrePauza.Value IF konfigurace_prelearning_pauza = TRUE THEN SysLogWrite("KONFIGURACE_PreLearning_PAUZA: ZAPNUTO") IF konfigurace_prelearning_pauza = FALSE THEN SysLogWrite("KONFIGURACE_Prelearning_PAUZA: VYPNUTO") END PUBLIC SUB BtnNastav_Click() SysLogWrite("UPLATNUJI_PARAMETRY") UplatniParametry() VypisParametry() SysLogWrite("PARAMETRY_UPLATNENY") SysLogWrite("UKLADAM_ZAKLADNI_KONFIGURACI") UlozDefoult() SysLogWrite("ZAKLADNI_KONFIGURACE_ULOZENA") END PUBLIC SUB VypisParametry() IF mod_idx = 0 THEN SysLogWrite("MOD_PRELEARNING") IF mod_idx = 1 THEN SysLogWrite("MOD_EXPERIMENT") IF konfigurace_timeout_status = TRUE THEN SysLogWrite("KONFIGURACE_TIMEOUT: ZAPNUTO") IF konfigurace_timeout_status = FALSE THEN SysLogWrite("KONFIGURACE_TIMEOUT: VYPNUTO") IF konfigurace_prelearning_neopakovat = TRUE THEN SysLogWrite("KONFIGURACE_PRELEARNING_NEOPAKOVAT: ZAPNUTO") IF konfigurace_prelearning_neopakovat = FALSE THEN SysLogWrite("KONFIGURACE_PRELEARNING_NEOPAKOVAT: VYPNUTO") IF konfigurace_prelearning_pauza = TRUE THEN SysLogWrite("KONFIGURACE_PRELEARNING_PAUZA: ZAPNUTO") IF konfigurace_prelearning_pauza = FALSE THEN SysLogWrite("KONFIGURACE_PRELEARNING_PAUZA: VYPNUTO") SysLogWrite("KONFIGURACE_PRELEARNING_PAUZA: " & konfigurace_prelearning_cas_dalsi_ciklus) SysLogWrite("KONFIGURACE_PRELEARNING_CAS_PITI: " & konfigurace_prelearning_cas_piti) SysLogWrite("KONFIGURACE_POCET_CYKLU: " & konfigurace_pocet_cyklu) SysLogWrite("KONFIGURACE_CAS_NA_REAKCI: " & konfigurace_timeout) IF konfigurace_experiment_casovani = TRUE THEN SysLogWrite("KONFIGURACE_CASOVANI: ZAPNUTO") IF konfigurace_experiment_casovani = FALSE THEN SysLogWrite("KONFIGURACE_CASOVANI: VYPNUTO") IF konfigurace_experiment_nahoda = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_NAHODA: ZAPNUTO") IF konfigurace_experiment_nahoda = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_NAHODA: VYPNUTO") IF konfigurace_experiment_neopakovat = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_NEOPAKOVAT: ZAPNUTO") IF konfigurace_experiment_neopakovat = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_NEOPAKOVAT: VYPNUTO") IF konfigurace_experiment_vypni_stimul = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_ZHASNUTI_STIMULU: ZAPNUTO") IF konfigurace_experiment_vypni_stimul = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_ZHASNUTI_STIMULU: VYPNUTO") IF konfigurace_experiment_vypni_stimul_pauza_enable = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_PAUZA_ZHASLY_STIMUL: ZAPNUTO") IF konfigurace_experiment_vypni_stimul_pauza_enable = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_PAUZA_ZHASLY_STIMUL: VYPNUTO") SysLogWrite("KONFIGURACE_EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_cas_zobrazeni_stimulu) SysLogWrite("KONFIGURACE_EXPERIMENT_CAS_PITI " & konfigurace_experiment_cas_piti) SysLogWrite("KONFIGURACE_EXPERIMENT_CAS_ZHASLY_STIMUL: " & konfigurace_experiment_cas_zhasnuteho_stimulu) SysLogWrite("KONFIGURACE_EXPERIMENT_CAS_CIKLUS: " & konfigurace_experiment_cas_dalsi_ciklus) IF konfigurace_experiment_slot_enable_1 = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_1: ZAPNUTO") IF konfigurace_experiment_slot_enable_1 = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_1: VYPNUTO") IF konfigurace_experiment_slot_enable_2 = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_2: ZAPNUTO") IF konfigurace_experiment_slot_enable_2 = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_2: VYPNUTO") IF konfigurace_experiment_slot_enable_3 = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_3: ZAPNUTO") IF konfigurace_experiment_slot_enable_3 = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_3: VYPNUTO") IF konfigurace_experiment_slot_enable_4 = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_4: ZAPNUTO") IF konfigurace_experiment_slot_enable_4 = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_4: VYPNUTO") IF konfigurace_experiment_slot_enable_5 = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_5: ZAPNUTO") IF konfigurace_experiment_slot_enable_5 = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_5: VYPNUTO") IF konfigurace_experiment_slot_enable_6 = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_6: ZAPNUTO") IF konfigurace_experiment_slot_enable_6 = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_SLOT_6: VYPNUTO") SysLogWrite("KONFIGURACE_EXPERIMENT_CASOVANI_SLOT_1: " & Str(konfigurace_experiment_casovani_s1)) SysLogWrite("KONFIGURACE_EXPERIMENT_CASOVANI_SLOT_2: " & Str(konfigurace_experiment_casovani_s2)) SysLogWrite("KONFIGURACE_EXPERIMENT_CASOVANI_SLOT_3: " & Str(konfigurace_experiment_casovani_s3)) SysLogWrite("KONFIGURACE_EXPERIMENT_CASOVANI_SLOT_4: " & Str(konfigurace_experiment_casovani_s4)) SysLogWrite("KONFIGURACE_EXPERIMENT_CASOVANI_SLOT_5: " & Str(konfigurace_experiment_casovani_s5)) SysLogWrite("KONFIGURACE_EXPERIMENT_CASOVANI_SLOT_6: " & Str(konfigurace_experiment_casovani_s6)) END PUBLIC SUB UplatniParametry() konfigurace_pocet_cyklu = Val(TxtPocetCiklu.Text) konfigurace_timeout = Val(TxtTimeout.Text) konfigurace_timeout_status = ChkTimeout.Value konfigurace_prelearning_cas_piti = Val(TxtPreCasPiti.Text) konfigurace_prelearning_cas_dalsi_ciklus = Val(TxtPrePauza.Text) konfigurace_prelearning_pauza = ChkPrePauza.Value konfigurace_prelearning_neopakovat = ChkPreNeopakovat.Value konfigurace_experiment_nahoda = ChkExpNahoda.Value konfigurace_experiment_neopakovat = ChkExpNeopakovat.Value konfigurace_experiment_cas_zobrazeni_stimulu = Val(ExperimentTxtTime0.Text) konfigurace_experiment_cas_piti = Val(ExperimentTxtTime3.Text) konfigurace_experiment_cas_zhasnuteho_stimulu = Val(ExperimentTxtTime1.Text) konfigurace_experiment_cas_dalsi_ciklus = Val(ExperimentTxtTime2.Text) konfigurace_experiment_vypni_stimul = ChkZhasniStimul.Value konfigurace_experiment_vypni_stimul_pauza_enable = ChkVypStimulPauza.Value konfigurace_experiment_casovani = ExpChkEnableTiming.Value konfigurace_experiment_slot_enable_1 = ExpChkSTime.Value konfigurace_experiment_slot_enable_2 = ExpChkSTime2.Value konfigurace_experiment_slot_enable_3 = ExpChkSTime3.Value konfigurace_experiment_slot_enable_4 = ExpChkSTime4.Value konfigurace_experiment_slot_enable_5 = ExpChkSTime5.Value konfigurace_experiment_slot_enable_6 = ExpChkSTime6.Value konfigurace_experiment_casovani_s1 = Val(ExpTxtS1Time.Text) konfigurace_experiment_casovani_s2 = Val(ExpTxtS2Time.Text) konfigurace_experiment_casovani_s3 = Val(ExpTxtS3Time.Text) konfigurace_experiment_casovani_s4 = Val(ExpTxtS4Time.Text) konfigurace_experiment_casovani_s5 = Val(ExpTxtS5Time.Text) konfigurace_experiment_casovani_s6 = Val(ExpTxtS6Time.Text) END SUB UlozDefoult() DIM DefKonfFile AS File DefKonfFile = OPEN "/ratbox/system/defconf.rbconf" FOR WRITE WAIT PRINT #DefKonfFile, Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") PRINT #DefKonfFile, TxtCommPort.Text PRINT #DefKonfFile, Str(konfigurace_pocet_cyklu) PRINT #DefKonfFile, Str(konfigurace_timeout) PRINT #DefKonfFile, konfigurace_timeout_status PRINT #DefKonfFile, Str(konfigurace_prelearning_cas_piti) PRINT #DefKonfFile, Str(konfigurace_prelearning_cas_dalsi_ciklus) PRINT #DefKonfFile, konfigurace_prelearning_pauza PRINT #DefKonfFile, konfigurace_prelearning_neopakovat PRINT #DefKonfFile, konfigurace_experiment_nahoda PRINT #DefKonfFile, konfigurace_experiment_neopakovat PRINT #DefKonfFile, Str(konfigurace_experiment_cas_zobrazeni_stimulu) PRINT #DefKonfFile, Str(konfigurace_experiment_cas_piti) PRINT #DefKonfFile, Str(konfigurace_experiment_cas_zhasnuteho_stimulu) PRINT #DefKonfFile, Str(konfigurace_experiment_cas_dalsi_ciklus) PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul_pauza_enable PRINT #DefKonfFile, konfigurace_experiment_casovani PRINT #DefKonfFile, konfigurace_experiment_slot_enable_1 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_2 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_3 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_4 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_5 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_6 PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s1) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s2) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s3) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s4) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s5) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s6) PRINT #DefKonfFile, Str(mod_idx) WAIT DefKonfFile.Close END SUB UlozUserCfg(CfgName AS String) DIM DefKonfFile AS File IF Exist("/ratbox/konfigurace/" & CfgName & ".rbconf") = FALSE THEN Message("Profil: " & CfgName & " neexistuje a bude vytvoren......") SHELL ("touch /ratbox/konfigurace/" & CfgName & ".rbconf") Message("Profil: " & CfgName & " Vytvoren....") CfgList() ELSE IF Message.Warning("Profil: " & CfgName & " jiz existuje, chcete ho prepsat ?", "NE", "ANO") = 2 THEN GOTO cfgwrite ELSE GOTO cfgwritekonec ENDIF ENDIF cfgwrite: DefKonfFile = OPEN "/ratbox/konfigurace/" & CfgName & ".rbconf" FOR WRITE FINALLY IF ERROR THEN Message(Error.Text) Message(Error.Text) ENDIF WAIT PRINT #DefKonfFile, Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") PRINT #DefKonfFile, TxtCommPort.Text PRINT #DefKonfFile, Str(konfigurace_pocet_cyklu) PRINT #DefKonfFile, Str(konfigurace_timeout) PRINT #DefKonfFile, konfigurace_timeout_status PRINT #DefKonfFile, Str(konfigurace_prelearning_cas_piti) PRINT #DefKonfFile, Str(konfigurace_prelearning_cas_dalsi_ciklus) PRINT #DefKonfFile, konfigurace_prelearning_pauza PRINT #DefKonfFile, konfigurace_prelearning_neopakovat PRINT #DefKonfFile, konfigurace_experiment_nahoda PRINT #DefKonfFile, konfigurace_experiment_neopakovat PRINT #DefKonfFile, Str(konfigurace_experiment_cas_zobrazeni_stimulu) PRINT #DefKonfFile, Str(konfigurace_experiment_cas_piti) PRINT #DefKonfFile, Str(konfigurace_experiment_cas_zhasnuteho_stimulu) PRINT #DefKonfFile, Str(konfigurace_experiment_cas_dalsi_ciklus) PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul_pauza_enable PRINT #DefKonfFile, konfigurace_experiment_casovani PRINT #DefKonfFile, konfigurace_experiment_slot_enable_1 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_2 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_3 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_4 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_5 PRINT #DefKonfFile, konfigurace_experiment_slot_enable_6 PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s1) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s2) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s3) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s4) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s5) PRINT #DefKonfFile, Str(konfigurace_experiment_casovani_s6) PRINT #DefKonfFile, Str(mod_idx) WAIT DefKonfFile.Close cfgwritekonec: END SUB DefKonfLoad() DIM linc AS Integer DIM lin AS String DIM arr_strings AS String[] SysLogWrite("OBNOVENI_PARAMETRU") arr_strings = Split(File.LOAD("/ratbox/system/defconf.rbconf"), "\n") FOR EACH lin IN arr_strings lin = arr_strings[linc] IF linc = 1 THEN TxtCommPort.text = lin IF linc = 2 THEN TxtPocetCiklu.Text = lin IF linc = 3 THEN TxtTimeout.Text = lin IF (linc = 4) AND (lin = "True") THEN ChkTimeout.Value = TRUE IF (linc = 4) AND (lin = "False") THEN ChkTimeout.Value = FALSE IF linc = 5 THEN TxtPreCasPiti.Text = lin IF linc = 6 THEN TxtPrePauza.Text = lin IF (linc = 7) AND (lin = "True") THEN ChkPrePauza.Value = TRUE IF (linc = 7) AND (lin = "False") THEN ChkPrePauza.Value = FALSE IF (linc = 8) AND (lin = "True") THEN ChkPreNeopakovat.Value = TRUE IF (linc = 8) AND (lin = "False") THEN ChkPreNeopakovat.Value = FALSE IF (linc = 9) AND (lin = "True") THEN ChkExpNahoda.Value = TRUE IF (linc = 9) AND (lin = "False") THEN ChkExpNahoda.Value = FALSE IF (linc = 10) AND (lin = "True") THEN ChkExpNeopakovat.Value = TRUE IF (linc = 10) AND (lin = "False") THEN ChkExpNeopakovat.Value = FALSE IF linc = 11 THEN ExperimentTxtTime0.Text = lin IF linc = 12 THEN ExperimentTxtTime3.Text = lin IF linc = 13 THEN ExperimentTxtTime1.Text = lin IF linc = 14 THEN ExperimentTxtTime2.Text = lin IF (linc = 15) AND (lin = "True") THEN ChkZhasniStimul.Value = TRUE IF (linc = 15) AND (lin = "False") THEN ChkZhasniStimul.Value = FALSE IF (linc = 16) AND (lin = "True") THEN ChkVypStimulPauza.Value = TRUE IF (linc = 16) AND (lin = "False") THEN ChkVypStimulPauza.Value = FALSE IF (linc = 17) AND (lin = "True") THEN ExpChkEnableTiming.Value = TRUE IF (linc = 17) AND (lin = "False") THEN ExpChkEnableTiming.Value = FALSE IF (linc = 18) AND (lin = "True") THEN ExpChkSTime.Value = TRUE IF (linc = 18) AND (lin = "False") THEN ExpChkSTime.Value = FALSE IF (linc = 19) AND (lin = "True") THEN ExpChkSTime2.Value = TRUE IF (linc = 19) AND (lin = "False") THEN ExpChkSTime2.Value = FALSE IF (linc = 20) AND (lin = "True") THEN ExpChkSTime3.Value = TRUE IF (linc = 20) AND (lin = "False") THEN ExpChkSTime3.Value = FALSE IF (linc = 21) AND (lin = "True") THEN ExpChkSTime4.Value = TRUE IF (linc = 21) AND (lin = "False") THEN ExpChkSTime4.Value = FALSE IF (linc = 22) AND (lin = "True") THEN ExpChkSTime5.Value = TRUE IF (linc = 22) AND (lin = "False") THEN ExpChkSTime5.Value = FALSE IF (linc = 23) AND (lin = "True") THEN ExpChkSTime6.Value = TRUE IF (linc = 23) AND (lin = "False") THEN ExpChkSTime6.Value = FALSE IF linc = 24 THEN ExpTxtS1Time.Text = lin IF linc = 25 THEN ExpTxtS2Time.Text = lin IF linc = 26 THEN ExpTxtS3Time.Text = lin IF linc = 27 THEN ExpTxtS4Time.Text = lin IF linc = 28 THEN ExpTxtS5Time.Text = lin IF linc = 29 THEN ExpTxtS6Time.Text = lin IF linc = 30 THEN mod_idx = Val(lin) IF (linc = 30) AND (lin = "0") THEN BtnMod.Text = "PreLearning" IF (linc = 30) AND (lin = "1") THEN BtnMod.Text = "Experiment" linc = linc + 1 NEXT SysLogWrite("PARAMETRY_OBNOVENY") END PUBLIC SUB TmrCasovac_Timer() buffer_casovac = buffer_casovac + 1 TxtInfoCasovac.text = Str(buffer_casovac) PosliInfo() WAIT END PUBLIC SUB BtnPreStart_Click() SysLogWrite("UPLATNUJI_PARAMETRY") UplatniParametry() VypisParametry() SysLogWrite("PARAMETRY_UPLATNENY") STOP_State = FALSE tmp_cyklus = 0 IF mod_idx = 0 THEN SysLogWrite("PRELEARNING_START") WHILE (tmp_cyklus < konfigurace_pocet_cyklu) AND (STOP_State = FALSE) ' PRELEARNING - KROK 1 - OTEVRENI DVERI START LabelPre.BackColor = Color.Green AparaturaOtevriDvere() Pauza(3) LabelPre.BackColor = Color.Background ' PRELEARNING - KROK 1 - OTEVRENI DVERI STOP WAIT ' PRELEARNING - KROK 2 - CEKANI, ANALYZA POTKANI AKCE START cekani_potkan_akce: TimeoutCountingStart() LabelPre2.BackColor = Color.Green stav_sloty = 0 InputBlock = FALSE WHILE (stav_sloty = 0) AND (konfigurace_timeout > buffer_timeout) WAIT WEND TimeoutCountingStop() LabelPre2.BackColor = Color.Background buffer_sloty_aktual_state = stav_sloty stav_sloty = 0 SysLogWrite("PRELEARNING_POTKAN_AKTIVITA_" & Str(buffer_sloty_aktual_state)) IF buffer_sloty_aktual_state = 0 THEN SysLogWrite("PRELEARNING_TIMEOUT") GOTO prelearning_reset ENDIF IF (buffer_sloty_last_state = buffer_sloty_aktual_state) AND (konfigurace_prelearning_neopakovat = TRUE) THEN SysLogWrite("PRELEARNING_POTKAN_OPAKOVANI") LabelPre2.BackColor = Color.Red Pauza(1) LabelPre2.BackColor = Color.Background buffer_sloty_aktual_state = 0 GOTO cekani_potkan_akce ENDIF IF (buffer_sloty_aktual_state = 1) AND (konfigurace_experiment_slot_enable_1 = FALSE) THEN SysLogWrite("PRELEARNING_NEPOVOLENY_SLOT_" & Str(buffer_sloty_aktual_state)) GOTO cekani_potkan_akce ENDIF IF (buffer_sloty_aktual_state = 2) AND (konfigurace_experiment_slot_enable_2 = FALSE) THEN SysLogWrite("PRELEARNING_NEPOVOLENY_SLOT_" & Str(buffer_sloty_aktual_state)) GOTO cekani_potkan_akce ENDIF IF (buffer_sloty_aktual_state = 3) AND (konfigurace_experiment_slot_enable_3 = FALSE) THEN SysLogWrite("PRELEARNING_NEPOVOLENY_SLOT_" & Str(buffer_sloty_aktual_state)) GOTO cekani_potkan_akce ENDIF IF (buffer_sloty_aktual_state = 4) AND (konfigurace_experiment_slot_enable_4 = FALSE) THEN SysLogWrite("PRELEARNING_NEPOVOLENY_SLOT_" & Str(buffer_sloty_aktual_state)) GOTO cekani_potkan_akce ENDIF IF (buffer_sloty_aktual_state = 5) AND (konfigurace_experiment_slot_enable_5 = FALSE) THEN SysLogWrite("PRELEARNING_NEPOVOLENY_SLOT_" & Str(buffer_sloty_aktual_state)) GOTO cekani_potkan_akce ENDIF IF (buffer_sloty_aktual_state = 6) AND (konfigurace_experiment_slot_enable_6 = FALSE) THEN SysLogWrite("PRELEARNING_NEPOVOLENY_SLOT_" & Str(buffer_sloty_aktual_state)) GOTO cekani_potkan_akce ENDIF buffer_sloty_last_state = buffer_sloty_aktual_state LabelPre2.BackColor = Color.Background ' PRELEARNING - KROK 2 - CEKANI, ANALYZA POTKANI AKCE STOP LabelPre3.BackColor = Color.Green AparaturaNastavPitko(buffer_sloty_aktual_state) Pauza(3) LabelPre3.BackColor = Color.Background Label1.BackColor = Color.Green Pauza(konfigurace_prelearning_cas_piti) Label1.BackColor = Color.Background prelearning_reset: LabelPre5.BackColor = Color.Green AparaturaReset() Pauza(3) LabelPre5.BackColor = Color.Background IF konfigurace_prelearning_pauza = TRUE THEN ChkPrePauza.BackColor = Color.Green Pauza(konfigurace_prelearning_cas_dalsi_ciklus) ChkPrePauza.BackColor = Color.Background ENDIF tmp_cyklus = tmp_cyklus + 1 WEND tmp_cyklus = 0 stav_sloty = 0 SysLogWrite("PRELEARNING_KONEC") ELSE IF mod_idx = 1 THEN tmp_cyklus = 0 stav_sloty = 0 tmp_stimul_idx = 0 STOP_State = FALSE tmp_mils = 0 ExpLogInit() Pauza(5) ExpLogWrite("EXPERIMENT_START") SysLogWrite("EXPERIMENT_START") WHILE (tmp_cyklus < konfigurace_pocet_cyklu) AND (STOP_State = FALSE) TimerExperimentMils.Enabled = TRUE exp_genstim: ExpLogWrite("EXPERIMENT_ZACATEK_CYKLU: " & tmp_cyklus) IF konfigurace_experiment_nahoda = TRUE THEN tmp_stimul_idx = Rnd(1, 7) ExpLogWrite("EXPERIMENT_NAHODNY_STIMUL: " & tmp_stimul_idx) ELSE IF tmp_stimul_idx = 6 THEN tmp_stimul_idx = 0 tmp_stimul_idx = tmp_stimul_idx + 1 ExpLogWrite("EXPERIMENT_LINEARNI_VYBER_STIMULU: " & tmp_stimul_idx) ENDIF IF (tmp_stimul_last = tmp_stimul_idx) AND (konfigurace_experiment_neopakovat = TRUE) THEN ExpLogWrite("EXPERIMENT_OPAKOVANI_STIMULU: " & tmp_stimul_idx & " GENERUJI_NOVY") GOTO exp_genstim ENDIF tmp_stimul_last = tmp_stimul_idx IF (konfigurace_experiment_slot_enable_1 = FALSE) AND (tmp_stimul_idx = 1) THEN ExpLogWrite("EXPERIMENT_STIMUL: " & tmp_stimul_idx & " ZAKAZAN, GENERUJI_NOVY") GOTO exp_genstim ENDIF IF (konfigurace_experiment_slot_enable_2 = FALSE) AND (tmp_stimul_idx = 2) THEN ExpLogWrite("EXPERIMENT_STIMUL: " & tmp_stimul_idx & " ZAKAZAN, GENERUJI_NOVY") GOTO exp_genstim ENDIF IF (konfigurace_experiment_slot_enable_3 = FALSE) AND (tmp_stimul_idx = 3) THEN ExpLogWrite("EXPERIMENT_STIMUL: " & tmp_stimul_idx & " ZAKAZAN, GENERUJI_NOVY") GOTO exp_genstim ENDIF IF (konfigurace_experiment_slot_enable_4 = FALSE) AND (tmp_stimul_idx = 4) THEN ExpLogWrite("EXPERIMENT_STIMUL: " & tmp_stimul_idx & " ZAKAZAN, GENERUJI_NOVY") GOTO exp_genstim ENDIF IF (konfigurace_experiment_slot_enable_5 = FALSE) AND (tmp_stimul_idx = 5) THEN ExpLogWrite("EXPERIMENT_STIMUL: " & tmp_stimul_idx & " ZAKAZAN, GENERUJI_NOVY") GOTO exp_genstim ENDIF IF (konfigurace_experiment_slot_enable_6 = FALSE) AND (tmp_stimul_idx = 6) THEN ExpLogWrite("EXPERIMENT_STIMUL: " & tmp_stimul_idx & " ZAKAZAN, GENERUJI_NOVY") GOTO exp_genstim ENDIF Label23.Text = tmp_stimul_idx ExpLogWrite("EXPERIMENT_ZOBRAZENI_STIMULU: " & tmp_stimul_idx) ExperimentPicture.Picture = Picture.Load("/ratbox/stimuls/" & tmp_stimul_idx & ".bmp") Form1.stimul("/ratbox/stimuls/" & tmp_stimul_idx & ".bmp") WAIT IF konfigurace_experiment_casovani = TRUE THEN IF tmp_stimul_idx = 1 THEN ExpLogWrite("EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_casovani_s1) Label26.BackColor = Color.Green Pauza(konfigurace_experiment_casovani_s1) Label26.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 2 THEN ExpLogWrite("EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_casovani_s2) Label27.BackColor = Color.Green Pauza(konfigurace_experiment_casovani_s2) Label27.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 3 THEN ExpLogWrite("EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_casovani_s3) Label28.BackColor = Color.Green Pauza(konfigurace_experiment_casovani_s3) Label28.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 4 THEN ExpLogWrite("EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_casovani_s4) Label29.BackColor = Color.Green Pauza(konfigurace_experiment_casovani_s4) Label29.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 5 THEN ExpLogWrite("EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_casovani_s5) Label30.BackColor = Color.Green Pauza(konfigurace_experiment_casovani_s5) Label30.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 6 THEN ExpLogWrite("EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_casovani_s6) Label31.BackColor = Color.Green Pauza(konfigurace_experiment_casovani_s6) Label31.BackColor = Color.Background ENDIF ELSE Label12.BackColor = Color.Green ExpLogWrite("EXPERIMENT_CAS_ZOBRAZENI_STIMULU: " & konfigurace_experiment_cas_zobrazeni_stimulu) Pauza(konfigurace_experiment_cas_zobrazeni_stimulu) Label12.BackColor = Color.Background ENDIF IF konfigurace_experiment_vypni_stimul = TRUE THEN ChkZhasniStimul.BackColor = Color.Green ExpLogWrite("EXPERIMENT_ZHASNUTI_STIMULU") Form1.stimul("/ratbox/stimuls/clear.bmp") ExperimentPicture.Picture = Picture.Load("/ratbox/stimuls/clear.bmp") ChkZhasniStimul.BackColor = Color.Background ENDIF IF konfigurace_experiment_vypni_stimul_pauza_enable = TRUE THEN Label13.BackColor = Color.Green ExpLogWrite("EXPERIMENT_CAS_BEZ_STIMULU: " & konfigurace_experiment_cas_zhasnuteho_stimulu) Pauza(konfigurace_experiment_cas_zhasnuteho_stimulu) Label13.BackColor = Color.Background ENDIF ExpLogWrite("EXPERIMENT_OTEVRENI_DVERI") LabelPre6.BackColor = Color.Green AparaturaOtevriDvere() Pauza(3) ExpLogWrite("EXPERIMENT_DVERE_OTEVRENY") LabelPre6.BackColor = Color.Background LabelPre7.BackColor = Color.Green stav_sloty = 0 InputBlock = FALSE ExpLogWrite("EXPERIMENT_CEKANI_NA_REAKCI_POTKANA") TimeoutCountingStart() WHILE (stav_sloty = 0) AND (konfigurace_timeout > buffer_timeout) WAIT WEND TimeoutCountingStop() LabelPre7.BackColor = Color.Background buffer_sloty_aktual_state = stav_sloty stav_sloty = 0 IF buffer_sloty_aktual_state = 0 THEN ExpLogWrite("EXPERIMENT_TIMEOUT") GOTO exp_reset ENDIF ExpLogWrite("EXPERIMENT_REAKCE_POTKANA: " & buffer_sloty_aktual_state) IF buffer_sloty_aktual_state <> tmp_stimul_idx THEN ExpLogWrite("EXPERIMENT_POKTKAN_SPATNA_VOLBA: " & buffer_sloty_aktual_state & " ,OCEKAVANO: " & tmp_stimul_idx) GOTO exp_reset ENDIF IF buffer_sloty_aktual_state = tmp_stimul_idx THEN ExpLogWrite("EXPERIMENT_POTKAN_SPRAVNA_VOLBA: " & buffer_sloty_aktual_state) ExpLogWrite("EXPERIMENT_NASTAVUJI_PITKO: " & tmp_stimul_idx) LabelPre8.BackColor = Color.Green AparaturaNastavPitko(tmp_stimul_idx) Pauza(3) LabelPre8.BackColor = Color.Background ExpLogWrite("EXPERIMENT_PAUZA_NA_PITI: " & konfigurace_experiment_cas_piti) Label36.BackColor = Color.Green Pauza(konfigurace_experiment_cas_piti) Label36.BackColor = Color.Background ENDIF exp_reset: ExpLogWrite("EXPERIMENT_RESET_APARATURY") Label20.BackColor = Color.Green AparaturaReset() Pauza(3) Label20.BackColor = Color.Background IF konfigurace_experiment_cas_dalsi_ciklus > 0 THEN ExpLogWrite("EXPERIMENT_PAUZA_PRED_DALSIM_CYKLEM: " & konfigurace_experiment_cas_dalsi_ciklus) Label25.BackColor = Color.Green Pauza(konfigurace_experiment_cas_dalsi_ciklus) Label25.BackColor = Color.Background ENDIF ExpLogWrite("EXPERIMENT_KONEC_CYKLU: " & tmp_cyklus) tmp_cyklus = tmp_cyklus + 1 WEND ExpLogWrite("EXPERIMENT_KONEC") SysLogWrite("EXPERIMENT_KONEC") TimerExperimentMils.Enabled = FALSE ENDIF END PUBLIC SUB TimeoutCountingStop() TmrTimeout.Enabled = FALSE buffer_timeout = 0 END PUBLIC SUB TimeoutCountingStart() buffer_timeout = 0 TmrTimeout.Enabled = TRUE END PUBLIC SUB TmrTimeout_Timer() IF (buffer_timeout + 1) > konfigurace_timeout THEN TmrTimeout.Enabled = FALSE buffer_timeout = buffer_timeout + 1 TxtInfoTimeout.Text = Str(buffer_timeout) PosliInfo() WAIT END PUBLIC SUB BtnPreStop_Click() STOP_State = TRUE SysLogWrite("UZIVATELSKE_UKONCENI_CYKLU") END PUBLIC SUB BtnExpFull_Click() IF mod_idx = 0 THEN BtnMod_Click() FMain.Visible = FALSE Form1.FullScreen = TRUE Form1.Visible = TRUE Form1.stimul("/ratbox/stimuls/clear.bmp") END PUBLIC SUB BtnKonfUloz_Click() DIM i AS Integer DIM kontrola AS Boolean kontrola = FALSE IF Len(TxtKonfigNazev.Text) = 0 THEN ErrLogWrite("Ukladani_profilu_nulova_velikost_nazvu") Message("Zadejte nazev profilu 1 - 16 znaku, pouze cisla a pismena....") GOTO Konec ENDIF IF Len(TxtKonfigNazev.Text) > 16 THEN ErrLogWrite("Ukladani_profilu_moc_dlouhy_nazev") ErrLogWrite("Ukladani_profilu_nazev: " & TxtKonfigNazev.Text) ErrLogWrite("Ukladani_profilu_nazev_delka: " & Str(Len(TxtKonfigNazev.Text))) Message("Moc dlouhy nazev profilu. Pouze 1 - 16 znaku, pouze cisla a pismena....") TxtKonfigNazev.text = "" GOTO Konec ENDIF kontrola = TRUE FOR i = 0 TO Len(TxtKonfigNazev.Text) - 1 IF ((Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) < 58) AND (Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) > 47)) OR ((Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) < 91) AND (Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) > 64)) OR ((Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) < 123) AND (Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) > 96)) THEN ELSE kontrola = FALSE ENDIF NEXT IF kontrola = FALSE THEN ErrLogWrite("Ukladani_profilu_nepovoleny_znak_nazev_: " & TxtKonfigNazev.Text) FOR i = 0 TO Len(TxtKonfigNazev.Text) - 1 IF ((Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) < 58) AND (Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) > 47)) OR ((Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) < 91) AND (Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) > 64)) OR ((Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) < 123) AND (Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) > 96)) THEN ELSE ErrLogWrite("Znak-KO ASCII CODE: " & Mid(TxtKonfigNazev.Text, i + 1, 1) & " " & Asc(Mid(TxtKonfigNazev.Text, i + 1, 1)) & " POZICE: " & i + 1) ENDIF NEXT Message("Nazev_profilu_obsahuje_nepovoleny_znak.Pouze 1 - 16 znaku, pouze cisla a pismena....") GOTO Konec ENDIF SysLogWrite("Ukladani_uzivatelskeho_profilu: " & TxtKonfigNazev.Text) UlozUserCfg(TxtKonfigNazev.Text) CfgList() Konec: CfgList() TxtKonfigNazev.Text = "" END SUB CfgList() DIM File AS String ListBox1.Clear SysLogWrite("Obnoveni_seznamu_profilu...") FOR EACH File IN Dir("/ratbox/konfigurace/", "*.rbconf") ListBox1.Add(Mid(File, 1, Len(File) - 7)) NEXT END PUBLIC SUB Button1_Click() CfgList() END PUBLIC SUB ListBox1_Select() TxtKonfigNazev.Text = ListBox1.Text END PUBLIC SUB BtnSmazKonfiguraci_Click() DIM CfgName AS String CfgName = TxtKonfigNazev.Text SysLogWrite("Smazani_uzivatelskeho_profilu: " & CfgName) IF Exist("/ratbox/konfigurace/" & CfgName & ".rbconf") = FALSE THEN Message("Profil: " & CfgName & " neexistuje a proto nemuze byt smazan....") ErrLogWrite("SMAZANI_PROFILU: CHYBA - PROFIL NEEXISTUJE") CfgList() ELSE IF Message.Warning("Profil: " & CfgName & " bude nenavratne smazan. Opravdu SMAZAT ?", "NE", "ANO") = 2 THEN SHELL ("rm /ratbox/konfigurace/" & CfgName & ".rbconf") FINALLY IF ERROR THEN ErrLogWrite("Chyba pri mazani profilu: " & "/ratbox/konfigurace/" & CfgName & ".rbconf " & Error.Text) Message("Chyba pri mazani profilu: " & CfgName) ENDIF CfgList() Message("Profil: " & CfgName & " byl uspesne smazan....") SysLogWrite("Profil: " & CfgName & "smazan...") ELSE SysLogWrite("Smazani_profilu: " & CfgName & " stornovano..") ENDIF ENDIF CfgList() TxtKonfigNazev.text = "" END PUBLIC SUB BtnNahrajKonfiguraci_Click() IF Len(TxtKonfigNazev.text) = 0 THEN Message("Vyberte profil - klikem v seznamu vedle") GOTO nahrajkonec ENDIF IF Exist("/ratbox/konfigurace/" & TxtKonfigNazev.Text & ".rbconf") = FALSE THEN Message("Soubor profilu: " & TxtKonfigNazev.Text & " nenalezen") TxtKonfigNazev.Text = "" GOTO nahrajkonec ELSE UserCfgLoad(TxtKonfigNazev.Text) ENDIF nahrajkonec: CfgList() TxtKonfigNazev.Text = "" END SUB UserCfgLoad(CfgProfil AS String) DIM linc AS Integer DIM lin AS String DIM arr_strings AS String[] SysLogWrite("OBNOVENI_PARAMETRU_Z_PROFILU: " & CfgProfil) IF Exist("/ratbox/konfigurace/" & CfgProfil & ".rbconf") = FALSE THEN Message("Soubor profilu: " & "/ratbox/konfigurace/" & CfgProfil & ".rbconf" & " je neplatny !!") ENDIF arr_strings = Split(File.LOAD("/ratbox/konfigurace/" & CfgProfil & ".rbconf"), "\n") FINALLY IF ERROR THEN ErrLogWrite("Chyba pri nahravani profilu: " & "/ratbox/konfigurace/" & CfgProfil & ".rbconf " & Error.Text) Message("Chyba pri nahravani profilu: " & "/ratbox/konfigurace/" & CfgProfil & ".rbconf") ENDIF FOR EACH lin IN arr_strings lin = arr_strings[linc] IF linc = 1 THEN TxtCommPort.text = lin IF linc = 2 THEN TxtPocetCiklu.Text = lin IF linc = 3 THEN TxtTimeout.Text = lin IF (linc = 4) AND (lin = "True") THEN ChkTimeout.Value = TRUE IF (linc = 4) AND (lin = "False") THEN ChkTimeout.Value = FALSE IF linc = 5 THEN TxtPreCasPiti.Text = lin IF linc = 6 THEN TxtPrePauza.Text = lin IF (linc = 7) AND (lin = "True") THEN ChkPrePauza.Value = TRUE IF (linc = 7) AND (lin = "False") THEN ChkPrePauza.Value = FALSE IF (linc = 8) AND (lin = "True") THEN ChkPreNeopakovat.Value = TRUE IF (linc = 8) AND (lin = "False") THEN ChkPreNeopakovat.Value = FALSE IF (linc = 9) AND (lin = "True") THEN ChkExpNahoda.Value = TRUE IF (linc = 9) AND (lin = "False") THEN ChkExpNahoda.Value = FALSE IF (linc = 10) AND (lin = "True") THEN ChkExpNeopakovat.Value = TRUE IF (linc = 10) AND (lin = "False") THEN ChkExpNeopakovat.Value = FALSE IF linc = 11 THEN ExperimentTxtTime0.Text = lin IF linc = 12 THEN ExperimentTxtTime3.Text = lin IF linc = 13 THEN ExperimentTxtTime1.Text = lin IF linc = 14 THEN ExperimentTxtTime2.Text = lin IF (linc = 15) AND (lin = "True") THEN ChkZhasniStimul.Value = TRUE IF (linc = 15) AND (lin = "False") THEN ChkZhasniStimul.Value = FALSE IF (linc = 16) AND (lin = "True") THEN ChkVypStimulPauza.Value = TRUE IF (linc = 16) AND (lin = "False") THEN ChkVypStimulPauza.Value = FALSE IF (linc = 17) AND (lin = "True") THEN ExpChkEnableTiming.Value = TRUE IF (linc = 17) AND (lin = "False") THEN ExpChkEnableTiming.Value = FALSE IF (linc = 18) AND (lin = "True") THEN ExpChkSTime.Value = TRUE IF (linc = 18) AND (lin = "False") THEN ExpChkSTime.Value = FALSE IF (linc = 19) AND (lin = "True") THEN ExpChkSTime2.Value = TRUE IF (linc = 19) AND (lin = "False") THEN ExpChkSTime2.Value = FALSE IF (linc = 20) AND (lin = "True") THEN ExpChkSTime3.Value = TRUE IF (linc = 20) AND (lin = "False") THEN ExpChkSTime3.Value = FALSE IF (linc = 21) AND (lin = "True") THEN ExpChkSTime4.Value = TRUE IF (linc = 21) AND (lin = "False") THEN ExpChkSTime4.Value = FALSE IF (linc = 22) AND (lin = "True") THEN ExpChkSTime5.Value = TRUE IF (linc = 22) AND (lin = "False") THEN ExpChkSTime5.Value = FALSE IF (linc = 23) AND (lin = "True") THEN ExpChkSTime6.Value = TRUE IF (linc = 23) AND (lin = "False") THEN ExpChkSTime6.Value = FALSE IF linc = 24 THEN ExpTxtS1Time.Text = lin IF linc = 25 THEN ExpTxtS2Time.Text = lin IF linc = 26 THEN ExpTxtS3Time.Text = lin IF linc = 27 THEN ExpTxtS4Time.Text = lin IF linc = 28 THEN ExpTxtS5Time.Text = lin IF linc = 29 THEN ExpTxtS6Time.Text = lin IF linc = 30 THEN mod_idx = Val(lin) IF (linc = 30) AND (lin = "0") THEN BtnMod.Text = "PreLearning" IF (linc = 30) AND (lin = "1") THEN BtnMod.Text = "Experiment" linc = linc + 1 NEXT SysLogWrite("PARAMETRY_PROFILU_NASTAVENY") END PUBLIC SUB PosliInfo() Form1.cyklusinfo("Cyklus:" & Str(tmp_cyklus + 1) & "/" & Str(konfigurace_pocet_cyklu) & " PauzaTMR:" & Str(buffer_casovac) & " TimeoutTMR:" & Str(buffer_timeout)) END PUBLIC SUB remstart() BtnPreStart_Click() END PUBLIC SUB TimerExperimentMils_Timer() tmp_mils = tmp_mils + 1 END