cmd_handler: Add new cmd to for commit hash
This commit is contained in:
parent
1b7f5bc3e4
commit
c2806aee27
@ -1,4 +1,4 @@
|
|||||||
use core::{fmt::Debug, marker::PhantomData};
|
use core::{fmt::Debug, marker::PhantomData, env};
|
||||||
|
|
||||||
use log::{debug, info};
|
use log::{debug, info};
|
||||||
use miniconf::{JsonCoreSlash, Tree};
|
use miniconf::{JsonCoreSlash, Tree};
|
||||||
@ -27,6 +27,7 @@ pub enum ResponseEnum {
|
|||||||
Settings,
|
Settings,
|
||||||
Report,
|
Report,
|
||||||
HwRev,
|
HwRev,
|
||||||
|
FirmwareRev,
|
||||||
Interval,
|
Interval,
|
||||||
Acknowledge,
|
Acknowledge,
|
||||||
InvalidDatatype,
|
InvalidDatatype,
|
||||||
@ -60,11 +61,33 @@ pub struct ResponseObj<'a> {
|
|||||||
json: Response<'a>,
|
json: Response<'a>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize, Serialize, Copy, Clone, Debug)]
|
||||||
|
pub struct FirmwareRevType<'a> {
|
||||||
|
msg_type: ResponseEnum,
|
||||||
|
firmware_rev: Option<&'a str>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for FirmwareRevType<'static> {
|
||||||
|
fn default() -> Self {
|
||||||
|
FirmwareRevType {
|
||||||
|
msg_type: ResponseEnum::Reserved,
|
||||||
|
firmware_rev: None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize, Serialize, Copy, Clone, Debug, Tree)]
|
||||||
|
pub struct FirmwareRevObj<'a> {
|
||||||
|
#[serde(borrow)]
|
||||||
|
json: FirmwareRevType<'a>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize, Copy, Clone, Default, Debug)]
|
#[derive(Deserialize, Serialize, Copy, Clone, Default, Debug)]
|
||||||
enum DeviceCmd {
|
enum DeviceCmd {
|
||||||
#[default]
|
#[default]
|
||||||
Reserved,
|
Reserved,
|
||||||
GetHwRev,
|
GetHwRev,
|
||||||
|
GetFirmwareRev,
|
||||||
SetIPSettings,
|
SetIPSettings,
|
||||||
SetPdFinGain,
|
SetPdFinGain,
|
||||||
SetPdTransconductance,
|
SetPdTransconductance,
|
||||||
@ -258,6 +281,20 @@ pub fn send_status_report(
|
|||||||
net::eth_send(buffer, num_bytes, *socket);
|
net::eth_send(buffer, num_bytes, *socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn send_firmware_rev(buffer: &mut [u8], socket: &mut SocketHandle){
|
||||||
|
let response = FirmwareRevObj {
|
||||||
|
json: FirmwareRevType {
|
||||||
|
msg_type: ResponseEnum::FirmwareRev,
|
||||||
|
firmware_rev: Some(env!("BUILD_REVISION")),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut num_bytes = response.get_json("/json", buffer).unwrap();
|
||||||
|
buffer[num_bytes] = b'\n';
|
||||||
|
num_bytes += 1;
|
||||||
|
net::eth_send(buffer, num_bytes, *socket);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn send_hw_rev(buffer: &mut [u8], hw_rev_o: &mut HWRev, socket: &mut SocketHandle) {
|
pub fn send_hw_rev(buffer: &mut [u8], hw_rev_o: &mut HWRev, socket: &mut SocketHandle) {
|
||||||
let hw_rev = HwRevObj {
|
let hw_rev = HwRevObj {
|
||||||
json: HwRevType {
|
json: HwRevType {
|
||||||
@ -395,6 +432,9 @@ pub fn execute_cmd(
|
|||||||
Some(DeviceCmd::GetHwRev) => {
|
Some(DeviceCmd::GetHwRev) => {
|
||||||
send_hw_rev(buffer, hw_rev, socket);
|
send_hw_rev(buffer, hw_rev, socket);
|
||||||
}
|
}
|
||||||
|
Some(DeviceCmd::GetFirmwareRev) => {
|
||||||
|
send_firmware_rev(buffer, socket);
|
||||||
|
}
|
||||||
Some(DeviceCmd::GetStatusReport) => {
|
Some(DeviceCmd::GetStatusReport) => {
|
||||||
send_status_report(buffer, laser, thermostat, socket);
|
send_status_report(buffer, laser, thermostat, socket);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user