Compare commits

..

2 Commits

27
Cargo.lock generated

@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
version = 4
[[package]]
name = "aho-corasick"
@ -165,9 +165,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "libc"
version = "0.2.162"
version = "0.2.169"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398"
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
[[package]]
name = "libudev"
@ -235,17 +235,18 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
[[package]]
name = "proc-macro2"
version = "1.0.89"
version = "1.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
dependencies = [
"unicode-ident",
]
[[package]]
name = "profirust"
version = "0.4.0"
source = "git+https://github.com/rahix/profirust.git?rev=1a02cb771426ffdd4d88cdbfd163a7f2148a7c83#1a02cb771426ffdd4d88cdbfd163a7f2148a7c83"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47e1ffcf51ad3251d763ff97e64a94ec8ccd6af5a165e1a8a962804e2d64731a"
dependencies = [
"bitflags 2.6.0",
"bitvec",
@ -306,9 +307,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serialport"
version = "4.6.0"
version = "4.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7331eefcaafaa382c0df95bcd84068f0b3e3c215c300750dde2316e9b8806ed5"
checksum = "779e2977f0cc2ff39708fef48f96f3768ac8ddd8c6caaaab82e83bd240ef99b2"
dependencies = [
"bitflags 2.6.0",
"cfg-if",
@ -325,9 +326,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.87"
version = "2.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
dependencies = [
"proc-macro2",
"quote",
@ -371,9 +372,9 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.13"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
[[package]]
name = "utf8parse"

@ -8,8 +8,6 @@ env_logger = "0.11.5"
log = "0.4.22"
[dependencies.profirust]
version = "0.4.0"
version = "0.5.0"
default-features = false
features = ["phy-serial", "std"]
rev = "1a02cb771426ffdd4d88cdbfd163a7f2148a7c83"
git = "https://github.com/rahix/profirust.git"

@ -5,10 +5,12 @@ use profirust::phy;
mod tester_io;
mod valve_terminal;
// Bus Parameters
const MASTER_ADDRESS: u8 = 1;
// Muss auf den passenden USB-RS485 Port abgeändert werden!
const BUS_DEVICE: &'static str = "/dev/ttyUSB0";
const BAUDRATE: profirust::Baudrate = profirust::Baudrate::B19200;
// Bus Parameters
const MASTER_ADDRESS: u8 = 3;
const BAUDRATE: profirust::Baudrate = profirust::Baudrate::B500000;
fn main() -> ! {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
@ -23,19 +25,18 @@ fn main() -> ! {
let mut tester_io = tester_io::TesterIo::new(&mut dp_master, BAUDRATE);
let mut valve_terminal = valve_terminal::ValveTerminal::new(&mut dp_master, BAUDRATE);
// Bus-Parameter für USB-RS485 Converter sind hier beschrieben: https://docs.rs/profirust/latest/profirust/phy/struct.SerialPortPhy.html
let mut fdl = fdl::FdlActiveStation::new(
fdl::ParametersBuilder::new(MASTER_ADDRESS, BAUDRATE)
// We use a rather large T_slot time because USB-RS485 converters
// can induce large delays at times.
.slot_bits(960)
.slot_bits(4000)
.max_retry_limit(3)
// 2 Sekunden Watchdog Timeout
.watchdog_timeout(profirust::time::Duration::from_secs(2))
.build_verified(&dp_master),
);
// We must not poll() too often or to little. T_slot / 2 seems to be a good compromise.
let sleep_time: std::time::Duration = (fdl.parameters().slot_time() / 2).into();
let sleep_time = std::time::Duration::from_micros(3500);
log::info!("Verbindung mit dem Bus wird aufgebaut...");
log::info!("Verbindung mit dem Bus {BUS_DEVICE:?} wird aufgebaut...");
let mut phy = phy::SerialPortPhy::new(BUS_DEVICE, fdl.parameters().baudrate);
fdl.set_online();

Loading…
Cancel
Save