Nachkommastellen einschränken
This commit is contained in:
parent
7fb98b95f8
commit
79cbde6b4a
@ -46,14 +46,14 @@ pub fn start_modbus_polling_thread(
|
|||||||
match typ {
|
match typ {
|
||||||
"INT16" => client.read_input_registers(addr, 1).await.ok().map(|v| {
|
"INT16" => client.read_input_registers(addr, 1).await.ok().map(|v| {
|
||||||
let raw = v[0] as i16;
|
let raw = v[0] as i16;
|
||||||
if raw == -32768 || raw == 32767 { None } else { Some(raw as f64 * factor) }
|
if raw == -32768 || raw == 32767 { None } else { Some(((raw as f64 * factor) * 10.0).round() / 10.0) }
|
||||||
}).flatten(),
|
}).flatten(),
|
||||||
"UINT16" => client.read_input_registers(addr, 1).await.ok().map(|v| {
|
"UINT16" => client.read_input_registers(addr, 1).await.ok().map(|v| {
|
||||||
if v[0] == 0xFFFF { None } else { Some(v[0] as f64 * factor) }
|
if v[0] == 0xFFFF { None } else { Some(((v[0] as f64 * factor) * 10.0).round() / 10.0) }
|
||||||
}).flatten(),
|
}).flatten(),
|
||||||
"UINT32" => client.read_input_registers(addr, 2).await.ok().map(|v| {
|
"UINT32" => client.read_input_registers(addr, 2).await.ok().map(|v| {
|
||||||
let raw = (v[0] as u32) << 16 | (v[1] as u32);
|
let raw = (v[0] as u32) << 16 | (v[1] as u32);
|
||||||
if raw == 0xFFFFFFFF { None } else { Some(raw as f64 * factor) }
|
if raw == 0xFFFFFFFF { None } else { Some(((raw as f64 * factor) * 10.0).round() / 10.0) }
|
||||||
}).flatten(),
|
}).flatten(),
|
||||||
_ => Some(0.0),
|
_ => Some(0.0),
|
||||||
}
|
}
|
||||||
@ -75,14 +75,14 @@ pub fn start_modbus_polling_thread(
|
|||||||
match typ {
|
match typ {
|
||||||
"INT16" => client.read_holding_registers(addr, 1).await.ok().map(|v| {
|
"INT16" => client.read_holding_registers(addr, 1).await.ok().map(|v| {
|
||||||
let raw = v[0] as i16;
|
let raw = v[0] as i16;
|
||||||
if raw == -32768 || raw == 32767 { None } else { Some(raw as f64 * factor) }
|
if raw == -32768 || raw == 32767 { None } else { Some(((raw as f64 * factor) * 10.0).round() / 10.0) }
|
||||||
}).flatten(),
|
}).flatten(),
|
||||||
"UINT16" => client.read_holding_registers(addr, 1).await.ok().map(|v| {
|
"UINT16" => client.read_holding_registers(addr, 1).await.ok().map(|v| {
|
||||||
if v[0] == 0xFFFF { None } else { Some(v[0] as f64 * factor) }
|
if v[0] == 0xFFFF { None } else { Some(((v[0] as f64 * factor) * 10.0).round() / 10.0) }
|
||||||
}).flatten(),
|
}).flatten(),
|
||||||
"UINT32" => client.read_holding_registers(addr, 2).await.ok().map(|v| {
|
"UINT32" => client.read_holding_registers(addr, 2).await.ok().map(|v| {
|
||||||
let raw = (v[0] as u32) << 16 | (v[1] as u32);
|
let raw = (v[0] as u32) << 16 | (v[1] as u32);
|
||||||
if raw == 0xFFFFFFFF { None } else { Some(raw as f64 * factor) }
|
if raw == 0xFFFFFFFF { None } else { Some(((raw as f64 * factor) * 10.0).round() / 10.0) }
|
||||||
}).flatten(),
|
}).flatten(),
|
||||||
_ => Some(0.0),
|
_ => Some(0.0),
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user