-
Notifications
You must be signed in to change notification settings - Fork 0
/
signaling.py
203 lines (167 loc) · 9.37 KB
/
signaling.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#libraries
#my libraries
from logger import Logger
from simulation import Simulation
class Signaling():
Logger.log.debug("Instantiating {} class...".format(__qualname__))
def __init__(self, window, commander, config, logger, support):
Logger.log.debug('{} initializing....'.format(__name__))
self.window = window
self.config = config
self.logger = logger
self.log = Logger.log
self.support = support
self.simulation = Simulation(config=self.config, support = self.support, logger=self.logger)
self.commander = commander
self.startup_processes()
self.knob_values = 0
self.log.debug("{} init complete...".format(__name__))
# ***************************************************************************************
def startup_processes(self):
self.signaling()
# ***************************************************************************************
def signaling(self):
# primary and secondary gain encoders switches_value change
self.window.QDIAL_primary_gain.valueChanged.connect(self.qdial_gain_0_value_changed)
self.window.QDIAL_secondary_gain.valueChanged.connect(self.qdial_gain_1_value_changed)
# speed 1 and speed2 switches_value change
self.window.QDIAL_speed_0.valueChanged.connect(self.qdial_speed_0_value_changed)
self.window.QDIAL_speed_1.valueChanged.connect(self.qdial_speed_1_value_changed)
# changes logging level
self.window.PB_log_level.clicked.connect(self.commander.log_level_PB_changed)
# BUTTONS TO CHHANGE SHAPE OF SPEED OUTPUTS
self.window.BUTTON_speed0_sine.toggled.connect(
lambda: self.speed0_shapestate_change(self.window.BUTTON_speed0_sine))
self.window.BUTTON_speed0_square.toggled.connect(
lambda: self.speed0_shapestate_change(self.window.BUTTON_speed0_square))
self.window.BUTTON_speed0_triangle.toggled.connect(
lambda: self.speed0_shapestate_change(self.window.BUTTON_speed0_triangle))
self.window.BUTTON_speed1_sine.toggled.connect(
lambda: self.speed1_shapestate_change(self.window.BUTTON_speed1_sine))
self.window.BUTTON_speed1_square.toggled.connect(
lambda: self.speed1_shapestate_change(self.window.BUTTON_speed1_square))
self.window.BUTTON_speed1_triangle.toggled.connect(
lambda: self.speed1_shapestate_change(self.window.BUTTON_speed1_triangle))
# primary and secondary gain encoders slide pressed
self.window.QDIAL_primary_gain.sliderPressed.connect(self.primary_gain_dial_pressed)
self.window.QDIAL_secondary_gain.sliderPressed.connect(self.secondary_gain_dial_pressed)
# primary and secondary gain encoders slide pressed
self.window.QDIAL_primary_gain.sliderReleased.connect(self.primary_gain_dial_released)
self.window.QDIAL_secondary_gain.sliderReleased.connect(self.secondary_gain_dial_released)
# primary and secondary gain encoders slide pressed
self.window.QDIAL_speed_0.sliderPressed.connect(self.speed_0_dial_pressed)
self.window.QDIAL_speed_1.sliderPressed.connect(self.speed_1_dial_pressed)
# primary and secondary gain encoders slide pressed
self.window.QDIAL_speed_0.sliderReleased.connect(self.speed_0_dial_released)
self.window.QDIAL_speed_1.sliderReleased.connect(self.speed_1_dial_released)
#push button manual gpio pin toggle
self.window.PB_gpio_manual_toggle.toggled.connect(self.gpio_manual_toggled)
#push button manual chip select
self.window.PB_chip_select_manual_toggle.toggled.connect(self.commander.manual_chip_select_toggled)
# set brightness switches_value
self.window.SPIN_brightness.valueChanged.connect(self.commander.brightness_changed)
# set gain lock
self.window.CHK_gain_lock_percent.stateChanged.connect(self.commander.gains_lock)
#duty cycle change
self.window.SLIDER_duty_cycle.valueChanged.connect(self.commander.SLIDER_duty_cycle_changed)
#hidden security button clicked
self.window.PB_security.clicked.connect(self.commander.security_pressed)
#spi log clear
self.window.PB_spi_log_pause.clicked.connect(self.commander.PB_spi_log_pause)
# shutdown button
self.window.PB_close.clicked.connect(self.commander.shutdown)
# ***************************************************************************************
def speed0_shapestate_change(self, button):
freq_shape = None
self.log.info("SPEED 0 button pushed:{}".format(button.text()))
if button.text() == "SINE":
freq_shape = 0
if button.text() == "SQUARE":
freq_shape = 1
if button.text() == "TRIANGLE":
freq_shape = 2
name ="SPEED0"
self.commander.speed_buttonstate_change(name, freq_shape)
# ***************************************************************************************
def speed1_shapestate_change(self, button):
freq_shape = None
self.log.info("SPEED 1 button pushed{}".format(button.text()))
if button.text() == "SINE":
freq_shape = 0
if button.text() == "SQUARE":
freq_shape = 1
if button.text() == "TRIANGLE":
freq_shape = 2
name ="SPEED1"
self.commander.speed_buttonstate_change(name, freq_shape)
# ***************************************************************************************
def gpio_manual_toggled(self, value):
self.commander.gpio_manual_toggled(value)
# ***************************************************************************************
def qdial_speed_0_value_changed(self, value):
self.log.debug("Qdial Speed 0 changed:{}".format(value))
ret_pins = self.simulation.speed_0_value_changed(value)
self.commander.speed_simulate('SPEED0', ret_pins)
# ***************************************************************************************
def qdial_speed_1_value_changed(self, value):
self.log.debug("Qdial Speed 1 changed:{}".format(value))
ret_pins = self.simulation.speed_1_value_changed(value)
self.commander.speed_simulate('SPEED1', ret_pins)
# ***************************************************************************************
def qdial_gain_0_value_changed(self, value):
self.log.debug("Qdial Gain 0 changed:{}".format(value))
ret_pins = self.simulation.gain_0_value_changed(value)
self.commander.gain_simulate('GAIN0', ret_pins)
# ***************************************************************************************
def qdial_gain_1_value_changed(self, value):
self.log.debug("Qdial Gain 1 changed:{}".format(value))
ret_pins = self.simulation.gain_1_value_changed(value)
self.commander.gain_simulate('GAIN1', ret_pins)
# ************************************************************************************
# CATCHES SPEED 0 KNOB pressed
def speed_0_dial_pressed(self):
self.log.debug('Speed 0 GUI knob PRESSED')
self.modifyBit(self.knob_values, 2, 1)
# ************************************************************************************
# CATCHES SPEED 0 KNOB released
def speed_0_dial_released(self):
self.log.debug('Speed 0 GUI knob RELEASED')
self.modifyBit(self.knob_values, 2, 0)
# ************************************************************************************
# CATCHES SPEED 1 KNOB PUSHED
def speed_1_dial_pressed(self):
self.log.debug('Speed 1 GUI knob PRESSED')
self.modifyBit(self.knob_values, 3, 1)
# ************************************************************************************
# CATCHES SPEED 1 KNOB released
def speed_1_dial_released(self):
self.log.debug('Speed 1 GUI knob RELEASED')
self.modifyBit(self.knob_values, 3, 0)
# ************************************************************************************
# CATCHES PRIMARY KNOB PUSHED
def primary_gain_dial_pressed(self):
self.log.debug('Primary Gain GUI knob PRESSED')
self.modifyBit(self.knob_values, 0, 1)
# ************************************************************************************
# CATCHES PRIMARY KNOB PUSHED
def primary_gain_dial_released(self):
self.log.debug('Primary Gain GUI knob RELEASED')
self.modifyBit(self.knob_values, 0, 0)
# ************************************************************************************
# CATCHES SECONDARY KNOB PUSHED
def secondary_gain_dial_pressed(self):
self.log.debug('Secondary Gain GUI knob RELEASED')
self.modifyBit(self.knob_values, 1, 1)
# ************************************************************************************
# CATCHES SECONDARY KNOB released
def secondary_gain_dial_released(self):
self.log.debug('Secondary Gain GUI knob RELEASED')
self.modifyBit(self.knob_values, 1, 0)
# ************************************************************************************
# Returns modified n.
def modifyBit(self, n, p, b):
mask = 1 << p
self.knob_values = (n & ~mask) | ((b << p) & mask)
self.log.debug("ModifyBits switches_value {:08b}".format(self.knob_values))
self.commander.knob_values = self.knob_values
#self.commander.switches_callback_change_value(0)