' 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_vypni_stimul_prereset AS Boolean PUBLIC konfigurace_experiment_vypni_stimul_poakci 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 pre_stat_ciklus AS Integer PUBLIC pre_stat_ciklus_real AS Integer PUBLIC pre_stat_timeout AS Integer PUBLIC pre_stat_opakovani AS NEW Integer[7] PUBLIC pre_stat_zakazano AS NEW Integer[7] PUBLIC pre_stat_aktivita AS NEW Integer[7] PUBLIC exp_stat_ciklus AS Integer PUBLIC exp_stat_ciklus_real AS Integer PUBLIC exp_stat_timeout AS Integer PUBLIC exp_stat_opakovani AS NEW Integer[7] PUBLIC exp_stat_zakazano AS NEW Integer[7] PUBLIC exp_stat_aktivita AS NEW Integer[7] PUBLIC exp_stat_souhrn AS NEW Integer[7, 7] 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_casovac_milis AS Integer PUBLIC status_casovac_milis 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 ExpLogName AS String PUBLIC PreLogName AS String PUBLIC TimeoutOpakReset AS Boolean PUBLIC SUB PreStatInit() DIM i AS Integer pre_stat_ciklus = 0 pre_stat_ciklus_real = 0 pre_stat_timeout = 0 FOR i = 0 TO 6 pre_stat_opakovani[i] = 0 pre_stat_zakazano[i] = 0 pre_stat_aktivita[i] = 0 NEXT END PUBLIC SUB ExpStatInit() DIM i, x AS Integer pre_stat_ciklus = 0 pre_stat_ciklus_real = 0 pre_stat_timeout = 0 FOR i = 0 TO 6 pre_stat_opakovani[i] = 0 pre_stat_zakazano[i] = 0 pre_stat_aktivita[i] = 0 NEXT FOR i = 0 TO 6 FOR x = 0 TO 6 exp_stat_souhrn[x, i] = 0 NEXT NEXT END PUBLIC SUB Form_Open() IF Exist("/ratbox/system/logo.png") = TRUE THEN PictureLogo1.Picture = Picture.Load("/ratbox/system/logo.png") ENDIF 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/" & ExpLogName) = TRUE THEN SysLogFile = OPEN "/ratbox/log/" & ExpLogName FOR APPEND PRINT #SysLogFile, Str(tmp_mils * 10) & ";" & udalost Form1.loginfo(Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & udalost) SysLogFile.Close ENDIF END PUBLIC SUB PreLogWrite(Udalost AS String) DIM SysLogFile AS File IF Exist("/ratbox/log/" & PreLogName) = TRUE THEN SysLogFile = OPEN "/ratbox/log/" & PreLogName FOR APPEND PRINT #SysLogFile, Str(tmp_mils * 10) & ";" & udalost Form1.loginfo(Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & udalost) SysLogFile.Close ENDIF END PUBLIC SUB PreStatWrite() DIM zakazane AS Integer DIM opakovani AS Integer DIM aktivity AS Integer DIM i AS Integer DIM SysLogFile AS File IF Exist("/ratbox/log/" & PreLogName) = TRUE THEN Form1.loginfo(Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & "GENERUJI_ZAPISUJI_STATISTIKU") SysLogFile = OPEN "/ratbox/log/" & PreLogName FOR APPEND PRINT #SysLogFile, "----------------------------------------------------------------------------" PRINT #SysLogFile, "CELKOVY_POCET_CYKLU: " & pre_stat_ciklus PRINT #SysLogFile, "CELKOVY_POCET_USPESNYCH_CYKLU (PITI): " & pre_stat_ciklus_real PRINT #SysLogFile, "CELKOVY_POCET_TIMEOUTU: " & pre_stat_timeout FOR i = 1 TO 6 aktivity = aktivity + pre_stat_aktivita[i] NEXT FOR i = 1 TO 6 opakovani = opakovani + pre_stat_opakovani[i] NEXT FOR i = 1 TO 6 zakazane = zakazane + pre_stat_zakazano[i] NEXT PRINT #SysLogFile, "CELKOVY_POCET_AKTIVIT: " & aktivity PRINT #SysLogFile, "CELKOVY_POCET_OPAKOVANI: " & opakovani PRINT #SysLogFile, "CELKOVY_POCET_ZAKAZANI: " & zakazane PRINT #SysLogFile, "CELKOVY_POCET_AKTIVIT_PODROBNE: " & pre_stat_aktivita[1] & ";" & pre_stat_aktivita[2] & ";" & pre_stat_aktivita[3] & ";" & pre_stat_aktivita[4] & ";" & pre_stat_aktivita[5] & ";" & pre_stat_aktivita[6] PRINT #SysLogFile, "CELKOVY_POCET_OPAKOVANI_PODROBNE: " & pre_stat_opakovani[1] & ";" & pre_stat_opakovani[2] & ";" & pre_stat_opakovani[3] & ";" & pre_stat_opakovani[4] & ";" & pre_stat_opakovani[5] & ";" & pre_stat_opakovani[6] PRINT #SysLogFile, "CELKOVY_POCET_ZAKAZANI_PODROBNE: " & pre_stat_zakazano[1] & ";" & pre_stat_zakazano[2] & ";" & pre_stat_zakazano[3] & ";" & pre_stat_zakazano[4] & ";" & pre_stat_zakazano[5] & ";" & pre_stat_zakazano[6] SysLogFile.Close PreStatInit() ENDIF END PUBLIC SUB ExpStatWrite() DIM zakazane AS Integer DIM opakovani AS Integer DIM aktivity AS Integer DIM i, x AS Integer DIM SysLogFile AS File IF Exist("/ratbox/log/" & ExpLogName) = TRUE THEN Form1.loginfo(Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh:nn:ss") & "_" & "GENERUJI_ZAPISUJI_STATISTIKU") SysLogFile = OPEN "/ratbox/log/" & ExpLogName FOR APPEND PRINT #SysLogFile, "----------------------------------------------------------------------------" PRINT #SysLogFile, "CELKOVY_POCET_CYKLU: " & exp_stat_ciklus PRINT #SysLogFile, "CELKOVY_POCET_USPESNYCH_CYKLU (PITI): " & exp_stat_ciklus_real PRINT #SysLogFile, "CELKOVY_POCET_TIMEOUTU: " & exp_stat_timeout FOR i = 1 TO 6 aktivity = aktivity + exp_stat_aktivita[i] NEXT FOR i = 1 TO 6 opakovani = opakovani + exp_stat_opakovani[i] NEXT FOR i = 1 TO 6 zakazane = zakazane + exp_stat_zakazano[i] NEXT PRINT #SysLogFile, "CELKOVY_POCET_AKTIVIT: " & aktivity PRINT #SysLogFile, "CELKOVY_POCET_OPAKOVANI: " & opakovani PRINT #SysLogFile, "CELKOVY_POCET_ZAKAZANI: " & zakazane PRINT #SysLogFile, "CELKOVY_POCET_AKTIVIT_PODROBNE: " & exp_stat_aktivita[1] & ";" & exp_stat_aktivita[2] & ";" & exp_stat_aktivita[3] & ";" & exp_stat_aktivita[4] & ";" & exp_stat_aktivita[5] & ";" & exp_stat_aktivita[6] PRINT #SysLogFile, "CELKOVY_POCET_OPAKOVANI_PODROBNE: " & exp_stat_opakovani[1] & ";" & exp_stat_opakovani[2] & ";" & exp_stat_opakovani[3] & ";" & exp_stat_opakovani[4] & ";" & exp_stat_opakovani[5] & ";" & exp_stat_opakovani[6] PRINT #SysLogFile, "CELKOVY_POCET_ZAKAZANI_PODROBNE: " & exp_stat_zakazano[1] & ";" & exp_stat_zakazano[2] & ";" & exp_stat_zakazano[3] & ";" & exp_stat_zakazano[4] & ";" & exp_stat_zakazano[5] & ";" & exp_stat_zakazano[6] PRINT #SysLogFile, "---------------------------------------------------------------" PRINT #SysLogFile, "" PRINT #SysLogFile, "Souhrnna tabulka odpovedi:" PRINT #SysLogFile, "" PRINT #SysLogFile, "STIMUL: 1;2;3;4;5;6" PRINT #SysLogFile, "SLOT1: " & exp_stat_souhrn[1, 1] & ";" & exp_stat_souhrn[2, 1] & ";" & exp_stat_souhrn[3, 1] & ";" & exp_stat_souhrn[4, 1] & ";" & exp_stat_souhrn[5, 1] & ";" & exp_stat_souhrn[6, 1] PRINT #SysLogFile, "SLOT2: " & exp_stat_souhrn[1, 2] & ";" & exp_stat_souhrn[2, 2] & ";" & exp_stat_souhrn[3, 2] & ";" & exp_stat_souhrn[4, 2] & ";" & exp_stat_souhrn[5, 2] & ";" & exp_stat_souhrn[6, 2] PRINT #SysLogFile, "SLOT3: " & exp_stat_souhrn[1, 3] & ";" & exp_stat_souhrn[2, 3] & ";" & exp_stat_souhrn[3, 3] & ";" & exp_stat_souhrn[4, 3] & ";" & exp_stat_souhrn[5, 3] & ";" & exp_stat_souhrn[6, 3] PRINT #SysLogFile, "SLOT4: " & exp_stat_souhrn[1, 4] & ";" & exp_stat_souhrn[2, 4] & ";" & exp_stat_souhrn[3, 4] & ";" & exp_stat_souhrn[4, 4] & ";" & exp_stat_souhrn[5, 4] & ";" & exp_stat_souhrn[6, 4] PRINT #SysLogFile, "SLOT5: " & exp_stat_souhrn[1, 5] & ";" & exp_stat_souhrn[2, 5] & ";" & exp_stat_souhrn[3, 5] & ";" & exp_stat_souhrn[4, 5] & ";" & exp_stat_souhrn[5, 5] & ";" & exp_stat_souhrn[6, 5] PRINT #SysLogFile, "SLOT6: " & exp_stat_souhrn[1, 6] & ";" & exp_stat_souhrn[2, 6] & ";" & exp_stat_souhrn[3, 6] & ";" & exp_stat_souhrn[4, 6] & ";" & exp_stat_souhrn[5, 6] & ";" & exp_stat_souhrn[6, 6] ' ExpStatInit() SysLogFile.Close ExpStatReset() ENDIF END PUBLIC SUB ExpStatReset() DIM i, x AS Integer exp_stat_ciklus = 0 exp_stat_ciklus_real = 0 exp_stat_timeout = 0 FOR i = 1 TO 6 exp_stat_aktivita[i] = 0 NEXT FOR i = 1 TO 6 exp_stat_opakovani[i] = 0 NEXT FOR i = 1 TO 6 exp_stat_zakazano[i] = 0 NEXT FOR x = 1 TO 6 FOR i = 1 TO 6 exp_stat_souhrn[x, i] = 0 NEXT NEXT END PUBLIC SUB ExpLogInit() DIM StatTMP AS String DIM SysLogFile AS File ExpLogName = Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh_nn_ss") & "E" & TxtExperimentID.Text & "S" & TxtSessionID.Text & "O" & TxtOjectID.Text & ".log" SysLogWrite("GENERUJI_LOG_EXPERIMENTU") IF Exist("/ratbox/log/" & ExpLogName) = TRUE THEN SHELL ("mv /ratbox/log/" & ExpLogName & " /ratbox/log/last_experiment.log.backup") SHELL ("touch /ratbox/log/" & ExpLogName) ELSE SHELL ("touch /ratbox/log/" & ExpLogName) ENDIF SysLogWrite("ZAPISUJI_HLAVICKU_LOGU_EXPERIMENTU") SysLogFile = OPEN "/ratbox/log/" & ExpLogName FOR APPEND PRINT #SysLogFile, "ZACATEK_DAT;28" PRINT #SysLogFile, "" PRINT #SysLogFile, "DATUM_EXPERIMENTU" & ";" & Format$(Now, "yyyy_mm_dd") & ";" & "CAS_EXPERIMENTU" & ";" & Format$(Now, "hh:nn:ss") PRINT #SysLogFile, "EXPERIMENT_ID" & ";" & TxtExperimentID.Text & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "SESSION_ID" & ";" & TxtSessionID.Text & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "OBJECT_ID" & ";" & TxtOjectID.Text & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "" PRINT #SysLogFile, "NASTAVENI_POCET_CYKLU" & ";" & konfigurace_pocet_cyklu & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_TIMEOUT_REAKCE" & ";" & konfigurace_timeout & ";" & "NULL" & ";" & "NULL" IF konfigurace_timeout_status = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_TIMEOUT_REAKCE_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_nahoda = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_NAHODA_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_neopakovat = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_NEOPAKOVAT_REAKCE_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_CAS_ZOBRAZENI_STIMULU" & ";" & konfigurace_experiment_cas_zobrazeni_stimulu & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_vypni_stimul = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_VYPNI_STIMUL_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_CAS_BEZ_STIMULU" & ";" & konfigurace_experiment_cas_zhasnuteho_stimulu & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_vypni_stimul_pauza_enable = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_CAS_BEZ_STIMULU_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_vypni_stimul_prereset = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_VYPNI_STIMUL_PRERESET" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_vypni_stimul_poakci = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_VYPNI_STIMUL_POAKCI" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_CAS_PITI" & ";" & konfigurace_experiment_cas_piti & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_PAUZA_MEZI_ZOBRAZENIMI" & ";" & konfigurace_experiment_cas_dalsi_ciklus & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_casovani = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_SEPARATANI_CASOVANI_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_slot_enable_1 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_CASOVANI_S1" & ";" & konfigurace_experiment_casovani_s1 & ";" & "SLOT_1_ENABLED" & ";" & StatTMP IF konfigurace_experiment_slot_enable_2 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_CASOVANI_S2" & ";" & konfigurace_experiment_casovani_s2 & ";" & "SLOT_2_ENABLED" & ";" & StatTMP IF konfigurace_experiment_slot_enable_3 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_CASOVANI_S3" & ";" & konfigurace_experiment_casovani_s3 & ";" & "SLOT_3_ENABLED" & ";" & StatTMP IF konfigurace_experiment_slot_enable_4 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_CASOVANI_S4" & ";" & konfigurace_experiment_casovani_s4 & ";" & "SLOT_4_ENABLED" & ";" & StatTMP IF konfigurace_experiment_slot_enable_5 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_CASOVANI_S5" & ";" & konfigurace_experiment_casovani_s5 & ";" & "SLOT_5_ENABLED" & ";" & StatTMP IF konfigurace_experiment_slot_enable_6 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_CASOVANI_S6" & ";" & konfigurace_experiment_casovani_s6 & ";" & "SLOT_6_ENABLED" & ";" & StatTMP PRINT #SysLogFile, "" PRINT #SysLogFile, "casova_osa(ms);parametr1;HODNOTA;parametr2;HODNOTA" PRINT #SysLogFile, "" SysLogFile.Close END PUBLIC SUB PreLogInit() DIM StatTMP AS String DIM SysLogFile AS File PreLogName = Format$(Now, "yyyy_mm_dd") & "_" & Format$(Now, "hh_nn_ss") & "_PreLearning_" & "E" & TxtExperimentID.Text & "S" & TxtSessionID.Text & "O" & TxtOjectID.Text & ".log" SysLogWrite("GENERUJI_LOG_PreLearningu") IF Exist("/ratbox/log/" & PreLogName) = TRUE THEN SHELL ("mv /ratbox/log/" & PreLogName & " /ratbox/log/last_prelearning.log.backup") SHELL ("touch /ratbox/log/" & PreLogName) ELSE SHELL ("touch /ratbox/log/" & PreLogName) ENDIF SysLogWrite("ZAPISUJI_HLAVICKU_LOGU_PreLearningu") SysLogFile = OPEN "/ratbox/log/" & PreLogName FOR APPEND PRINT #SysLogFile, "ZACATEK_DAT;28" PRINT #SysLogFile, "" PRINT #SysLogFile, "DATUM_PreLearningu" & ";" & Format$(Now, "yyyy_mm_dd") & ";" & "CAS_PreLearningu" & ";" & Format$(Now, "hh:nn:ss") PRINT #SysLogFile, "PreLearning_ID" & ";" & TxtExperimentID.Text & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "SESSION_ID" & ";" & TxtSessionID.Text & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "OBJECT_ID" & ";" & TxtOjectID.Text & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "" PRINT #SysLogFile, "NASTAVENI_POCET_CYKLU" & ";" & konfigurace_pocet_cyklu & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_TIMEOUT_REAKCE" & ";" & konfigurace_timeout & ";" & "NULL" & ";" & "NULL" IF konfigurace_timeout = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_TIMEOUT_REAKCE_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_prelearning_neopakovat = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "NASTAVENI_NEOPAKOVAT_REAKCE_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_CAS_DALSI_CYKLUS" & ";" & konfigurace_prelearning_cas_dalsi_ciklus & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "NASTAVENI_CAS_PITI" & ";" & konfigurace_prelearning_cas_piti & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_slot_enable_1 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "SLOT_1_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_slot_enable_2 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "SLOT_2_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_slot_enable_3 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "SLOT_3_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_slot_enable_4 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "SLOT_4_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_slot_enable_5 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "SLOT_5_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" IF konfigurace_experiment_slot_enable_6 = TRUE THEN StatTMP = "TRUE" ELSE StatTMP = "FALSE" ENDIF PRINT #SysLogFile, "SLOT_6_ENABLED" & ";" & StatTMP & ";" & "NULL" & ";" & "NULL" PRINT #SysLogFile, "" PRINT #SysLogFile, "casova_osa(ms);parametr1;HODNOTA;parametr2;HODNOTA" 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 PauzaMilis(cas AS Integer) IF status_casovac_milis = FALSE THEN status_casovac_milis = TRUE buffer_casovac_milis = 0 TimerMilis.Enabled = TRUE WHILE (cas / 10) > buffer_casovac_milis WAIT WEND buffer_casovac_milis = 0 TimerMilis.Enabled = FALSE TxtInfoCasovacMilis.text = Str(buffer_casovac) * 10 status_casovac_milis = FALSE ENDIF FINALLY IF ERROR THEN ErrLogWrite("NESYNCHRONI_UKONCENI - PauzaMilis() - " & 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") IF TestNastaveniExpCasu() = TRUE THEN UplatniParametry() VypisParametry() SysLogWrite("PARAMETRY_UPLATNENY") SysLogWrite("UKLADAM_ZAKLADNI_KONFIGURACI") UlozDefoult() SysLogWrite("ZAKLADNI_KONFIGURACE_ULOZENA") ELSE Message("! CHYBA ZADANEHO CASU: v rozliseni (ms) je minimalni hodnota 10") ENDIF 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") IF konfigurace_experiment_vypni_stimul_prereset = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_VYPNI_STIMUL_PRERESET: ZAPNUTO") IF konfigurace_experiment_vypni_stimul_prereset = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_VYPNI_STIMUL_PRERESET: VYPNUTO") IF konfigurace_experiment_vypni_stimul_poakci = TRUE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_VYPNI_STIMUL_POAKCI: ZAPNUTO") IF konfigurace_experiment_vypni_stimul_poakci = FALSE THEN SysLogWrite("KONFIGURACE_EXPERIMENT_VYPNI_STIMUL_POAKCI: 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_CYKLUS: " & 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() IF TestNastaveniExpCasu() = TRUE THEN 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_prereset = ChkZhasniStimulPreReset.Value konfigurace_experiment_vypni_stimul_poakci = ChkZhasniStimulPoAkci.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) TimeoutOpakReset = ChkTimeoutOpakReset.Value ELSE Message("! CHYBA ZADANEHO CASU: v rozliseni (ms) je minimalni hodnota 10") ENDIF 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) PRINT #DefKonfFile, TimeoutOpakReset PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul_prereset PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul_poakci WAIT DefKonfFile.Close END SUB UlozUserCfg(CfgName AS String) DIM DefKonfFile AS File UplatniParametry() 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 ErrLogWrite("CHYBA_PRI_ZAPISU_KONFIGURACE: " & Error.Text) Message("CHYBA_PRI_ZAPISU_KONFIGURACE") 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) PRINT #DefKonfFile, TimeoutOpakReset PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul_prereset PRINT #DefKonfFile, konfigurace_experiment_vypni_stimul_poakci 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" IF (linc = 31) AND (lin = "True") THEN ChkTimeoutOpakReset.Value = TRUE IF (linc = 31) AND (lin = "False") THEN ChkTimeoutOpakReset.Value = FALSE IF (linc = 32) AND (lin = "True") THEN ChkZhasniStimulPreReset.Value = TRUE IF (linc = 32) AND (lin = "False") THEN ChkZhasniStimulPreReset.Value = FALSE IF (linc = 33) AND (lin = "True") THEN ChkZhasniStimulPoAkci.Value = TRUE IF (linc = 33) AND (lin = "False") THEN ChkZhasniStimulPoAkci.Value = FALSE 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() DIM exp_souhrn_stimul AS Integer DIM exp_souhrn_odpoved AS Integer SysLogWrite("UPLATNUJI_PARAMETRY") UplatniParametry() VypisParametry() SysLogWrite("PARAMETRY_UPLATNENY") STOP_State = FALSE tmp_cyklus = 0 Pauza(5) IF mod_idx = 0 THEN PreLogInit() TimerExperimentMils.Enabled = TRUE PreStatInit() SysLogWrite("PRELEARNING_START") PreLogWrite("START" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") WHILE (tmp_cyklus < konfigurace_pocet_cyklu) AND (STOP_State = FALSE) PreLogWrite("CYKLUS" & ";" & tmp_cyklus & ";" & "NULL" & ";" & "NaN") ' PRELEARNING - KROK 1 - OTEVRENI DVERI START PreLogWrite("OTEVRENI_DVERI" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") LabelPre.BackColor = Color.Green AparaturaOtevriDvere() Pauza(3) LabelPre.BackColor = Color.Background PreLogWrite("DVERE_OTEVRENY" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") ' 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)) pre_stat_aktivita[buffer_sloty_aktual_state] = pre_stat_aktivita[buffer_sloty_aktual_state] + 1 IF buffer_sloty_aktual_state = 0 THEN SysLogWrite("PRELEARNING_TIMEOUT") PreLogWrite("TIMEOUT" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") IF TimeoutOpakReset = TRUE THEN buffer_sloty_last_state = 0 pre_stat_timeout = pre_stat_timeout + 1 GOTO prelearning_reset ENDIF IF (buffer_sloty_last_state = buffer_sloty_aktual_state) AND (konfigurace_prelearning_neopakovat = TRUE) THEN SysLogWrite("PRELEARNING_POTKAN_OPAKOVANI") PreLogWrite("OPAKOVANI" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") pre_stat_opakovani[buffer_sloty_last_state] = pre_stat_opakovani[buffer_sloty_last_state] + 1 LabelPre2.BackColor = Color.Red Pauza(1) LabelPre2.BackColor = Color.Background buffer_sloty_aktual_state = 0 GOTO cekani_potkan_akce ELSE PreLogWrite("AKTIVITA" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") ENDIF IF (buffer_sloty_aktual_state = 1) AND (konfigurace_experiment_slot_enable_1 = FALSE) THEN SysLogWrite("PRELEARNING_NEPOVOLENY_SLOT_" & Str(buffer_sloty_aktual_state)) PreLogWrite("NEPOVOLENY_SLOT" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") pre_stat_zakazano[1] = pre_stat_zakazano[1] + 1 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)) PreLogWrite("NEPOVOLENY_SLOT" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") pre_stat_zakazano[2] = pre_stat_zakazano[2] + 1 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)) PreLogWrite("NEPOVOLENY_SLOT" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") pre_stat_zakazano[3] = pre_stat_zakazano[3] + 1 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)) PreLogWrite("NEPOVOLENY_SLOT" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") pre_stat_zakazano[4] = pre_stat_zakazano[4] + 1 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)) PreLogWrite("NEPOVOLENY_SLOT" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") pre_stat_zakazano[5] = pre_stat_zakazano[5] + 1 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)) PreLogWrite("NEPOVOLENY_SLOT" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") pre_stat_zakazano[6] = pre_stat_zakazano[6] + 1 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 PreLogWrite("NASTAVUJI_PITKO" & ";" & Str(buffer_sloty_aktual_state) & ";" & "NULL" & ";" & "NaN") Label1.BackColor = Color.Green Pauza(konfigurace_prelearning_cas_piti) pre_stat_ciklus_real = pre_stat_ciklus_real + 1 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 pre_stat_ciklus = pre_stat_ciklus + 1 WEND tmp_cyklus = 0 stav_sloty = 0 PreLogWrite("KONEC" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") PreStatWrite() SysLogWrite("PRELEARNING_KONEC") TimerExperimentMils.Enabled = FALSE 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) ExpStatInit() ExpLogWrite("START" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") SysLogWrite("EXPERIMENT_START") WHILE (tmp_cyklus < konfigurace_pocet_cyklu) AND (STOP_State = FALSE) TimerExperimentMils.Enabled = TRUE exp_genstim: ExpLogWrite("CYKLUS" & ";" & tmp_cyklus & ";" & "NULL" & ";" & "NaN") IF konfigurace_experiment_nahoda = TRUE THEN tmp_stimul_idx = Rnd(1, 7) 'ExpLogWrite("NAHODNY_STIMUL" & ";" & tmp_stimul_idx & ";" & "NULL" & ";" & "NaN") ELSE IF tmp_stimul_idx = 6 THEN tmp_stimul_idx = 0 tmp_stimul_idx = tmp_stimul_idx + 1 ExpLogWrite("LINEARNI_STIMUL" & ";" & tmp_stimul_idx & ";" & "NULL" & ";" & "NaN") 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 exp_souhrn_stimul = tmp_stimul_idx ExpLogWrite("ZOBRAZENI_STIMULU" & ";" & tmp_stimul_idx & ";" & "NULL" & ";" & "NaN") 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("CAS_ZOBRAZENI_STIMULU" & ";" & (konfigurace_experiment_casovani_s1) & ";" & "NULL" & ";" & "NaN") Label26.BackColor = Color.Green PauzaMilis(konfigurace_experiment_casovani_s1) Label26.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 2 THEN ExpLogWrite("CAS_ZOBRAZENI_STIMULU" & ";" & (konfigurace_experiment_casovani_s2) & ";" & "NULL" & ";" & "NaN") Label27.BackColor = Color.Green PauzaMilis(konfigurace_experiment_casovani_s2) Label27.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 3 THEN ExpLogWrite("CAS_ZOBRAZENI_STIMULU" & ";" & (konfigurace_experiment_casovani_s3) & ";" & "NULL" & ";" & "NaN") Label28.BackColor = Color.Green PauzaMilis(konfigurace_experiment_casovani_s3) Label28.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 4 THEN ExpLogWrite("CAS_ZOBRAZENI_STIMULU" & ";" & (konfigurace_experiment_casovani_s4) & ";" & "NULL" & ";" & "NaN") Label29.BackColor = Color.Green PauzaMilis(konfigurace_experiment_casovani_s4) Label29.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 5 THEN ExpLogWrite("CAS_ZOBRAZENI_STIMULU" & ";" & (konfigurace_experiment_casovani_s5) & ";" & "NULL" & ";" & "NaN") Label30.BackColor = Color.Green PauzaMilis(konfigurace_experiment_casovani_s5) Label30.BackColor = Color.Background ENDIF IF tmp_stimul_idx = 6 THEN ExpLogWrite("CAS_ZOBRAZENI_STIMULU" & ";" & (konfigurace_experiment_casovani_s6) & ";" & "NULL" & ";" & "NaN") Label31.BackColor = Color.Green PauzaMilis(konfigurace_experiment_casovani_s6) Label31.BackColor = Color.Background ENDIF ELSE Label12.BackColor = Color.Green ExpLogWrite("CAS_ZOBRAZENI_STIMULU" & ";" & (konfigurace_experiment_cas_zobrazeni_stimulu) & ";" & "NULL" & ";" & "NaN") PauzaMilis(konfigurace_experiment_cas_zobrazeni_stimulu) Label12.BackColor = Color.Background ENDIF IF konfigurace_experiment_vypni_stimul = TRUE THEN ChkZhasniStimul.BackColor = Color.Green ExpLogWrite("ZHASNUTI_STIMULU" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") 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("CAS_ZHASLEHO_STIMULU" & ";" & (konfigurace_experiment_cas_zhasnuteho_stimulu) & ";" & "NULL" & ";" & "NaN") PauzaMilis(konfigurace_experiment_cas_zhasnuteho_stimulu) Label13.BackColor = Color.Background ENDIF ExpLogWrite("OTEVRENI_DVERI" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") LabelPre6.BackColor = Color.Green AparaturaOtevriDvere() Pauza(3) ExpLogWrite("DVERE_OTEVRENY" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") LabelPre6.BackColor = Color.Background LabelPre7.BackColor = Color.Green stav_sloty = 0 InputBlock = FALSE ExpLogWrite("CEKANI_REAKCE" & ";" & "NaN" & ";" & "TIMEOUT" & ";" & (konfigurace_timeout * 1000)) 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 konfigurace_experiment_vypni_stimul_poakci = TRUE THEN ChkZhasniStimulPoAkci.BackColor = Color.Green ExpLogWrite("ZHASNUTI_STIMULU" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") Form1.stimul("/ratbox/stimuls/clear.bmp") ExperimentPicture.Picture = Picture.Load("/ratbox/stimuls/clear.bmp") ChkZhasniStimulPoAkci.BackColor = Color.Background ENDIF IF buffer_sloty_aktual_state > 0 THEN exp_souhrn_odpoved = buffer_sloty_aktual_state exp_stat_souhrn[exp_souhrn_stimul, exp_souhrn_odpoved] = exp_stat_souhrn[exp_souhrn_stimul, exp_souhrn_odpoved] + 1 exp_stat_aktivita[buffer_sloty_aktual_state] = exp_stat_aktivita[buffer_sloty_aktual_state] + 1 ENDIF IF buffer_sloty_aktual_state = 0 THEN ExpLogWrite("TIMEOUT" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") exp_stat_timeout = exp_stat_timeout + 1 GOTO exp_reset ENDIF ExpLogWrite("REAKCE" & ";" & buffer_sloty_aktual_state & ";" & "OCEKAVANO" & ";" & tmp_stimul_idx) 'exp_stat_aktivita[buffer_sloty_aktual_state] = exp_stat_aktivita[buffer_sloty_aktual_state] + 1 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("PITKO" & ";" & tmp_stimul_idx & ";" & "NULL" & ";" & "NaN") exp_stat_ciklus_real = exp_stat_ciklus_real + 1 LabelPre8.BackColor = Color.Green AparaturaNastavPitko(tmp_stimul_idx) Pauza(3) LabelPre8.BackColor = Color.Background ExpLogWrite("CAS_PITI" & ";" & (konfigurace_experiment_cas_piti) & ";" & "NULL" & ";" & "NaN") Label36.BackColor = Color.Green PauzaMilis(konfigurace_experiment_cas_piti) Label36.BackColor = Color.Background ENDIF exp_reset: ExpLogWrite("RESET" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") Label20.BackColor = Color.Green IF konfigurace_experiment_vypni_stimul_prereset = TRUE THEN ChkZhasniStimulPreReset.BackColor = Color.Green ExpLogWrite("ZHASNUTI_STIMULU" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") Form1.stimul("/ratbox/stimuls/clear.bmp") ExperimentPicture.Picture = Picture.Load("/ratbox/stimuls/clear.bmp") ChkZhasniStimulPreReset.BackColor = Color.Background ENDIF ' RESET APARATURY AparaturaReset() Pauza(3) Label20.BackColor = Color.Background IF konfigurace_experiment_cas_dalsi_ciklus > 0 THEN ExpLogWrite("CAS_DALSI_CYKLUS" & ";" & (konfigurace_experiment_cas_dalsi_ciklus) & ";" & "NULL" & ";" & "NaN") Label25.BackColor = Color.Green PauzaMilis(konfigurace_experiment_cas_dalsi_ciklus) Label25.BackColor = Color.Background ENDIF ' ExpLogWrite("EXPERIMENT_KONEC_CYKLU: " & tmp_cyklus) exp_stat_ciklus = exp_stat_ciklus + 1 tmp_cyklus = tmp_cyklus + 1 WEND Form1.stimul("/ratbox/stimuls/clear.bmp") ExperimentPicture.Picture = Picture.Load("/ratbox/stimuls/clear.bmp") ExpLogWrite("KONEC" & ";" & "NaN" & ";" & "NULL" & ";" & "NaN") SysLogWrite("EXPERIMENT_KONEC") ExpStatWrite() 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" IF (linc = 31) AND (lin = "True") THEN ChkTimeoutOpakReset.Value = TRUE IF (linc = 31) AND (lin = "False") THEN ChkTimeoutOpakReset.Value = FALSE IF (linc = 32) AND (lin = "True") THEN ChkZhasniStimulPreReset.Value = TRUE IF (linc = 32) AND (lin = "False") THEN ChkZhasniStimulPreReset.Value = FALSE IF (linc = 33) AND (lin = "True") THEN ChkZhasniStimulPoAkci.Value = TRUE IF (linc = 33) AND (lin = "False") THEN ChkZhasniStimulPoAkci.Value = FALSE 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 PUBLIC FUNCTION TestNastaveniExpCasu() AS Boolean DIM test AS Boolean test = TRUE IF Val(ExpTxtS1Time.Text) < 10 THEN test = FALSE IF Val(ExpTxtS2Time.Text) < 10 THEN test = FALSE IF Val(ExpTxtS3Time.Text) < 10 THEN test = FALSE IF Val(ExpTxtS4Time.Text) < 10 THEN test = FALSE IF Val(ExpTxtS5Time.Text) < 10 THEN test = FALSE IF Val(ExpTxtS6Time.Text) < 10 THEN test = FALSE IF Val(ExperimentTxtTime0.Text) < 10 THEN test = FALSE IF Val(ExperimentTxtTime1.Text) < 10 THEN test = FALSE IF Val(ExperimentTxtTime2.Text) < 10 THEN test = FALSE IF Val(ExperimentTxtTime3.Text) < 10 THEN test = FALSE IF test = TRUE THEN RETURN TRUE ELSE RETURN FALSE ENDIF END PUBLIC SUB ExperimentTxtTime2_KeyPress() END PUBLIC SUB TimerMilis_Timer() buffer_casovac_milis = buffer_casovac_milis + 1 TxtInfoCasovacMilis.text = Str(buffer_casovac_milis) * 10 PosliInfo() WAIT END