update micodus_server
This commit is contained in:
parent
65461f6f9e
commit
d54a73244a
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
40
Cargo.lock
generated
40
Cargo.lock
generated
@ -53,6 +53,18 @@ version = "2.6.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
|
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitvec"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
|
||||||
|
dependencies = [
|
||||||
|
"funty",
|
||||||
|
"radium",
|
||||||
|
"tap",
|
||||||
|
"wyz",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "byteorder"
|
name = "byteorder"
|
||||||
version = "1.5.0"
|
version = "1.5.0"
|
||||||
@ -80,6 +92,12 @@ dependencies = [
|
|||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "funty"
|
||||||
|
version = "2.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "getrandom"
|
name = "getrandom"
|
||||||
version = "0.2.15"
|
version = "0.2.15"
|
||||||
@ -124,6 +142,7 @@ name = "micodus_server"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bcd-convert",
|
"bcd-convert",
|
||||||
|
"bitvec",
|
||||||
"encoding_rs",
|
"encoding_rs",
|
||||||
"rand",
|
"rand",
|
||||||
"tokio",
|
"tokio",
|
||||||
@ -214,6 +233,12 @@ dependencies = [
|
|||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "radium"
|
||||||
|
version = "0.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand"
|
name = "rand"
|
||||||
version = "0.8.5"
|
version = "0.8.5"
|
||||||
@ -301,6 +326,12 @@ dependencies = [
|
|||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tap"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror"
|
name = "thiserror"
|
||||||
version = "1.0.69"
|
version = "1.0.69"
|
||||||
@ -435,6 +466,15 @@ version = "0.52.6"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wyz"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
|
||||||
|
dependencies = [
|
||||||
|
"tap",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy"
|
name = "zerocopy"
|
||||||
version = "0.7.35"
|
version = "0.7.35"
|
||||||
|
@ -5,6 +5,7 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bcd-convert = { version = "0.1" }
|
bcd-convert = { version = "0.1" }
|
||||||
|
bitvec = { version = "1.0.1" }
|
||||||
encoding_rs = { version = "0.8" }
|
encoding_rs = { version = "0.8" }
|
||||||
rand = { version = "0.8" }
|
rand = { version = "0.8" }
|
||||||
tokio = { version = "1.42", features = ["full", "sync"] }
|
tokio = { version = "1.42", features = ["full", "sync"] }
|
||||||
|
BIN
doc/MiCODUS OBD Data Protocol for MV55G MV66--20230612.pdf
(Stored with Git LFS)
Normal file
BIN
doc/MiCODUS OBD Data Protocol for MV55G MV66--20230612.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -144,6 +144,7 @@ impl TerminalRegistration {
|
|||||||
res.answer_serial_no = serial;
|
res.answer_serial_no = serial;
|
||||||
res.result = TerminalRegistrationResult::Success as u8;
|
res.result = TerminalRegistrationResult::Success as u8;
|
||||||
//res.authentication_code = String::from_utf8(terminal_id).unwrap();
|
//res.authentication_code = String::from_utf8(terminal_id).unwrap();
|
||||||
|
println!("{:?}", terminal_id);
|
||||||
res.authentication_code = vec![0x36, 0x31, 0x33, 0x32, 0x31, 0x31, 0x38];
|
res.authentication_code = vec![0x36, 0x31, 0x33, 0x32, 0x31, 0x31, 0x38];
|
||||||
res
|
res
|
||||||
}
|
}
|
||||||
@ -208,6 +209,14 @@ impl TerminalLogout {
|
|||||||
pub const ID: u16 = 0x0003;
|
pub const ID: u16 = 0x0003;
|
||||||
|
|
||||||
pub fn parse(&mut self, rawbody: &Vec<u8>) {}
|
pub fn parse(&mut self, rawbody: &Vec<u8>) {}
|
||||||
|
|
||||||
|
pub fn generate_reply(&self, answer_id: u16, serial: u16) -> PlatformUniversalResponse {
|
||||||
|
let mut res = PlatformUniversalResponse::default();
|
||||||
|
res.answer_serial_no = serial;
|
||||||
|
res.answer_id = answer_id;
|
||||||
|
res.result = TerminalRegistrationResult::Success as u8;
|
||||||
|
res
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl std::fmt::Display for TerminalLogout {
|
impl std::fmt::Display for TerminalLogout {
|
||||||
@ -309,7 +318,7 @@ pub struct LocationInformationReport {
|
|||||||
pub height: u16,
|
pub height: u16,
|
||||||
pub speed: u16,
|
pub speed: u16,
|
||||||
pub direction: u16,
|
pub direction: u16,
|
||||||
pub time: u64,
|
pub time: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl LocationInformationReport {
|
impl LocationInformationReport {
|
||||||
@ -377,7 +386,7 @@ impl LocationInformationReport {
|
|||||||
tmptime[i] = *bd.next().unwrap();
|
tmptime[i] = *bd.next().unwrap();
|
||||||
}
|
}
|
||||||
let code = BcdNumber::try_from(&tmptime as &[u8]).unwrap();
|
let code = BcdNumber::try_from(&tmptime as &[u8]).unwrap();
|
||||||
self.time = code.to_u64().unwrap();
|
self.time = format!("{}", code.to_u64().unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn generate_reply(&self, answer_id: u16, serial: u16) -> PlatformUniversalResponse {
|
pub fn generate_reply(&self, answer_id: u16, serial: u16) -> PlatformUniversalResponse {
|
||||||
@ -405,6 +414,14 @@ impl EndOfTrip {
|
|||||||
pub fn parse(&mut self, rawbody: &Vec<u8>) {}
|
pub fn parse(&mut self, rawbody: &Vec<u8>) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct BCDTime {
|
||||||
|
pub time: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl BCDTime {
|
||||||
|
pub fn parse() {}
|
||||||
|
}
|
||||||
|
|
||||||
generate_impl!(
|
generate_impl!(
|
||||||
TerminalUniversalResponse,
|
TerminalUniversalResponse,
|
||||||
PlatformUniversalResponse,
|
PlatformUniversalResponse,
|
||||||
|
@ -284,6 +284,14 @@ impl Message {
|
|||||||
reply.header.serial_number = rng.gen();
|
reply.header.serial_number = rng.gen();
|
||||||
reply.content = MessageType::PlatformUniversalResponse(cnt);
|
reply.content = MessageType::PlatformUniversalResponse(cnt);
|
||||||
}
|
}
|
||||||
|
MessageType::TerminalLogout(t) => {
|
||||||
|
let cnt = t.generate_reply(TerminalHeartbeat::ID, inmsg.header.serial_number);
|
||||||
|
reply.header.id = PlatformUniversalResponse::ID;
|
||||||
|
reply.header.raw_terminal_id = inmsg.header.raw_terminal_id;
|
||||||
|
reply.header.properties = cnt.to_raw().len() as u16;
|
||||||
|
reply.header.serial_number = rng.gen();
|
||||||
|
reply.content = MessageType::PlatformUniversalResponse(cnt);
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
println!("no type");
|
println!("no type");
|
||||||
return None;
|
return None;
|
||||||
|
Loading…
Reference in New Issue
Block a user