3333from sportorg .gui .global_access import GlobalAccess
3434from sportorg .gui .utils .custom_controls import AdvComboBox , AdvSpinBox , AdvTimeEdit
3535from sportorg .language import translate
36- from sportorg .models .memory import race
36+ from sportorg .models .memory import race , SystemType
3737from sportorg .models .result .result_tools import recalculate_results
3838from sportorg .modules .sportident .sireader import SIReaderClient
3939
@@ -70,6 +70,22 @@ def init_ui(self):
7070 self .item_si_port .addItems (SIReaderClient ().get_ports ())
7171 self .tk_layout .addRow (self .label_si_port , self .item_si_port )
7272
73+ self .punch_system_box = QGroupBox (translate ("Punch system" ))
74+ self .punch_system_layout = QFormLayout ()
75+ self .punch_system_si = QRadioButton (translate ("SPORTident" ))
76+ self .punch_system_layout .addRow (self .punch_system_si )
77+ self .punch_system_sfr = QRadioButton (translate ("SFR" ))
78+ self .punch_system_layout .addRow (self .punch_system_sfr )
79+ self .punch_system_sportiduino = QRadioButton (translate ("Sportiduino (Clever)" ))
80+ self .punch_system_layout .addRow (self .punch_system_sportiduino )
81+ self .punch_system_impinj = QRadioButton (translate ("RFID Impinj" ))
82+ self .punch_system_layout .addRow (self .punch_system_impinj )
83+ self .punch_system_srpid = QRadioButton (translate ("SRPID" ))
84+ self .punch_system_layout .addRow (self .punch_system_srpid )
85+ self .punch_system_si .setChecked (True )
86+ self .punch_system_box .setLayout (self .punch_system_layout )
87+ self .tk_layout .addRow (self .punch_system_box )
88+
7389 self .chip_reading_box = QGroupBox (translate ("Assigning a chip when reading" ))
7490 self .chip_reading_layout = QFormLayout ()
7591 self .chip_reading_off = QRadioButton (translate ("Off" ))
@@ -443,6 +459,8 @@ def set_values_from_model(self):
443459 "ignore_punches_before_start" , False
444460 )
445461 si_port = cur_race .get_setting ("system_port" , "" )
462+ punch_system = cur_race .get_punch_system ()
463+
446464 readout_duplicate_timeout = OTime (
447465 msec = cur_race .get_setting ("readout_duplicate_timeout" , 15000 )
448466 )
@@ -451,6 +469,17 @@ def set_values_from_model(self):
451469
452470 self .item_si_port .setCurrentText (si_port )
453471
472+ if punch_system == SystemType .SFR :
473+ self .punch_system_sfr .setChecked (True )
474+ elif punch_system == SystemType .SPORTIDUINO :
475+ self .punch_system_sportiduino .setChecked (True )
476+ elif punch_system == SystemType .RFID_IMPINJ :
477+ self .punch_system_impinj .setChecked (True )
478+ elif punch_system == SystemType .SRPID :
479+ self .punch_system_srpid .setChecked (True )
480+ else :
481+ self .punch_system_si .setChecked (True )
482+
454483 if start_source == "protocol" :
455484 self .item_start_protocol .setChecked (True )
456485 elif start_source == "station" :
@@ -675,6 +704,17 @@ def apply_changes_impl(self):
675704
676705 obj .set_setting ("system_port" , self .item_si_port .currentText ())
677706
707+ if self .punch_system_sfr .isChecked ():
708+ obj .set_setting ("punch_system" , SystemType .SFR .value )
709+ elif self .punch_system_sportiduino .isChecked ():
710+ obj .set_setting ("punch_system" , SystemType .SPORTIDUINO .value )
711+ elif self .punch_system_impinj .isChecked ():
712+ obj .set_setting ("punch_system" , SystemType .RFID_IMPINJ .value )
713+ elif self .punch_system_srpid .isChecked ():
714+ obj .set_setting ("punch_system" , SystemType .SRPID .value )
715+ else :
716+ obj .set_setting ("punch_system" , SystemType .SPORTIDENT .value )
717+
678718 obj .set_setting ("system_start_source" , start_source )
679719 obj .set_setting ("system_finish_source" , finish_source )
680720 obj .set_setting ("system_missed_finish" , missed_finish )
0 commit comments