driver, firmware: Rm active report mode & cmd
This commit is contained in:
parent
85f81ee8e4
commit
cd3347798c
@ -11,14 +11,6 @@ async def enter_dfu_mode(kirdy: Kirdy):
|
||||
"""
|
||||
await kirdy.device.dfu()
|
||||
|
||||
async def active_report(kirdy: Kirdy):
|
||||
"""
|
||||
Configure Kirdy to actively report status to connected socket
|
||||
Press Ctrl + C to exit active report mode
|
||||
"""
|
||||
async for data in kirdy.report_mode():
|
||||
pp(data)
|
||||
|
||||
async def device_cfg(kirdy: Kirdy):
|
||||
"""
|
||||
Configure Kirdy's network and board specific transconductance settings.
|
||||
@ -127,7 +119,6 @@ async def main():
|
||||
await kirdy.wait_until_connected()
|
||||
|
||||
await ld_thermostat_cfg(kirdy)
|
||||
# await active_report(kirdy)
|
||||
# await device_cfg(kirdy)
|
||||
# await enter_dfu_mode(kirdy)
|
||||
|
||||
|
@ -25,7 +25,6 @@ class CmdList:
|
||||
SetIPSettings = _dt.ip_settings
|
||||
SetPdFinGain = _dt.f32
|
||||
SetPdTransconductance = _dt.f32
|
||||
SetActiveReportMode = _dt.bool
|
||||
GetHwRev = _dt.none
|
||||
GetStatusReport = _dt.none
|
||||
GetSettingsSummary = _dt.none
|
||||
@ -209,13 +208,6 @@ class Device:
|
||||
}
|
||||
)
|
||||
|
||||
async def set_active_report_mode(self, on):
|
||||
"""
|
||||
Set active report to be on. If it is on, Kirdy will send status report
|
||||
to the client socket according to the temperature polling rate set.
|
||||
"""
|
||||
return await self._send_cmd(self._cmd._target, self._cmd.SetActiveReportMode, on)
|
||||
|
||||
async def set_pd_mon_fin_gain(self, gain):
|
||||
"""
|
||||
Configure the photodiode monitor final analog front-end stage gain.
|
||||
@ -657,7 +649,6 @@ class Kirdy:
|
||||
self._event_loop = None
|
||||
|
||||
self._msg_queue_get_report = False
|
||||
self._report_mode_on = False
|
||||
self._state = State.disconnected
|
||||
|
||||
self.read_response_task, self.handler_task = None, None
|
||||
@ -675,7 +666,7 @@ class Kirdy:
|
||||
|
||||
def set_report_sig(self, sig):
|
||||
"""
|
||||
Connect a PyQt Signal to the active report output(dict). This should be configured before the session is started.
|
||||
Connect a PyQt Signal to the status report output(dict). This should be configured before the session is started.
|
||||
"""
|
||||
self._report_sig = sig
|
||||
|
||||
@ -749,30 +740,6 @@ class Kirdy:
|
||||
if not(self.connected()):
|
||||
await self.connected_event.wait()
|
||||
|
||||
async def report_mode(self):
|
||||
"""
|
||||
Enable and retrieve active report from Kirdy
|
||||
"""
|
||||
if self.connected():
|
||||
self._report_mode_on = True
|
||||
await self.device.set_active_report_mode(True)
|
||||
report = None
|
||||
|
||||
while self._report_mode_on:
|
||||
report = await self._report_queue.get()
|
||||
if not(isinstance(report, dict)):
|
||||
self.stop_active_report()
|
||||
else:
|
||||
yield report
|
||||
|
||||
if isinstance(report, dict):
|
||||
await self.device.set_active_report_mode(False)
|
||||
else:
|
||||
raise ConnectionError
|
||||
|
||||
def stop_report_mode(self):
|
||||
self._report_mode_on = False
|
||||
|
||||
def task_dispatcher(self, awaitable_fn):
|
||||
"""
|
||||
Enqueue a task to be handled by the handler.
|
||||
@ -859,9 +826,6 @@ class Kirdy:
|
||||
async def _read_response_handler(self):
|
||||
try:
|
||||
while True:
|
||||
if self._report_mode_on:
|
||||
response = await asyncio.wait_for(self._read_response(), self._timeout)
|
||||
else:
|
||||
response = await self._read_response()
|
||||
|
||||
if response["msg_type"] == 'HardReset':
|
||||
@ -891,9 +855,6 @@ class Kirdy:
|
||||
logging.warn("Read Response Handler experienced an error. Exiting.", exc_info=True)
|
||||
self._task_queue.put_nowait_overwrite(exec)
|
||||
self._int_msg_queue.put_nowait_overwrite(exec)
|
||||
if self._report_mode_on:
|
||||
self._report_mode_on = False
|
||||
self._report_queue.put_nowait_overwrite(TimeoutError)
|
||||
|
||||
async def _stop_handler(self):
|
||||
for task in asyncio.all_tasks():
|
||||
|
23
src/main.rs
23
src/main.rs
@ -77,7 +77,6 @@ fn main() -> ! {
|
||||
},
|
||||
};
|
||||
|
||||
let mut active_report: [bool; net::net::NUM_OF_SOCKETS] = [false; net::net::NUM_OF_SOCKETS];
|
||||
|
||||
let mut state = State::default();
|
||||
|
||||
@ -88,9 +87,7 @@ fn main() -> ! {
|
||||
loop {
|
||||
wd.feed();
|
||||
|
||||
if net::net::eth_poll_link_status_and_update_link_speed() {
|
||||
active_report = [false; net::net::NUM_OF_SOCKETS];
|
||||
}
|
||||
net::net::eth_poll_link_status_and_update_link_speed();
|
||||
|
||||
match state {
|
||||
State::LoadFlashSettings => {
|
||||
@ -166,23 +163,6 @@ fn main() -> ! {
|
||||
thermostat.power_down();
|
||||
}
|
||||
|
||||
net::net::for_each(|mut socket, id| {
|
||||
if net::net::eth_is_socket_active(socket, true) && net::net::eth_is_socket_connected(socket) {
|
||||
if active_report[id] {
|
||||
if net::net::eth_can_sock_send(socket) {
|
||||
net::cmd_handler::send_status_report(
|
||||
eth_data_buffer,
|
||||
&mut laser,
|
||||
&mut thermostat,
|
||||
&mut socket,
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
active_report[id] = false;
|
||||
}
|
||||
});
|
||||
|
||||
thermostat.start_tec_readings_conversion();
|
||||
}
|
||||
|
||||
@ -207,7 +187,6 @@ fn main() -> ! {
|
||||
&mut thermostat,
|
||||
&mut state,
|
||||
&mut device_settings,
|
||||
&mut active_report[id],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,6 @@ enum DeviceCmd {
|
||||
Reserved,
|
||||
GetHwRev,
|
||||
SetIPSettings,
|
||||
SetActiveReportMode,
|
||||
SetPdFinGain,
|
||||
SetPdTransconductance,
|
||||
GetStatusReport,
|
||||
@ -308,7 +307,6 @@ pub fn execute_cmd(
|
||||
thermostat: &mut Thermostat,
|
||||
state: &mut State,
|
||||
device_settings: &mut DeviceSettings,
|
||||
active_report: &mut bool,
|
||||
) {
|
||||
let mut cmd = TecSetICmd {
|
||||
json: TecSetICmdJson::default(),
|
||||
@ -358,20 +356,6 @@ pub fn execute_cmd(
|
||||
net::eth_poll_iface();
|
||||
*state = State::PrepareForDfu;
|
||||
}
|
||||
Some(DeviceCmd::SetActiveReportMode) => match cmd.json.data_bool {
|
||||
Some(val) => {
|
||||
send_response(buffer, ResponseEnum::Acknowledge, None, socket);
|
||||
*active_report = val;
|
||||
}
|
||||
None => {
|
||||
send_response(
|
||||
buffer,
|
||||
ResponseEnum::InvalidDatatype,
|
||||
Some(ERR_MSG_MISSING_DATA_BOOL),
|
||||
socket,
|
||||
);
|
||||
}
|
||||
},
|
||||
Some(DeviceCmd::SetPdFinGain) => match cmd.json.data_f32 {
|
||||
Some(val) => {
|
||||
send_response(buffer, ResponseEnum::Acknowledge, None, socket);
|
||||
|
Loading…
Reference in New Issue
Block a user