diff --git a/README.md b/README.md index 62e0305f..73955dec 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ SG_ Type : 30|1@0+ (1,0) [0|1] "boolean" Dolor ```rust,ignore pub fn xtype(&self) -> BarType { - match self.xtype_raw() { + match self.xtype_phys_val() { false => BarType::X0off, true => BarType::X1on, x => BarType::_Other(x), diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index bac0e1a6..9a344af9 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -1,42 +1,45 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "anyhow" -version = "1.0.83" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "arbitrary" -version = "1.1.4" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8931eb436ab9bf1980c6cb2b9d1ba5390cd6793b2c6e2d2ea8147da3570c2a2e" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" [[package]] name = "bindgen" -version = "0.69.4" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags", + "bitflags 2.5.0", "cexpr", "clang-sys", "itertools", - "lazy_static", - "lazycell", "log", "prettyplease", "proc-macro2", "quote", "regex", "rustc-hash", - "shlex", - "syn 2.0.63", - "which", + "shlex 1.3.0", + "syn 2.0.119", ] +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.5.0" @@ -57,12 +60,24 @@ dependencies = [ [[package]] name = "can-dbc" -version = "6.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe0d033ec316c3bb50e2e53d7ef3d8805e65c5f976d49daea65a12f7e0f9ce8" +checksum = "e39bde77280df32da397aaabc992cd252639af9cec2dff19f293668a9c0c162f" dependencies = [ - "derive-getters", - "nom", + "can-dbc-pest", + "serde", + "thiserror", +] + +[[package]] +name = "can-dbc-pest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3345d10c9b3676319c8865ce7622d03fff3c75fc21e1f7156afa629006618cf5" +dependencies = [ + "encoding_rs", + "pest", + "pest_derive", ] [[package]] @@ -73,6 +88,7 @@ dependencies = [ "arbitrary", "bitvec", "dbc-codegen", + "defmt", "embedded-can", ] @@ -87,9 +103,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.73" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" +dependencies = [ + "find-msvc-tools", + "shlex 2.0.1", +] [[package]] name = "cexpr" @@ -125,6 +145,9 @@ dependencies = [ "can-dbc", "embedded-can", "heck", + "prettyplease", + "quote", + "syn 2.0.119", "typed-builder", ] @@ -138,14 +161,34 @@ dependencies = [ ] [[package]] -name = "derive-getters" -version = "0.3.0" +name = "defmt" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2c35ab6e03642397cdda1dd58abbc05d418aef8e36297f336d5aba060fe8df" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", "proc-macro2", "quote", - "syn 1.0.99", + "syn 2.0.119", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror", ] [[package]] @@ -164,15 +207,20 @@ dependencies = [ ] [[package]] -name = "errno" -version = "0.3.9" +name = "encoding_rs" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "libc", - "windows-sys", + "cfg-if", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" + [[package]] name = "funty" version = "2.0.0" @@ -187,18 +235,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "itertools" @@ -209,18 +248,6 @@ dependencies = [ "either", ] -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" version = "0.2.154" @@ -248,12 +275,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - [[package]] name = "log" version = "0.4.17" @@ -297,30 +318,72 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" +[[package]] +name = "pest" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a07a60cc7a4d00c91f95c685609d1d2f79050e6804b70ebedd7650f0b839bcf" +dependencies = [ + "memchr", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a83744a5c8455b8b3e0dc5031362780a347c878bdd11584d1a8984228cc88d" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd3451aa3de60d4b9a1e736885e4dea6b31617598026f12256ad566d63304a" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "pest_meta" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e04d3a0849e241d7dfce834c83b1c5edc8622009e8dd51a12ba1927c32f05496" +dependencies = [ + "pest", +] + [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.63", + "syn 2.0.119", ] [[package]] name = "proc-macro2" -version = "1.0.82" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -348,21 +411,38 @@ checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" [[package]] -name = "rustix" -version = "0.38.34" +name = "serde" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.4", ] [[package]] @@ -371,11 +451,17 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + [[package]] name = "syn" -version = "1.0.99" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" dependencies = [ "proc-macro2", "quote", @@ -384,9 +470,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.63" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" dependencies = [ "proc-macro2", "quote", @@ -399,43 +485,57 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.4", +] + [[package]] name = "typed-builder" -version = "0.18.2" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77739c880e00693faef3d65ea3aad725f196da38b22fdc7ea6ded6e1ce4d3add" +checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda" dependencies = [ "typed-builder-macro", ] [[package]] name = "typed-builder-macro" -version = "0.18.2" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63" +checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.119", ] [[package]] -name = "unicode-ident" -version = "1.0.3" +name = "ucd-trie" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] -name = "which" -version = "4.4.2" +name = "unicode-ident" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" [[package]] name = "winapi" @@ -459,79 +559,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - [[package]] name = "wyz" version = "0.5.1" diff --git a/fuzz/fuzz_targets/fuzz_target_1.rs b/fuzz/fuzz_targets/fuzz_target_1.rs index 5f91cbdf..6878acd9 100644 --- a/fuzz/fuzz_targets/fuzz_target_1.rs +++ b/fuzz/fuzz_targets/fuzz_target_1.rs @@ -19,18 +19,18 @@ fuzz_target!(|dbc_codegen_bar: can_messages::Bar| { println!( "{} {} {} {} {}", - dbc_codegen_bar.one_raw(), - dbc_codegen_bar.two_raw(), - dbc_codegen_bar.three_raw(), - dbc_codegen_bar.four_raw(), - dbc_codegen_bar.xtype_raw() + dbc_codegen_bar.one(), + dbc_codegen_bar.two(), + dbc_codegen_bar.three_raw_val(), + dbc_codegen_bar.four_raw_val(), + dbc_codegen_bar.xtype_raw_val() ); - let one = unsafe { example_bar_one_encode(dbc_codegen_bar.one_raw() as f64) }; - let two = unsafe { example_bar_two_encode(dbc_codegen_bar.two_raw() as f64) }; - let three = unsafe { example_bar_three_encode(dbc_codegen_bar.three_raw() as f64) }; - let four = unsafe { example_bar_four_encode(dbc_codegen_bar.four_raw() as f64) }; - let type_ = unsafe { example_bar_type_encode(dbc_codegen_bar.xtype_raw() as u8 as f64) }; + let one = unsafe { example_bar_one_encode(dbc_codegen_bar.one() as f64) }; + let two = unsafe { example_bar_two_encode(dbc_codegen_bar.two() as f64) }; + let three = unsafe { example_bar_three_encode(dbc_codegen_bar.three_raw_val() as f64) }; + let four = unsafe { example_bar_four_encode(dbc_codegen_bar.four_raw_val() as f64) }; + let type_ = unsafe { example_bar_type_encode(dbc_codegen_bar.xtype_raw_val() as f64) }; let bar = example_bar_t { one, diff --git a/src/lib.rs b/src/lib.rs index 6e2cff25..eee46c14 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -396,7 +396,11 @@ impl Config<'_> { self.render_attribute_structs(&mut w, msg, dbc)?; - writeln!(w, "/// Construct new '{}' from values", msg.name)?; + writeln!( + w, + "/// Constructs a new `{}` message from values.", + msg.name + )?; let args = msg .signals .iter() @@ -435,7 +439,7 @@ impl Config<'_> { writeln!(w, "}}")?; writeln!(w)?; - writeln!(w, "/// Access message payload raw value")?; + writeln!(w, "/// Returns the raw `{}` message payload.", msg.name)?; writeln!(w, "pub fn raw(&self) -> &[u8; {}] {{", msg.size)?; { let mut w = PadAdapter::wrap(&mut w); @@ -821,7 +825,7 @@ impl Config<'_> { dbc: &Dbc, msg: &Message, ) -> Result<()> { - writeln!(w, "/// Get value of '{}'", signal.name)?; + writeln!(w, "/// Returns the value of `{}`.", signal.name)?; if let Some(comment) = dbc.signal_comment(msg.id, &signal.name) { writeln!(w, "///")?; for line in comment.trim().lines() { @@ -831,16 +835,25 @@ impl Config<'_> { writeln!(w, "///")?; writeln!(w, "/// - Min: {}", signal.min)?; writeln!(w, "/// - Max: {}", signal.max)?; - writeln!(w, "/// - Unit: {:?}", signal.unit)?; + if signal.unit.is_empty() { + writeln!(w, "/// - Unit: Not specified")?; + } else { + writeln!(w, "/// - Unit: {:?}", signal.unit)?; + } if signal.receivers.is_empty() { writeln!(w, "/// - Receivers: Vector__XXX")?; } else { writeln!(w, "/// - Receivers: {}", signal.receivers.join(", "))?; } - writeln!(w, "#[inline(always)]")?; let fn_name = signal.field_name(); - if let Some(variants) = dbc.value_descriptions_for_signal(msg.id, &signal.name) { + let variants = dbc.value_descriptions_for_signal(msg.id, &signal.name); + if variants.is_none() { + writeln!(w, "/// - Factor: {}", signal.factor)?; + writeln!(w, "/// - Offset: {}", signal.offset)?; + } + writeln!(w, "#[inline(always)]")?; + if let Some(variants) = variants { let type_name = enum_name(msg, signal); let signal_ty = ValType::from_signal(signal); let variant_infos = generate_variant_info(variants, signal_ty); @@ -875,40 +888,35 @@ impl Config<'_> { } } } - writeln!(w, "_ => {type_name}::_Other(self.{fn_name}_raw()),")?; + writeln!(w, "_ => {type_name}::_Other(self.{fn_name}_phys_val()),")?; } writeln!(w, "}}")?; } writeln!(w, "}}")?; writeln!(w)?; + + // Private helper for the `_Other()` fallback above. + writeln!(w, "#[inline(always)]")?; + let typ = ValType::from_signal(signal); + writeln!(w, "fn {fn_name}_phys_val(&self) -> {typ} {{")?; + { + let mut w = PadAdapter::wrap(w); + signal_from_payload(&mut w, signal, msg).context("signal from payload")?; + } + writeln!(w, "}}")?; + writeln!(w)?; } else { let typ = ValType::from_signal(signal); writeln!(w, "pub fn {fn_name}(&self) -> {typ} {{")?; { let mut w = PadAdapter::wrap(w); - writeln!(w, "self.{fn_name}_raw()")?; + signal_from_payload(&mut w, signal, msg).context("signal from payload")?; } writeln!(w, "}}")?; writeln!(w)?; } - writeln!(w, "/// Get raw value of '{}'", signal.name)?; - writeln!(w, "///")?; - writeln!(w, "/// - Start bit: {}", signal.start_bit)?; - writeln!(w, "/// - Signal size: {} bits", signal.size)?; - writeln!(w, "/// - Factor: {}", signal.factor)?; - writeln!(w, "/// - Offset: {}", signal.offset)?; - writeln!(w, "/// - Byte order: {:?}", signal.byte_order)?; - writeln!(w, "/// - Value type: {:?}", signal.value_type)?; - writeln!(w, "#[inline(always)]")?; - let typ = ValType::from_signal(signal); - writeln!(w, "pub fn {fn_name}_raw(&self) -> {typ} {{")?; - { - let mut w = PadAdapter::wrap(w); - signal_from_payload(&mut w, signal, msg).context("signal from payload")?; - } - writeln!(w, "}}")?; - writeln!(w)?; + render_raw_accessors(w, signal, msg)?; self.render_set_signal(w, signal, dbc, msg)?; @@ -935,7 +943,7 @@ impl Config<'_> { let param_type = signal_pub_type(dbc, msg, signal); let is_enum_backed = param_type != typ.to_string(); - writeln!(w, "/// Set value of '{}'", signal.name)?; + writeln!(w, "/// Sets the value of `{}`.", signal.name)?; writeln!(w, "#[inline(always)]")?; writeln!( w, @@ -997,28 +1005,21 @@ impl Config<'_> { dbc: &Dbc, msg: &Message, ) -> Result<()> { - writeln!(w, "/// Get raw value of '{}'", signal.name)?; - writeln!(w, "///")?; - writeln!(w, "/// - Start bit: {}", signal.start_bit)?; - writeln!(w, "/// - Signal size: {} bits", signal.size)?; - writeln!(w, "/// - Factor: {}", signal.factor)?; - writeln!(w, "/// - Offset: {}", signal.offset)?; - writeln!(w, "/// - Byte order: {:?}", signal.byte_order)?; - writeln!(w, "/// - Value type: {:?}", signal.value_type)?; - writeln!(w, "#[inline(always)]")?; - let field = signal.field_name(); let signal_typ = ValType::from_signal(signal); - writeln!(w, "pub fn {field}_raw(&self) -> {signal_typ} {{")?; - { - let mut w = PadAdapter::wrap(w); - signal_from_payload(&mut w, signal, msg).context("signal from payload")?; - } - writeln!(w, "}}")?; - writeln!(w)?; + + render_raw_accessors(w, signal, msg)?; let field = signal.field_name(); let typ = multiplex_enum_name(msg, signal)?; - writeln!(w, "pub fn {field}(&mut self) -> Result<{typ}, CanError> {{")?; + writeln!( + w, + "/// Selects the active multiplexed sub-message for `{}`.", + signal.name + )?; + writeln!( + w, + "pub fn {field}_multiplexed(&mut self) -> Result<{typ}, CanError> {{" + )?; let multiplexer_indexes: BTreeSet = msg .signals @@ -1035,7 +1036,7 @@ impl Config<'_> { { let mut w = PadAdapter::wrap(w); - writeln!(w, "match self.{}_raw() {{", signal.field_name())?; + writeln!(w, "match self.{}_raw_val() {{", signal.field_name())?; { let mut w = PadAdapter::wrap(&mut w); @@ -1157,7 +1158,7 @@ fn render_set_signal_multiplexer( msg: &Message, switch_index: u64, ) -> Result<()> { - writeln!(w, "/// Set value of '{}'", multiplexor.name)?; + writeln!(w, "/// Sets the value of `{}`.", multiplexor.name)?; writeln!(w, "#[inline(always)]")?; writeln!( w, @@ -1243,7 +1244,24 @@ fn signal_pub_type(dbc: &Dbc, msg: &Message, signal: &Signal) -> String { } } +/// Whether the signal has no scaling applied, i.e. its raw and physical values are identical. +/// The float comparison to exact values is intentional. +#[allow(clippy::float_cmp)] +fn is_unscaled(signal: &Signal) -> bool { + signal.factor == 1.0 && signal.offset == 0.0 +} + fn signal_from_payload(w: &mut impl Write, signal: &Signal, msg: &Message) -> Result<()> { + if is_unscaled(signal) { + let field = signal.field_name(); + if signal.size == 1 { + writeln!(w, "self.{field}_raw_val() == 1")?; + } else { + writeln!(w, "self.{field}_raw_val()")?; + } + return Ok(()); + } + writeln!(w, r"let signal = {};", read_fn(signal, msg)?)?; writeln!(w)?; @@ -1316,6 +1334,9 @@ fn signal_to_payload(w: &mut impl Write, signal: &Signal, msg: &Message) -> Resu writeln!(w, "let value = ((value - offset) / factor) as {typ};")?; writeln!(w)?; } + _ if is_unscaled(signal) => { + // `value` is already the raw type. + } _ => { writeln!(w, "let factor = {};", signal.factor)?; if signal.offset >= 0.0 { @@ -1334,6 +1355,14 @@ fn signal_to_payload(w: &mut impl Write, signal: &Signal, msg: &Message) -> Resu } } + pack_bits(w, signal, msg)?; + + writeln!(w, "Ok(())")?; + Ok(()) +} + +/// Pack `value` into the message payload. +fn pack_bits(w: &mut impl Write, signal: &Signal, msg: &Message) -> Result<()> { if signal.value_type == Signed { let typ = ValType::from_signal_uint(signal); writeln!(w, "let value = {typ}::from_ne_bytes(value.to_ne_bytes());")?; @@ -1356,7 +1385,54 @@ fn signal_to_payload(w: &mut impl Write, signal: &Signal, msg: &Message) -> Resu } } - writeln!(w, "Ok(())")?; + Ok(()) +} + +/// Generate the raw getter and setter for a signal. +fn render_raw_accessors(w: &mut impl Write, signal: &Signal, msg: &Message) -> Result<()> { + let field = signal.field_name(); + let typ = ValType::from_signal_int(signal); + + writeln!(w, "/// Returns the raw value of `{}`.", signal.name)?; + writeln!(w, "///")?; + writeln!(w, "/// - Start bit: {}", signal.start_bit)?; + writeln!(w, "/// - Signal size: {} bits", signal.size)?; + writeln!(w, "/// - Byte order: {:?}", signal.byte_order)?; + writeln!(w, "/// - Value type: {:?}", signal.value_type)?; + writeln!(w, "#[inline(always)]")?; + writeln!(w, "pub fn {field}_raw_val(&self) -> {typ} {{")?; + { + let mut w = PadAdapter::wrap(&mut *w); + writeln!(w, "{}", read_fn(signal, msg)?)?; + } + writeln!(w, "}}")?; + writeln!(w)?; + + // To avoid accidentally changing the multiplexor value without changing + // the signals accordingly this fn is kept private for multiplexors. + let visibility = if signal.multiplexer_indicator == Multiplexor { + "" + } else { + "pub " + }; + + writeln!(w, "/// Sets the raw value of `{}`.", signal.name)?; + if visibility.is_empty() { + // Private multiplexor raw setters have no internal caller. + writeln!(w, "#[allow(dead_code)]")?; + } + writeln!(w, "#[inline(always)]")?; + writeln!( + w, + "{visibility}fn set_{field}_raw_val(&mut self, value: {typ}) {{", + )?; + { + let mut w = PadAdapter::wrap(&mut *w); + pack_bits(&mut w, signal, msg)?; + } + writeln!(w, "}}")?; + writeln!(w)?; + Ok(()) } diff --git a/testing/can-messages/tests/all.rs b/testing/can-messages/tests/all.rs index f525d0b6..addcfdbe 100644 --- a/testing/can-messages/tests/all.rs +++ b/testing/can-messages/tests/all.rs @@ -42,26 +42,51 @@ fn check_min_max_values() { #[test] fn pack_unpack_message() { - let result = Foo::new(63.9990234375, 10.0).unwrap(); - assert_eq!(result.voltage_raw(), 63.99899); - assert_eq!(result.current_raw(), 10.0); + let mut result = Foo::new(63.9990234375, 10.0).unwrap(); + assert_eq!(result.voltage(), 63.99899); + assert_eq!(result.current(), 10.0); + assert_eq!(result.current_raw_val(), 160); + + result.set_current_raw_val(-32); + assert_eq!(result.current_raw_val(), -32); + assert_eq!(result.current(), -2.0); + + result.set_current(10.0).unwrap(); + assert_eq!(result.current_raw_val(), 160); } #[test] fn pack_unpack_message_negative() { - let result = Foo::new(0.000976562, -3.0 * 0.0625).unwrap(); - assert_eq!(result.voltage_raw(), 0.000976562); - assert_eq!(result.current_raw(), -3.0 * 0.0625); + let mut result = Foo::new(0.000976562, -3.0 * 0.0625).unwrap(); + assert_eq!(result.voltage(), 0.000976562); + assert_eq!(result.current(), -3.0 * 0.0625); + + result.set_voltage_raw_val(12345); + assert_eq!(result.voltage_raw_val(), 12345); + + result.set_voltage(63.9990234375).unwrap(); + assert_eq!(result.voltage_raw_val(), 65535); } #[test] fn pack_unpack_message2() { - let result = Amet::new(1, 0.39, 3, 3, true).unwrap(); - assert_eq!(result.one_raw(), 1); - assert_eq!(result.two_raw(), 0.39); - assert_eq!(result.three_raw(), 3); - assert_eq!(result.four_raw(), 3); - assert!(result.five_raw()); + let mut result = Amet::new(1, 0.39, 3, 3, true).unwrap(); + assert_eq!(result.one_raw_val(), 1); + assert_eq!(result.two(), 0.39); + assert_eq!(result.two_raw_val(), 1); + assert_eq!(result.three_raw_val(), 3); + assert_eq!(result.four_raw_val(), 3); + assert!(result.five()); + assert_eq!(result.five_raw_val(), 1); + + result.set_two_raw_val(200); + assert_eq!(result.two_raw_val(), 200); + assert_eq!(result.two(), 78.0); + + result.set_five_raw_val(0); + assert!(!result.five()); + result.set_five_raw_val(1); + assert!(result.five()); } #[test] @@ -73,8 +98,8 @@ fn pack_unpack_message_containing_multiplexed_signals() { result.set_m0(m0).unwrap(); assert_eq!(result.unmultiplexed_signal(), 2); - assert_eq!(result.multiplexor_raw(), 0); - let multiplexor = result.multiplexor().unwrap(); + assert_eq!(result.multiplexor_raw_val(), 0); + let multiplexor = result.multiplexor_multiplexed().unwrap(); if let MultiplexTestMultiplexorIndex::M0(m0) = multiplexor { assert_eq!(m0.multiplexed_signal_zero_a(), 1.2); assert_eq!(m0.multiplexed_signal_zero_b(), 2.0); @@ -86,19 +111,19 @@ fn pack_unpack_message_containing_multiplexed_signals() { #[test] fn pack_unpack_signed_truncated_signal() { let result = TruncatedBeSignal::new(42).unwrap(); - assert_eq!(result.foo_raw(), 42); + assert_eq!(result.foo_raw_val(), 42); let result = TruncatedLeSignal::new(42).unwrap(); - assert_eq!(result.foo_raw(), 42); + assert_eq!(result.foo_raw_val(), 42); } #[test] fn pack_unpack_signed_truncated_signal_negative() { let result = TruncatedBeSignal::new(-42).unwrap(); - assert_eq!(result.foo_raw(), -42); + assert_eq!(result.foo_raw_val(), -42); let result = TruncatedLeSignal::new(-42).unwrap(); - assert_eq!(result.foo_raw(), -42); + assert_eq!(result.foo_raw_val(), -42); } #[test] diff --git a/tests-snapshots/canpy/DBC_template.snap.rs b/tests-snapshots/canpy/DBC_template.snap.rs index 5e58b08e..ba6075e7 100644 --- a/tests-snapshots/canpy/DBC_template.snap.rs +++ b/tests-snapshots/canpy/DBC_template.snap.rs @@ -83,32 +83,37 @@ impl CanMultiplexed { pub const VALUE0_MAX: u8 = 0_u8; pub const MULTIPLEXER_MIN: u8 = 0_u8; pub const MULTIPLEXER_MAX: u8 = 0_u8; - /// Construct new 'CANMultiplexed' from values + /// Constructs a new `CANMultiplexed` message from values. pub fn new(multiplexer: u8) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_multiplexer(multiplexer)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CANMultiplexed` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get raw value of 'Multiplexer' + /// Returns the raw value of `Multiplexer`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexer_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexer_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `Multiplexer`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexer_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - pub fn multiplexer(&mut self) -> Result { - match self.multiplexer_raw() { + /// Selects the active multiplexed sub-message for `Multiplexer`. + pub fn multiplexer_multiplexed( + &mut self, + ) -> Result { + match self.multiplexer_raw_val() { 0 => { Ok( CanMultiplexedMultiplexerIndex::M0(CanMultiplexedMultiplexerM0 { @@ -131,7 +136,7 @@ impl CanMultiplexed { } } } - /// Set value of 'Multiplexer' + /// Sets the value of `Multiplexer`. #[inline(always)] fn set_multiplexer(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -139,17 +144,10 @@ impl CanMultiplexed { message_id: CanMultiplexed::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanMultiplexed::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexer' + /// Sets the value of `Multiplexer`. #[inline(always)] pub fn set_m0( &mut self, @@ -161,7 +159,7 @@ impl CanMultiplexed { self.set_multiplexer(0)?; Ok(()) } - /// Set value of 'Multiplexer' + /// Sets the value of `Multiplexer`. #[inline(always)] pub fn set_m1( &mut self, @@ -308,11 +306,11 @@ impl CanMultiplexedMultiplexerM0 { pub fn new() -> Self { Self { raw: [0u8; 2] } } - /// Get value of 'Value0' + /// Returns the value of `Value0`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Node0 #[inline(always)] pub fn value0(&self) -> CanMultiplexedValue0 { @@ -321,24 +319,29 @@ impl CanMultiplexedMultiplexerM0 { 2 => CanMultiplexedValue0::Value2, 1 => CanMultiplexedValue0::Value1, 0 => CanMultiplexedValue0::Value0, - _ => CanMultiplexedValue0::_Other(self.value0_raw()), + _ => CanMultiplexedValue0::_Other(self.value0_phys_val()), } } - /// Get raw value of 'Value0' + #[inline(always)] + fn value0_phys_val(&self) -> u8 { + self.value0_raw_val() + } + /// Returns the raw value of `Value0`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn value0_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn value0_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Value0' + /// Sets the raw value of `Value0`. + #[inline(always)] + pub fn set_value0_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Value0`. #[inline(always)] pub fn set_value0(&mut self, value: CanMultiplexedValue0) -> Result<(), CanError> { let value = u8::from(value); @@ -347,13 +350,6 @@ impl CanMultiplexedMultiplexerM0 { message_id: CanMultiplexed::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanMultiplexed::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } @@ -384,11 +380,11 @@ impl CanMultiplexedMultiplexerM1 { pub fn new() -> Self { Self { raw: [0u8; 2] } } - /// Get value of 'Value1' + /// Returns the value of `Value1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Node1 #[inline(always)] pub fn value1(&self) -> CanMultiplexedValue1 { @@ -398,24 +394,29 @@ impl CanMultiplexedMultiplexerM1 { 2 => CanMultiplexedValue1::Two, 1 => CanMultiplexedValue1::One, 0 => CanMultiplexedValue1::Zero, - _ => CanMultiplexedValue1::_Other(self.value1_raw()), + _ => CanMultiplexedValue1::_Other(self.value1_phys_val()), } } - /// Get raw value of 'Value1' + #[inline(always)] + fn value1_phys_val(&self) -> u8 { + self.value1_raw_val() + } + /// Returns the raw value of `Value1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn value1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn value1_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Value1`. + #[inline(always)] + pub fn set_value1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Value1' + /// Sets the value of `Value1`. #[inline(always)] pub fn set_value1(&mut self, value: CanMultiplexedValue1) -> Result<(), CanError> { let value = u8::from(value); @@ -424,13 +425,6 @@ impl CanMultiplexedMultiplexerM1 { message_id: CanMultiplexed::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanMultiplexed::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } @@ -462,42 +456,47 @@ impl CanMessage { pub const SIGNAL1_MAX: u64 = 100_u64; pub const SIGNAL0_MIN: i32 = 0_i32; pub const SIGNAL0_MAX: i32 = 0_i32; - /// Construct new 'CANMessage' from values + /// Constructs a new `CANMessage` message from values. pub fn new(signal1: u64, signal0: i32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal1(signal1)?; res.set_signal0(signal0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CANMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 100 /// - Unit: "%" /// - Receivers: Node1, Node2 + /// - Factor: 100 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> u64 { - self.signal1_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 100; + u64::from(signal).saturating_mul(factor).saturating_add(0) } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 100 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal1_raw(&self) -> u64 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 100; - u64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> u32 { + self.raw.view_bits::()[32..64].load_le::() } - /// Set value of 'Signal1' + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[32..64].store_le(value); + } + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: u64) -> Result<(), CanError> { if value < 0_u64 || 100_u64 < value { @@ -515,34 +514,37 @@ impl CanMessage { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Signal0' + /// Returns the value of `Signal0`. /// /// First signal in this message /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Node1, Node2 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal0(&self) -> i32 { - self.signal0_raw() + self.signal0_raw_val() } - /// Get raw value of 'Signal0' + /// Returns the raw value of `Signal0`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal0_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal0_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() } - /// Set value of 'Signal0' + /// Sets the raw value of `Signal0`. + #[inline(always)] + pub fn set_signal0_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); + } + /// Sets the value of `Signal0`. #[inline(always)] pub fn set_signal0(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -550,13 +552,6 @@ impl CanMessage { message_id: CanMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/!error___bad_message_length.snap b/tests-snapshots/dbc-cantools/!error___bad_message_length.snap index 798b0817..38189c56 100644 --- a/tests-snapshots/dbc-cantools/!error___bad_message_length.snap +++ b/tests-snapshots/dbc-cantools/!error___bad_message_length.snap @@ -7,10 +7,7 @@ Error { context: "write message `Message1`", source: Error { context: "write signal impl `Signal1`", - source: Error { - context: "signal from payload", - source: "signal ends at 9, but message is only 8 bits", - }, + source: "signal ends at 9, but message is only 8 bits", }, }, } diff --git a/tests-snapshots/dbc-cantools/BU_BO_REL_.snap.rs b/tests-snapshots/dbc-cantools/BU_BO_REL_.snap.rs index 51acdf1b..238470da 100644 --- a/tests-snapshots/dbc-cantools/BU_BO_REL_.snap.rs +++ b/tests-snapshots/dbc-cantools/BU_BO_REL_.snap.rs @@ -70,17 +70,17 @@ impl Control { pub const MESSAGE_SIZE: usize = 7; pub const STATE_MIN: u8 = 0_u8; pub const STATE_MAX: u8 = 100_u8; - /// Construct new 'CONTROL' from values + /// Constructs a new `CONTROL` message from values. pub fn new(state: ControlState) -> Result { let mut res = Self { raw: [0x00; 7] }; res.set_state(state)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CONTROL` message payload. pub fn raw(&self) -> &[u8; 7] { &self.raw } - /// Get value of 'state' + /// Returns the value of `state`. /// /// - Min: 0 /// - Max: 100 @@ -91,24 +91,29 @@ impl Control { let signal = self.raw.view_bits::()[0..8].load_le::(); match signal { 255 => ControlState::Invalid, - _ => ControlState::_Other(self.state_raw()), + _ => ControlState::_Other(self.state_phys_val()), } } - /// Get raw value of 'state' + #[inline(always)] + fn state_phys_val(&self) -> u8 { + self.state_raw_val() + } + /// Returns the raw value of `state`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn state_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn state_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'state' + /// Sets the raw value of `state`. + #[inline(always)] + pub fn set_state_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `state`. #[inline(always)] pub fn set_state(&mut self, value: ControlState) -> Result<(), CanError> { let value = u8::from(value); @@ -117,13 +122,6 @@ impl Control { message_id: Control::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Control::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/BU_BO_REL_Message.snap.rs b/tests-snapshots/dbc-cantools/BU_BO_REL_Message.snap.rs index d4c5ba14..43f10a4a 100644 --- a/tests-snapshots/dbc-cantools/BU_BO_REL_Message.snap.rs +++ b/tests-snapshots/dbc-cantools/BU_BO_REL_Message.snap.rs @@ -70,45 +70,50 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 7; pub const SIGNAL_1_MIN: u8 = 0_u8; pub const SIGNAL_1_MAX: u8 = 100_u8; - /// Construct new 'message_1' from values + /// Constructs a new `message_1` message from values. pub fn new(signal_1: Message1Signal1) -> Result { let mut res = Self { raw: [0x00; 7] }; res.set_signal_1(signal_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `message_1` message payload. pub fn raw(&self) -> &[u8; 7] { &self.raw } - /// Get value of 'signal_1' + /// Returns the value of `signal_1`. /// /// - Min: 0 /// - Max: 100 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: ECU2 #[inline(always)] pub fn signal_1(&self) -> Message1Signal1 { let signal = self.raw.view_bits::()[0..8].load_le::(); match signal { 255 => Message1Signal1::Invalid, - _ => Message1Signal1::_Other(self.signal_1_raw()), + _ => Message1Signal1::_Other(self.signal_1_phys_val()), } } - /// Get raw value of 'signal_1' + #[inline(always)] + fn signal_1_phys_val(&self) -> u8 { + self.signal_1_raw_val() + } + /// Returns the raw value of `signal_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal_1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal_1_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'signal_1' + /// Sets the raw value of `signal_1`. + #[inline(always)] + pub fn set_signal_1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `signal_1`. #[inline(always)] pub fn set_signal_1(&mut self, value: Message1Signal1) -> Result<(), CanError> { let value = u8::from(value); @@ -117,13 +122,6 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/CamelCaseEmpty.snap.rs b/tests-snapshots/dbc-cantools/CamelCaseEmpty.snap.rs index 604831e5..1bb45375 100644 --- a/tests-snapshots/dbc-cantools/CamelCaseEmpty.snap.rs +++ b/tests-snapshots/dbc-cantools/CamelCaseEmpty.snap.rs @@ -68,12 +68,12 @@ impl Message1 { StandardId::new_unchecked(0x400) }); pub const MESSAGE_SIZE: usize = 5; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 5] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } diff --git a/tests-snapshots/dbc-cantools/abs.snap.rs b/tests-snapshots/dbc-cantools/abs.snap.rs index 6e3ab9b9..6381196f 100644 --- a/tests-snapshots/dbc-cantools/abs.snap.rs +++ b/tests-snapshots/dbc-cantools/abs.snap.rs @@ -127,7 +127,7 @@ impl Bremse33 { pub const WHLSPEED_RL_MAX: f32 = 100_f32; pub const WHLSPEED_RR_MIN: f32 = 0_f32; pub const WHLSPEED_RR_MAX: f32 = 100_f32; - /// Construct new 'BREMSE_33' from values + /// Constructs a new `BREMSE_33` message from values. pub fn new( whlspeed_fl: f32, whlspeed_fr: f32, @@ -141,11 +141,11 @@ impl Bremse33 { res.set_whlspeed_rr(whlspeed_rr)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_33` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'whlspeed_FL' + /// Returns the value of `whlspeed_FL`. /// /// Radgeschwindigkeit / wheel speed absCtrl FL /// @@ -153,26 +153,31 @@ impl Bremse33 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_fl(&self) -> f32 { - self.whlspeed_fl_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_FL' + /// Returns the raw value of `whlspeed_FL`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_fl_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_fl_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'whlspeed_FL' + /// Sets the raw value of `whlspeed_FL`. + #[inline(always)] + pub fn set_whlspeed_fl_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `whlspeed_FL`. #[inline(always)] pub fn set_whlspeed_fl(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -186,7 +191,7 @@ impl Bremse33 { self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } - /// Get value of 'whlspeed_FR' + /// Returns the value of `whlspeed_FR`. /// /// Radgeschwindigkeit / wheel speed absCtrl FR /// @@ -194,26 +199,31 @@ impl Bremse33 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_fr(&self) -> f32 { - self.whlspeed_fr_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_FR' + /// Returns the raw value of `whlspeed_FR`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_fr_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_fr_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `whlspeed_FR`. + #[inline(always)] + pub fn set_whlspeed_fr_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'whlspeed_FR' + /// Sets the value of `whlspeed_FR`. #[inline(always)] pub fn set_whlspeed_fr(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -227,7 +237,7 @@ impl Bremse33 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'whlspeed_RL' + /// Returns the value of `whlspeed_RL`. /// /// Radgeschwindigkeit / wheel speed absCtrl RL /// @@ -235,26 +245,31 @@ impl Bremse33 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_rl(&self) -> f32 { - self.whlspeed_rl_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_RL' + /// Returns the raw value of `whlspeed_RL`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_rl_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_rl_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `whlspeed_RL`. + #[inline(always)] + pub fn set_whlspeed_rl_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'whlspeed_RL' + /// Sets the value of `whlspeed_RL`. #[inline(always)] pub fn set_whlspeed_rl(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -268,7 +283,7 @@ impl Bremse33 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'whlspeed_RR' + /// Returns the value of `whlspeed_RR`. /// /// Radgeschwindigkeit / wheel speed absCtrl RR /// @@ -276,26 +291,31 @@ impl Bremse33 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_rr(&self) -> f32 { - self.whlspeed_rr_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_RR' + /// Returns the raw value of `whlspeed_RR`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_rr_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_rr_raw_val(&self) -> u16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `whlspeed_RR`. + #[inline(always)] + pub fn set_whlspeed_rr_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'whlspeed_RR' + /// Sets the value of `whlspeed_RR`. #[inline(always)] pub fn set_whlspeed_rr(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -371,12 +391,12 @@ impl Bremse10 { StandardId::new_unchecked(0x140) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'BREMSE_10' from values + /// Constructs a new `BREMSE_10` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_10` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -442,12 +462,12 @@ impl Bremse11 { StandardId::new_unchecked(0x141) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'BREMSE_11' from values + /// Constructs a new `BREMSE_11` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_11` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -513,12 +533,12 @@ impl Bremse12 { StandardId::new_unchecked(0x142) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'BREMSE_12' from values + /// Constructs a new `BREMSE_12` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_12` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -584,12 +604,12 @@ impl Bremse13 { StandardId::new_unchecked(0x143) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'BREMSE_13' from values + /// Constructs a new `BREMSE_13` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_13` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -655,12 +675,12 @@ impl DrsRxId0 { StandardId::new_unchecked(0x75) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'DRS_RX_ID0' from values + /// Constructs a new `DRS_RX_ID0` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `DRS_RX_ID0` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -730,18 +750,18 @@ impl Mm510Tx1 { pub const YAW_RATE_MAX: f32 = 163.83_f32; pub const AY1_MIN: f32 = -4.1768_f32; pub const AY1_MAX: f32 = 4.1765_f32; - /// Construct new 'MM5_10_TX1' from values + /// Constructs a new `MM5_10_TX1` message from values. pub fn new(yaw_rate: f32, ay1: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_yaw_rate(yaw_rate)?; res.set_ay1(ay1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MM5_10_TX1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Yaw_Rate' + /// Returns the value of `Yaw_Rate`. /// /// Measured yaw rate around the Z axle. /// @@ -749,26 +769,31 @@ impl Mm510Tx1 { /// - Max: 163.83 /// - Unit: "°/s" /// - Receivers: ABS + /// - Factor: 0.005 + /// - Offset: -163.84 #[inline(always)] pub fn yaw_rate(&self) -> f32 { - self.yaw_rate_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.005_f32; + let offset = -163.84_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Yaw_Rate' + /// Returns the raw value of `Yaw_Rate`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.005 - /// - Offset: -163.84 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn yaw_rate_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.005_f32; - let offset = -163.84_f32; - (signal as f32) * factor + offset + pub fn yaw_rate_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'Yaw_Rate' + /// Sets the raw value of `Yaw_Rate`. + #[inline(always)] + pub fn set_yaw_rate_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `Yaw_Rate`. #[inline(always)] pub fn set_yaw_rate(&mut self, value: f32) -> Result<(), CanError> { if value < -163.84_f32 || 163.83_f32 < value { @@ -782,7 +807,7 @@ impl Mm510Tx1 { self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } - /// Get value of 'AY1' + /// Returns the value of `AY1`. /// /// Measured lateral acceleration. /// @@ -790,26 +815,31 @@ impl Mm510Tx1 { /// - Max: 4.1765 /// - Unit: "g" /// - Receivers: ABS + /// - Factor: 0.000127465 + /// - Offset: -4.1768 #[inline(always)] pub fn ay1(&self) -> f32 { - self.ay1_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.000127465_f32; + let offset = -4.1768_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AY1' + /// Returns the raw value of `AY1`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.000127465 - /// - Offset: -4.1768 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ay1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.000127465_f32; - let offset = -4.1768_f32; - (signal as f32) * factor + offset + pub fn ay1_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `AY1`. + #[inline(always)] + pub fn set_ay1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'AY1' + /// Sets the value of `AY1`. #[inline(always)] pub fn set_ay1(&mut self, value: f32) -> Result<(), CanError> { if value < -4.1768_f32 || 4.1765_f32 < value { @@ -889,18 +919,18 @@ impl Mm510Tx2 { pub const ROLL_RATE_MAX: f32 = 163.835_f32; pub const AX1_MIN: f32 = -4.1768_f32; pub const AX1_MAX: f32 = 4.1765_f32; - /// Construct new 'MM5_10_TX2' from values + /// Constructs a new `MM5_10_TX2` message from values. pub fn new(roll_rate: f32, ax1: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_roll_rate(roll_rate)?; res.set_ax1(ax1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MM5_10_TX2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Roll_Rate' + /// Returns the value of `Roll_Rate`. /// /// Measured roll rate around the X axle. /// @@ -908,26 +938,31 @@ impl Mm510Tx2 { /// - Max: 163.835 /// - Unit: "°/s" /// - Receivers: ABS + /// - Factor: 0.005 + /// - Offset: -163.84 #[inline(always)] pub fn roll_rate(&self) -> f32 { - self.roll_rate_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.005_f32; + let offset = -163.84_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Roll_Rate' + /// Returns the raw value of `Roll_Rate`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.005 - /// - Offset: -163.84 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn roll_rate_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.005_f32; - let offset = -163.84_f32; - (signal as f32) * factor + offset + pub fn roll_rate_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Roll_Rate`. + #[inline(always)] + pub fn set_roll_rate_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Roll_Rate' + /// Sets the value of `Roll_Rate`. #[inline(always)] pub fn set_roll_rate(&mut self, value: f32) -> Result<(), CanError> { if value < -163.84_f32 || 163.835_f32 < value { @@ -941,7 +976,7 @@ impl Mm510Tx2 { self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } - /// Get value of 'AX1' + /// Returns the value of `AX1`. /// /// Measured longitudional acceleration. /// @@ -949,26 +984,31 @@ impl Mm510Tx2 { /// - Max: 4.1765 /// - Unit: "g" /// - Receivers: ABS + /// - Factor: 0.000127465 + /// - Offset: -4.1768 #[inline(always)] pub fn ax1(&self) -> f32 { - self.ax1_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.000127465_f32; + let offset = -4.1768_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AX1' + /// Returns the raw value of `AX1`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.000127465 - /// - Offset: -4.1768 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ax1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.000127465_f32; - let offset = -4.1768_f32; - (signal as f32) * factor + offset + pub fn ax1_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `AX1`. + #[inline(always)] + pub fn set_ax1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'AX1' + /// Sets the value of `AX1`. #[inline(always)] pub fn set_ax1(&mut self, value: f32) -> Result<(), CanError> { if value < -4.1768_f32 || 4.1765_f32 < value { @@ -1046,17 +1086,17 @@ impl Mm510Tx3 { pub const MESSAGE_SIZE: usize = 8; pub const AZ_MIN: f32 = -4.1768_f32; pub const AZ_MAX: f32 = 4.1765_f32; - /// Construct new 'MM5_10_TX3' from values + /// Constructs a new `MM5_10_TX3` message from values. pub fn new(az: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_az(az)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MM5_10_TX3` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'AZ' + /// Returns the value of `AZ`. /// /// Measured vertical acceleration. /// @@ -1064,26 +1104,31 @@ impl Mm510Tx3 { /// - Max: 4.1765 /// - Unit: "g" /// - Receivers: ABS + /// - Factor: 0.000127465 + /// - Offset: -4.1768 #[inline(always)] pub fn az(&self) -> f32 { - self.az_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.000127465_f32; + let offset = -4.1768_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AZ' + /// Returns the raw value of `AZ`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.000127465 - /// - Offset: -4.1768 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn az_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.000127465_f32; - let offset = -4.1768_f32; - (signal as f32) * factor + offset + pub fn az_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'AZ' + /// Sets the raw value of `AZ`. + #[inline(always)] + pub fn set_az_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `AZ`. #[inline(always)] pub fn set_az(&mut self, value: f32) -> Result<(), CanError> { if value < -4.1768_f32 || 4.1765_f32 < value { @@ -1167,7 +1212,7 @@ impl Bremse2 { pub const WHLSPEED_RL_BREMSE2_MAX: f32 = 100_f32; pub const WHLSPEED_RR_BREMSE2_MIN: f32 = 0_f32; pub const WHLSPEED_RR_BREMSE2_MAX: f32 = 100_f32; - /// Construct new 'BREMSE_2' from values + /// Constructs a new `BREMSE_2` message from values. pub fn new( whlspeed_fl_bremse2: f32, whlspeed_fr_bremse2: f32, @@ -1181,11 +1226,11 @@ impl Bremse2 { res.set_whlspeed_rr_bremse2(whlspeed_rr_bremse2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'whlspeed_FL_Bremse2' + /// Returns the value of `whlspeed_FL_Bremse2`. /// /// Radgeschwindigkeit / wheel speed direct FL /// @@ -1193,26 +1238,31 @@ impl Bremse2 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_fl_bremse2(&self) -> f32 { - self.whlspeed_fl_bremse2_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_FL_Bremse2' + /// Returns the raw value of `whlspeed_FL_Bremse2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_fl_bremse2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_fl_bremse2_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `whlspeed_FL_Bremse2`. + #[inline(always)] + pub fn set_whlspeed_fl_bremse2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'whlspeed_FL_Bremse2' + /// Sets the value of `whlspeed_FL_Bremse2`. #[inline(always)] pub fn set_whlspeed_fl_bremse2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -1226,7 +1276,7 @@ impl Bremse2 { self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } - /// Get value of 'whlspeed_FR_Bremse2' + /// Returns the value of `whlspeed_FR_Bremse2`. /// /// Radgeschwindigkeit / wheel speed direct FR /// @@ -1234,26 +1284,31 @@ impl Bremse2 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_fr_bremse2(&self) -> f32 { - self.whlspeed_fr_bremse2_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_FR_Bremse2' + /// Returns the raw value of `whlspeed_FR_Bremse2`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_fr_bremse2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_fr_bremse2_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `whlspeed_FR_Bremse2`. + #[inline(always)] + pub fn set_whlspeed_fr_bremse2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'whlspeed_FR_Bremse2' + /// Sets the value of `whlspeed_FR_Bremse2`. #[inline(always)] pub fn set_whlspeed_fr_bremse2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -1267,7 +1322,7 @@ impl Bremse2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'whlspeed_RL_Bremse2' + /// Returns the value of `whlspeed_RL_Bremse2`. /// /// Radgeschwindigkeit / wheel speed direct RL /// @@ -1275,26 +1330,31 @@ impl Bremse2 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_rl_bremse2(&self) -> f32 { - self.whlspeed_rl_bremse2_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_RL_Bremse2' + /// Returns the raw value of `whlspeed_RL_Bremse2`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_rl_bremse2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_rl_bremse2_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `whlspeed_RL_Bremse2`. + #[inline(always)] + pub fn set_whlspeed_rl_bremse2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'whlspeed_RL_Bremse2' + /// Sets the value of `whlspeed_RL_Bremse2`. #[inline(always)] pub fn set_whlspeed_rl_bremse2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -1308,7 +1368,7 @@ impl Bremse2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'whlspeed_RR_Bremse2' + /// Returns the value of `whlspeed_RR_Bremse2`. /// /// Radgeschwindigkeit / wheel speed direct RR /// @@ -1316,26 +1376,31 @@ impl Bremse2 { /// - Max: 100 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn whlspeed_rr_bremse2(&self) -> f32 { - self.whlspeed_rr_bremse2_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'whlspeed_RR_Bremse2' + /// Returns the raw value of `whlspeed_RR_Bremse2`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn whlspeed_rr_bremse2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn whlspeed_rr_bremse2_raw_val(&self) -> u16 { + self.raw.view_bits::()[48..64].load_le::() } - /// Set value of 'whlspeed_RR_Bremse2' + /// Sets the raw value of `whlspeed_RR_Bremse2`. + #[inline(always)] + pub fn set_whlspeed_rr_bremse2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[48..64].store_le(value); + } + /// Sets the value of `whlspeed_RR_Bremse2`. #[inline(always)] pub fn set_whlspeed_rr_bremse2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -1412,43 +1477,46 @@ impl AbsSwitch { pub const MESSAGE_SIZE: usize = 8; pub const ABS_SWITCHPOSITION_MIN: u8 = 0_u8; pub const ABS_SWITCHPOSITION_MAX: u8 = 11_u8; - /// Construct new 'ABS_Switch' from values + /// Constructs a new `ABS_Switch` message from values. pub fn new(abs_switchposition: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_abs_switchposition(abs_switchposition)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ABS_Switch` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'ABS_Switchposition' + /// Returns the value of `ABS_Switchposition`. /// /// Channel to send the swich position via CAN to the ABS. /// /// - Min: 0 /// - Max: 11 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: ABS + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn abs_switchposition(&self) -> u8 { - self.abs_switchposition_raw() + self.abs_switchposition_raw_val() } - /// Get raw value of 'ABS_Switchposition' + /// Returns the raw value of `ABS_Switchposition`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn abs_switchposition_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn abs_switchposition_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'ABS_Switchposition' + /// Sets the raw value of `ABS_Switchposition`. + #[inline(always)] + pub fn set_abs_switchposition_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `ABS_Switchposition`. #[inline(always)] pub fn set_abs_switchposition(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 11_u8 < value { @@ -1456,13 +1524,6 @@ impl AbsSwitch { message_id: AbsSwitch::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: AbsSwitch::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -1528,12 +1589,12 @@ impl Bremse30 { StandardId::new_unchecked(0x340) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'BREMSE_30' from values + /// Constructs a new `BREMSE_30` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_30` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -1601,41 +1662,44 @@ impl Bremse31 { pub const MESSAGE_SIZE: usize = 8; pub const IDLE_TIME_MIN: u16 = 0_u16; pub const IDLE_TIME_MAX: u16 = 0_u16; - /// Construct new 'BREMSE_31' from values + /// Constructs a new `BREMSE_31` message from values. pub fn new(idle_time: u16) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_idle_time(idle_time)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_31` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Idle_Time' + /// Returns the value of `Idle_Time`. /// /// - Min: 0 /// - Max: 0 /// - Unit: "-" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn idle_time(&self) -> u16 { - self.idle_time_raw() + self.idle_time_raw_val() } - /// Get raw value of 'Idle_Time' + /// Returns the raw value of `Idle_Time`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn idle_time_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn idle_time_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Idle_Time`. + #[inline(always)] + pub fn set_idle_time_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Idle_Time' + /// Sets the value of `Idle_Time`. #[inline(always)] pub fn set_idle_time(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1643,13 +1707,6 @@ impl Bremse31 { message_id: Bremse31::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse31::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1727,7 +1784,7 @@ impl Bremse32 { pub const WHEEL_QUALITY_RL_MAX: u8 = 32_u8; pub const WHEEL_QUALITY_RR_MIN: u8 = 0_u8; pub const WHEEL_QUALITY_RR_MAX: u8 = 32_u8; - /// Construct new 'BREMSE_32' from values + /// Constructs a new `BREMSE_32` message from values. pub fn new( acc_fa: f32, acc_ra: f32, @@ -1745,11 +1802,11 @@ impl Bremse32 { res.set_wheel_quality_rr(wheel_quality_rr)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_32` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'acc_FA' + /// Returns the value of `acc_FA`. /// /// Fill level of the fluid reservoir of the front axle. /// @@ -1757,26 +1814,31 @@ impl Bremse32 { /// - Max: 10 /// - Unit: "cm3" /// - Receivers: Vector__XXX + /// - Factor: 0.05 + /// - Offset: 0 #[inline(always)] pub fn acc_fa(&self) -> f32 { - self.acc_fa_raw() + let signal = self.raw.view_bits::()[0..8].load_le::(); + let factor = 0.05_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'acc_FA' + /// Returns the raw value of `acc_FA`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 0.05 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn acc_fa_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 0.05_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn acc_fa_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `acc_FA`. + #[inline(always)] + pub fn set_acc_fa_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'acc_FA' + /// Sets the value of `acc_FA`. #[inline(always)] pub fn set_acc_fa(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 10_f32 < value { @@ -1790,7 +1852,7 @@ impl Bremse32 { self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'acc_RA' + /// Returns the value of `acc_RA`. /// /// Fill level of the fluid reservoir of the rear axle. /// @@ -1798,26 +1860,31 @@ impl Bremse32 { /// - Max: 10 /// - Unit: "cm3" /// - Receivers: Vector__XXX + /// - Factor: 0.05 + /// - Offset: 0 #[inline(always)] pub fn acc_ra(&self) -> f32 { - self.acc_ra_raw() + let signal = self.raw.view_bits::()[8..16].load_le::(); + let factor = 0.05_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'acc_RA' + /// Returns the raw value of `acc_RA`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 0.05 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn acc_ra_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 0.05_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn acc_ra_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'acc_RA' + /// Sets the raw value of `acc_RA`. + #[inline(always)] + pub fn set_acc_ra_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `acc_RA`. #[inline(always)] pub fn set_acc_ra(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 10_f32 < value { @@ -1831,7 +1898,7 @@ impl Bremse32 { self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'WheelQuality_FL' + /// Returns the value of `WheelQuality_FL`. /// /// Bit matrix /// Bit0 ( 1) Signal Reduced Monitored @@ -1845,27 +1912,30 @@ impl Bremse32 { /// /// - Min: 0 /// - Max: 32 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn wheel_quality_fl(&self) -> u8 { - self.wheel_quality_fl_raw() + self.wheel_quality_fl_raw_val() } - /// Get raw value of 'WheelQuality_FL' + /// Returns the raw value of `WheelQuality_FL`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_quality_fl_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn wheel_quality_fl_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `WheelQuality_FL`. + #[inline(always)] + pub fn set_wheel_quality_fl_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'WheelQuality_FL' + /// Sets the value of `WheelQuality_FL`. #[inline(always)] pub fn set_wheel_quality_fl(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 32_u8 < value { @@ -1873,17 +1943,10 @@ impl Bremse32 { message_id: Bremse32::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse32::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'WheelQuality_FR' + /// Returns the value of `WheelQuality_FR`. /// /// Bit matrix /// Bit0 ( 1) Signal Reduced Monitored @@ -1897,45 +1960,41 @@ impl Bremse32 { /// /// - Min: 0 /// - Max: 32 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn wheel_quality_fr(&self) -> u8 { - self.wheel_quality_fr_raw() + self.wheel_quality_fr_raw_val() } - /// Get raw value of 'WheelQuality_FR' + /// Returns the raw value of `WheelQuality_FR`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_quality_fr_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn wheel_quality_fr_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_le::() } - /// Set value of 'WheelQuality_FR' + /// Sets the raw value of `WheelQuality_FR`. #[inline(always)] - pub fn set_wheel_quality_fr(&mut self, value: u8) -> Result<(), CanError> { + pub fn set_wheel_quality_fr_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_le(value); + } + /// Sets the value of `WheelQuality_FR`. + #[inline(always)] + pub fn set_wheel_quality_fr(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 32_u8 < value { return Err(CanError::ParameterOutOfRange { message_id: Bremse32::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse32::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'WheelQuality_RL' + /// Returns the value of `WheelQuality_RL`. /// /// Bit matrix /// Bit0 ( 1) Signal Reduced Monitored @@ -1949,27 +2008,30 @@ impl Bremse32 { /// /// - Min: 0 /// - Max: 32 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn wheel_quality_rl(&self) -> u8 { - self.wheel_quality_rl_raw() + self.wheel_quality_rl_raw_val() } - /// Get raw value of 'WheelQuality_RL' + /// Returns the raw value of `WheelQuality_RL`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_quality_rl_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn wheel_quality_rl_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() + } + /// Sets the raw value of `WheelQuality_RL`. + #[inline(always)] + pub fn set_wheel_quality_rl_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); } - /// Set value of 'WheelQuality_RL' + /// Sets the value of `WheelQuality_RL`. #[inline(always)] pub fn set_wheel_quality_rl(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 32_u8 < value { @@ -1977,17 +2039,10 @@ impl Bremse32 { message_id: Bremse32::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse32::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } - /// Get value of 'WheelQuality_RR' + /// Returns the value of `WheelQuality_RR`. /// /// Bit matrix /// Bit0 ( 1) Signal Reduced Monitored @@ -2001,27 +2056,30 @@ impl Bremse32 { /// /// - Min: 0 /// - Max: 32 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn wheel_quality_rr(&self) -> u8 { - self.wheel_quality_rr_raw() + self.wheel_quality_rr_raw_val() } - /// Get raw value of 'WheelQuality_RR' + /// Returns the raw value of `WheelQuality_RR`. /// /// - Start bit: 56 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_quality_rr_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn wheel_quality_rr_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_le::() + } + /// Sets the raw value of `WheelQuality_RR`. + #[inline(always)] + pub fn set_wheel_quality_rr_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_le(value); } - /// Set value of 'WheelQuality_RR' + /// Sets the value of `WheelQuality_RR`. #[inline(always)] pub fn set_wheel_quality_rr(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 32_u8 < value { @@ -2029,13 +2087,6 @@ impl Bremse32 { message_id: Bremse32::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse32::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_le(value); Ok(()) } @@ -2111,7 +2162,7 @@ impl Bremse51 { pub const IF_REVISION_MAX: u8 = 63_u8; pub const IF_CHKSUM_MIN: u8 = 0_u8; pub const IF_CHKSUM_MAX: u8 = 15_u8; - /// Construct new 'BREMSE_51' from values + /// Constructs a new `BREMSE_51` message from values. pub fn new( ax1_abs_int: f32, ay1_abs_int: f32, @@ -2127,11 +2178,11 @@ impl Bremse51 { res.set_if_chksum(if_chksum)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_51` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'AX1_ABS_int' + /// Returns the value of `AX1_ABS_int`. /// /// Used longitudional acceleration value in the ABS. /// @@ -2139,26 +2190,31 @@ impl Bremse51 { /// - Max: 4.1736697 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.00012742 + /// - Offset: -4.1768 #[inline(always)] pub fn ax1_abs_int(&self) -> f32 { - self.ax1_abs_int_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.00012742_f32; + let offset = -4.1768_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AX1_ABS_int' + /// Returns the raw value of `AX1_ABS_int`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.00012742 - /// - Offset: -4.1768 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ax1_abs_int_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.00012742_f32; - let offset = -4.1768_f32; - (signal as f32) * factor + offset + pub fn ax1_abs_int_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AX1_ABS_int`. + #[inline(always)] + pub fn set_ax1_abs_int_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AX1_ABS_int' + /// Sets the value of `AX1_ABS_int`. #[inline(always)] pub fn set_ax1_abs_int(&mut self, value: f32) -> Result<(), CanError> { if value < -4.1768_f32 || 4.1736697_f32 < value { @@ -2172,7 +2228,7 @@ impl Bremse51 { self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } - /// Get value of 'AY1_ABS_int' + /// Returns the value of `AY1_ABS_int`. /// /// Used lateral acceleration value in the ABS. /// @@ -2180,26 +2236,31 @@ impl Bremse51 { /// - Max: 4.1765 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.00012742 + /// - Offset: -4.1768 #[inline(always)] pub fn ay1_abs_int(&self) -> f32 { - self.ay1_abs_int_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.00012742_f32; + let offset = -4.1768_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AY1_ABS_int' + /// Returns the raw value of `AY1_ABS_int`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.00012742 - /// - Offset: -4.1768 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ay1_abs_int_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.00012742_f32; - let offset = -4.1768_f32; - (signal as f32) * factor + offset + pub fn ay1_abs_int_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'AY1_ABS_int' + /// Sets the raw value of `AY1_ABS_int`. + #[inline(always)] + pub fn set_ay1_abs_int_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `AY1_ABS_int`. #[inline(always)] pub fn set_ay1_abs_int(&mut self, value: f32) -> Result<(), CanError> { if value < -4.1768_f32 || 4.1765_f32 < value { @@ -2213,33 +2274,36 @@ impl Bremse51 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IF_variant' + /// Returns the value of `IF_variant`. /// /// external info to e.g. MS6 which dbc has to be used. This index increments on changes that make the MS6 interface incompatible to the predecessor CAN interface implementation /// /// - Min: 0 /// - Max: 63 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn if_variant(&self) -> u8 { - self.if_variant_raw() + self.if_variant_raw_val() } - /// Get raw value of 'IF_variant' + /// Returns the raw value of `IF_variant`. /// /// - Start bit: 48 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn if_variant_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..54].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn if_variant_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..54].load_le::() + } + /// Sets the raw value of `IF_variant`. + #[inline(always)] + pub fn set_if_variant_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..54].store_le(value); } - /// Set value of 'IF_variant' + /// Sets the value of `IF_variant`. #[inline(always)] pub fn set_if_variant(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 63_u8 < value { @@ -2247,43 +2311,39 @@ impl Bremse51 { message_id: Bremse51::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse51::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..54].store_le(value); Ok(()) } - /// Get value of 'IF_revision' + /// Returns the value of `IF_revision`. /// /// external info to e.g. MS6 which dbc has to be used. This index increments with added features (rest of MS6 interface stays intact.) /// /// - Min: 0 /// - Max: 63 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn if_revision(&self) -> u8 { - self.if_revision_raw() + self.if_revision_raw_val() } - /// Get raw value of 'IF_revision' + /// Returns the raw value of `IF_revision`. /// /// - Start bit: 54 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn if_revision_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[54..60].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn if_revision_raw_val(&self) -> u8 { + self.raw.view_bits::()[54..60].load_le::() + } + /// Sets the raw value of `IF_revision`. + #[inline(always)] + pub fn set_if_revision_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[54..60].store_le(value); } - /// Set value of 'IF_revision' + /// Sets the value of `IF_revision`. #[inline(always)] pub fn set_if_revision(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 63_u8 < value { @@ -2291,43 +2351,39 @@ impl Bremse51 { message_id: Bremse51::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse51::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[54..60].store_le(value); Ok(()) } - /// Get value of 'IF_chksum' + /// Returns the value of `IF_chksum`. /// /// external info to e.g. MS6 which dbc has to be used. Checksum /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn if_chksum(&self) -> u8 { - self.if_chksum_raw() + self.if_chksum_raw_val() } - /// Get raw value of 'IF_chksum' + /// Returns the raw value of `IF_chksum`. /// /// - Start bit: 60 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn if_chksum_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[60..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn if_chksum_raw_val(&self) -> u8 { + self.raw.view_bits::()[60..64].load_le::() + } + /// Sets the raw value of `IF_chksum`. + #[inline(always)] + pub fn set_if_chksum_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[60..64].store_le(value); } - /// Set value of 'IF_chksum' + /// Sets the value of `IF_chksum`. #[inline(always)] pub fn set_if_chksum(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -2335,13 +2391,6 @@ impl Bremse51 { message_id: Bremse51::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse51::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[60..64].store_le(value); Ok(()) } @@ -2485,32 +2534,37 @@ impl Bremse52 { pub const HU_DATE_DAY_MAX: u8 = 31_u8; pub const ECU_SERIAL_MIN: u32 = 0_u32; pub const ECU_SERIAL_MAX: u32 = 99999_u32; - /// Construct new 'BREMSE_52' from values + /// Constructs a new `BREMSE_52` message from values. pub fn new(mplx_sw_info: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_mplx_sw_info(mplx_sw_info)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_52` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Mplx_SW_Info' + /// Returns the raw value of `Mplx_SW_Info`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn mplx_sw_info_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn mplx_sw_info_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `Mplx_SW_Info`. + #[allow(dead_code)] + #[inline(always)] + fn set_mplx_sw_info_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - pub fn mplx_sw_info(&mut self) -> Result { - match self.mplx_sw_info_raw() { + /// Selects the active multiplexed sub-message for `Mplx_SW_Info`. + pub fn mplx_sw_info_multiplexed( + &mut self, + ) -> Result { + match self.mplx_sw_info_raw_val() { 1 => { Ok( Bremse52MplxSwInfoIndex::M1(Bremse52MplxSwInfoM1 { @@ -2568,7 +2622,7 @@ impl Bremse52 { } } } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] fn set_mplx_sw_info(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2576,17 +2630,10 @@ impl Bremse52 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] pub fn set_m1(&mut self, value: Bremse52MplxSwInfoM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -2595,7 +2642,7 @@ impl Bremse52 { self.set_mplx_sw_info(1)?; Ok(()) } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] pub fn set_m2(&mut self, value: Bremse52MplxSwInfoM2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -2604,7 +2651,7 @@ impl Bremse52 { self.set_mplx_sw_info(2)?; Ok(()) } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] pub fn set_m3(&mut self, value: Bremse52MplxSwInfoM3) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -2613,7 +2660,7 @@ impl Bremse52 { self.set_mplx_sw_info(3)?; Ok(()) } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] pub fn set_m4(&mut self, value: Bremse52MplxSwInfoM4) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -2622,7 +2669,7 @@ impl Bremse52 { self.set_mplx_sw_info(4)?; Ok(()) } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] pub fn set_m5(&mut self, value: Bremse52MplxSwInfoM5) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -2631,7 +2678,7 @@ impl Bremse52 { self.set_mplx_sw_info(5)?; Ok(()) } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] pub fn set_m6(&mut self, value: Bremse52MplxSwInfoM6) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -2640,7 +2687,7 @@ impl Bremse52 { self.set_mplx_sw_info(6)?; Ok(()) } - /// Set value of 'Mplx_SW_Info' + /// Sets the value of `Mplx_SW_Info`. #[inline(always)] pub fn set_m7(&mut self, value: Bremse52MplxSwInfoM7) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -2733,33 +2780,36 @@ impl Bremse52MplxSwInfoM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SW_version_High_upper' + /// Returns the value of `SW_version_High_upper`. /// /// version 1.0 as 0x01(upper), version 100.20 as 0x64(upper) /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sw_version_high_upper(&self) -> u8 { - self.sw_version_high_upper_raw() + self.sw_version_high_upper_raw_val() } - /// Get raw value of 'SW_version_High_upper' + /// Returns the raw value of `SW_version_High_upper`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sw_version_high_upper_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sw_version_high_upper_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'SW_version_High_upper' + /// Sets the raw value of `SW_version_High_upper`. + #[inline(always)] + pub fn set_sw_version_high_upper_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `SW_version_High_upper`. #[inline(always)] pub fn set_sw_version_high_upper(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2767,43 +2817,39 @@ impl Bremse52MplxSwInfoM1 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'SW_version_High_lower' + /// Returns the value of `SW_version_High_lower`. /// /// version 1.0 as 0x00(lower), version 100.20 as 0x14(lower) /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sw_version_high_lower(&self) -> u8 { - self.sw_version_high_lower_raw() + self.sw_version_high_lower_raw_val() } - /// Get raw value of 'SW_version_High_lower' + /// Returns the raw value of `SW_version_High_lower`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sw_version_high_lower_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sw_version_high_lower_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'SW_version_High_lower' + /// Sets the raw value of `SW_version_High_lower`. + #[inline(always)] + pub fn set_sw_version_high_lower_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `SW_version_High_lower`. #[inline(always)] pub fn set_sw_version_high_lower(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2811,43 +2857,39 @@ impl Bremse52MplxSwInfoM1 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'SW_version_Mid_upper' + /// Returns the value of `SW_version_Mid_upper`. /// /// version 1.0 as 0x01(upper), version 100.20 as 0x64(upper) /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sw_version_mid_upper(&self) -> u8 { - self.sw_version_mid_upper_raw() + self.sw_version_mid_upper_raw_val() } - /// Get raw value of 'SW_version_Mid_upper' + /// Returns the raw value of `SW_version_Mid_upper`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sw_version_mid_upper_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sw_version_mid_upper_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'SW_version_Mid_upper' + /// Sets the raw value of `SW_version_Mid_upper`. + #[inline(always)] + pub fn set_sw_version_mid_upper_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `SW_version_Mid_upper`. #[inline(always)] pub fn set_sw_version_mid_upper(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2855,43 +2897,39 @@ impl Bremse52MplxSwInfoM1 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'SW_version_Mid_lower' + /// Returns the value of `SW_version_Mid_lower`. /// /// version 1.0 as 0x00(lower), version 100.20 as 0x14(lower) /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sw_version_mid_lower(&self) -> u8 { - self.sw_version_mid_lower_raw() + self.sw_version_mid_lower_raw_val() } - /// Get raw value of 'SW_version_Mid_lower' + /// Returns the raw value of `SW_version_Mid_lower`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sw_version_mid_lower_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sw_version_mid_lower_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() } - /// Set value of 'SW_version_Mid_lower' + /// Sets the raw value of `SW_version_Mid_lower`. + #[inline(always)] + pub fn set_sw_version_mid_lower_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); + } + /// Sets the value of `SW_version_Mid_lower`. #[inline(always)] pub fn set_sw_version_mid_lower(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2899,43 +2937,39 @@ impl Bremse52MplxSwInfoM1 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'SW_version_Low_upper' + /// Returns the value of `SW_version_Low_upper`. /// /// version 1.0 as 0x01(upper), version 100.20 as 0x64(upper) /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sw_version_low_upper(&self) -> u8 { - self.sw_version_low_upper_raw() + self.sw_version_low_upper_raw_val() } - /// Get raw value of 'SW_version_Low_upper' + /// Returns the raw value of `SW_version_Low_upper`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sw_version_low_upper_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sw_version_low_upper_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_le::() } - /// Set value of 'SW_version_Low_upper' + /// Sets the raw value of `SW_version_Low_upper`. + #[inline(always)] + pub fn set_sw_version_low_upper_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_le(value); + } + /// Sets the value of `SW_version_Low_upper`. #[inline(always)] pub fn set_sw_version_low_upper(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2943,43 +2977,39 @@ impl Bremse52MplxSwInfoM1 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'SW_version_Low_lower' + /// Returns the value of `SW_version_Low_lower`. /// /// version 1.0 as 0x00(lower), version 100.20 as 0x14(lower) /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sw_version_low_lower(&self) -> u8 { - self.sw_version_low_lower_raw() + self.sw_version_low_lower_raw_val() } - /// Get raw value of 'SW_version_Low_lower' + /// Returns the raw value of `SW_version_Low_lower`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sw_version_low_lower_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sw_version_low_lower_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() } - /// Set value of 'SW_version_Low_lower' + /// Sets the raw value of `SW_version_Low_lower`. + #[inline(always)] + pub fn set_sw_version_low_lower_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); + } + /// Sets the value of `SW_version_Low_lower`. #[inline(always)] pub fn set_sw_version_low_lower(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2987,13 +3017,6 @@ impl Bremse52MplxSwInfoM1 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } @@ -3024,31 +3047,34 @@ impl Bremse52MplxSwInfoM2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BB_dig1' + /// Returns the value of `BB_dig1`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bb_dig1(&self) -> u8 { - self.bb_dig1_raw() + self.bb_dig1_raw_val() } - /// Get raw value of 'BB_dig1' + /// Returns the raw value of `BB_dig1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bb_dig1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bb_dig1_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `BB_dig1`. + #[inline(always)] + pub fn set_bb_dig1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'BB_dig1' + /// Sets the value of `BB_dig1`. #[inline(always)] pub fn set_bb_dig1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3056,41 +3082,37 @@ impl Bremse52MplxSwInfoM2 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'BB_dig2' + /// Returns the value of `BB_dig2`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bb_dig2(&self) -> u8 { - self.bb_dig2_raw() + self.bb_dig2_raw_val() } - /// Get raw value of 'BB_dig2' + /// Returns the raw value of `BB_dig2`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bb_dig2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bb_dig2_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `BB_dig2`. + #[inline(always)] + pub fn set_bb_dig2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'BB_dig2' + /// Sets the value of `BB_dig2`. #[inline(always)] pub fn set_bb_dig2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3098,41 +3120,37 @@ impl Bremse52MplxSwInfoM2 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'BB_dig3' + /// Returns the value of `BB_dig3`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bb_dig3(&self) -> u8 { - self.bb_dig3_raw() + self.bb_dig3_raw_val() } - /// Get raw value of 'BB_dig3' + /// Returns the raw value of `BB_dig3`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bb_dig3_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bb_dig3_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `BB_dig3`. + #[inline(always)] + pub fn set_bb_dig3_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'BB_dig3' + /// Sets the value of `BB_dig3`. #[inline(always)] pub fn set_bb_dig3(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3140,41 +3158,37 @@ impl Bremse52MplxSwInfoM2 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'BB_dig4' + /// Returns the value of `BB_dig4`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bb_dig4(&self) -> u8 { - self.bb_dig4_raw() + self.bb_dig4_raw_val() } - /// Get raw value of 'BB_dig4' + /// Returns the raw value of `BB_dig4`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bb_dig4_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bb_dig4_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `BB_dig4`. + #[inline(always)] + pub fn set_bb_dig4_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'BB_dig4' + /// Sets the value of `BB_dig4`. #[inline(always)] pub fn set_bb_dig4(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3182,41 +3196,37 @@ impl Bremse52MplxSwInfoM2 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'BB_dig5' + /// Returns the value of `BB_dig5`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bb_dig5(&self) -> u8 { - self.bb_dig5_raw() + self.bb_dig5_raw_val() } - /// Get raw value of 'BB_dig5' + /// Returns the raw value of `BB_dig5`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bb_dig5_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bb_dig5_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_le::() + } + /// Sets the raw value of `BB_dig5`. + #[inline(always)] + pub fn set_bb_dig5_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_le(value); } - /// Set value of 'BB_dig5' + /// Sets the value of `BB_dig5`. #[inline(always)] pub fn set_bb_dig5(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3224,41 +3234,37 @@ impl Bremse52MplxSwInfoM2 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'BB_dig6' + /// Returns the value of `BB_dig6`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bb_dig6(&self) -> u8 { - self.bb_dig6_raw() + self.bb_dig6_raw_val() } - /// Get raw value of 'BB_dig6' + /// Returns the raw value of `BB_dig6`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bb_dig6_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bb_dig6_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() + } + /// Sets the raw value of `BB_dig6`. + #[inline(always)] + pub fn set_bb_dig6_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); } - /// Set value of 'BB_dig6' + /// Sets the value of `BB_dig6`. #[inline(always)] pub fn set_bb_dig6(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3266,41 +3272,37 @@ impl Bremse52MplxSwInfoM2 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } - /// Get value of 'BB_dig7' + /// Returns the value of `BB_dig7`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bb_dig7(&self) -> u8 { - self.bb_dig7_raw() + self.bb_dig7_raw_val() } - /// Get raw value of 'BB_dig7' + /// Returns the raw value of `BB_dig7`. /// /// - Start bit: 56 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bb_dig7_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bb_dig7_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_le::() + } + /// Sets the raw value of `BB_dig7`. + #[inline(always)] + pub fn set_bb_dig7_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_le(value); } - /// Set value of 'BB_dig7' + /// Sets the value of `BB_dig7`. #[inline(always)] pub fn set_bb_dig7(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3308,13 +3310,6 @@ impl Bremse52MplxSwInfoM2 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_le(value); Ok(()) } @@ -3345,31 +3340,34 @@ impl Bremse52MplxSwInfoM3 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Appl_Id_01' + /// Returns the value of `Appl_Id_01`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_01(&self) -> u8 { - self.appl_id_01_raw() + self.appl_id_01_raw_val() } - /// Get raw value of 'Appl_Id_01' + /// Returns the raw value of `Appl_Id_01`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_01_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_01_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Appl_Id_01`. + #[inline(always)] + pub fn set_appl_id_01_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Appl_Id_01' + /// Sets the value of `Appl_Id_01`. #[inline(always)] pub fn set_appl_id_01(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3377,41 +3375,37 @@ impl Bremse52MplxSwInfoM3 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_02' + /// Returns the value of `Appl_Id_02`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_02(&self) -> u8 { - self.appl_id_02_raw() + self.appl_id_02_raw_val() } - /// Get raw value of 'Appl_Id_02' + /// Returns the raw value of `Appl_Id_02`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_02_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_02_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Appl_Id_02`. + #[inline(always)] + pub fn set_appl_id_02_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Appl_Id_02' + /// Sets the value of `Appl_Id_02`. #[inline(always)] pub fn set_appl_id_02(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3419,41 +3413,37 @@ impl Bremse52MplxSwInfoM3 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_03' + /// Returns the value of `Appl_Id_03`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_03(&self) -> u8 { - self.appl_id_03_raw() + self.appl_id_03_raw_val() } - /// Get raw value of 'Appl_Id_03' + /// Returns the raw value of `Appl_Id_03`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_03_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_03_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `Appl_Id_03`. + #[inline(always)] + pub fn set_appl_id_03_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'Appl_Id_03' + /// Sets the value of `Appl_Id_03`. #[inline(always)] pub fn set_appl_id_03(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3461,41 +3451,37 @@ impl Bremse52MplxSwInfoM3 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_04' + /// Returns the value of `Appl_Id_04`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_04(&self) -> u8 { - self.appl_id_04_raw() + self.appl_id_04_raw_val() } - /// Get raw value of 'Appl_Id_04' + /// Returns the raw value of `Appl_Id_04`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_04_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_04_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `Appl_Id_04`. + #[inline(always)] + pub fn set_appl_id_04_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'Appl_Id_04' + /// Sets the value of `Appl_Id_04`. #[inline(always)] pub fn set_appl_id_04(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3503,41 +3489,37 @@ impl Bremse52MplxSwInfoM3 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_05' + /// Returns the value of `Appl_Id_05`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_05(&self) -> u8 { - self.appl_id_05_raw() + self.appl_id_05_raw_val() } - /// Get raw value of 'Appl_Id_05' + /// Returns the raw value of `Appl_Id_05`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_05_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_05_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_le::() + } + /// Sets the raw value of `Appl_Id_05`. + #[inline(always)] + pub fn set_appl_id_05_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_le(value); } - /// Set value of 'Appl_Id_05' + /// Sets the value of `Appl_Id_05`. #[inline(always)] pub fn set_appl_id_05(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3545,41 +3527,37 @@ impl Bremse52MplxSwInfoM3 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_06' + /// Returns the value of `Appl_Id_06`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_06(&self) -> u8 { - self.appl_id_06_raw() + self.appl_id_06_raw_val() } - /// Get raw value of 'Appl_Id_06' + /// Returns the raw value of `Appl_Id_06`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_06_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_06_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() + } + /// Sets the raw value of `Appl_Id_06`. + #[inline(always)] + pub fn set_appl_id_06_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); } - /// Set value of 'Appl_Id_06' + /// Sets the value of `Appl_Id_06`. #[inline(always)] pub fn set_appl_id_06(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3587,41 +3565,37 @@ impl Bremse52MplxSwInfoM3 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_07' + /// Returns the value of `Appl_Id_07`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_07(&self) -> u8 { - self.appl_id_07_raw() + self.appl_id_07_raw_val() } - /// Get raw value of 'Appl_Id_07' + /// Returns the raw value of `Appl_Id_07`. /// /// - Start bit: 56 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_07_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_07_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_le::() + } + /// Sets the raw value of `Appl_Id_07`. + #[inline(always)] + pub fn set_appl_id_07_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_le(value); } - /// Set value of 'Appl_Id_07' + /// Sets the value of `Appl_Id_07`. #[inline(always)] pub fn set_appl_id_07(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3629,13 +3603,6 @@ impl Bremse52MplxSwInfoM3 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_le(value); Ok(()) } @@ -3666,31 +3633,34 @@ impl Bremse52MplxSwInfoM4 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Appl_Id_08' + /// Returns the value of `Appl_Id_08`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_08(&self) -> u8 { - self.appl_id_08_raw() + self.appl_id_08_raw_val() } - /// Get raw value of 'Appl_Id_08' + /// Returns the raw value of `Appl_Id_08`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_08_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_08_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Appl_Id_08`. + #[inline(always)] + pub fn set_appl_id_08_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Appl_Id_08' + /// Sets the value of `Appl_Id_08`. #[inline(always)] pub fn set_appl_id_08(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3698,41 +3668,37 @@ impl Bremse52MplxSwInfoM4 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_09' + /// Returns the value of `Appl_Id_09`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX - #[inline(always)] + /// - Factor: 1 + /// - Offset: 0 + #[inline(always)] pub fn appl_id_09(&self) -> u8 { - self.appl_id_09_raw() + self.appl_id_09_raw_val() } - /// Get raw value of 'Appl_Id_09' + /// Returns the raw value of `Appl_Id_09`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_09_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_09_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Appl_Id_09`. + #[inline(always)] + pub fn set_appl_id_09_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Appl_Id_09' + /// Sets the value of `Appl_Id_09`. #[inline(always)] pub fn set_appl_id_09(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3740,41 +3706,37 @@ impl Bremse52MplxSwInfoM4 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_10' + /// Returns the value of `Appl_Id_10`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_10(&self) -> u8 { - self.appl_id_10_raw() + self.appl_id_10_raw_val() } - /// Get raw value of 'Appl_Id_10' + /// Returns the raw value of `Appl_Id_10`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_10_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_10_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `Appl_Id_10`. + #[inline(always)] + pub fn set_appl_id_10_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'Appl_Id_10' + /// Sets the value of `Appl_Id_10`. #[inline(always)] pub fn set_appl_id_10(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3782,41 +3744,37 @@ impl Bremse52MplxSwInfoM4 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_11' + /// Returns the value of `Appl_Id_11`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_11(&self) -> u8 { - self.appl_id_11_raw() + self.appl_id_11_raw_val() } - /// Get raw value of 'Appl_Id_11' + /// Returns the raw value of `Appl_Id_11`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_11_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_11_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() } - /// Set value of 'Appl_Id_11' + /// Sets the raw value of `Appl_Id_11`. + #[inline(always)] + pub fn set_appl_id_11_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); + } + /// Sets the value of `Appl_Id_11`. #[inline(always)] pub fn set_appl_id_11(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3824,41 +3782,37 @@ impl Bremse52MplxSwInfoM4 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_12' + /// Returns the value of `Appl_Id_12`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_12(&self) -> u8 { - self.appl_id_12_raw() + self.appl_id_12_raw_val() } - /// Get raw value of 'Appl_Id_12' + /// Returns the raw value of `Appl_Id_12`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_12_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_12_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_le::() } - /// Set value of 'Appl_Id_12' + /// Sets the raw value of `Appl_Id_12`. + #[inline(always)] + pub fn set_appl_id_12_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_le(value); + } + /// Sets the value of `Appl_Id_12`. #[inline(always)] pub fn set_appl_id_12(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3866,41 +3820,37 @@ impl Bremse52MplxSwInfoM4 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_13' + /// Returns the value of `Appl_Id_13`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_13(&self) -> u8 { - self.appl_id_13_raw() + self.appl_id_13_raw_val() } - /// Get raw value of 'Appl_Id_13' + /// Returns the raw value of `Appl_Id_13`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_13_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_13_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() + } + /// Sets the raw value of `Appl_Id_13`. + #[inline(always)] + pub fn set_appl_id_13_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); } - /// Set value of 'Appl_Id_13' + /// Sets the value of `Appl_Id_13`. #[inline(always)] pub fn set_appl_id_13(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3908,41 +3858,37 @@ impl Bremse52MplxSwInfoM4 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } - /// Get value of 'Appl_Id_14' + /// Returns the value of `Appl_Id_14`. /// /// - Min: 0 /// - Max: 255 /// - Unit: "ASCII" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_id_14(&self) -> u8 { - self.appl_id_14_raw() + self.appl_id_14_raw_val() } - /// Get raw value of 'Appl_Id_14' + /// Returns the raw value of `Appl_Id_14`. /// /// - Start bit: 56 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_id_14_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_id_14_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_le::() } - /// Set value of 'Appl_Id_14' + /// Sets the raw value of `Appl_Id_14`. + #[inline(always)] + pub fn set_appl_id_14_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_le(value); + } + /// Sets the value of `Appl_Id_14`. #[inline(always)] pub fn set_appl_id_14(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -3950,13 +3896,6 @@ impl Bremse52MplxSwInfoM4 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_le(value); Ok(()) } @@ -3987,33 +3926,36 @@ impl Bremse52MplxSwInfoM5 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Appl_date_01' + /// Returns the value of `Appl_date_01`. /// /// year /// /// - Min: 0 /// - Max: 99 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_date_01(&self) -> u8 { - self.appl_date_01_raw() + self.appl_date_01_raw_val() } - /// Get raw value of 'Appl_date_01' + /// Returns the raw value of `Appl_date_01`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_date_01_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_date_01_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Appl_date_01`. + #[inline(always)] + pub fn set_appl_date_01_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Appl_date_01' + /// Sets the value of `Appl_date_01`. #[inline(always)] pub fn set_appl_date_01(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 99_u8 < value { @@ -4021,43 +3963,39 @@ impl Bremse52MplxSwInfoM5 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Appl_date_02' + /// Returns the value of `Appl_date_02`. /// /// month /// /// - Min: 1 /// - Max: 12 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_date_02(&self) -> u8 { - self.appl_date_02_raw() + self.appl_date_02_raw_val() } - /// Get raw value of 'Appl_date_02' + /// Returns the raw value of `Appl_date_02`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_date_02_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_date_02_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'Appl_date_02' + /// Sets the raw value of `Appl_date_02`. + #[inline(always)] + pub fn set_appl_date_02_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `Appl_date_02`. #[inline(always)] pub fn set_appl_date_02(&mut self, value: u8) -> Result<(), CanError> { if value < 1_u8 || 12_u8 < value { @@ -4065,43 +4003,39 @@ impl Bremse52MplxSwInfoM5 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Appl_date_03' + /// Returns the value of `Appl_date_03`. /// /// day /// /// - Min: 1 /// - Max: 31 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_date_03(&self) -> u8 { - self.appl_date_03_raw() + self.appl_date_03_raw_val() } - /// Get raw value of 'Appl_date_03' + /// Returns the raw value of `Appl_date_03`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_date_03_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_date_03_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `Appl_date_03`. + #[inline(always)] + pub fn set_appl_date_03_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'Appl_date_03' + /// Sets the value of `Appl_date_03`. #[inline(always)] pub fn set_appl_date_03(&mut self, value: u8) -> Result<(), CanError> { if value < 1_u8 || 31_u8 < value { @@ -4109,43 +4043,39 @@ impl Bremse52MplxSwInfoM5 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Appl_date_04' + /// Returns the value of `Appl_date_04`. /// /// hour /// /// - Min: 0 /// - Max: 24 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_date_04(&self) -> u8 { - self.appl_date_04_raw() + self.appl_date_04_raw_val() } - /// Get raw value of 'Appl_date_04' + /// Returns the raw value of `Appl_date_04`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_date_04_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_date_04_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `Appl_date_04`. + #[inline(always)] + pub fn set_appl_date_04_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'Appl_date_04' + /// Sets the value of `Appl_date_04`. #[inline(always)] pub fn set_appl_date_04(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 24_u8 < value { @@ -4153,43 +4083,39 @@ impl Bremse52MplxSwInfoM5 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'Appl_date_05' + /// Returns the value of `Appl_date_05`. /// /// minute /// /// - Min: 0 /// - Max: 59 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_date_05(&self) -> u8 { - self.appl_date_05_raw() + self.appl_date_05_raw_val() } - /// Get raw value of 'Appl_date_05' + /// Returns the raw value of `Appl_date_05`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_date_05_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_date_05_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_le::() } - /// Set value of 'Appl_date_05' + /// Sets the raw value of `Appl_date_05`. + #[inline(always)] + pub fn set_appl_date_05_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_le(value); + } + /// Sets the value of `Appl_date_05`. #[inline(always)] pub fn set_appl_date_05(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 59_u8 < value { @@ -4197,43 +4123,39 @@ impl Bremse52MplxSwInfoM5 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'Appl_date_06' + /// Returns the value of `Appl_date_06`. /// /// seconds /// /// - Min: 0 /// - Max: 59 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn appl_date_06(&self) -> u8 { - self.appl_date_06_raw() + self.appl_date_06_raw_val() } - /// Get raw value of 'Appl_date_06' + /// Returns the raw value of `Appl_date_06`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn appl_date_06_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn appl_date_06_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() + } + /// Sets the raw value of `Appl_date_06`. + #[inline(always)] + pub fn set_appl_date_06_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); } - /// Set value of 'Appl_date_06' + /// Sets the value of `Appl_date_06`. #[inline(always)] pub fn set_appl_date_06(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 59_u8 < value { @@ -4241,13 +4163,6 @@ impl Bremse52MplxSwInfoM5 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } @@ -4278,31 +4193,34 @@ impl Bremse52MplxSwInfoM6 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SW_CAN_ident' + /// Returns the value of `SW_CAN_ident`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sw_can_ident(&self) -> u8 { - self.sw_can_ident_raw() + self.sw_can_ident_raw_val() } - /// Get raw value of 'SW_CAN_ident' + /// Returns the raw value of `SW_CAN_ident`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sw_can_ident_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sw_can_ident_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `SW_CAN_ident`. + #[inline(always)] + pub fn set_sw_can_ident_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'SW_CAN_ident' + /// Sets the value of `SW_CAN_ident`. #[inline(always)] pub fn set_sw_can_ident(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -4310,13 +4228,6 @@ impl Bremse52MplxSwInfoM6 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } @@ -4347,31 +4258,34 @@ impl Bremse52MplxSwInfoM7 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'HU_date_year' + /// Returns the value of `HU_date_year`. /// /// - Min: 0 /// - Max: 99 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn hu_date_year(&self) -> u8 { - self.hu_date_year_raw() + self.hu_date_year_raw_val() } - /// Get raw value of 'HU_date_year' + /// Returns the raw value of `HU_date_year`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn hu_date_year_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn hu_date_year_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'HU_date_year' + /// Sets the raw value of `HU_date_year`. + #[inline(always)] + pub fn set_hu_date_year_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `HU_date_year`. #[inline(always)] pub fn set_hu_date_year(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 99_u8 < value { @@ -4379,41 +4293,37 @@ impl Bremse52MplxSwInfoM7 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'HU_date_month' + /// Returns the value of `HU_date_month`. /// /// - Min: 1 /// - Max: 12 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn hu_date_month(&self) -> u8 { - self.hu_date_month_raw() + self.hu_date_month_raw_val() } - /// Get raw value of 'HU_date_month' + /// Returns the raw value of `HU_date_month`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn hu_date_month_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn hu_date_month_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'HU_date_month' + /// Sets the raw value of `HU_date_month`. + #[inline(always)] + pub fn set_hu_date_month_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `HU_date_month`. #[inline(always)] pub fn set_hu_date_month(&mut self, value: u8) -> Result<(), CanError> { if value < 1_u8 || 12_u8 < value { @@ -4421,41 +4331,37 @@ impl Bremse52MplxSwInfoM7 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'HU_date_day' + /// Returns the value of `HU_date_day`. /// /// - Min: 1 /// - Max: 31 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn hu_date_day(&self) -> u8 { - self.hu_date_day_raw() + self.hu_date_day_raw_val() } - /// Get raw value of 'HU_date_day' + /// Returns the raw value of `HU_date_day`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn hu_date_day_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn hu_date_day_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'HU_date_day' + /// Sets the raw value of `HU_date_day`. + #[inline(always)] + pub fn set_hu_date_day_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `HU_date_day`. #[inline(always)] pub fn set_hu_date_day(&mut self, value: u8) -> Result<(), CanError> { if value < 1_u8 || 31_u8 < value { @@ -4463,41 +4369,37 @@ impl Bremse52MplxSwInfoM7 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Ecu_serial' + /// Returns the value of `Ecu_serial`. /// /// - Min: 0 /// - Max: 99999 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ecu_serial(&self) -> u32 { - self.ecu_serial_raw() + self.ecu_serial_raw_val() } - /// Get raw value of 'Ecu_serial' + /// Returns the raw value of `Ecu_serial`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ecu_serial_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ecu_serial_raw_val(&self) -> u32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `Ecu_serial`. + #[inline(always)] + pub fn set_ecu_serial_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'Ecu_serial' + /// Sets the value of `Ecu_serial`. #[inline(always)] pub fn set_ecu_serial(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 99999_u32 < value { @@ -4505,13 +4407,6 @@ impl Bremse52MplxSwInfoM7 { message_id: Bremse52::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse52::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } @@ -4547,7 +4442,7 @@ impl Bremse50 { pub const BRAKE_BAL_PCT_MAX: f32 = 100_f32; pub const BRAKE_BAL_PCT_ADVICE_MIN: u8 = 0_u8; pub const BRAKE_BAL_PCT_ADVICE_MAX: u8 = 100_u8; - /// Construct new 'BREMSE_50' from values + /// Constructs a new `BREMSE_50` message from values. pub fn new( brake_bal_at50: f32, brake_bal_at50_advice: u8, @@ -4561,11 +4456,11 @@ impl Bremse50 { res.set_brake_bal_pct_advice(brake_bal_pct_advice)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_50` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Brake_bal_at50' + /// Returns the value of `Brake_bal_at50`. /// /// Calculated rear axle brake pressure if the front pressure is at 50 bar. /// @@ -4573,26 +4468,31 @@ impl Bremse50 { /// - Max: 100 /// - Unit: "Bar" /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn brake_bal_at50(&self) -> f32 { - self.brake_bal_at50_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Brake_bal_at50' + /// Returns the raw value of `Brake_bal_at50`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_bal_at50_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn brake_bal_at50_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'Brake_bal_at50' + /// Sets the raw value of `Brake_bal_at50`. + #[inline(always)] + pub fn set_brake_bal_at50_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `Brake_bal_at50`. #[inline(always)] pub fn set_brake_bal_at50(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -4606,7 +4506,7 @@ impl Bremse50 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Brake_bal_at50_advice' + /// Returns the value of `Brake_bal_at50_advice`. /// /// Recommended rear axle brake pressure if the front pressure is at 50 bar. /// @@ -4614,25 +4514,28 @@ impl Bremse50 { /// - Max: 100 /// - Unit: "Bar" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn brake_bal_at50_advice(&self) -> u8 { - self.brake_bal_at50_advice_raw() + self.brake_bal_at50_advice_raw_val() } - /// Get raw value of 'Brake_bal_at50_advice' + /// Returns the raw value of `Brake_bal_at50_advice`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_bal_at50_advice_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn brake_bal_at50_advice_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `Brake_bal_at50_advice`. + #[inline(always)] + pub fn set_brake_bal_at50_advice_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'Brake_bal_at50_advice' + /// Sets the value of `Brake_bal_at50_advice`. #[inline(always)] pub fn set_brake_bal_at50_advice(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 100_u8 < value { @@ -4640,17 +4543,10 @@ impl Bremse50 { message_id: Bremse50::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse50::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'Brake_bal_pct' + /// Returns the value of `Brake_bal_pct`. /// /// Percental brake balance on the front axle. /// @@ -4658,26 +4554,31 @@ impl Bremse50 { /// - Max: 100 /// - Unit: "%" /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn brake_bal_pct(&self) -> f32 { - self.brake_bal_pct_raw() + let signal = self.raw.view_bits::()[40..56].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Brake_bal_pct' + /// Returns the raw value of `Brake_bal_pct`. /// /// - Start bit: 40 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_bal_pct_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..56].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn brake_bal_pct_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..56].load_le::() } - /// Set value of 'Brake_bal_pct' + /// Sets the raw value of `Brake_bal_pct`. + #[inline(always)] + pub fn set_brake_bal_pct_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..56].store_le(value); + } + /// Sets the value of `Brake_bal_pct`. #[inline(always)] pub fn set_brake_bal_pct(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -4691,7 +4592,7 @@ impl Bremse50 { self.raw.view_bits_mut::()[40..56].store_le(value); Ok(()) } - /// Get value of 'Brake_bal_pct_advice' + /// Returns the value of `Brake_bal_pct_advice`. /// /// Recommended percental brake balance on the front axle. /// @@ -4699,25 +4600,28 @@ impl Bremse50 { /// - Max: 100 /// - Unit: "%" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn brake_bal_pct_advice(&self) -> u8 { - self.brake_bal_pct_advice_raw() + self.brake_bal_pct_advice_raw_val() } - /// Get raw value of 'Brake_bal_pct_advice' + /// Returns the raw value of `Brake_bal_pct_advice`. /// /// - Start bit: 56 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_bal_pct_advice_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn brake_bal_pct_advice_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_le::() + } + /// Sets the raw value of `Brake_bal_pct_advice`. + #[inline(always)] + pub fn set_brake_bal_pct_advice_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_le(value); } - /// Set value of 'Brake_bal_pct_advice' + /// Sets the value of `Brake_bal_pct_advice`. #[inline(always)] pub fn set_brake_bal_pct_advice(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 100_u8 < value { @@ -4725,13 +4629,6 @@ impl Bremse50 { message_id: Bremse50::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse50::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_le(value); Ok(()) } @@ -4815,7 +4712,7 @@ impl Bremse53 { pub const ABS_FAULT_INFO_MAX: u8 = 3_u8; pub const P_RA_MIN: f32 = -42.5_f32; pub const P_RA_MAX: f32 = 425_f32; - /// Construct new 'BREMSE_53' from values + /// Constructs a new `BREMSE_53` message from values. pub fn new( switch_position: u8, p_fa: f32, @@ -4861,37 +4758,40 @@ impl Bremse53 { res.set_p_ra(p_ra)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BREMSE_53` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SwitchPosition' + /// Returns the value of `SwitchPosition`. /// /// Used switch position of the ABS. /// /// - Min: 1 /// - Max: 12 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn switch_position(&self) -> u8 { - self.switch_position_raw() + self.switch_position_raw_val() } - /// Get raw value of 'SwitchPosition' + /// Returns the raw value of `SwitchPosition`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn switch_position_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn switch_position_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SwitchPosition' + /// Sets the raw value of `SwitchPosition`. + #[inline(always)] + pub fn set_switch_position_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SwitchPosition`. #[inline(always)] pub fn set_switch_position(&mut self, value: u8) -> Result<(), CanError> { if value < 1_u8 || 12_u8 < value { @@ -4899,17 +4799,10 @@ impl Bremse53 { message_id: Bremse53::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse53::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'P_FA' + /// Returns the value of `P_FA`. /// /// Brake pressure on the front axle. /// @@ -4917,26 +4810,32 @@ impl Bremse53 { /// - Max: 425 /// - Unit: "bar" /// - Receivers: Vector__XXX + /// - Factor: 0.01526 + /// - Offset: 0 #[inline(always)] pub fn p_fa(&self) -> f32 { - self.p_fa_raw() + let signal = self.raw.view_bits::()[8..24].load_le::(); + let factor = 0.01526_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'P_FA' + /// Returns the raw value of `P_FA`. /// /// - Start bit: 8 /// - Signal size: 16 bits - /// - Factor: 0.01526 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn p_fa_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..24].load_le::(); - let factor = 0.01526_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn p_fa_raw_val(&self) -> i16 { + self.raw.view_bits::()[8..24].load_le::() } - /// Set value of 'P_FA' + /// Sets the raw value of `P_FA`. + #[inline(always)] + pub fn set_p_fa_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..24].store_le(value); + } + /// Sets the value of `P_FA`. #[inline(always)] pub fn set_p_fa(&mut self, value: f32) -> Result<(), CanError> { if value < -42.5_f32 || 425_f32 < value { @@ -4951,63 +4850,70 @@ impl Bremse53 { self.raw.view_bits_mut::()[8..24].store_le(value); Ok(()) } - /// Get value of 'BLS' + /// Returns the value of `BLS`. /// /// Bit for the brake light switch. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bls(&self) -> bool { - self.bls_raw() + self.bls_raw_val() == 1 } - /// Get raw value of 'BLS' + /// Returns the raw value of `BLS`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bls_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bls_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() + } + /// Sets the raw value of `BLS`. + #[inline(always)] + pub fn set_bls_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); } - /// Set value of 'BLS' + /// Sets the value of `BLS`. #[inline(always)] pub fn set_bls(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'Bremse_53_cnt' + /// Returns the value of `Bremse_53_cnt`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bremse_53_cnt(&self) -> u8 { - self.bremse_53_cnt_raw() + self.bremse_53_cnt_raw_val() } - /// Get raw value of 'Bremse_53_cnt' + /// Returns the raw value of `Bremse_53_cnt`. /// /// - Start bit: 26 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bremse_53_cnt_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[26..28].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bremse_53_cnt_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..28].load_le::() } - /// Set value of 'Bremse_53_cnt' + /// Sets the raw value of `Bremse_53_cnt`. + #[inline(always)] + pub fn set_bremse_53_cnt_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..28].store_le(value); + } + /// Sets the value of `Bremse_53_cnt`. #[inline(always)] pub fn set_bremse_53_cnt(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 3_u8 < value { @@ -5015,152 +4921,161 @@ impl Bremse53 { message_id: Bremse53::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse53::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[26..28].store_le(value); Ok(()) } - /// Get value of 'ABS_Malfunction' + /// Returns the value of `ABS_Malfunction`. /// /// Bit will jump to 1, if the ABS control is deactivated by a fault. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn abs_malfunction(&self) -> bool { - self.abs_malfunction_raw() + self.abs_malfunction_raw_val() == 1 } - /// Get raw value of 'ABS_Malfunction' + /// Returns the raw value of `ABS_Malfunction`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn abs_malfunction_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn abs_malfunction_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() } - /// Set value of 'ABS_Malfunction' + /// Sets the raw value of `ABS_Malfunction`. + #[inline(always)] + pub fn set_abs_malfunction_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); + } + /// Sets the value of `ABS_Malfunction`. #[inline(always)] pub fn set_abs_malfunction(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'ABS_Active' + /// Returns the value of `ABS_Active`. /// /// Bit will jump to 1, when the ABS control is active. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn abs_active(&self) -> bool { - self.abs_active_raw() + self.abs_active_raw_val() == 1 } - /// Get raw value of 'ABS_Active' + /// Returns the raw value of `ABS_Active`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn abs_active_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn abs_active_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() + } + /// Sets the raw value of `ABS_Active`. + #[inline(always)] + pub fn set_abs_active_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); } - /// Set value of 'ABS_Active' + /// Sets the value of `ABS_Active`. #[inline(always)] pub fn set_abs_active(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'EBD_Lamp' + /// Returns the value of `EBD_Lamp`. /// /// Bit will jump to 1, when the EBD is deactivated due to a fault. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ebd_lamp(&self) -> bool { - self.ebd_lamp_raw() + self.ebd_lamp_raw_val() == 1 } - /// Get raw value of 'EBD_Lamp' + /// Returns the raw value of `EBD_Lamp`. /// /// - Start bit: 30 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ebd_lamp_raw(&self) -> bool { - let signal = self.raw.view_bits::()[30..31].load_le::(); - signal == 1 + pub fn ebd_lamp_raw_val(&self) -> u8 { + self.raw.view_bits::()[30..31].load_le::() + } + /// Sets the raw value of `EBD_Lamp`. + #[inline(always)] + pub fn set_ebd_lamp_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[30..31].store_le(value); } - /// Set value of 'EBD_Lamp' + /// Sets the value of `EBD_Lamp`. #[inline(always)] pub fn set_ebd_lamp(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[30..31].store_le(value); Ok(()) } - /// Get value of 'ABS_Lamp' + /// Returns the value of `ABS_Lamp`. /// /// Bit will jump to 1, when the ABS control is deactivated due to a fault, switch to the off position or while working with RaceABS. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn abs_lamp(&self) -> bool { - self.abs_lamp_raw() + self.abs_lamp_raw_val() == 1 } - /// Get raw value of 'ABS_Lamp' + /// Returns the raw value of `ABS_Lamp`. /// /// - Start bit: 31 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn abs_lamp_raw(&self) -> bool { - let signal = self.raw.view_bits::()[31..32].load_le::(); - signal == 1 + pub fn abs_lamp_raw_val(&self) -> u8 { + self.raw.view_bits::()[31..32].load_le::() } - /// Set value of 'ABS_Lamp' + /// Sets the raw value of `ABS_Lamp`. + #[inline(always)] + pub fn set_abs_lamp_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[31..32].store_le(value); + } + /// Sets the value of `ABS_Lamp`. #[inline(always)] pub fn set_abs_lamp(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[31..32].store_le(value); Ok(()) } - /// Get value of 'Diag_FL' + /// Returns the value of `Diag_FL`. /// /// Value to show faults related to the wheel speed sensor. /// 0 - Signal ok, 1 - Wiring related fault, 2 - Signal related fault /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn diag_fl(&self) -> Bremse53DiagFl { @@ -5169,24 +5084,29 @@ impl Bremse53 { 2 => Bremse53DiagFl::SignalError, 1 => Bremse53DiagFl::LineError, 0 => Bremse53DiagFl::SignalOk, - _ => Bremse53DiagFl::_Other(self.diag_fl_raw()), + _ => Bremse53DiagFl::_Other(self.diag_fl_phys_val()), } } - /// Get raw value of 'Diag_FL' + #[inline(always)] + fn diag_fl_phys_val(&self) -> u8 { + self.diag_fl_raw_val() + } + /// Returns the raw value of `Diag_FL`. /// /// - Start bit: 32 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_fl_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..34].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn diag_fl_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..34].load_le::() + } + /// Sets the raw value of `Diag_FL`. + #[inline(always)] + pub fn set_diag_fl_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..34].store_le(value); } - /// Set value of 'Diag_FL' + /// Sets the value of `Diag_FL`. #[inline(always)] pub fn set_diag_fl(&mut self, value: Bremse53DiagFl) -> Result<(), CanError> { let value = u8::from(value); @@ -5195,24 +5115,17 @@ impl Bremse53 { message_id: Bremse53::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse53::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..34].store_le(value); Ok(()) } - /// Get value of 'Diag_FR' + /// Returns the value of `Diag_FR`. /// /// Value to show faults related to the wheel speed sensor. /// 0 - Signal ok, 1 - Wiring related fault, 2 - Signal related fault /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn diag_fr(&self) -> Bremse53DiagFr { @@ -5221,24 +5134,29 @@ impl Bremse53 { 2 => Bremse53DiagFr::SignalError, 1 => Bremse53DiagFr::LineError, 0 => Bremse53DiagFr::SignalOk, - _ => Bremse53DiagFr::_Other(self.diag_fr_raw()), + _ => Bremse53DiagFr::_Other(self.diag_fr_phys_val()), } } - /// Get raw value of 'Diag_FR' + #[inline(always)] + fn diag_fr_phys_val(&self) -> u8 { + self.diag_fr_raw_val() + } + /// Returns the raw value of `Diag_FR`. /// /// - Start bit: 34 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_fr_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[34..36].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn diag_fr_raw_val(&self) -> u8 { + self.raw.view_bits::()[34..36].load_le::() } - /// Set value of 'Diag_FR' + /// Sets the raw value of `Diag_FR`. + #[inline(always)] + pub fn set_diag_fr_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[34..36].store_le(value); + } + /// Sets the value of `Diag_FR`. #[inline(always)] pub fn set_diag_fr(&mut self, value: Bremse53DiagFr) -> Result<(), CanError> { let value = u8::from(value); @@ -5247,24 +5165,17 @@ impl Bremse53 { message_id: Bremse53::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse53::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[34..36].store_le(value); Ok(()) } - /// Get value of 'Diag_RL' + /// Returns the value of `Diag_RL`. /// /// Value to show faults related to the wheel speed sensor. /// 0 - Signal ok, 1 - Wiring related fault, 2 - Signal related fault /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn diag_rl(&self) -> Bremse53DiagRl { @@ -5273,24 +5184,29 @@ impl Bremse53 { 2 => Bremse53DiagRl::SignalError, 1 => Bremse53DiagRl::LineError, 0 => Bremse53DiagRl::SignalOk, - _ => Bremse53DiagRl::_Other(self.diag_rl_raw()), + _ => Bremse53DiagRl::_Other(self.diag_rl_phys_val()), } } - /// Get raw value of 'Diag_RL' + #[inline(always)] + fn diag_rl_phys_val(&self) -> u8 { + self.diag_rl_raw_val() + } + /// Returns the raw value of `Diag_RL`. /// /// - Start bit: 36 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_rl_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[36..38].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn diag_rl_raw_val(&self) -> u8 { + self.raw.view_bits::()[36..38].load_le::() + } + /// Sets the raw value of `Diag_RL`. + #[inline(always)] + pub fn set_diag_rl_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[36..38].store_le(value); } - /// Set value of 'Diag_RL' + /// Sets the value of `Diag_RL`. #[inline(always)] pub fn set_diag_rl(&mut self, value: Bremse53DiagRl) -> Result<(), CanError> { let value = u8::from(value); @@ -5299,24 +5215,17 @@ impl Bremse53 { message_id: Bremse53::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse53::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[36..38].store_le(value); Ok(()) } - /// Get value of 'Diag_RR' + /// Returns the value of `Diag_RR`. /// /// Value to show faults related to the wheel speed sensor. /// 0 - Signal ok, 1 - Wiring related fault, 2 - Signal related fault /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn diag_rr(&self) -> Bremse53DiagRr { @@ -5325,24 +5234,29 @@ impl Bremse53 { 2 => Bremse53DiagRr::SignalError, 1 => Bremse53DiagRr::LineError, 0 => Bremse53DiagRr::SignalOk, - _ => Bremse53DiagRr::_Other(self.diag_rr_raw()), + _ => Bremse53DiagRr::_Other(self.diag_rr_phys_val()), } } - /// Get raw value of 'Diag_RR' + #[inline(always)] + fn diag_rr_phys_val(&self) -> u8 { + self.diag_rr_raw_val() + } + /// Returns the raw value of `Diag_RR`. /// /// - Start bit: 38 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_rr_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[38..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn diag_rr_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..40].load_le::() } - /// Set value of 'Diag_RR' + /// Sets the raw value of `Diag_RR`. + #[inline(always)] + pub fn set_diag_rr_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..40].store_le(value); + } + /// Sets the value of `Diag_RR`. #[inline(always)] pub fn set_diag_rr(&mut self, value: Bremse53DiagRr) -> Result<(), CanError> { let value = u8::from(value); @@ -5351,215 +5265,232 @@ impl Bremse53 { message_id: Bremse53::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse53::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[38..40].store_le(value); Ok(()) } - /// Get value of 'Diag_ABSUnit' + /// Returns the value of `Diag_ABSUnit`. /// /// Bit to show, if a ABS error related to the hydraulic unit is present /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn diag_abs_unit(&self) -> bool { - self.diag_abs_unit_raw() + self.diag_abs_unit_raw_val() == 1 } - /// Get raw value of 'Diag_ABSUnit' + /// Returns the raw value of `Diag_ABSUnit`. /// /// - Start bit: 40 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_abs_unit_raw(&self) -> bool { - let signal = self.raw.view_bits::()[40..41].load_le::(); - signal == 1 + pub fn diag_abs_unit_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..41].load_le::() + } + /// Sets the raw value of `Diag_ABSUnit`. + #[inline(always)] + pub fn set_diag_abs_unit_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..41].store_le(value); } - /// Set value of 'Diag_ABSUnit' + /// Sets the value of `Diag_ABSUnit`. #[inline(always)] pub fn set_diag_abs_unit(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[40..41].store_le(value); Ok(()) } - /// Get value of 'Diag_FuseValve' + /// Returns the value of `Diag_FuseValve`. /// /// Bit to show, if a ABS error related to the fuse or power supply of the ABS valves is present. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn diag_fuse_valve(&self) -> bool { - self.diag_fuse_valve_raw() + self.diag_fuse_valve_raw_val() == 1 } - /// Get raw value of 'Diag_FuseValve' + /// Returns the raw value of `Diag_FuseValve`. /// /// - Start bit: 41 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_fuse_valve_raw(&self) -> bool { - let signal = self.raw.view_bits::()[41..42].load_le::(); - signal == 1 + pub fn diag_fuse_valve_raw_val(&self) -> u8 { + self.raw.view_bits::()[41..42].load_le::() + } + /// Sets the raw value of `Diag_FuseValve`. + #[inline(always)] + pub fn set_diag_fuse_valve_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[41..42].store_le(value); } - /// Set value of 'Diag_FuseValve' + /// Sets the value of `Diag_FuseValve`. #[inline(always)] pub fn set_diag_fuse_valve(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[41..42].store_le(value); Ok(()) } - /// Get value of 'Diag_FusePump' + /// Returns the value of `Diag_FusePump`. /// /// Bit to show, if a ABS error related to the fuse or power supply of the ABS pump is present. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn diag_fuse_pump(&self) -> bool { - self.diag_fuse_pump_raw() + self.diag_fuse_pump_raw_val() == 1 } - /// Get raw value of 'Diag_FusePump' + /// Returns the raw value of `Diag_FusePump`. /// /// - Start bit: 42 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_fuse_pump_raw(&self) -> bool { - let signal = self.raw.view_bits::()[42..43].load_le::(); - signal == 1 + pub fn diag_fuse_pump_raw_val(&self) -> u8 { + self.raw.view_bits::()[42..43].load_le::() } - /// Set value of 'Diag_FusePump' + /// Sets the raw value of `Diag_FusePump`. + #[inline(always)] + pub fn set_diag_fuse_pump_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[42..43].store_le(value); + } + /// Sets the value of `Diag_FusePump`. #[inline(always)] pub fn set_diag_fuse_pump(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[42..43].store_le(value); Ok(()) } - /// Get value of 'Diag_P_FA' + /// Returns the value of `Diag_P_FA`. /// /// Bit to show, if the pressure sensor FA is working properly. An error is pressent, if the bit is 1. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn diag_p_fa(&self) -> bool { - self.diag_p_fa_raw() + self.diag_p_fa_raw_val() == 1 } - /// Get raw value of 'Diag_P_FA' + /// Returns the raw value of `Diag_P_FA`. /// /// - Start bit: 43 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_p_fa_raw(&self) -> bool { - let signal = self.raw.view_bits::()[43..44].load_le::(); - signal == 1 + pub fn diag_p_fa_raw_val(&self) -> u8 { + self.raw.view_bits::()[43..44].load_le::() + } + /// Sets the raw value of `Diag_P_FA`. + #[inline(always)] + pub fn set_diag_p_fa_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[43..44].store_le(value); } - /// Set value of 'Diag_P_FA' + /// Sets the value of `Diag_P_FA`. #[inline(always)] pub fn set_diag_p_fa(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[43..44].store_le(value); Ok(()) } - /// Get value of 'Diag_P_RA' + /// Returns the value of `Diag_P_RA`. /// /// Bit to show, if the pressure sensor RA is working properly. An error is pressent, if the bit is 1. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn diag_p_ra(&self) -> bool { - self.diag_p_ra_raw() + self.diag_p_ra_raw_val() == 1 } - /// Get raw value of 'Diag_P_RA' + /// Returns the raw value of `Diag_P_RA`. /// /// - Start bit: 44 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_p_ra_raw(&self) -> bool { - let signal = self.raw.view_bits::()[44..45].load_le::(); - signal == 1 + pub fn diag_p_ra_raw_val(&self) -> u8 { + self.raw.view_bits::()[44..45].load_le::() + } + /// Sets the raw value of `Diag_P_RA`. + #[inline(always)] + pub fn set_diag_p_ra_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[44..45].store_le(value); } - /// Set value of 'Diag_P_RA' + /// Sets the value of `Diag_P_RA`. #[inline(always)] pub fn set_diag_p_ra(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[44..45].store_le(value); Ok(()) } - /// Get value of 'Diag_YRS' + /// Returns the value of `Diag_YRS`. /// /// Bit to show, if the yaw rate sensor is working properly. An error is pressent, if the bit is 1. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn diag_yrs(&self) -> bool { - self.diag_yrs_raw() + self.diag_yrs_raw_val() == 1 } - /// Get raw value of 'Diag_YRS' + /// Returns the raw value of `Diag_YRS`. /// /// - Start bit: 45 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn diag_yrs_raw(&self) -> bool { - let signal = self.raw.view_bits::()[45..46].load_le::(); - signal == 1 + pub fn diag_yrs_raw_val(&self) -> u8 { + self.raw.view_bits::()[45..46].load_le::() } - /// Set value of 'Diag_YRS' + /// Sets the raw value of `Diag_YRS`. + #[inline(always)] + pub fn set_diag_yrs_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[45..46].store_le(value); + } + /// Sets the value of `Diag_YRS`. #[inline(always)] pub fn set_diag_yrs(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[45..46].store_le(value); Ok(()) } - /// Get value of 'ABS_fault_info' + /// Returns the value of `ABS_fault_info`. /// /// Bit matrix to show if a fault or a active fault is stored in the ABS. Bit will also show minor errors which do not shut down the ABS controller. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn abs_fault_info(&self) -> Bremse53AbsFaultInfo { @@ -5568,24 +5499,29 @@ impl Bremse53 { 2 => Bremse53AbsFaultInfo::ActiveFaultsStored, 1 => Bremse53AbsFaultInfo::InactiveFaultsStored, 0 => Bremse53AbsFaultInfo::NoFaultsStored, - _ => Bremse53AbsFaultInfo::_Other(self.abs_fault_info_raw()), + _ => Bremse53AbsFaultInfo::_Other(self.abs_fault_info_phys_val()), } } - /// Get raw value of 'ABS_fault_info' + #[inline(always)] + fn abs_fault_info_phys_val(&self) -> u8 { + self.abs_fault_info_raw_val() + } + /// Returns the raw value of `ABS_fault_info`. /// /// - Start bit: 46 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn abs_fault_info_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[46..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn abs_fault_info_raw_val(&self) -> u8 { + self.raw.view_bits::()[46..48].load_le::() + } + /// Sets the raw value of `ABS_fault_info`. + #[inline(always)] + pub fn set_abs_fault_info_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[46..48].store_le(value); } - /// Set value of 'ABS_fault_info' + /// Sets the value of `ABS_fault_info`. #[inline(always)] pub fn set_abs_fault_info( &mut self, @@ -5597,17 +5533,10 @@ impl Bremse53 { message_id: Bremse53::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bremse53::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[46..48].store_le(value); Ok(()) } - /// Get value of 'P_RA' + /// Returns the value of `P_RA`. /// /// Brake pressure on the rear axle. /// @@ -5615,26 +5544,32 @@ impl Bremse53 { /// - Max: 425 /// - Unit: "bar" /// - Receivers: Vector__XXX + /// - Factor: 0.01526 + /// - Offset: 0 #[inline(always)] pub fn p_ra(&self) -> f32 { - self.p_ra_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01526_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'P_RA' + /// Returns the raw value of `P_RA`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01526 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn p_ra_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01526_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn p_ra_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `P_RA`. + #[inline(always)] + pub fn set_p_ra_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'P_RA' + /// Sets the value of `P_RA`. #[inline(always)] pub fn set_p_ra(&mut self, value: f32) -> Result<(), CanError> { if value < -42.5_f32 || 425_f32 < value { diff --git a/tests-snapshots/dbc-cantools/add_two_dbc_files_1.snap.rs b/tests-snapshots/dbc-cantools/add_two_dbc_files_1.snap.rs index cfb791f4..447beda1 100644 --- a/tests-snapshots/dbc-cantools/add_two_dbc_files_1.snap.rs +++ b/tests-snapshots/dbc-cantools/add_two_dbc_files_1.snap.rs @@ -71,12 +71,12 @@ impl M1 { StandardId::new_unchecked(0x1) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'M1' from values + /// Constructs a new `M1` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `M1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -142,12 +142,12 @@ impl M2 { StandardId::new_unchecked(0x2) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'M2' from values + /// Constructs a new `M2` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `M2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } diff --git a/tests-snapshots/dbc-cantools/add_two_dbc_files_2.snap.rs b/tests-snapshots/dbc-cantools/add_two_dbc_files_2.snap.rs index 101e4c28..c22e12e3 100644 --- a/tests-snapshots/dbc-cantools/add_two_dbc_files_2.snap.rs +++ b/tests-snapshots/dbc-cantools/add_two_dbc_files_2.snap.rs @@ -68,12 +68,12 @@ impl M1 { StandardId::new_unchecked(0x2) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'M1' from values + /// Constructs a new `M1` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `M1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } diff --git a/tests-snapshots/dbc-cantools/attribute_Event.snap.rs b/tests-snapshots/dbc-cantools/attribute_Event.snap.rs index 285b466b..69d72e9b 100644 --- a/tests-snapshots/dbc-cantools/attribute_Event.snap.rs +++ b/tests-snapshots/dbc-cantools/attribute_Event.snap.rs @@ -73,42 +73,45 @@ impl Inv2EventMsg1 { pub const MESSAGE_CYCLE_TIME_MS: u32 = 0; pub const THE_SIGNAL_MIN: i8 = 0_i8; pub const THE_SIGNAL_MAX: i8 = 0_i8; - /// Construct new 'INV2EventMsg1' from values + /// Constructs a new `INV2EventMsg1` message from values. pub fn new(the_signal: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_the_signal(the_signal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `INV2EventMsg1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TheSignal' + /// Returns the value of `TheSignal`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn the_signal(&self) -> i8 { - self.the_signal_raw() + self.the_signal_raw_val() } - /// Get raw value of 'TheSignal' + /// Returns the raw value of `TheSignal`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn the_signal_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn the_signal_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TheSignal' + /// Sets the raw value of `TheSignal`. + #[inline(always)] + pub fn set_the_signal_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TheSignal`. #[inline(always)] pub fn set_the_signal(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -116,13 +119,6 @@ impl Inv2EventMsg1 { message_id: Inv2EventMsg1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Inv2EventMsg1::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/attributes.snap.rs b/tests-snapshots/dbc-cantools/attributes.snap.rs index a031815e..d7916f6a 100644 --- a/tests-snapshots/dbc-cantools/attributes.snap.rs +++ b/tests-snapshots/dbc-cantools/attributes.snap.rs @@ -77,42 +77,45 @@ impl TheMessage { pub const MESSAGE_CYCLE_TIME_MS: u32 = 1000; pub const THE_SIGNAL_MIN: i8 = 0_i8; pub const THE_SIGNAL_MAX: i8 = 0_i8; - /// Construct new 'TheMessage' from values + /// Constructs a new `TheMessage` message from values. pub fn new(the_signal: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_the_signal(the_signal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TheMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TheSignal' + /// Returns the value of `TheSignal`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn the_signal(&self) -> i8 { - self.the_signal_raw() + self.the_signal_raw_val() } - /// Get raw value of 'TheSignal' + /// Returns the raw value of `TheSignal`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn the_signal_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn the_signal_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TheSignal' + /// Sets the raw value of `TheSignal`. + #[inline(always)] + pub fn set_the_signal_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TheSignal`. #[inline(always)] pub fn set_the_signal(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -120,13 +123,6 @@ impl TheMessage { message_id: TheMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TheMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -194,42 +190,45 @@ impl TheOtherMessage { pub const MESSAGE_SIZE: usize = 8; pub const THE_SIGNAL_MIN: i8 = 0_i8; pub const THE_SIGNAL_MAX: i8 = 0_i8; - /// Construct new 'TheOtherMessage' from values + /// Constructs a new `TheOtherMessage` message from values. pub fn new(the_signal: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_the_signal(the_signal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TheOtherMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TheSignal' + /// Returns the value of `TheSignal`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn the_signal(&self) -> i8 { - self.the_signal_raw() + self.the_signal_raw_val() } - /// Get raw value of 'TheSignal' + /// Returns the raw value of `TheSignal`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn the_signal_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn the_signal_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TheSignal' + /// Sets the raw value of `TheSignal`. + #[inline(always)] + pub fn set_the_signal_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TheSignal`. #[inline(always)] pub fn set_the_signal(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -237,13 +236,6 @@ impl TheOtherMessage { message_id: TheOtherMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TheOtherMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/attributes_relation.snap.rs b/tests-snapshots/dbc-cantools/attributes_relation.snap.rs index b73fdb75..c693ade1 100644 --- a/tests-snapshots/dbc-cantools/attributes_relation.snap.rs +++ b/tests-snapshots/dbc-cantools/attributes_relation.snap.rs @@ -74,42 +74,45 @@ impl Message2 { pub const MESSAGE_CYCLE_TIME_MS: u32 = 50; pub const SIGNAL_2_MIN: i8 = 0_i8; pub const SIGNAL_2_MAX: i8 = 0_i8; - /// Construct new 'Message_2' from values + /// Constructs a new `Message_2` message from values. pub fn new(signal_2: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal_2(signal_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'signal_2' + /// Returns the value of `signal_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: ECU1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal_2(&self) -> i8 { - self.signal_2_raw() + self.signal_2_raw_val() } - /// Get raw value of 'signal_2' + /// Returns the raw value of `signal_2`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'signal_2' + /// Sets the raw value of `signal_2`. + #[inline(always)] + pub fn set_signal_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `signal_2`. #[inline(always)] pub fn set_signal_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -117,13 +120,6 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -192,42 +188,45 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const SIGNAL_1_MIN: i8 = 0_i8; pub const SIGNAL_1_MAX: i8 = 0_i8; - /// Construct new 'Message_1' from values + /// Constructs a new `Message_1` message from values. pub fn new(signal_1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal_1(signal_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'signal_1' + /// Returns the value of `signal_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: ECU2 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal_1(&self) -> i8 { - self.signal_1_raw() + self.signal_1_raw_val() } - /// Get raw value of 'signal_1' + /// Returns the raw value of `signal_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'signal_1' + /// Sets the raw value of `signal_1`. + #[inline(always)] + pub fn set_signal_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `signal_1`. #[inline(always)] pub fn set_signal_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -235,13 +234,6 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/big_numbers.snap.rs b/tests-snapshots/dbc-cantools/big_numbers.snap.rs index 823f8369..d9a814ee 100644 --- a/tests-snapshots/dbc-cantools/big_numbers.snap.rs +++ b/tests-snapshots/dbc-cantools/big_numbers.snap.rs @@ -77,42 +77,45 @@ impl TheMessage { pub const MESSAGE_CYCLE_TIME_MS: u32 = 1000; pub const THE_SIGNAL_MIN: i8 = 0_i8; pub const THE_SIGNAL_MAX: i8 = 0_i8; - /// Construct new 'TheMessage' from values + /// Constructs a new `TheMessage` message from values. pub fn new(the_signal: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_the_signal(the_signal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TheMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TheSignal' + /// Returns the value of `TheSignal`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn the_signal(&self) -> i8 { - self.the_signal_raw() + self.the_signal_raw_val() } - /// Get raw value of 'TheSignal' + /// Returns the raw value of `TheSignal`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn the_signal_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn the_signal_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TheSignal' + /// Sets the raw value of `TheSignal`. + #[inline(always)] + pub fn set_the_signal_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TheSignal`. #[inline(always)] pub fn set_the_signal(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -120,13 +123,6 @@ impl TheMessage { message_id: TheMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TheMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -194,42 +190,45 @@ impl TheOtherMessage { pub const MESSAGE_SIZE: usize = 8; pub const THE_SIGNAL_MIN: i8 = 0_i8; pub const THE_SIGNAL_MAX: i8 = 0_i8; - /// Construct new 'TheOtherMessage' from values + /// Constructs a new `TheOtherMessage` message from values. pub fn new(the_signal: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_the_signal(the_signal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TheOtherMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TheSignal' + /// Returns the value of `TheSignal`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn the_signal(&self) -> i8 { - self.the_signal_raw() + self.the_signal_raw_val() } - /// Get raw value of 'TheSignal' + /// Returns the raw value of `TheSignal`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn the_signal_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn the_signal_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TheSignal' + /// Sets the raw value of `TheSignal`. + #[inline(always)] + pub fn set_the_signal_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TheSignal`. #[inline(always)] pub fn set_the_signal(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -237,13 +236,6 @@ impl TheOtherMessage { message_id: TheOtherMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TheOtherMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/bus_comment.snap.rs b/tests-snapshots/dbc-cantools/bus_comment.snap.rs index b4540cec..172ba153 100644 --- a/tests-snapshots/dbc-cantools/bus_comment.snap.rs +++ b/tests-snapshots/dbc-cantools/bus_comment.snap.rs @@ -69,32 +69,37 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() + } + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message1MultiplexorIndex::M8(Message1MultiplexorM8 { @@ -117,7 +122,7 @@ impl Message1 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -125,17 +130,10 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message1MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -144,7 +142,7 @@ impl Message1 { self.set_multiplexor(8)?; Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m24(&mut self, value: Message1MultiplexorM24) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -232,120 +230,136 @@ impl Message1MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_l(&self) -> bool { - self.bit_l_raw() + self.bit_l_raw_val() == 1 } - /// Get raw value of 'BIT_L' + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() } - /// Set value of 'BIT_L' + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); + } + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() } - /// Set value of 'BIT_G' + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); + } + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() + } + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); } - /// Set value of 'BIT_C' + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() } - /// Set value of 'BIT_J' + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); + } + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -379,210 +393,238 @@ impl Message1MultiplexorM24 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_F' + /// Returns the value of `BIT_F`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_f(&self) -> bool { - self.bit_f_raw() + self.bit_f_raw_val() == 1 } - /// Get raw value of 'BIT_F' + /// Returns the raw value of `BIT_F`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_f_raw(&self) -> bool { - let signal = self.raw.view_bits::()[39..40].load_le::(); - signal == 1 + pub fn bit_f_raw_val(&self) -> u8 { + self.raw.view_bits::()[39..40].load_le::() } - /// Set value of 'BIT_F' + /// Sets the raw value of `BIT_F`. + #[inline(always)] + pub fn set_bit_f_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[39..40].store_le(value); + } + /// Sets the value of `BIT_F`. #[inline(always)] pub fn set_bit_f(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[39..40].store_le(value); Ok(()) } - /// Get value of 'BIT_H' + /// Returns the value of `BIT_H`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_h(&self) -> bool { - self.bit_h_raw() + self.bit_h_raw_val() == 1 } - /// Get raw value of 'BIT_H' + /// Returns the raw value of `BIT_H`. /// /// - Start bit: 38 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_h_raw(&self) -> bool { - let signal = self.raw.view_bits::()[38..39].load_le::(); - signal == 1 + pub fn bit_h_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..39].load_le::() + } + /// Sets the raw value of `BIT_H`. + #[inline(always)] + pub fn set_bit_h_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..39].store_le(value); } - /// Set value of 'BIT_H' + /// Sets the value of `BIT_H`. #[inline(always)] pub fn set_bit_h(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[38..39].store_le(value); Ok(()) } - /// Get value of 'BIT_B' + /// Returns the value of `BIT_B`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_b(&self) -> bool { - self.bit_b_raw() + self.bit_b_raw_val() == 1 } - /// Get raw value of 'BIT_B' + /// Returns the raw value of `BIT_B`. /// /// - Start bit: 33 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[33..34].load_le::(); - signal == 1 + pub fn bit_b_raw_val(&self) -> u8 { + self.raw.view_bits::()[33..34].load_le::() } - /// Set value of 'BIT_B' + /// Sets the raw value of `BIT_B`. + #[inline(always)] + pub fn set_bit_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[33..34].store_le(value); + } + /// Sets the value of `BIT_B`. #[inline(always)] pub fn set_bit_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[33..34].store_le(value); Ok(()) } - /// Get value of 'BIT_D' + /// Returns the value of `BIT_D`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_d(&self) -> bool { - self.bit_d_raw() + self.bit_d_raw_val() == 1 } - /// Get raw value of 'BIT_D' + /// Returns the raw value of `BIT_D`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn bit_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() } - /// Set value of 'BIT_D' + /// Sets the raw value of `BIT_D`. + #[inline(always)] + pub fn set_bit_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); + } + /// Sets the value of `BIT_D`. #[inline(always)] pub fn set_bit_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'BIT_E' + /// Returns the value of `BIT_E`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_e(&self) -> bool { - self.bit_e_raw() + self.bit_e_raw_val() == 1 } - /// Get raw value of 'BIT_E' + /// Returns the raw value of `BIT_E`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn bit_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() + } + /// Sets the raw value of `BIT_E`. + #[inline(always)] + pub fn set_bit_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); } - /// Set value of 'BIT_E' + /// Sets the value of `BIT_E`. #[inline(always)] pub fn set_bit_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'BIT_K' + /// Returns the value of `BIT_K`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_k(&self) -> bool { - self.bit_k_raw() + self.bit_k_raw_val() == 1 } - /// Get raw value of 'BIT_K' + /// Returns the raw value of `BIT_K`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_k_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn bit_k_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() } - /// Set value of 'BIT_K' + /// Sets the raw value of `BIT_K`. + #[inline(always)] + pub fn set_bit_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); + } + /// Sets the value of `BIT_K`. #[inline(always)] pub fn set_bit_k(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'BIT_A' + /// Returns the value of `BIT_A`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_a(&self) -> bool { - self.bit_a_raw() + self.bit_a_raw_val() == 1 } - /// Get raw value of 'BIT_A' + /// Returns the raw value of `BIT_A`. /// /// - Start bit: 26 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_a_raw(&self) -> bool { - let signal = self.raw.view_bits::()[26..27].load_le::(); - signal == 1 + pub fn bit_a_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..27].load_le::() + } + /// Sets the raw value of `BIT_A`. + #[inline(always)] + pub fn set_bit_a_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..27].store_le(value); } - /// Set value of 'BIT_A' + /// Sets the value of `BIT_A`. #[inline(always)] pub fn set_bit_a(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; diff --git a/tests-snapshots/dbc-cantools/choices.snap.rs b/tests-snapshots/dbc-cantools/choices.snap.rs index c1718edf..ebbc593e 100644 --- a/tests-snapshots/dbc-cantools/choices.snap.rs +++ b/tests-snapshots/dbc-cantools/choices.snap.rs @@ -69,21 +69,21 @@ impl Foo { pub const MESSAGE_SIZE: usize = 8; pub const FOO_MIN: i8 = -128_i8; pub const FOO_MAX: i8 = 127_i8; - /// Construct new 'Foo' from values + /// Constructs a new `Foo` message from values. pub fn new(foo: FooFoo) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_foo(foo)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Foo` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Foo' + /// Returns the value of `Foo`. /// /// - Min: -128 /// - Max: 127 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn foo(&self) -> FooFoo { @@ -97,25 +97,30 @@ impl Foo { 1 => FooFoo::XÄ, 0 => FooFoo::WithSpace, -5 => FooFoo::ANegativeValue, - _ => FooFoo::_Other(self.foo_raw()), + _ => FooFoo::_Other(self.foo_phys_val()), } } - /// Get raw value of 'Foo' + #[inline(always)] + fn foo_phys_val(&self) -> i8 { + self.foo_raw_val() + } + /// Returns the raw value of `Foo`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn foo_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn foo_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `Foo`. + #[inline(always)] + pub fn set_foo_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'Foo' + /// Sets the value of `Foo`. #[inline(always)] pub fn set_foo(&mut self, value: FooFoo) -> Result<(), CanError> { let value = i8::from(value); @@ -124,13 +129,6 @@ impl Foo { message_id: Foo::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Foo::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/choices_issue_with_name.snap.rs b/tests-snapshots/dbc-cantools/choices_issue_with_name.snap.rs index 5f12aabe..f71ec1e2 100644 --- a/tests-snapshots/dbc-cantools/choices_issue_with_name.snap.rs +++ b/tests-snapshots/dbc-cantools/choices_issue_with_name.snap.rs @@ -69,7 +69,7 @@ impl TestMessage { ExtendedId::new_unchecked(0x90000) }); pub const MESSAGE_SIZE: usize = 1; - /// Construct new 'TestMessage' from values + /// Constructs a new `TestMessage` message from values. pub fn new( signal_with_choices: TestMessageSignalWithChoices, ) -> Result { @@ -77,15 +77,15 @@ impl TestMessage { res.set_signal_with_choices(signal_with_choices)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMessage` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'SignalWithChoices' + /// Returns the value of `SignalWithChoices`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn signal_with_choices(&self) -> TestMessageSignalWithChoices { @@ -93,23 +93,31 @@ impl TestMessage { match signal { 1 => TestMessageSignalWithChoices::SignalWithChoicesCmdRespOk, 0 => TestMessageSignalWithChoices::SignalWithChoicesCmdRespErr, - _ => TestMessageSignalWithChoices::_Other(self.signal_with_choices_raw()), + _ => { + TestMessageSignalWithChoices::_Other(self.signal_with_choices_phys_val()) + } } } - /// Get raw value of 'SignalWithChoices' + #[inline(always)] + fn signal_with_choices_phys_val(&self) -> bool { + self.signal_with_choices_raw_val() == 1 + } + /// Returns the raw value of `SignalWithChoices`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal_with_choices_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn signal_with_choices_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `SignalWithChoices`. + #[inline(always)] + pub fn set_signal_with_choices_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'SignalWithChoices' + /// Sets the value of `SignalWithChoices`. #[inline(always)] pub fn set_signal_with_choices( &mut self, diff --git a/tests-snapshots/dbc-cantools/comments_hex_and_motorola_converted_from_sym.snap.rs b/tests-snapshots/dbc-cantools/comments_hex_and_motorola_converted_from_sym.snap.rs index a5bb9054..fe2919d3 100644 --- a/tests-snapshots/dbc-cantools/comments_hex_and_motorola_converted_from_sym.snap.rs +++ b/tests-snapshots/dbc-cantools/comments_hex_and_motorola_converted_from_sym.snap.rs @@ -77,32 +77,35 @@ impl Msg1 { pub const SIG12_MAX: u8 = 1_u8; pub const SIG1_MIN: u8 = 0_u8; pub const SIG1_MAX: u8 = 0_u8; - /// Construct new 'Msg1' from values + /// Constructs a new `Msg1` message from values. pub fn new(sig1: u8) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_sig1(sig1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg1` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get raw value of 'sig1' + /// Returns the raw value of `sig1`. /// /// - Start bit: 7 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn sig1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig1_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_be::() + } + /// Sets the raw value of `sig1`. + #[allow(dead_code)] + #[inline(always)] + fn set_sig1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_be(value); } - pub fn sig1(&mut self) -> Result { - match self.sig1_raw() { + /// Selects the active multiplexed sub-message for `sig1`. + pub fn sig1_multiplexed(&mut self) -> Result { + match self.sig1_raw_val() { 1 => Ok(Msg1Sig1Index::M1(Msg1Sig1M1 { raw: self.raw })), 2 => Ok(Msg1Sig1Index::M2(Msg1Sig1M2 { raw: self.raw })), multiplexor => { @@ -113,7 +116,7 @@ impl Msg1 { } } } - /// Set value of 'sig1' + /// Sets the value of `sig1`. #[inline(always)] fn set_sig1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -121,17 +124,10 @@ impl Msg1 { message_id: Msg1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_be(value); Ok(()) } - /// Set value of 'sig1' + /// Sets the value of `sig1`. #[inline(always)] pub fn set_m1(&mut self, value: Msg1Sig1M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -140,7 +136,7 @@ impl Msg1 { self.set_sig1(1)?; Ok(()) } - /// Set value of 'sig1' + /// Sets the value of `sig1`. #[inline(always)] pub fn set_m2(&mut self, value: Msg1Sig1M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -228,33 +224,36 @@ impl Msg1Sig1M1 { pub fn new() -> Self { Self { raw: [0u8; 2] } } - /// Get value of 'sig12' + /// Returns the value of `sig12`. /// /// another comment for sig1=1 /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig12(&self) -> u8 { - self.sig12_raw() + self.sig12_raw_val() } - /// Get raw value of 'sig12' + /// Returns the raw value of `sig12`. /// /// - Start bit: 15 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn sig12_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig12_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_be::() + } + /// Sets the raw value of `sig12`. + #[inline(always)] + pub fn set_sig12_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_be(value); } - /// Set value of 'sig12' + /// Sets the value of `sig12`. #[inline(always)] pub fn set_sig12(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 1_u8 < value { @@ -262,13 +261,6 @@ impl Msg1Sig1M1 { message_id: Msg1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_be(value); Ok(()) } @@ -299,33 +291,36 @@ impl Msg1Sig1M2 { pub fn new() -> Self { Self { raw: [0u8; 2] } } - /// Get value of 'sig22' + /// Returns the value of `sig22`. /// /// another comment for sig1=2 /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig22(&self) -> u8 { - self.sig22_raw() + self.sig22_raw_val() } - /// Get raw value of 'sig22' + /// Returns the raw value of `sig22`. /// /// - Start bit: 15 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn sig22_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig22_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_be::() } - /// Set value of 'sig22' + /// Sets the raw value of `sig22`. + #[inline(always)] + pub fn set_sig22_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_be(value); + } + /// Sets the value of `sig22`. #[inline(always)] pub fn set_sig22(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 1_u8 < value { @@ -333,13 +328,6 @@ impl Msg1Sig1M2 { message_id: Msg1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_be(value); Ok(()) } @@ -385,7 +373,7 @@ impl Msg2 { pub const TEST1_MAX: u8 = 0_u8; pub const TEST0_MIN: u8 = 0_u8; pub const TEST0_MAX: u8 = 0_u8; - /// Construct new 'Msg2' from values + /// Constructs a new `Msg2` message from values. pub fn new( test7: Msg2Test7, test6: u8, @@ -407,15 +395,15 @@ impl Msg2 { res.set_test0(test0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Test7' + /// Returns the value of `Test7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn test7(&self) -> Msg2Test7 { @@ -425,24 +413,29 @@ impl Msg2 { 2 => Msg2Test7::B, 3 => Msg2Test7::C, 4 => Msg2Test7::D, - _ => Msg2Test7::_Other(self.test7_raw()), + _ => Msg2Test7::_Other(self.test7_phys_val()), } } - /// Get raw value of 'Test7' + #[inline(always)] + fn test7_phys_val(&self) -> u8 { + self.test7_raw_val() + } + /// Returns the raw value of `Test7`. /// /// - Start bit: 63 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test7_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test7_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_be::() } - /// Set value of 'Test7' + /// Sets the raw value of `Test7`. + #[inline(always)] + pub fn set_test7_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_be(value); + } + /// Sets the value of `Test7`. #[inline(always)] pub fn set_test7(&mut self, value: Msg2Test7) -> Result<(), CanError> { let value = u8::from(value); @@ -451,41 +444,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_be(value); Ok(()) } - /// Get value of 'Test6' + /// Returns the value of `Test6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test6(&self) -> u8 { - self.test6_raw() + self.test6_raw_val() } - /// Get raw value of 'Test6' + /// Returns the raw value of `Test6`. /// /// - Start bit: 55 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test6_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test6_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_be::() + } + /// Sets the raw value of `Test6`. + #[inline(always)] + pub fn set_test6_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_be(value); } - /// Set value of 'Test6' + /// Sets the value of `Test6`. #[inline(always)] pub fn set_test6(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -493,41 +482,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_be(value); Ok(()) } - /// Get value of 'Test5' + /// Returns the value of `Test5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test5(&self) -> u8 { - self.test5_raw() + self.test5_raw_val() } - /// Get raw value of 'Test5' + /// Returns the raw value of `Test5`. /// /// - Start bit: 47 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test5_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test5_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_be::() } - /// Set value of 'Test5' + /// Sets the raw value of `Test5`. + #[inline(always)] + pub fn set_test5_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_be(value); + } + /// Sets the value of `Test5`. #[inline(always)] pub fn set_test5(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -535,41 +520,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_be(value); Ok(()) } - /// Get value of 'Test4' + /// Returns the value of `Test4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test4(&self) -> u8 { - self.test4_raw() + self.test4_raw_val() } - /// Get raw value of 'Test4' + /// Returns the raw value of `Test4`. /// /// - Start bit: 39 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test4_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test4_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_be::() } - /// Set value of 'Test4' + /// Sets the raw value of `Test4`. + #[inline(always)] + pub fn set_test4_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_be(value); + } + /// Sets the value of `Test4`. #[inline(always)] pub fn set_test4(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -577,41 +558,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_be(value); Ok(()) } - /// Get value of 'Test3' + /// Returns the value of `Test3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test3(&self) -> u8 { - self.test3_raw() + self.test3_raw_val() } - /// Get raw value of 'Test3' + /// Returns the raw value of `Test3`. /// /// - Start bit: 31 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test3_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test3_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_be::() } - /// Set value of 'Test3' + /// Sets the raw value of `Test3`. + #[inline(always)] + pub fn set_test3_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_be(value); + } + /// Sets the value of `Test3`. #[inline(always)] pub fn set_test3(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -619,41 +596,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_be(value); Ok(()) } - /// Get value of 'Test2' + /// Returns the value of `Test2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test2(&self) -> u8 { - self.test2_raw() + self.test2_raw_val() } - /// Get raw value of 'Test2' + /// Returns the raw value of `Test2`. /// /// - Start bit: 23 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test2_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_be::() + } + /// Sets the raw value of `Test2`. + #[inline(always)] + pub fn set_test2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_be(value); } - /// Set value of 'Test2' + /// Sets the value of `Test2`. #[inline(always)] pub fn set_test2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -661,41 +634,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_be(value); Ok(()) } - /// Get value of 'Test1' + /// Returns the value of `Test1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test1(&self) -> u8 { - self.test1_raw() + self.test1_raw_val() } - /// Get raw value of 'Test1' + /// Returns the raw value of `Test1`. /// /// - Start bit: 15 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test1_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_be::() } - /// Set value of 'Test1' + /// Sets the raw value of `Test1`. + #[inline(always)] + pub fn set_test1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_be(value); + } + /// Sets the value of `Test1`. #[inline(always)] pub fn set_test1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -703,41 +672,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_be(value); Ok(()) } - /// Get value of 'Test0' + /// Returns the value of `Test0`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test0(&self) -> u8 { - self.test0_raw() + self.test0_raw_val() } - /// Get raw value of 'Test0' + /// Returns the raw value of `Test0`. /// /// - Start bit: 7 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn test0_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test0_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_be::() } - /// Set value of 'Test0' + /// Sets the raw value of `Test0`. + #[inline(always)] + pub fn set_test0_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_be(value); + } + /// Sets the value of `Test0`. #[inline(always)] pub fn set_test0(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -745,13 +710,6 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_be(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/dump_signal_choices.snap.rs b/tests-snapshots/dbc-cantools/dump_signal_choices.snap.rs index d6ff7d19..a59e6392 100644 --- a/tests-snapshots/dbc-cantools/dump_signal_choices.snap.rs +++ b/tests-snapshots/dbc-cantools/dump_signal_choices.snap.rs @@ -72,7 +72,7 @@ impl Message0 { pub const FOO_SIGNAL_MAX: u8 = 0_u8; pub const BAR_SIGNAL_MIN: u8 = 0_u8; pub const BAR_SIGNAL_MAX: u8 = 0_u8; - /// Construct new 'Message0' from values + /// Constructs a new `Message0` message from values. pub fn new( foo_signal: Message0FooSignal, bar_signal: Message0BarSignal, @@ -82,15 +82,15 @@ impl Message0 { res.set_bar_signal(bar_signal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message0` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'FooSignal' + /// Returns the value of `FooSignal`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn foo_signal(&self) -> Message0FooSignal { @@ -100,24 +100,29 @@ impl Message0 { 1 => Message0FooSignal::FooB, 2 => Message0FooSignal::FooC, 3 => Message0FooSignal::FooD, - _ => Message0FooSignal::_Other(self.foo_signal_raw()), + _ => Message0FooSignal::_Other(self.foo_signal_phys_val()), } } - /// Get raw value of 'FooSignal' + #[inline(always)] + fn foo_signal_phys_val(&self) -> u8 { + self.foo_signal_raw_val() + } + /// Returns the raw value of `FooSignal`. /// /// - Start bit: 0 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn foo_signal_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..2].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn foo_signal_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..2].load_le::() } - /// Set value of 'FooSignal' + /// Sets the raw value of `FooSignal`. + #[inline(always)] + pub fn set_foo_signal_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..2].store_le(value); + } + /// Sets the value of `FooSignal`. #[inline(always)] pub fn set_foo_signal(&mut self, value: Message0FooSignal) -> Result<(), CanError> { let value = u8::from(value); @@ -126,21 +131,14 @@ impl Message0 { message_id: Message0::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message0::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..2].store_le(value); Ok(()) } - /// Get value of 'BarSignal' + /// Returns the value of `BarSignal`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn bar_signal(&self) -> Message0BarSignal { @@ -154,24 +152,29 @@ impl Message0 { 5 => Message0BarSignal::BarF, 6 => Message0BarSignal::BarG, 7 => Message0BarSignal::BarH, - _ => Message0BarSignal::_Other(self.bar_signal_raw()), + _ => Message0BarSignal::_Other(self.bar_signal_phys_val()), } } - /// Get raw value of 'BarSignal' + #[inline(always)] + fn bar_signal_phys_val(&self) -> u8 { + self.bar_signal_raw_val() + } + /// Returns the raw value of `BarSignal`. /// /// - Start bit: 2 /// - Signal size: 3 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bar_signal_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..5].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn bar_signal_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..5].load_le::() } - /// Set value of 'BarSignal' + /// Sets the raw value of `BarSignal`. + #[inline(always)] + pub fn set_bar_signal_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..5].store_le(value); + } + /// Sets the value of `BarSignal`. #[inline(always)] pub fn set_bar_signal(&mut self, value: Message0BarSignal) -> Result<(), CanError> { let value = u8::from(value); @@ -180,13 +183,6 @@ impl Message0 { message_id: Message0::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message0::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..5].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/emc32.snap.rs b/tests-snapshots/dbc-cantools/emc32.snap.rs index f0cb6916..1c36ca56 100644 --- a/tests-snapshots/dbc-cantools/emc32.snap.rs +++ b/tests-snapshots/dbc-cantools/emc32.snap.rs @@ -68,7 +68,7 @@ impl EmvStati { StandardId::new_unchecked(0x222) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'EMV_Stati' from values + /// Constructs a new `EMV_Stati` message from values. pub fn new( emv_aktion_status_5: bool, emv_aktion_status_4: bool, @@ -84,154 +84,174 @@ impl EmvStati { res.set_emv_aktion_status_1(emv_aktion_status_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `EMV_Stati` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'EMV_Aktion_Status_5' + /// Returns the value of `EMV_Aktion_Status_5`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn emv_aktion_status_5(&self) -> bool { - self.emv_aktion_status_5_raw() + self.emv_aktion_status_5_raw_val() == 1 } - /// Get raw value of 'EMV_Aktion_Status_5' + /// Returns the raw value of `EMV_Aktion_Status_5`. /// /// - Start bit: 4 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn emv_aktion_status_5_raw(&self) -> bool { - let signal = self.raw.view_bits::()[4..5].load_le::(); - signal == 1 + pub fn emv_aktion_status_5_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..5].load_le::() } - /// Set value of 'EMV_Aktion_Status_5' + /// Sets the raw value of `EMV_Aktion_Status_5`. + #[inline(always)] + pub fn set_emv_aktion_status_5_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..5].store_le(value); + } + /// Sets the value of `EMV_Aktion_Status_5`. #[inline(always)] pub fn set_emv_aktion_status_5(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[4..5].store_le(value); Ok(()) } - /// Get value of 'EMV_Aktion_Status_4' + /// Returns the value of `EMV_Aktion_Status_4`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn emv_aktion_status_4(&self) -> bool { - self.emv_aktion_status_4_raw() + self.emv_aktion_status_4_raw_val() == 1 } - /// Get raw value of 'EMV_Aktion_Status_4' + /// Returns the raw value of `EMV_Aktion_Status_4`. /// /// - Start bit: 3 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn emv_aktion_status_4_raw(&self) -> bool { - let signal = self.raw.view_bits::()[3..4].load_le::(); - signal == 1 + pub fn emv_aktion_status_4_raw_val(&self) -> u8 { + self.raw.view_bits::()[3..4].load_le::() + } + /// Sets the raw value of `EMV_Aktion_Status_4`. + #[inline(always)] + pub fn set_emv_aktion_status_4_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[3..4].store_le(value); } - /// Set value of 'EMV_Aktion_Status_4' + /// Sets the value of `EMV_Aktion_Status_4`. #[inline(always)] pub fn set_emv_aktion_status_4(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[3..4].store_le(value); Ok(()) } - /// Get value of 'EMV_Aktion_Status_3' + /// Returns the value of `EMV_Aktion_Status_3`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: EMV_Statusmeldungen + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn emv_aktion_status_3(&self) -> bool { - self.emv_aktion_status_3_raw() + self.emv_aktion_status_3_raw_val() == 1 } - /// Get raw value of 'EMV_Aktion_Status_3' + /// Returns the raw value of `EMV_Aktion_Status_3`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn emv_aktion_status_3_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn emv_aktion_status_3_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() } - /// Set value of 'EMV_Aktion_Status_3' + /// Sets the raw value of `EMV_Aktion_Status_3`. + #[inline(always)] + pub fn set_emv_aktion_status_3_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); + } + /// Sets the value of `EMV_Aktion_Status_3`. #[inline(always)] pub fn set_emv_aktion_status_3(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'EMV_Aktion_Status_2' + /// Returns the value of `EMV_Aktion_Status_2`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn emv_aktion_status_2(&self) -> bool { - self.emv_aktion_status_2_raw() + self.emv_aktion_status_2_raw_val() == 1 } - /// Get raw value of 'EMV_Aktion_Status_2' + /// Returns the raw value of `EMV_Aktion_Status_2`. /// /// - Start bit: 6 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn emv_aktion_status_2_raw(&self) -> bool { - let signal = self.raw.view_bits::()[6..7].load_le::(); - signal == 1 + pub fn emv_aktion_status_2_raw_val(&self) -> u8 { + self.raw.view_bits::()[6..7].load_le::() } - /// Set value of 'EMV_Aktion_Status_2' + /// Sets the raw value of `EMV_Aktion_Status_2`. + #[inline(always)] + pub fn set_emv_aktion_status_2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[6..7].store_le(value); + } + /// Sets the value of `EMV_Aktion_Status_2`. #[inline(always)] pub fn set_emv_aktion_status_2(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[6..7].store_le(value); Ok(()) } - /// Get value of 'EMV_Aktion_Status_1' + /// Returns the value of `EMV_Aktion_Status_1`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn emv_aktion_status_1(&self) -> bool { - self.emv_aktion_status_1_raw() + self.emv_aktion_status_1_raw_val() == 1 } - /// Get raw value of 'EMV_Aktion_Status_1' + /// Returns the raw value of `EMV_Aktion_Status_1`. /// /// - Start bit: 5 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn emv_aktion_status_1_raw(&self) -> bool { - let signal = self.raw.view_bits::()[5..6].load_le::(); - signal == 1 + pub fn emv_aktion_status_1_raw_val(&self) -> u8 { + self.raw.view_bits::()[5..6].load_le::() + } + /// Sets the raw value of `EMV_Aktion_Status_1`. + #[inline(always)] + pub fn set_emv_aktion_status_1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[5..6].store_le(value); } - /// Set value of 'EMV_Aktion_Status_1' + /// Sets the value of `EMV_Aktion_Status_1`. #[inline(always)] pub fn set_emv_aktion_status_1(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; diff --git a/tests-snapshots/dbc-cantools/empty_choice.snap.rs b/tests-snapshots/dbc-cantools/empty_choice.snap.rs index 7d216da1..1c99106b 100644 --- a/tests-snapshots/dbc-cantools/empty_choice.snap.rs +++ b/tests-snapshots/dbc-cantools/empty_choice.snap.rs @@ -76,7 +76,7 @@ impl ExampleMessage { pub const EMPTY_CHOICE_MAX: i8 = 0_i8; pub const NON_EMPTY_CHOICE_MIN: i8 = 0_i8; pub const NON_EMPTY_CHOICE_MAX: i8 = 0_i8; - /// Construct new 'example_message' from values + /// Constructs a new `example_message` message from values. pub fn new( no_choice: i8, empty_choice: ExampleMessageEmptyChoice, @@ -88,36 +88,39 @@ impl ExampleMessage { res.set_non_empty_choice(non_empty_choice)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `example_message` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'no_choice' + /// Returns the value of `no_choice`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn no_choice(&self) -> i8 { - self.no_choice_raw() + self.no_choice_raw_val() } - /// Get raw value of 'no_choice' + /// Returns the raw value of `no_choice`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn no_choice_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn no_choice_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `no_choice`. + #[inline(always)] + pub fn set_no_choice_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'no_choice' + /// Sets the value of `no_choice`. #[inline(always)] pub fn set_no_choice(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -125,46 +128,44 @@ impl ExampleMessage { message_id: ExampleMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExampleMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'empty_choice' + /// Returns the value of `empty_choice`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn empty_choice(&self) -> ExampleMessageEmptyChoice { let signal = self.raw.view_bits::()[8..16].load_le::(); match signal { - _ => ExampleMessageEmptyChoice::_Other(self.empty_choice_raw()), + _ => ExampleMessageEmptyChoice::_Other(self.empty_choice_phys_val()), } } - /// Get raw value of 'empty_choice' + #[inline(always)] + fn empty_choice_phys_val(&self) -> i8 { + self.empty_choice_raw_val() + } + /// Returns the raw value of `empty_choice`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn empty_choice_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn empty_choice_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'empty_choice' + /// Sets the raw value of `empty_choice`. + #[inline(always)] + pub fn set_empty_choice_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `empty_choice`. #[inline(always)] pub fn set_empty_choice( &mut self, @@ -176,22 +177,15 @@ impl ExampleMessage { message_id: ExampleMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExampleMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'non_empty_choice' + /// Returns the value of `non_empty_choice`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn non_empty_choice(&self) -> ExampleMessageNonEmptyChoice { @@ -199,25 +193,30 @@ impl ExampleMessage { match signal { 255 => ExampleMessageNonEmptyChoice::NotAvailable, 254 => ExampleMessageNonEmptyChoice::Error, - _ => ExampleMessageNonEmptyChoice::_Other(self.non_empty_choice_raw()), + _ => ExampleMessageNonEmptyChoice::_Other(self.non_empty_choice_phys_val()), } } - /// Get raw value of 'non_empty_choice' + #[inline(always)] + fn non_empty_choice_phys_val(&self) -> i8 { + self.non_empty_choice_raw_val() + } + /// Returns the raw value of `non_empty_choice`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn non_empty_choice_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn non_empty_choice_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `non_empty_choice`. + #[inline(always)] + pub fn set_non_empty_choice_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'non_empty_choice' + /// Sets the value of `non_empty_choice`. #[inline(always)] pub fn set_non_empty_choice( &mut self, @@ -229,13 +228,6 @@ impl ExampleMessage { message_id: ExampleMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExampleMessage::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/empty_choice.snap.stderr b/tests-snapshots/dbc-cantools/empty_choice.snap.stderr index 8fe8bd30..42364a1c 100644 --- a/tests-snapshots/dbc-cantools/empty_choice.snap.stderr +++ b/tests-snapshots/dbc-cantools/empty_choice.snap.stderr @@ -1,7 +1,7 @@ error: literal out of range for `i8` - --> tests-snapshots/dbc-cantools/empty_choice.snap.rs:322:59 + --> tests-snapshots/dbc-cantools/empty_choice.snap.rs:314:59 | -322 | ExampleMessageNonEmptyChoice::NotAvailable => 255, +314 | ExampleMessageNonEmptyChoice::NotAvailable => 255, | ^^^ | = note: the literal `255` does not fit into the type `i8` whose range is `-128..=127` @@ -9,9 +9,9 @@ error: literal out of range for `i8` = note: `#[deny(overflowing_literals)]` on by default error: literal out of range for `i8` - --> tests-snapshots/dbc-cantools/empty_choice.snap.rs:323:52 + --> tests-snapshots/dbc-cantools/empty_choice.snap.rs:315:52 | -323 | ExampleMessageNonEmptyChoice::Error => 254, +315 | ExampleMessageNonEmptyChoice::Error => 254, | ^^^ | = note: the literal `254` does not fit into the type `i8` whose range is `-128..=127` diff --git a/tests-snapshots/dbc-cantools/fd_test.snap.rs b/tests-snapshots/dbc-cantools/fd_test.snap.rs index ae66a44b..958633e0 100644 --- a/tests-snapshots/dbc-cantools/fd_test.snap.rs +++ b/tests-snapshots/dbc-cantools/fd_test.snap.rs @@ -84,42 +84,45 @@ impl TestMsgEx { pub const MESSAGE_SIZE: usize = 8; pub const TEST_SIG_COPY_1_MIN: i8 = 0_i8; pub const TEST_SIG_COPY_1_MAX: i8 = 0_i8; - /// Construct new 'TestMsg_Ex' from values + /// Constructs a new `TestMsg_Ex` message from values. pub fn new(test_sig_copy_1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_sig_copy_1(test_sig_copy_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMsg_Ex` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TestSig_Copy_1' + /// Returns the value of `TestSig_Copy_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test_sig_copy_1(&self) -> i8 { - self.test_sig_copy_1_raw() + self.test_sig_copy_1_raw_val() } - /// Get raw value of 'TestSig_Copy_1' + /// Returns the raw value of `TestSig_Copy_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn test_sig_copy_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_sig_copy_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TestSig_Copy_1' + /// Sets the raw value of `TestSig_Copy_1`. + #[inline(always)] + pub fn set_test_sig_copy_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TestSig_Copy_1`. #[inline(always)] pub fn set_test_sig_copy_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -127,13 +130,6 @@ impl TestMsgEx { message_id: TestMsgEx::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMsgEx::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -201,42 +197,45 @@ impl TestMsgStd { pub const MESSAGE_SIZE: usize = 8; pub const TEST_SIG_COPY_3_MIN: i8 = 0_i8; pub const TEST_SIG_COPY_3_MAX: i8 = 0_i8; - /// Construct new 'TestMsg_Std' from values + /// Constructs a new `TestMsg_Std` message from values. pub fn new(test_sig_copy_3: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_sig_copy_3(test_sig_copy_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMsg_Std` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TestSig_Copy_3' + /// Returns the value of `TestSig_Copy_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test_sig_copy_3(&self) -> i8 { - self.test_sig_copy_3_raw() + self.test_sig_copy_3_raw_val() } - /// Get raw value of 'TestSig_Copy_3' + /// Returns the raw value of `TestSig_Copy_3`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn test_sig_copy_3_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_sig_copy_3_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TestSig_Copy_3' + /// Sets the raw value of `TestSig_Copy_3`. + #[inline(always)] + pub fn set_test_sig_copy_3_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TestSig_Copy_3`. #[inline(always)] pub fn set_test_sig_copy_3(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -244,13 +243,6 @@ impl TestMsgStd { message_id: TestMsgStd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMsgStd::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -318,42 +310,45 @@ impl TestMsgFdStd { pub const MESSAGE_SIZE: usize = 8; pub const TEST_SIG_COPY_2_MIN: i8 = 0_i8; pub const TEST_SIG_COPY_2_MAX: i8 = 0_i8; - /// Construct new 'TestMsg_FDStd' from values + /// Constructs a new `TestMsg_FDStd` message from values. pub fn new(test_sig_copy_2: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_sig_copy_2(test_sig_copy_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMsg_FDStd` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TestSig_Copy_2' + /// Returns the value of `TestSig_Copy_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test_sig_copy_2(&self) -> i8 { - self.test_sig_copy_2_raw() + self.test_sig_copy_2_raw_val() } - /// Get raw value of 'TestSig_Copy_2' + /// Returns the raw value of `TestSig_Copy_2`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn test_sig_copy_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_sig_copy_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TestSig_Copy_2' + /// Sets the raw value of `TestSig_Copy_2`. + #[inline(always)] + pub fn set_test_sig_copy_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TestSig_Copy_2`. #[inline(always)] pub fn set_test_sig_copy_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -361,13 +356,6 @@ impl TestMsgFdStd { message_id: TestMsgFdStd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMsgFdStd::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -435,42 +423,45 @@ impl TestMsgFdEx { pub const MESSAGE_SIZE: usize = 8; pub const TEST_SIG_MIN: i8 = 0_i8; pub const TEST_SIG_MAX: i8 = 0_i8; - /// Construct new 'TestMsg_FDEx' from values + /// Constructs a new `TestMsg_FDEx` message from values. pub fn new(test_sig: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_sig(test_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMsg_FDEx` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TestSig' + /// Returns the value of `TestSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test_sig(&self) -> i8 { - self.test_sig_raw() + self.test_sig_raw_val() } - /// Get raw value of 'TestSig' + /// Returns the raw value of `TestSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn test_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'TestSig' + /// Sets the raw value of `TestSig`. + #[inline(always)] + pub fn set_test_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `TestSig`. #[inline(always)] pub fn set_test_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -478,13 +469,6 @@ impl TestMsgFdEx { message_id: TestMsgFdEx::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMsgFdEx::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/floating_point.snap.rs b/tests-snapshots/dbc-cantools/floating_point.snap.rs index 4a6642ee..7e31ce82 100644 --- a/tests-snapshots/dbc-cantools/floating_point.snap.rs +++ b/tests-snapshots/dbc-cantools/floating_point.snap.rs @@ -73,42 +73,45 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const SIGNAL1_MIN: i64 = 0_i64; pub const SIGNAL1_MAX: i64 = 0_i64; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(signal1: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal1(signal1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> i64 { - self.signal1_raw() + self.signal1_raw_val() } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal1_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..64].load_le::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..64].load_le::() + } + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..64].store_le(value); } - /// Set value of 'Signal1' + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -116,13 +119,6 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..64].store_le(value); Ok(()) @@ -193,43 +189,46 @@ impl Message2 { pub const SIGNAL2_MAX: i32 = 0_i32; pub const SIGNAL1_MIN: i32 = 0_i32; pub const SIGNAL1_MAX: i32 = 0_i32; - /// Construct new 'Message2' from values + /// Constructs a new `Message2` message from values. pub fn new(signal2: i32, signal1: i32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal2(signal2)?; res.set_signal1(signal1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal2' + /// Returns the value of `Signal2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal2(&self) -> i32 { - self.signal2_raw() + self.signal2_raw_val() } - /// Get raw value of 'Signal2' + /// Returns the raw value of `Signal2`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal2_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal2_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() } - /// Set value of 'Signal2' + /// Sets the raw value of `Signal2`. + #[inline(always)] + pub fn set_signal2_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); + } + /// Sets the value of `Signal2`. #[inline(always)] pub fn set_signal2(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -237,43 +236,39 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> i32 { - self.signal1_raw() + self.signal1_raw_val() } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal1_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'Signal1' + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -281,13 +276,6 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/floating_point_use_float.snap.rs b/tests-snapshots/dbc-cantools/floating_point_use_float.snap.rs index 39f50fdb..8073dc0f 100644 --- a/tests-snapshots/dbc-cantools/floating_point_use_float.snap.rs +++ b/tests-snapshots/dbc-cantools/floating_point_use_float.snap.rs @@ -76,42 +76,45 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const SIGNAL1_MIN: i64 = 0_i64; pub const SIGNAL1_MAX: i64 = 0_i64; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(signal1: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal1(signal1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> i64 { - self.signal1_raw() + self.signal1_raw_val() } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal1_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..64].load_le::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..64].load_le::() } - /// Set value of 'Signal1' + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..64].store_le(value); + } + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -119,13 +122,6 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..64].store_le(value); Ok(()) @@ -196,43 +192,46 @@ impl Message2 { pub const SIGNAL2_MAX: i32 = 0_i32; pub const SIGNAL1_MIN: i32 = 0_i32; pub const SIGNAL1_MAX: i32 = 0_i32; - /// Construct new 'Message2' from values + /// Constructs a new `Message2` message from values. pub fn new(signal2: i32, signal1: i32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal2(signal2)?; res.set_signal1(signal1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal2' + /// Returns the value of `Signal2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal2(&self) -> i32 { - self.signal2_raw() + self.signal2_raw_val() } - /// Get raw value of 'Signal2' + /// Returns the raw value of `Signal2`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal2_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal2_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `Signal2`. + #[inline(always)] + pub fn set_signal2_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'Signal2' + /// Sets the value of `Signal2`. #[inline(always)] pub fn set_signal2(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -240,43 +239,39 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> i32 { - self.signal1_raw() + self.signal1_raw_val() } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal1_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'Signal1' + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -284,13 +279,6 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_le(value); Ok(()) @@ -358,42 +346,47 @@ impl Message3 { pub const MESSAGE_SIZE: usize = 8; pub const SIGNAL3_MIN: f32 = 0_f32; pub const SIGNAL3_MAX: f32 = 0_f32; - /// Construct new 'Message3' from values + /// Constructs a new `Message3` message from values. pub fn new(signal3: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal3(signal3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message3` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal3' + /// Returns the value of `Signal3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: -0.125 #[inline(always)] pub fn signal3(&self) -> f32 { - self.signal3_raw() + let signal = self.raw.view_bits::()[0..8].load_le::(); + let factor = 0.001_f32; + let offset = -0.125_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Signal3' + /// Returns the raw value of `Signal3`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 0.001 - /// - Offset: -0.125 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 0.001_f32; - let offset = -0.125_f32; - (signal as f32) * factor + offset + pub fn signal3_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `Signal3`. + #[inline(always)] + pub fn set_signal3_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'Signal3' + /// Sets the value of `Signal3`. #[inline(always)] pub fn set_signal3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { diff --git a/tests-snapshots/dbc-cantools/foobar.snap.rs b/tests-snapshots/dbc-cantools/foobar.snap.rs index 93228977..6af58030 100644 --- a/tests-snapshots/dbc-cantools/foobar.snap.rs +++ b/tests-snapshots/dbc-cantools/foobar.snap.rs @@ -86,43 +86,49 @@ impl Foo { pub const FOO_MAX: f32 = 270.47_f32; pub const BAR_MIN: f32 = 0_f32; pub const BAR_MAX: f32 = 5_f32; - /// Construct new 'Foo' from values + /// Constructs a new `Foo` message from values. pub fn new(foo: f32, bar: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_foo(foo)?; res.set_bar(bar)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Foo` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Foo' + /// Returns the value of `Foo`. /// /// - Min: 229.53 /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: BAR + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn foo(&self) -> f32 { - self.foo_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Foo' + /// Returns the raw value of `Foo`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn foo_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn foo_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() + } + /// Sets the raw value of `Foo`. + #[inline(always)] + pub fn set_foo_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); } - /// Set value of 'Foo' + /// Sets the value of `Foo`. #[inline(always)] pub fn set_foo(&mut self, value: f32) -> Result<(), CanError> { if value < 229.53_f32 || 270.47_f32 < value { @@ -137,7 +143,7 @@ impl Foo { self.raw.view_bits_mut::()[7..19].store_be(value); Ok(()) } - /// Get value of 'Bar' + /// Returns the value of `Bar`. /// /// Bar. /// @@ -145,26 +151,32 @@ impl Foo { /// - Max: 5 /// - Unit: "m" /// - Receivers: FOO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn bar(&self) -> f32 { - self.bar_raw() + let signal = self.raw.view_bits::()[31..63].load_be::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Bar' + /// Returns the raw value of `Bar`. /// /// - Start bit: 24 /// - Signal size: 32 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn bar_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[31..63].load_be::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn bar_raw_val(&self) -> i32 { + self.raw.view_bits::()[31..63].load_be::() + } + /// Sets the raw value of `Bar`. + #[inline(always)] + pub fn set_bar_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[31..63].store_be(value); } - /// Set value of 'Bar' + /// Sets the value of `Bar`. #[inline(always)] pub fn set_bar(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 5_f32 < value { @@ -246,43 +258,46 @@ impl Fum { pub const FUM_MAX: i16 = 10_i16; pub const FAM_MIN: i16 = 0_i16; pub const FAM_MAX: i16 = 8_i16; - /// Construct new 'Fum' from values + /// Constructs a new `Fum` message from values. pub fn new(fum: i16, fam: FumFam) -> Result { let mut res = Self { raw: [0x00; 5] }; res.set_fum(fum)?; res.set_fam(fam)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Fum` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } - /// Get value of 'Fum' + /// Returns the value of `Fum`. /// /// - Min: 0 /// - Max: 10 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: BAR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn fum(&self) -> i16 { - self.fum_raw() + self.fum_raw_val() } - /// Get raw value of 'Fum' + /// Returns the raw value of `Fum`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn fum_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[0..12].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fum_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..12].load_le::() + } + /// Sets the raw value of `Fum`. + #[inline(always)] + pub fn set_fum_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..12].store_le(value); } - /// Set value of 'Fum' + /// Sets the value of `Fum`. #[inline(always)] pub fn set_fum(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 10_i16 < value { @@ -290,22 +305,15 @@ impl Fum { message_id: Fum::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Fum::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..12].store_le(value); Ok(()) } - /// Get value of 'Fam' + /// Returns the value of `Fam`. /// /// - Min: 0 /// - Max: 8 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: BAR #[inline(always)] pub fn fam(&self) -> FumFam { @@ -313,25 +321,30 @@ impl Fum { match signal { 1 => FumFam::Enabled, 0 => FumFam::Disabled, - _ => FumFam::_Other(self.fam_raw()), + _ => FumFam::_Other(self.fam_phys_val()), } } - /// Get raw value of 'Fam' + #[inline(always)] + fn fam_phys_val(&self) -> i16 { + self.fam_raw_val() + } + /// Returns the raw value of `Fam`. /// /// - Start bit: 12 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn fam_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[12..24].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fam_raw_val(&self) -> i16 { + self.raw.view_bits::()[12..24].load_le::() } - /// Set value of 'Fam' + /// Sets the raw value of `Fam`. + #[inline(always)] + pub fn set_fam_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[12..24].store_le(value); + } + /// Sets the value of `Fam`. #[inline(always)] pub fn set_fam(&mut self, value: FumFam) -> Result<(), CanError> { let value = i16::from(value); @@ -340,13 +353,6 @@ impl Fum { message_id: Fum::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Fum::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[12..24].store_le(value); Ok(()) @@ -440,42 +446,45 @@ impl Bar { pub const MESSAGE_SIZE: usize = 4; pub const BINARY32_MIN: i32 = 0_i32; pub const BINARY32_MAX: i32 = 0_i32; - /// Construct new 'Bar' from values + /// Constructs a new `Bar` message from values. pub fn new(binary32: i32) -> Result { let mut res = Self { raw: [0x00; 4] }; res.set_binary32(binary32)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Bar` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'Binary32' + /// Returns the value of `Binary32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: FUM + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn binary32(&self) -> i32 { - self.binary32_raw() + self.binary32_raw_val() } - /// Get raw value of 'Binary32' + /// Returns the raw value of `Binary32`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn binary32_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn binary32_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `Binary32`. + #[inline(always)] + pub fn set_binary32_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'Binary32' + /// Sets the value of `Binary32`. #[inline(always)] pub fn set_binary32(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -483,13 +492,6 @@ impl Bar { message_id: Bar::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bar::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_le(value); Ok(()) @@ -560,42 +562,45 @@ impl CanFd { pub const FIE_MAX: u64 = 0_u64; pub const FAS_MIN: u64 = 0_u64; pub const FAS_MAX: u64 = 0_u64; - /// Construct new 'CanFd' from values + /// Constructs a new `CanFd` message from values. pub fn new(fie: u64, fas: u64) -> Result { let mut res = Self { raw: [0x00; 64] }; res.set_fie(fie)?; res.set_fas(fas)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CanFd` message payload. pub fn raw(&self) -> &[u8; 64] { &self.raw } - /// Get value of 'Fie' + /// Returns the value of `Fie`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: FUM + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn fie(&self) -> u64 { - self.fie_raw() + self.fie_raw_val() } - /// Get raw value of 'Fie' + /// Returns the raw value of `Fie`. /// /// - Start bit: 0 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn fie_raw(&self) -> u64 { - let signal = self.raw.view_bits::()[0..64].load_le::(); - let factor = 1; - u64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fie_raw_val(&self) -> u64 { + self.raw.view_bits::()[0..64].load_le::() } - /// Set value of 'Fie' + /// Sets the raw value of `Fie`. + #[inline(always)] + pub fn set_fie_raw_val(&mut self, value: u64) { + self.raw.view_bits_mut::()[0..64].store_le(value); + } + /// Sets the value of `Fie`. #[inline(always)] pub fn set_fie(&mut self, value: u64) -> Result<(), CanError> { if value < 0_u64 || 0_u64 < value { @@ -603,41 +608,37 @@ impl CanFd { message_id: CanFd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanFd::MESSAGE_ID, - })?; - let value = (value / factor) as u64; self.raw.view_bits_mut::()[0..64].store_le(value); Ok(()) } - /// Get value of 'Fas' + /// Returns the value of `Fas`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn fas(&self) -> u64 { - self.fas_raw() + self.fas_raw_val() } - /// Get raw value of 'Fas' + /// Returns the raw value of `Fas`. /// /// - Start bit: 64 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn fas_raw(&self) -> u64 { - let signal = self.raw.view_bits::()[64..128].load_le::(); - let factor = 1; - u64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fas_raw_val(&self) -> u64 { + self.raw.view_bits::()[64..128].load_le::() + } + /// Sets the raw value of `Fas`. + #[inline(always)] + pub fn set_fas_raw_val(&mut self, value: u64) { + self.raw.view_bits_mut::()[64..128].store_le(value); } - /// Set value of 'Fas' + /// Sets the value of `Fas`. #[inline(always)] pub fn set_fas(&mut self, value: u64) -> Result<(), CanError> { if value < 0_u64 || 0_u64 < value { @@ -645,13 +646,6 @@ impl CanFd { message_id: CanFd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanFd::MESSAGE_ID, - })?; - let value = (value / factor) as u64; self.raw.view_bits_mut::()[64..128].store_le(value); Ok(()) } @@ -719,42 +713,45 @@ impl Foobar { pub const MESSAGE_SIZE: usize = 8; pub const ACC_02_CRC_MIN: i16 = 0_i16; pub const ACC_02_CRC_MAX: i16 = 1_i16; - /// Construct new 'FOOBAR' from values + /// Constructs a new `FOOBAR` message from values. pub fn new(acc_02_crc: i16) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_acc_02_crc(acc_02_crc)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `FOOBAR` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'ACC_02_CRC' + /// Returns the value of `ACC_02_CRC`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: BAR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn acc_02_crc(&self) -> i16 { - self.acc_02_crc_raw() + self.acc_02_crc_raw_val() } - /// Get raw value of 'ACC_02_CRC' + /// Returns the raw value of `ACC_02_CRC`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn acc_02_crc_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[0..12].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn acc_02_crc_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..12].load_le::() } - /// Set value of 'ACC_02_CRC' + /// Sets the raw value of `ACC_02_CRC`. + #[inline(always)] + pub fn set_acc_02_crc_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..12].store_le(value); + } + /// Sets the value of `ACC_02_CRC`. #[inline(always)] pub fn set_acc_02_crc(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 1_i16 < value { @@ -762,13 +759,6 @@ impl Foobar { message_id: Foobar::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Foobar::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..12].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_163_newline.snap.rs b/tests-snapshots/dbc-cantools/issue_163_newline.snap.rs index a1aedcc5..4b834e2c 100644 --- a/tests-snapshots/dbc-cantools/issue_163_newline.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_163_newline.snap.rs @@ -68,12 +68,12 @@ impl DummyMsg { StandardId::new_unchecked(0x0) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'dummy_msg' from values + /// Constructs a new `dummy_msg` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `dummy_msg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } diff --git a/tests-snapshots/dbc-cantools/issue_168.snap.rs b/tests-snapshots/dbc-cantools/issue_168.snap.rs index f14c386b..5499fac5 100644 --- a/tests-snapshots/dbc-cantools/issue_168.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_168.snap.rs @@ -86,43 +86,49 @@ impl Foo { pub const FOO_MAX: f32 = 270.47_f32; pub const BAR_MIN: f32 = 0_f32; pub const BAR_MAX: f32 = 5_f32; - /// Construct new 'Foo' from values + /// Constructs a new `Foo` message from values. pub fn new(foo: f32, bar: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_foo(foo)?; res.set_bar(bar)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Foo` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Foo' + /// Returns the value of `Foo`. /// /// - Min: 229.53 /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: BAR + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn foo(&self) -> f32 { - self.foo_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Foo' + /// Returns the raw value of `Foo`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn foo_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn foo_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() + } + /// Sets the raw value of `Foo`. + #[inline(always)] + pub fn set_foo_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); } - /// Set value of 'Foo' + /// Sets the value of `Foo`. #[inline(always)] pub fn set_foo(&mut self, value: f32) -> Result<(), CanError> { if value < 229.53_f32 || 270.47_f32 < value { @@ -137,7 +143,7 @@ impl Foo { self.raw.view_bits_mut::()[7..19].store_be(value); Ok(()) } - /// Get value of 'Bar' + /// Returns the value of `Bar`. /// /// Bar. /// @@ -145,26 +151,32 @@ impl Foo { /// - Max: 5 /// - Unit: "m" /// - Receivers: FOO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn bar(&self) -> f32 { - self.bar_raw() + let signal = self.raw.view_bits::()[31..63].load_be::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Bar' + /// Returns the raw value of `Bar`. /// /// - Start bit: 24 /// - Signal size: 32 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn bar_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[31..63].load_be::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn bar_raw_val(&self) -> i32 { + self.raw.view_bits::()[31..63].load_be::() + } + /// Sets the raw value of `Bar`. + #[inline(always)] + pub fn set_bar_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[31..63].store_be(value); } - /// Set value of 'Bar' + /// Sets the value of `Bar`. #[inline(always)] pub fn set_bar(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 5_f32 < value { @@ -246,43 +258,46 @@ impl Fum { pub const FUM_MAX: i16 = 10_i16; pub const FAM_MIN: i16 = 0_i16; pub const FAM_MAX: i16 = 8_i16; - /// Construct new 'Fum' from values + /// Constructs a new `Fum` message from values. pub fn new(fum: i16, fam: FumFam) -> Result { let mut res = Self { raw: [0x00; 5] }; res.set_fum(fum)?; res.set_fam(fam)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Fum` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } - /// Get value of 'Fum' + /// Returns the value of `Fum`. /// /// - Min: 0 /// - Max: 10 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: BAR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn fum(&self) -> i16 { - self.fum_raw() + self.fum_raw_val() } - /// Get raw value of 'Fum' + /// Returns the raw value of `Fum`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn fum_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[0..12].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fum_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..12].load_le::() + } + /// Sets the raw value of `Fum`. + #[inline(always)] + pub fn set_fum_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..12].store_le(value); } - /// Set value of 'Fum' + /// Sets the value of `Fum`. #[inline(always)] pub fn set_fum(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 10_i16 < value { @@ -290,22 +305,15 @@ impl Fum { message_id: Fum::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Fum::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..12].store_le(value); Ok(()) } - /// Get value of 'Fam' + /// Returns the value of `Fam`. /// /// - Min: 0 /// - Max: 8 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: BAR #[inline(always)] pub fn fam(&self) -> FumFam { @@ -313,25 +321,30 @@ impl Fum { match signal { 1 => FumFam::Enabled, 0 => FumFam::Disabled, - _ => FumFam::_Other(self.fam_raw()), + _ => FumFam::_Other(self.fam_phys_val()), } } - /// Get raw value of 'Fam' + #[inline(always)] + fn fam_phys_val(&self) -> i16 { + self.fam_raw_val() + } + /// Returns the raw value of `Fam`. /// /// - Start bit: 12 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn fam_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[12..24].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fam_raw_val(&self) -> i16 { + self.raw.view_bits::()[12..24].load_le::() } - /// Set value of 'Fam' + /// Sets the raw value of `Fam`. + #[inline(always)] + pub fn set_fam_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[12..24].store_le(value); + } + /// Sets the value of `Fam`. #[inline(always)] pub fn set_fam(&mut self, value: FumFam) -> Result<(), CanError> { let value = i16::from(value); @@ -340,13 +353,6 @@ impl Fum { message_id: Fum::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Fum::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[12..24].store_le(value); Ok(()) @@ -440,42 +446,45 @@ impl Bar { pub const MESSAGE_SIZE: usize = 4; pub const BINARY32_MIN: i32 = 0_i32; pub const BINARY32_MAX: i32 = 0_i32; - /// Construct new 'Bar' from values + /// Constructs a new `Bar` message from values. pub fn new(binary32: i32) -> Result { let mut res = Self { raw: [0x00; 4] }; res.set_binary32(binary32)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Bar` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'Binary32' + /// Returns the value of `Binary32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: FUM + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn binary32(&self) -> i32 { - self.binary32_raw() + self.binary32_raw_val() } - /// Get raw value of 'Binary32' + /// Returns the raw value of `Binary32`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn binary32_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn binary32_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `Binary32`. + #[inline(always)] + pub fn set_binary32_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'Binary32' + /// Sets the value of `Binary32`. #[inline(always)] pub fn set_binary32(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -483,13 +492,6 @@ impl Bar { message_id: Bar::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bar::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_le(value); Ok(()) @@ -560,42 +562,45 @@ impl CanFd { pub const FIE_MAX: u64 = 0_u64; pub const FAS_MIN: u64 = 0_u64; pub const FAS_MAX: u64 = 0_u64; - /// Construct new 'CanFd' from values + /// Constructs a new `CanFd` message from values. pub fn new(fie: u64, fas: u64) -> Result { let mut res = Self { raw: [0x00; 64] }; res.set_fie(fie)?; res.set_fas(fas)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CanFd` message payload. pub fn raw(&self) -> &[u8; 64] { &self.raw } - /// Get value of 'Fie' + /// Returns the value of `Fie`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: FUM + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn fie(&self) -> u64 { - self.fie_raw() + self.fie_raw_val() } - /// Get raw value of 'Fie' + /// Returns the raw value of `Fie`. /// /// - Start bit: 0 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn fie_raw(&self) -> u64 { - let signal = self.raw.view_bits::()[0..64].load_le::(); - let factor = 1; - u64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fie_raw_val(&self) -> u64 { + self.raw.view_bits::()[0..64].load_le::() } - /// Set value of 'Fie' + /// Sets the raw value of `Fie`. + #[inline(always)] + pub fn set_fie_raw_val(&mut self, value: u64) { + self.raw.view_bits_mut::()[0..64].store_le(value); + } + /// Sets the value of `Fie`. #[inline(always)] pub fn set_fie(&mut self, value: u64) -> Result<(), CanError> { if value < 0_u64 || 0_u64 < value { @@ -603,41 +608,37 @@ impl CanFd { message_id: CanFd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanFd::MESSAGE_ID, - })?; - let value = (value / factor) as u64; self.raw.view_bits_mut::()[0..64].store_le(value); Ok(()) } - /// Get value of 'Fas' + /// Returns the value of `Fas`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn fas(&self) -> u64 { - self.fas_raw() + self.fas_raw_val() } - /// Get raw value of 'Fas' + /// Returns the raw value of `Fas`. /// /// - Start bit: 64 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn fas_raw(&self) -> u64 { - let signal = self.raw.view_bits::()[64..128].load_le::(); - let factor = 1; - u64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn fas_raw_val(&self) -> u64 { + self.raw.view_bits::()[64..128].load_le::() + } + /// Sets the raw value of `Fas`. + #[inline(always)] + pub fn set_fas_raw_val(&mut self, value: u64) { + self.raw.view_bits_mut::()[64..128].store_le(value); } - /// Set value of 'Fas' + /// Sets the value of `Fas`. #[inline(always)] pub fn set_fas(&mut self, value: u64) -> Result<(), CanError> { if value < 0_u64 || 0_u64 < value { @@ -645,13 +646,6 @@ impl CanFd { message_id: CanFd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CanFd::MESSAGE_ID, - })?; - let value = (value / factor) as u64; self.raw.view_bits_mut::()[64..128].store_le(value); Ok(()) } @@ -719,42 +713,45 @@ impl Foobar { pub const MESSAGE_SIZE: usize = 8; pub const ACC_02_CRC_MIN: i16 = 0_i16; pub const ACC_02_CRC_MAX: i16 = 1_i16; - /// Construct new 'FOOBAR' from values + /// Constructs a new `FOOBAR` message from values. pub fn new(acc_02_crc: i16) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_acc_02_crc(acc_02_crc)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `FOOBAR` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'ACC_02_CRC' + /// Returns the value of `ACC_02_CRC`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: BAR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn acc_02_crc(&self) -> i16 { - self.acc_02_crc_raw() + self.acc_02_crc_raw_val() } - /// Get raw value of 'ACC_02_CRC' + /// Returns the raw value of `ACC_02_CRC`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn acc_02_crc_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[0..12].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn acc_02_crc_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..12].load_le::() } - /// Set value of 'ACC_02_CRC' + /// Sets the raw value of `ACC_02_CRC`. + #[inline(always)] + pub fn set_acc_02_crc_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..12].store_le(value); + } + /// Sets the value of `ACC_02_CRC`. #[inline(always)] pub fn set_acc_02_crc(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 1_i16 < value { @@ -762,13 +759,6 @@ impl Foobar { message_id: Foobar::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Foobar::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..12].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded.snap.rs b/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded.snap.rs index bf140a54..9663c9e1 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded.snap.rs @@ -79,33 +79,36 @@ impl ExtMuxCascaded { pub const MUXED_A_1_MAX: i8 = 0_i8; pub const MUX_A_MIN: i8 = 0_i8; pub const MUX_A_MAX: i8 = 0_i8; - /// Construct new 'ext_MUX_cascaded' from values + /// Constructs a new `ext_MUX_cascaded` message from values. pub fn new(mux_a: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_mux_a(mux_a)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ext_MUX_cascaded` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'MUX_A' + /// Returns the raw value of `MUX_A`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_a_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux_a(&mut self) -> Result { - match self.mux_a_raw() { + pub fn mux_a_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `MUX_A`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_a_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX_A`. + pub fn mux_a_multiplexed(&mut self) -> Result { + match self.mux_a_raw_val() { 0 => { Ok( ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { @@ -128,7 +131,7 @@ impl ExtMuxCascaded { } } } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] fn set_mux_a(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -136,18 +139,11 @@ impl ExtMuxCascaded { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -156,7 +152,7 @@ impl ExtMuxCascaded { self.set_mux_a(0)?; Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -244,32 +240,35 @@ impl ExtMuxCascadedMuxAM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_0' + /// Returns the value of `muxed_B_0`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_0(&self) -> i8 { - self.muxed_b_0_raw() + self.muxed_b_0_raw_val() } - /// Get raw value of 'muxed_B_0' + /// Returns the raw value of `muxed_B_0`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_0_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'muxed_B_0' + /// Sets the raw value of `muxed_B_0`. + #[inline(always)] + pub fn set_muxed_b_0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `muxed_B_0`. #[inline(always)] pub fn set_muxed_b_0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -277,13 +276,6 @@ impl ExtMuxCascadedMuxAM0 { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) @@ -315,32 +307,35 @@ impl ExtMuxCascadedMuxAM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_1' + /// Returns the value of `muxed_B_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_1(&self) -> i8 { - self.muxed_b_1_raw() + self.muxed_b_1_raw_val() } - /// Get raw value of 'muxed_B_1' + /// Returns the raw value of `muxed_B_1`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'muxed_B_1' + /// Sets the raw value of `muxed_B_1`. + #[inline(always)] + pub fn set_muxed_b_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `muxed_B_1`. #[inline(always)] pub fn set_muxed_b_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -348,43 +343,39 @@ impl ExtMuxCascadedMuxAM1 { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'muxed_A_1' + /// Returns the value of `muxed_A_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_a_1(&self) -> i8 { - self.muxed_a_1_raw() + self.muxed_a_1_raw_val() } - /// Get raw value of 'muxed_A_1' + /// Returns the raw value of `muxed_A_1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_a_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_a_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `muxed_A_1`. + #[inline(always)] + pub fn set_muxed_a_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'muxed_A_1' + /// Sets the value of `muxed_A_1`. #[inline(always)] pub fn set_muxed_a_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -392,13 +383,6 @@ impl ExtMuxCascadedMuxAM1 { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs b/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs index 5fa26d8c..0af319be 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs @@ -79,36 +79,39 @@ impl ExtMuxCascaded { pub const MUXED_A_2_MUX_B_MAX: i8 = 0_i8; pub const MUX_A_MIN: i8 = 0_i8; pub const MUX_A_MAX: i8 = 0_i8; - /// Construct new 'ext_MUX_cascaded' from values + /// Constructs a new `ext_MUX_cascaded` message from values. pub fn new(muxed_a_2_mux_b: i8, mux_a: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_muxed_a_2_mux_b(muxed_a_2_mux_b)?; res.set_mux_a(mux_a)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ext_MUX_cascaded` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'muxed_A_2_MUX_B' + /// Returns the raw value of `muxed_A_2_MUX_B`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_a_2_mux_b_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_a_2_mux_b_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `muxed_A_2_MUX_B`. + #[allow(dead_code)] + #[inline(always)] + fn set_muxed_a_2_mux_b_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - pub fn muxed_a_2_mux_b( + /// Selects the active multiplexed sub-message for `muxed_A_2_MUX_B`. + pub fn muxed_a_2_mux_b_multiplexed( &mut self, ) -> Result { - match self.muxed_a_2_mux_b_raw() { + match self.muxed_a_2_mux_b_raw_val() { 0 => { Ok( ExtMuxCascadedMuxedA2MuxBIndex::M0(ExtMuxCascadedMuxedA2MuxBM0 { @@ -131,7 +134,7 @@ impl ExtMuxCascaded { } } } - /// Set value of 'muxed_A_2_MUX_B' + /// Sets the value of `muxed_A_2_MUX_B`. #[inline(always)] fn set_muxed_a_2_mux_b(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -139,18 +142,11 @@ impl ExtMuxCascaded { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Set value of 'muxed_A_2_MUX_B' + /// Sets the value of `muxed_A_2_MUX_B`. #[inline(always)] pub fn set_m0( &mut self, @@ -162,7 +158,7 @@ impl ExtMuxCascaded { self.set_muxed_a_2_mux_b(0)?; Ok(()) } - /// Set value of 'muxed_A_2_MUX_B' + /// Sets the value of `muxed_A_2_MUX_B`. #[inline(always)] pub fn set_m1( &mut self, @@ -174,23 +170,26 @@ impl ExtMuxCascaded { self.set_muxed_a_2_mux_b(1)?; Ok(()) } - /// Get raw value of 'MUX_A' + /// Returns the raw value of `MUX_A`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_a_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux_a(&mut self) -> Result { - match self.mux_a_raw() { + pub fn mux_a_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `MUX_A`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_a_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX_A`. + pub fn mux_a_multiplexed(&mut self) -> Result { + match self.mux_a_raw_val() { 0 => { Ok( ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { @@ -213,7 +212,7 @@ impl ExtMuxCascaded { } } } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] fn set_mux_a(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -221,18 +220,11 @@ impl ExtMuxCascaded { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -241,7 +233,7 @@ impl ExtMuxCascaded { self.set_mux_a(0)?; Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -329,32 +321,35 @@ impl ExtMuxCascadedMuxedA2MuxBM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_0' + /// Returns the value of `muxed_B_0`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_0(&self) -> i8 { - self.muxed_b_0_raw() + self.muxed_b_0_raw_val() } - /// Get raw value of 'muxed_B_0' + /// Returns the raw value of `muxed_B_0`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_0_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `muxed_B_0`. + #[inline(always)] + pub fn set_muxed_b_0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'muxed_B_0' + /// Sets the value of `muxed_B_0`. #[inline(always)] pub fn set_muxed_b_0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -362,13 +357,6 @@ impl ExtMuxCascadedMuxedA2MuxBM0 { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) @@ -400,32 +388,35 @@ impl ExtMuxCascadedMuxedA2MuxBM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_1' + /// Returns the value of `muxed_B_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_1(&self) -> i8 { - self.muxed_b_1_raw() + self.muxed_b_1_raw_val() } - /// Get raw value of 'muxed_B_1' + /// Returns the raw value of `muxed_B_1`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `muxed_B_1`. + #[inline(always)] + pub fn set_muxed_b_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'muxed_B_1' + /// Sets the value of `muxed_B_1`. #[inline(always)] pub fn set_muxed_b_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -433,43 +424,39 @@ impl ExtMuxCascadedMuxedA2MuxBM1 { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'muxed_A_1' + /// Returns the value of `muxed_A_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_a_1(&self) -> i8 { - self.muxed_a_1_raw() + self.muxed_a_1_raw_val() } - /// Get raw value of 'muxed_A_1' + /// Returns the raw value of `muxed_A_1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_a_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_a_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'muxed_A_1' + /// Sets the raw value of `muxed_A_1`. + #[inline(always)] + pub fn set_muxed_a_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `muxed_A_1`. #[inline(always)] pub fn set_muxed_a_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -477,13 +464,6 @@ impl ExtMuxCascadedMuxedA2MuxBM1 { message_id: ExtMuxCascaded::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxCascaded::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.stderr b/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.stderr index 5cb6b929..1f252c6a 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.stderr +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.stderr @@ -1,16 +1,16 @@ error[E0425]: cannot find type `ExtMuxCascadedMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:192:39 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:191:51 | -192 | pub fn mux_a(&mut self) -> Result { - | ^^^^^^^^^^^^^^^^^^^^^^^ +191 | pub fn mux_a_multiplexed(&mut self) -> Result { + | ^^^^^^^^^^^^^^^^^^^^^^^ ... -302 | pub enum ExtMuxCascadedMuxedA2MuxBIndex { +294 | pub enum ExtMuxCascadedMuxedA2MuxBIndex { | --------------------------------------- similarly named enum `ExtMuxCascadedMuxedA2MuxBIndex` defined here | help: an enum with a similar name exists | -192 - pub fn mux_a(&mut self) -> Result { -192 + pub fn mux_a(&mut self) -> Result { +191 - pub fn mux_a_multiplexed(&mut self) -> Result { +191 + pub fn mux_a_multiplexed(&mut self) -> Result { | help: you might be missing a type parameter | @@ -18,109 +18,109 @@ help: you might be missing a type parameter | +++++++++++++++++++++++++ error[E0422]: cannot find struct, variant or union type `ExtMuxCascadedMuxAM0` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:196:49 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:195:49 | 55 | pub struct ExtMuxCascaded { | ------------------------- similarly named struct `ExtMuxCascaded` defined here ... -196 | ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { +195 | ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { | ^^^^^^^^^^^^^^^^^^^^ | help: a struct with a similar name exists | -196 - ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { -196 + ExtMuxCascadedMuxAIndex::M0(ExtMuxCascaded { +195 - ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { +195 + ExtMuxCascadedMuxAIndex::M0(ExtMuxCascaded { | error[E0422]: cannot find struct, variant or union type `ExtMuxCascadedMuxAM1` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:203:49 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:202:49 | 55 | pub struct ExtMuxCascaded { | ------------------------- similarly named struct `ExtMuxCascaded` defined here ... -203 | ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { +202 | ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { | ^^^^^^^^^^^^^^^^^^^^ | help: a struct with a similar name exists | -203 - ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { -203 + ExtMuxCascadedMuxAIndex::M1(ExtMuxCascaded { +202 - ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { +202 + ExtMuxCascadedMuxAIndex::M1(ExtMuxCascaded { | error[E0425]: cannot find type `ExtMuxCascadedMuxAM0` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:237:37 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:229:37 | 55 | pub struct ExtMuxCascaded { | ------------------------- similarly named struct `ExtMuxCascaded` defined here ... -237 | pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { +229 | pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^ | help: a struct with a similar name exists | -237 - pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { -237 + pub fn set_m0(&mut self, value: ExtMuxCascaded) -> Result<(), CanError> { +229 - pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { +229 + pub fn set_m0(&mut self, value: ExtMuxCascaded) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtMuxCascadedMuxAM1` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:246:37 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:238:37 | 55 | pub struct ExtMuxCascaded { | ------------------------- similarly named struct `ExtMuxCascaded` defined here ... -246 | pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { +238 | pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^ | help: a struct with a similar name exists | -246 - pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { -246 + pub fn set_m1(&mut self, value: ExtMuxCascaded) -> Result<(), CanError> { +238 - pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { +238 + pub fn set_m1(&mut self, value: ExtMuxCascaded) -> Result<(), CanError> { | error[E0592]: duplicate definitions with name `set_m0` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:237:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:229:5 | -155 | / pub fn set_m0( -156 | | &mut self, -157 | | value: ExtMuxCascadedMuxedA2MuxBM0, -158 | | ) -> Result<(), CanError> { +151 | / pub fn set_m0( +152 | | &mut self, +153 | | value: ExtMuxCascadedMuxedA2MuxBM0, +154 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m0` ... -237 | pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { +229 | pub fn set_m0(&mut self, value: ExtMuxCascadedMuxAM0) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m0` error[E0592]: duplicate definitions with name `set_m1` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:246:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:238:5 | -167 | / pub fn set_m1( -168 | | &mut self, -169 | | value: ExtMuxCascadedMuxedA2MuxBM1, -170 | | ) -> Result<(), CanError> { +163 | / pub fn set_m1( +164 | | &mut self, +165 | | value: ExtMuxCascadedMuxedA2MuxBM1, +166 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m1` ... -246 | pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { +238 | pub fn set_m1(&mut self, value: ExtMuxCascadedMuxAM1) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m1` error[E0433]: cannot find type `ExtMuxCascadedMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:196:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:195:21 | -196 | ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { +195 | ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { | ^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxCascadedMuxAIndex` | help: an enum with a similar name exists | -196 - ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { -196 + ExtMuxCascadedMuxedA2MuxBIndex::M0(ExtMuxCascadedMuxAM0 { +195 - ExtMuxCascadedMuxAIndex::M0(ExtMuxCascadedMuxAM0 { +195 + ExtMuxCascadedMuxedA2MuxBIndex::M0(ExtMuxCascadedMuxAM0 { | error[E0433]: cannot find type `ExtMuxCascadedMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:203:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_cascaded_dumped.snap.rs:202:21 | -203 | ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { +202 | ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { | ^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxCascadedMuxAIndex` | help: an enum with a similar name exists | -203 - ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { -203 + ExtMuxCascadedMuxedA2MuxBIndex::M1(ExtMuxCascadedMuxAM1 { +202 - ExtMuxCascadedMuxAIndex::M1(ExtMuxCascadedMuxAM1 { +202 + ExtMuxCascadedMuxedA2MuxBIndex::M1(ExtMuxCascadedMuxAM1 { | diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs index 0279c2c2..7c0b8544 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs @@ -83,34 +83,39 @@ impl ExtMuxIndepMultiplexors { pub const MUXED_A_0_MAX: i8 = 0_i8; pub const MUX_A_MIN: i8 = 0_i8; pub const MUX_A_MAX: i8 = 0_i8; - /// Construct new 'ext_MUX_indep_multiplexors' from values + /// Constructs a new `ext_MUX_indep_multiplexors` message from values. pub fn new(mux_b: i8, mux_a: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_mux_b(mux_b)?; res.set_mux_a(mux_a)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ext_MUX_indep_multiplexors` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'MUX_B' + /// Returns the raw value of `MUX_B`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_b_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux_b(&mut self) -> Result { - match self.mux_b_raw() { + pub fn mux_b_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `MUX_B`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_b_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX_B`. + pub fn mux_b_multiplexed( + &mut self, + ) -> Result { + match self.mux_b_raw_val() { 0 => { Ok( ExtMuxIndepMultiplexorsMuxBIndex::M0(ExtMuxIndepMultiplexorsMuxBM0 { @@ -140,7 +145,7 @@ impl ExtMuxIndepMultiplexors { } } } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] fn set_mux_b(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -148,18 +153,11 @@ impl ExtMuxIndepMultiplexors { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] pub fn set_m0( &mut self, @@ -171,7 +169,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_b(0)?; Ok(()) } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] pub fn set_m1( &mut self, @@ -183,7 +181,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_b(1)?; Ok(()) } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] pub fn set_m2( &mut self, @@ -195,23 +193,28 @@ impl ExtMuxIndepMultiplexors { self.set_mux_b(2)?; Ok(()) } - /// Get raw value of 'MUX_A' + /// Returns the raw value of `MUX_A`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_a_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux_a(&mut self) -> Result { - match self.mux_a_raw() { + pub fn mux_a_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `MUX_A`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_a_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX_A`. + pub fn mux_a_multiplexed( + &mut self, + ) -> Result { + match self.mux_a_raw_val() { 0 => { Ok( ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { @@ -241,7 +244,7 @@ impl ExtMuxIndepMultiplexors { } } } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] fn set_mux_a(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -249,18 +252,11 @@ impl ExtMuxIndepMultiplexors { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m0( &mut self, @@ -272,7 +268,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_a(0)?; Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m1( &mut self, @@ -284,7 +280,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_a(1)?; Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m2( &mut self, @@ -376,32 +372,35 @@ impl ExtMuxIndepMultiplexorsMuxBM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_A_0' + /// Returns the value of `muxed_A_0`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_a_0(&self) -> i8 { - self.muxed_a_0_raw() + self.muxed_a_0_raw_val() } - /// Get raw value of 'muxed_A_0' + /// Returns the raw value of `muxed_A_0`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_a_0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_a_0_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `muxed_A_0`. + #[inline(always)] + pub fn set_muxed_a_0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'muxed_A_0' + /// Sets the value of `muxed_A_0`. #[inline(always)] pub fn set_muxed_a_0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -409,13 +408,6 @@ impl ExtMuxIndepMultiplexorsMuxBM0 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -447,32 +439,35 @@ impl ExtMuxIndepMultiplexorsMuxBM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_1' + /// Returns the value of `muxed_B_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_1(&self) -> i8 { - self.muxed_b_1_raw() + self.muxed_b_1_raw_val() } - /// Get raw value of 'muxed_B_1' + /// Returns the raw value of `muxed_B_1`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `muxed_B_1`. + #[inline(always)] + pub fn set_muxed_b_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'muxed_B_1' + /// Sets the value of `muxed_B_1`. #[inline(always)] pub fn set_muxed_b_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -480,43 +475,39 @@ impl ExtMuxIndepMultiplexorsMuxBM1 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'muxed_A_1' + /// Returns the value of `muxed_A_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_a_1(&self) -> i8 { - self.muxed_a_1_raw() + self.muxed_a_1_raw_val() } - /// Get raw value of 'muxed_A_1' + /// Returns the raw value of `muxed_A_1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_a_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_a_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'muxed_A_1' + /// Sets the raw value of `muxed_A_1`. + #[inline(always)] + pub fn set_muxed_a_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `muxed_A_1`. #[inline(always)] pub fn set_muxed_a_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -524,13 +515,6 @@ impl ExtMuxIndepMultiplexorsMuxBM1 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -562,32 +546,35 @@ impl ExtMuxIndepMultiplexorsMuxBM2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_2' + /// Returns the value of `muxed_B_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_2(&self) -> i8 { - self.muxed_b_2_raw() + self.muxed_b_2_raw_val() } - /// Get raw value of 'muxed_B_2' + /// Returns the raw value of `muxed_B_2`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `muxed_B_2`. + #[inline(always)] + pub fn set_muxed_b_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'muxed_B_2' + /// Sets the value of `muxed_B_2`. #[inline(always)] pub fn set_muxed_b_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -595,13 +582,6 @@ impl ExtMuxIndepMultiplexorsMuxBM2 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.stderr b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.stderr index 97a0dfcf..e1da7252 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.stderr +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.stderr @@ -1,16 +1,16 @@ error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:213:39 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:216:17 | -213 | pub fn mux_a(&mut self) -> Result { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +216 | ) -> Result { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -348 | pub enum ExtMuxIndepMultiplexorsMuxBIndex { +344 | pub enum ExtMuxIndepMultiplexorsMuxBIndex { | ----------------------------------------- similarly named enum `ExtMuxIndepMultiplexorsMuxBIndex` defined here | help: an enum with a similar name exists | -213 - pub fn mux_a(&mut self) -> Result { -213 + pub fn mux_a(&mut self) -> Result { +216 - ) -> Result { +216 + ) -> Result { | help: you might be missing a type parameter | @@ -18,172 +18,172 @@ help: you might be missing a type parameter | ++++++++++++++++++++++++++++++++++ error[E0422]: cannot find struct, variant or union type `ExtMuxIndepMultiplexorsMuxAM0` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:217:58 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:220:58 | -217 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -363 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { +359 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM0` defined here | help: a struct with a similar name exists | -217 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { -217 + ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxBM0 { +220 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 + ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxBM0 { | error[E0422]: cannot find struct, variant or union type `ExtMuxIndepMultiplexorsMuxAM1` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:224:58 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:227:58 | -224 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -434 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { +426 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM1` defined here | help: a struct with a similar name exists | -224 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { -224 + ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxBM1 { +227 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 + ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxBM1 { | error[E0422]: cannot find struct, variant or union type `ExtMuxIndepMultiplexorsMuxAM2` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:231:58 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:234:58 | -231 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -549 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { +533 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM2` defined here | help: a struct with a similar name exists | -231 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { -231 + ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxBM2 { +234 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 + ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxBM2 { | error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAM0` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:267:16 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:263:16 | -267 | value: ExtMuxIndepMultiplexorsMuxAM0, +263 | value: ExtMuxIndepMultiplexorsMuxAM0, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -363 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { +359 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM0` defined here | help: a struct with a similar name exists | -267 - value: ExtMuxIndepMultiplexorsMuxAM0, -267 + value: ExtMuxIndepMultiplexorsMuxBM0, +263 - value: ExtMuxIndepMultiplexorsMuxAM0, +263 + value: ExtMuxIndepMultiplexorsMuxBM0, | error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAM1` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:279:16 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:275:16 | -279 | value: ExtMuxIndepMultiplexorsMuxAM1, +275 | value: ExtMuxIndepMultiplexorsMuxAM1, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -434 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { +426 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM1` defined here | help: a struct with a similar name exists | -279 - value: ExtMuxIndepMultiplexorsMuxAM1, -279 + value: ExtMuxIndepMultiplexorsMuxBM1, +275 - value: ExtMuxIndepMultiplexorsMuxAM1, +275 + value: ExtMuxIndepMultiplexorsMuxBM1, | error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAM2` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:291:16 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:287:16 | -291 | value: ExtMuxIndepMultiplexorsMuxAM2, +287 | value: ExtMuxIndepMultiplexorsMuxAM2, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -549 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { +533 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM2` defined here | help: a struct with a similar name exists | -291 - value: ExtMuxIndepMultiplexorsMuxAM2, -291 + value: ExtMuxIndepMultiplexorsMuxBM2, +287 - value: ExtMuxIndepMultiplexorsMuxAM2, +287 + value: ExtMuxIndepMultiplexorsMuxBM2, | error[E0592]: duplicate definitions with name `set_m0` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:265:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:261:5 | -164 | / pub fn set_m0( -165 | | &mut self, -166 | | value: ExtMuxIndepMultiplexorsMuxBM0, -167 | | ) -> Result<(), CanError> { +162 | / pub fn set_m0( +163 | | &mut self, +164 | | value: ExtMuxIndepMultiplexorsMuxBM0, +165 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m0` ... -265 | / pub fn set_m0( -266 | | &mut self, -267 | | value: ExtMuxIndepMultiplexorsMuxAM0, -268 | | ) -> Result<(), CanError> { +261 | / pub fn set_m0( +262 | | &mut self, +263 | | value: ExtMuxIndepMultiplexorsMuxAM0, +264 | | ) -> Result<(), CanError> { | |_____________________________^ duplicate definitions for `set_m0` error[E0592]: duplicate definitions with name `set_m1` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:277:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:273:5 | -176 | / pub fn set_m1( -177 | | &mut self, -178 | | value: ExtMuxIndepMultiplexorsMuxBM1, -179 | | ) -> Result<(), CanError> { +174 | / pub fn set_m1( +175 | | &mut self, +176 | | value: ExtMuxIndepMultiplexorsMuxBM1, +177 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m1` ... -277 | / pub fn set_m1( -278 | | &mut self, -279 | | value: ExtMuxIndepMultiplexorsMuxAM1, -280 | | ) -> Result<(), CanError> { +273 | / pub fn set_m1( +274 | | &mut self, +275 | | value: ExtMuxIndepMultiplexorsMuxAM1, +276 | | ) -> Result<(), CanError> { | |_____________________________^ duplicate definitions for `set_m1` error[E0592]: duplicate definitions with name `set_m2` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:289:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:285:5 | -188 | / pub fn set_m2( -189 | | &mut self, -190 | | value: ExtMuxIndepMultiplexorsMuxBM2, -191 | | ) -> Result<(), CanError> { +186 | / pub fn set_m2( +187 | | &mut self, +188 | | value: ExtMuxIndepMultiplexorsMuxBM2, +189 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m2` ... -289 | / pub fn set_m2( -290 | | &mut self, -291 | | value: ExtMuxIndepMultiplexorsMuxAM2, -292 | | ) -> Result<(), CanError> { +285 | / pub fn set_m2( +286 | | &mut self, +287 | | value: ExtMuxIndepMultiplexorsMuxAM2, +288 | | ) -> Result<(), CanError> { | |_____________________________^ duplicate definitions for `set_m2` error[E0433]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:217:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:220:21 | -217 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxIndepMultiplexorsMuxAIndex` | help: an enum with a similar name exists | -217 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { -217 + ExtMuxIndepMultiplexorsMuxBIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 + ExtMuxIndepMultiplexorsMuxBIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { | error[E0433]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:224:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:227:21 | -224 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxIndepMultiplexorsMuxAIndex` | help: an enum with a similar name exists | -224 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { -224 + ExtMuxIndepMultiplexorsMuxBIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 + ExtMuxIndepMultiplexorsMuxBIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { | error[E0433]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:231:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors.snap.rs:234:21 | -231 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxIndepMultiplexorsMuxAIndex` | help: an enum with a similar name exists | -231 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { -231 + ExtMuxIndepMultiplexorsMuxBIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 + ExtMuxIndepMultiplexorsMuxBIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { | diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs index c342090a..814ae174 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs @@ -83,34 +83,39 @@ impl ExtMuxIndepMultiplexors { pub const MUXED_A_1_MAX: i8 = 0_i8; pub const MUX_A_MIN: i8 = 0_i8; pub const MUX_A_MAX: i8 = 0_i8; - /// Construct new 'ext_MUX_indep_multiplexors' from values + /// Constructs a new `ext_MUX_indep_multiplexors` message from values. pub fn new(mux_b: i8, mux_a: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_mux_b(mux_b)?; res.set_mux_a(mux_a)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ext_MUX_indep_multiplexors` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'MUX_B' + /// Returns the raw value of `MUX_B`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_b_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux_b(&mut self) -> Result { - match self.mux_b_raw() { + pub fn mux_b_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `MUX_B`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_b_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX_B`. + pub fn mux_b_multiplexed( + &mut self, + ) -> Result { + match self.mux_b_raw_val() { 0 => { Ok( ExtMuxIndepMultiplexorsMuxBIndex::M0(ExtMuxIndepMultiplexorsMuxBM0 { @@ -140,7 +145,7 @@ impl ExtMuxIndepMultiplexors { } } } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] fn set_mux_b(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -148,18 +153,11 @@ impl ExtMuxIndepMultiplexors { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] pub fn set_m0( &mut self, @@ -171,7 +169,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_b(0)?; Ok(()) } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] pub fn set_m1( &mut self, @@ -183,7 +181,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_b(1)?; Ok(()) } - /// Set value of 'MUX_B' + /// Sets the value of `MUX_B`. #[inline(always)] pub fn set_m2( &mut self, @@ -195,23 +193,28 @@ impl ExtMuxIndepMultiplexors { self.set_mux_b(2)?; Ok(()) } - /// Get raw value of 'MUX_A' + /// Returns the raw value of `MUX_A`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_a_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux_a(&mut self) -> Result { - match self.mux_a_raw() { + pub fn mux_a_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `MUX_A`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_a_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX_A`. + pub fn mux_a_multiplexed( + &mut self, + ) -> Result { + match self.mux_a_raw_val() { 0 => { Ok( ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { @@ -241,7 +244,7 @@ impl ExtMuxIndepMultiplexors { } } } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] fn set_mux_a(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -249,18 +252,11 @@ impl ExtMuxIndepMultiplexors { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m0( &mut self, @@ -272,7 +268,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_a(0)?; Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m1( &mut self, @@ -284,7 +280,7 @@ impl ExtMuxIndepMultiplexors { self.set_mux_a(1)?; Ok(()) } - /// Set value of 'MUX_A' + /// Sets the value of `MUX_A`. #[inline(always)] pub fn set_m2( &mut self, @@ -376,32 +372,35 @@ impl ExtMuxIndepMultiplexorsMuxBM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_A_0' + /// Returns the value of `muxed_A_0`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_a_0(&self) -> i8 { - self.muxed_a_0_raw() + self.muxed_a_0_raw_val() } - /// Get raw value of 'muxed_A_0' + /// Returns the raw value of `muxed_A_0`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_a_0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_a_0_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `muxed_A_0`. + #[inline(always)] + pub fn set_muxed_a_0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'muxed_A_0' + /// Sets the value of `muxed_A_0`. #[inline(always)] pub fn set_muxed_a_0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -409,13 +408,6 @@ impl ExtMuxIndepMultiplexorsMuxBM0 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -447,32 +439,35 @@ impl ExtMuxIndepMultiplexorsMuxBM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_1' + /// Returns the value of `muxed_B_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_1(&self) -> i8 { - self.muxed_b_1_raw() + self.muxed_b_1_raw_val() } - /// Get raw value of 'muxed_B_1' + /// Returns the raw value of `muxed_B_1`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `muxed_B_1`. + #[inline(always)] + pub fn set_muxed_b_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'muxed_B_1' + /// Sets the value of `muxed_B_1`. #[inline(always)] pub fn set_muxed_b_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -480,43 +475,39 @@ impl ExtMuxIndepMultiplexorsMuxBM1 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'muxed_A_1' + /// Returns the value of `muxed_A_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_a_1(&self) -> i8 { - self.muxed_a_1_raw() + self.muxed_a_1_raw_val() } - /// Get raw value of 'muxed_A_1' + /// Returns the raw value of `muxed_A_1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_a_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_a_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'muxed_A_1' + /// Sets the raw value of `muxed_A_1`. + #[inline(always)] + pub fn set_muxed_a_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `muxed_A_1`. #[inline(always)] pub fn set_muxed_a_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -524,13 +515,6 @@ impl ExtMuxIndepMultiplexorsMuxBM1 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -562,32 +546,35 @@ impl ExtMuxIndepMultiplexorsMuxBM2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_B_2' + /// Returns the value of `muxed_B_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_b_2(&self) -> i8 { - self.muxed_b_2_raw() + self.muxed_b_2_raw_val() } - /// Get raw value of 'muxed_B_2' + /// Returns the raw value of `muxed_B_2`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_b_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_b_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `muxed_B_2`. + #[inline(always)] + pub fn set_muxed_b_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'muxed_B_2' + /// Sets the value of `muxed_B_2`. #[inline(always)] pub fn set_muxed_b_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -595,13 +582,6 @@ impl ExtMuxIndepMultiplexorsMuxBM2 { message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxIndepMultiplexors::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.stderr b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.stderr index 29091fa6..6fc9846c 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.stderr +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.stderr @@ -1,16 +1,16 @@ error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:213:39 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:216:17 | -213 | pub fn mux_a(&mut self) -> Result { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +216 | ) -> Result { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -348 | pub enum ExtMuxIndepMultiplexorsMuxBIndex { +344 | pub enum ExtMuxIndepMultiplexorsMuxBIndex { | ----------------------------------------- similarly named enum `ExtMuxIndepMultiplexorsMuxBIndex` defined here | help: an enum with a similar name exists | -213 - pub fn mux_a(&mut self) -> Result { -213 + pub fn mux_a(&mut self) -> Result { +216 - ) -> Result { +216 + ) -> Result { | help: you might be missing a type parameter | @@ -18,172 +18,172 @@ help: you might be missing a type parameter | ++++++++++++++++++++++++++++++++++ error[E0422]: cannot find struct, variant or union type `ExtMuxIndepMultiplexorsMuxAM0` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:217:58 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:220:58 | -217 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -363 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { +359 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM0` defined here | help: a struct with a similar name exists | -217 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { -217 + ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxBM0 { +220 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 + ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxBM0 { | error[E0422]: cannot find struct, variant or union type `ExtMuxIndepMultiplexorsMuxAM1` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:224:58 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:227:58 | -224 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -434 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { +426 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM1` defined here | help: a struct with a similar name exists | -224 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { -224 + ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxBM1 { +227 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 + ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxBM1 { | error[E0422]: cannot find struct, variant or union type `ExtMuxIndepMultiplexorsMuxAM2` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:231:58 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:234:58 | -231 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -549 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { +533 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM2` defined here | help: a struct with a similar name exists | -231 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { -231 + ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxBM2 { +234 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 + ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxBM2 { | error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAM0` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:267:16 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:263:16 | -267 | value: ExtMuxIndepMultiplexorsMuxAM0, +263 | value: ExtMuxIndepMultiplexorsMuxAM0, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -363 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { +359 | pub struct ExtMuxIndepMultiplexorsMuxBM0 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM0` defined here | help: a struct with a similar name exists | -267 - value: ExtMuxIndepMultiplexorsMuxAM0, -267 + value: ExtMuxIndepMultiplexorsMuxBM0, +263 - value: ExtMuxIndepMultiplexorsMuxAM0, +263 + value: ExtMuxIndepMultiplexorsMuxBM0, | error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAM1` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:279:16 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:275:16 | -279 | value: ExtMuxIndepMultiplexorsMuxAM1, +275 | value: ExtMuxIndepMultiplexorsMuxAM1, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -434 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { +426 | pub struct ExtMuxIndepMultiplexorsMuxBM1 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM1` defined here | help: a struct with a similar name exists | -279 - value: ExtMuxIndepMultiplexorsMuxAM1, -279 + value: ExtMuxIndepMultiplexorsMuxBM1, +275 - value: ExtMuxIndepMultiplexorsMuxAM1, +275 + value: ExtMuxIndepMultiplexorsMuxBM1, | error[E0425]: cannot find type `ExtMuxIndepMultiplexorsMuxAM2` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:291:16 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:287:16 | -291 | value: ExtMuxIndepMultiplexorsMuxAM2, +287 | value: ExtMuxIndepMultiplexorsMuxAM2, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -549 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { +533 | pub struct ExtMuxIndepMultiplexorsMuxBM2 { | ---------------------------------------- similarly named struct `ExtMuxIndepMultiplexorsMuxBM2` defined here | help: a struct with a similar name exists | -291 - value: ExtMuxIndepMultiplexorsMuxAM2, -291 + value: ExtMuxIndepMultiplexorsMuxBM2, +287 - value: ExtMuxIndepMultiplexorsMuxAM2, +287 + value: ExtMuxIndepMultiplexorsMuxBM2, | error[E0592]: duplicate definitions with name `set_m0` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:265:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:261:5 | -164 | / pub fn set_m0( -165 | | &mut self, -166 | | value: ExtMuxIndepMultiplexorsMuxBM0, -167 | | ) -> Result<(), CanError> { +162 | / pub fn set_m0( +163 | | &mut self, +164 | | value: ExtMuxIndepMultiplexorsMuxBM0, +165 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m0` ... -265 | / pub fn set_m0( -266 | | &mut self, -267 | | value: ExtMuxIndepMultiplexorsMuxAM0, -268 | | ) -> Result<(), CanError> { +261 | / pub fn set_m0( +262 | | &mut self, +263 | | value: ExtMuxIndepMultiplexorsMuxAM0, +264 | | ) -> Result<(), CanError> { | |_____________________________^ duplicate definitions for `set_m0` error[E0592]: duplicate definitions with name `set_m1` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:277:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:273:5 | -176 | / pub fn set_m1( -177 | | &mut self, -178 | | value: ExtMuxIndepMultiplexorsMuxBM1, -179 | | ) -> Result<(), CanError> { +174 | / pub fn set_m1( +175 | | &mut self, +176 | | value: ExtMuxIndepMultiplexorsMuxBM1, +177 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m1` ... -277 | / pub fn set_m1( -278 | | &mut self, -279 | | value: ExtMuxIndepMultiplexorsMuxAM1, -280 | | ) -> Result<(), CanError> { +273 | / pub fn set_m1( +274 | | &mut self, +275 | | value: ExtMuxIndepMultiplexorsMuxAM1, +276 | | ) -> Result<(), CanError> { | |_____________________________^ duplicate definitions for `set_m1` error[E0592]: duplicate definitions with name `set_m2` - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:289:5 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:285:5 | -188 | / pub fn set_m2( -189 | | &mut self, -190 | | value: ExtMuxIndepMultiplexorsMuxBM2, -191 | | ) -> Result<(), CanError> { +186 | / pub fn set_m2( +187 | | &mut self, +188 | | value: ExtMuxIndepMultiplexorsMuxBM2, +189 | | ) -> Result<(), CanError> { | |_____________________________- other definition for `set_m2` ... -289 | / pub fn set_m2( -290 | | &mut self, -291 | | value: ExtMuxIndepMultiplexorsMuxAM2, -292 | | ) -> Result<(), CanError> { +285 | / pub fn set_m2( +286 | | &mut self, +287 | | value: ExtMuxIndepMultiplexorsMuxAM2, +288 | | ) -> Result<(), CanError> { | |_____________________________^ duplicate definitions for `set_m2` error[E0433]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:217:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:220:21 | -217 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 | ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxIndepMultiplexorsMuxAIndex` | help: an enum with a similar name exists | -217 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { -217 + ExtMuxIndepMultiplexorsMuxBIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 - ExtMuxIndepMultiplexorsMuxAIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { +220 + ExtMuxIndepMultiplexorsMuxBIndex::M0(ExtMuxIndepMultiplexorsMuxAM0 { | error[E0433]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:224:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:227:21 | -224 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 | ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxIndepMultiplexorsMuxAIndex` | help: an enum with a similar name exists | -224 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { -224 + ExtMuxIndepMultiplexorsMuxBIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 - ExtMuxIndepMultiplexorsMuxAIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { +227 + ExtMuxIndepMultiplexorsMuxBIndex::M1(ExtMuxIndepMultiplexorsMuxAM1 { | error[E0433]: cannot find type `ExtMuxIndepMultiplexorsMuxAIndex` in this scope - --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:231:21 + --> tests-snapshots/dbc-cantools/issue_184_extended_mux_independent_multiplexors_dumped.snap.rs:234:21 | -231 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 | ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtMuxIndepMultiplexorsMuxAIndex` | help: an enum with a similar name exists | -231 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { -231 + ExtMuxIndepMultiplexorsMuxBIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 - ExtMuxIndepMultiplexorsMuxAIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { +234 + ExtMuxIndepMultiplexorsMuxBIndex::M2(ExtMuxIndepMultiplexorsMuxAM2 { | diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values.snap.rs b/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values.snap.rs index 89247473..900b402f 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values.snap.rs @@ -77,33 +77,36 @@ impl ExtMuxMultipleValues { pub const MUXED_0_3_4_5_MAX: i8 = 0_i8; pub const MUX_MIN: i8 = 0_i8; pub const MUX_MAX: i8 = 0_i8; - /// Construct new 'ext_MUX_multiple_values' from values + /// Constructs a new `ext_MUX_multiple_values` message from values. pub fn new(mux: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_mux(mux)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ext_MUX_multiple_values` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'MUX' + /// Returns the raw value of `MUX`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux(&mut self) -> Result { - match self.mux_raw() { + pub fn mux_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `MUX`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX`. + pub fn mux_multiplexed(&mut self) -> Result { + match self.mux_raw_val() { 0 => { Ok( ExtMuxMultipleValuesMuxIndex::M0(ExtMuxMultipleValuesMuxM0 { @@ -133,7 +136,7 @@ impl ExtMuxMultipleValues { } } } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] fn set_mux(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -141,18 +144,11 @@ impl ExtMuxMultipleValues { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] pub fn set_m0(&mut self, value: ExtMuxMultipleValuesMuxM0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -161,7 +157,7 @@ impl ExtMuxMultipleValues { self.set_mux(0)?; Ok(()) } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] pub fn set_m1(&mut self, value: ExtMuxMultipleValuesMuxM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -170,7 +166,7 @@ impl ExtMuxMultipleValues { self.set_mux(1)?; Ok(()) } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] pub fn set_m2(&mut self, value: ExtMuxMultipleValuesMuxM2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -259,32 +255,35 @@ impl ExtMuxMultipleValuesMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_0_3_4_5' + /// Returns the value of `muxed_0_3_4_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_0_3_4_5(&self) -> i8 { - self.muxed_0_3_4_5_raw() + self.muxed_0_3_4_5_raw_val() } - /// Get raw value of 'muxed_0_3_4_5' + /// Returns the raw value of `muxed_0_3_4_5`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_0_3_4_5_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_0_3_4_5_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'muxed_0_3_4_5' + /// Sets the raw value of `muxed_0_3_4_5`. + #[inline(always)] + pub fn set_muxed_0_3_4_5_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `muxed_0_3_4_5`. #[inline(always)] pub fn set_muxed_0_3_4_5(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -292,13 +291,6 @@ impl ExtMuxMultipleValuesMuxM0 { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -330,32 +322,35 @@ impl ExtMuxMultipleValuesMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_1' + /// Returns the value of `muxed_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_1(&self) -> i8 { - self.muxed_1_raw() + self.muxed_1_raw_val() } - /// Get raw value of 'muxed_1' + /// Returns the raw value of `muxed_1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'muxed_1' + /// Sets the raw value of `muxed_1`. + #[inline(always)] + pub fn set_muxed_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `muxed_1`. #[inline(always)] pub fn set_muxed_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -363,13 +358,6 @@ impl ExtMuxMultipleValuesMuxM1 { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -401,32 +389,35 @@ impl ExtMuxMultipleValuesMuxM2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_2' + /// Returns the value of `muxed_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_2(&self) -> i8 { - self.muxed_2_raw() + self.muxed_2_raw_val() } - /// Get raw value of 'muxed_2' + /// Returns the raw value of `muxed_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `muxed_2`. + #[inline(always)] + pub fn set_muxed_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'muxed_2' + /// Sets the value of `muxed_2`. #[inline(always)] pub fn set_muxed_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -434,13 +425,6 @@ impl ExtMuxMultipleValuesMuxM2 { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values_dumped.snap.rs b/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values_dumped.snap.rs index 7a27ebc0..d5fec430 100644 --- a/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values_dumped.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_184_extended_mux_multiple_values_dumped.snap.rs @@ -77,33 +77,36 @@ impl ExtMuxMultipleValues { pub const MUXED_2_MAX: i8 = 0_i8; pub const MUX_MIN: i8 = 0_i8; pub const MUX_MAX: i8 = 0_i8; - /// Construct new 'ext_MUX_multiple_values' from values + /// Constructs a new `ext_MUX_multiple_values` message from values. pub fn new(mux: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_mux(mux)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ext_MUX_multiple_values` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'MUX' + /// Returns the raw value of `MUX`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mux_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) - } - pub fn mux(&mut self) -> Result { - match self.mux_raw() { + pub fn mux_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `MUX`. + #[allow(dead_code)] + #[inline(always)] + fn set_mux_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `MUX`. + pub fn mux_multiplexed(&mut self) -> Result { + match self.mux_raw_val() { 0 => { Ok( ExtMuxMultipleValuesMuxIndex::M0(ExtMuxMultipleValuesMuxM0 { @@ -133,7 +136,7 @@ impl ExtMuxMultipleValues { } } } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] fn set_mux(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -141,18 +144,11 @@ impl ExtMuxMultipleValues { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] pub fn set_m0(&mut self, value: ExtMuxMultipleValuesMuxM0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -161,7 +157,7 @@ impl ExtMuxMultipleValues { self.set_mux(0)?; Ok(()) } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] pub fn set_m1(&mut self, value: ExtMuxMultipleValuesMuxM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -170,7 +166,7 @@ impl ExtMuxMultipleValues { self.set_mux(1)?; Ok(()) } - /// Set value of 'MUX' + /// Sets the value of `MUX`. #[inline(always)] pub fn set_m2(&mut self, value: ExtMuxMultipleValuesMuxM2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -259,32 +255,35 @@ impl ExtMuxMultipleValuesMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_0_3_4_5' + /// Returns the value of `muxed_0_3_4_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_0_3_4_5(&self) -> i8 { - self.muxed_0_3_4_5_raw() + self.muxed_0_3_4_5_raw_val() } - /// Get raw value of 'muxed_0_3_4_5' + /// Returns the raw value of `muxed_0_3_4_5`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_0_3_4_5_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_0_3_4_5_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'muxed_0_3_4_5' + /// Sets the raw value of `muxed_0_3_4_5`. + #[inline(always)] + pub fn set_muxed_0_3_4_5_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `muxed_0_3_4_5`. #[inline(always)] pub fn set_muxed_0_3_4_5(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -292,13 +291,6 @@ impl ExtMuxMultipleValuesMuxM0 { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -330,32 +322,35 @@ impl ExtMuxMultipleValuesMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_1' + /// Returns the value of `muxed_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_1(&self) -> i8 { - self.muxed_1_raw() + self.muxed_1_raw_val() } - /// Get raw value of 'muxed_1' + /// Returns the raw value of `muxed_1`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'muxed_1' + /// Sets the raw value of `muxed_1`. + #[inline(always)] + pub fn set_muxed_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `muxed_1`. #[inline(always)] pub fn set_muxed_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -363,13 +358,6 @@ impl ExtMuxMultipleValuesMuxM1 { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -401,32 +389,35 @@ impl ExtMuxMultipleValuesMuxM2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'muxed_2' + /// Returns the value of `muxed_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn muxed_2(&self) -> i8 { - self.muxed_2_raw() + self.muxed_2_raw_val() } - /// Get raw value of 'muxed_2' + /// Returns the raw value of `muxed_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn muxed_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn muxed_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `muxed_2`. + #[inline(always)] + pub fn set_muxed_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'muxed_2' + /// Sets the value of `muxed_2`. #[inline(always)] pub fn set_muxed_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -434,13 +425,6 @@ impl ExtMuxMultipleValuesMuxM2 { message_id: ExtMuxMultipleValues::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtMuxMultipleValues::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_199.snap.rs b/tests-snapshots/dbc-cantools/issue_199.snap.rs index 9206f854..3d425862 100644 --- a/tests-snapshots/dbc-cantools/issue_199.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_199.snap.rs @@ -118,7 +118,7 @@ impl DriverDoorStatus { StandardId::new_unchecked(0x0) }); pub const MESSAGE_SIZE: usize = 1; - /// Construct new 'DriverDoorStatus' from values + /// Constructs a new `DriverDoorStatus` message from values. pub fn new( driver_door_opened: DriverDoorStatusDriverDoorOpened, ) -> Result { @@ -126,15 +126,15 @@ impl DriverDoorStatus { res.set_driver_door_opened(driver_door_opened)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `DriverDoorStatus` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'DriverDoorOpened' + /// Returns the value of `DriverDoorOpened`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn driver_door_opened(&self) -> DriverDoorStatusDriverDoorOpened { @@ -142,23 +142,33 @@ impl DriverDoorStatus { match signal { 1 => DriverDoorStatusDriverDoorOpened::Opened, 0 => DriverDoorStatusDriverDoorOpened::Closed, - _ => DriverDoorStatusDriverDoorOpened::_Other(self.driver_door_opened_raw()), + _ => { + DriverDoorStatusDriverDoorOpened::_Other( + self.driver_door_opened_phys_val(), + ) + } } } - /// Get raw value of 'DriverDoorOpened' + #[inline(always)] + fn driver_door_opened_phys_val(&self) -> bool { + self.driver_door_opened_raw_val() == 1 + } + /// Returns the raw value of `DriverDoorOpened`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn driver_door_opened_raw(&self) -> bool { - let signal = self.raw.view_bits::()[7..8].load_be::(); - signal == 1 + pub fn driver_door_opened_raw_val(&self) -> u8 { + self.raw.view_bits::()[7..8].load_be::() } - /// Set value of 'DriverDoorOpened' + /// Sets the raw value of `DriverDoorOpened`. + #[inline(always)] + pub fn set_driver_door_opened_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[7..8].store_be(value); + } + /// Sets the value of `DriverDoorOpened`. #[inline(always)] pub fn set_driver_door_opened( &mut self, @@ -266,7 +276,7 @@ impl Chime { pub const CHIME_BYTE5_MAX: u8 = 0_u8; pub const CHIME_BYTE4_MIN: u8 = 0_u8; pub const CHIME_BYTE4_MAX: u8 = 0_u8; - /// Construct new 'Chime' from values + /// Constructs a new `Chime` message from values. pub fn new( chime_type: u8, chime_repeat: u8, @@ -282,35 +292,38 @@ impl Chime { res.set_chime_byte4(chime_byte4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Chime` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } - /// Get value of 'ChimeType' + /// Returns the value of `ChimeType`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_type(&self) -> u8 { - self.chime_type_raw() + self.chime_type_raw_val() } - /// Get raw value of 'ChimeType' + /// Returns the raw value of `ChimeType`. /// /// - Start bit: 7 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_type_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_type_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_be::() + } + /// Sets the raw value of `ChimeType`. + #[inline(always)] + pub fn set_chime_type_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_be(value); } - /// Set value of 'ChimeType' + /// Sets the value of `ChimeType`. #[inline(always)] pub fn set_chime_type(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -318,41 +331,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_be(value); Ok(()) } - /// Get value of 'ChimeRepeat' + /// Returns the value of `ChimeRepeat`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_repeat(&self) -> u8 { - self.chime_repeat_raw() + self.chime_repeat_raw_val() } - /// Get raw value of 'ChimeRepeat' + /// Returns the raw value of `ChimeRepeat`. /// /// - Start bit: 23 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_repeat_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_repeat_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_be::() + } + /// Sets the raw value of `ChimeRepeat`. + #[inline(always)] + pub fn set_chime_repeat_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_be(value); } - /// Set value of 'ChimeRepeat' + /// Sets the value of `ChimeRepeat`. #[inline(always)] pub fn set_chime_repeat(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -360,41 +369,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_be(value); Ok(()) } - /// Get value of 'ChimeDuration' + /// Returns the value of `ChimeDuration`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_duration(&self) -> u8 { - self.chime_duration_raw() + self.chime_duration_raw_val() } - /// Get raw value of 'ChimeDuration' + /// Returns the raw value of `ChimeDuration`. /// /// - Start bit: 15 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_duration_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_duration_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_be::() + } + /// Sets the raw value of `ChimeDuration`. + #[inline(always)] + pub fn set_chime_duration_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_be(value); } - /// Set value of 'ChimeDuration' + /// Sets the value of `ChimeDuration`. #[inline(always)] pub fn set_chime_duration(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -402,41 +407,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_be(value); Ok(()) } - /// Get value of 'ChimeByte5' + /// Returns the value of `ChimeByte5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_byte5(&self) -> u8 { - self.chime_byte5_raw() + self.chime_byte5_raw_val() } - /// Get raw value of 'ChimeByte5' + /// Returns the raw value of `ChimeByte5`. /// /// - Start bit: 39 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_byte5_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_byte5_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_be::() + } + /// Sets the raw value of `ChimeByte5`. + #[inline(always)] + pub fn set_chime_byte5_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_be(value); } - /// Set value of 'ChimeByte5' + /// Sets the value of `ChimeByte5`. #[inline(always)] pub fn set_chime_byte5(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -444,41 +445,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_be(value); Ok(()) } - /// Get value of 'ChimeByte4' + /// Returns the value of `ChimeByte4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_byte4(&self) -> u8 { - self.chime_byte4_raw() + self.chime_byte4_raw_val() } - /// Get raw value of 'ChimeByte4' + /// Returns the raw value of `ChimeByte4`. /// /// - Start bit: 31 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_byte4_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_byte4_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_be::() + } + /// Sets the raw value of `ChimeByte4`. + #[inline(always)] + pub fn set_chime_byte4_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_be(value); } - /// Set value of 'ChimeByte4' + /// Sets the value of `ChimeByte4`. #[inline(always)] pub fn set_chime_byte4(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -486,13 +483,6 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_be(value); Ok(()) } @@ -583,7 +573,7 @@ impl BlinkerStatus { StandardId::new_unchecked(0xc000) }); pub const MESSAGE_SIZE: usize = 5; - /// Construct new 'BlinkerStatus' from values + /// Constructs a new `BlinkerStatus` message from values. pub fn new( right_blinker: BlinkerStatusRightBlinker, left_blinker: BlinkerStatusLeftBlinker, @@ -595,15 +585,15 @@ impl BlinkerStatus { res.set_blinker_light(blinker_light)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BlinkerStatus` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } - /// Get value of 'RightBlinker' + /// Returns the value of `RightBlinker`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn right_blinker(&self) -> BlinkerStatusRightBlinker { @@ -611,23 +601,29 @@ impl BlinkerStatus { match signal { 1 => BlinkerStatusRightBlinker::Active, 0 => BlinkerStatusRightBlinker::Inactive, - _ => BlinkerStatusRightBlinker::_Other(self.right_blinker_raw()), + _ => BlinkerStatusRightBlinker::_Other(self.right_blinker_phys_val()), } } - /// Get raw value of 'RightBlinker' + #[inline(always)] + fn right_blinker_phys_val(&self) -> bool { + self.right_blinker_raw_val() == 1 + } + /// Returns the raw value of `RightBlinker`. /// /// - Start bit: 6 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn right_blinker_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_be::(); - signal == 1 + pub fn right_blinker_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_be::() } - /// Set value of 'RightBlinker' + /// Sets the raw value of `RightBlinker`. + #[inline(always)] + pub fn set_right_blinker_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_be(value); + } + /// Sets the value of `RightBlinker`. #[inline(always)] pub fn set_right_blinker( &mut self, @@ -638,11 +634,11 @@ impl BlinkerStatus { self.raw.view_bits_mut::()[1..2].store_be(value); Ok(()) } - /// Get value of 'LeftBlinker' + /// Returns the value of `LeftBlinker`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn left_blinker(&self) -> BlinkerStatusLeftBlinker { @@ -650,23 +646,29 @@ impl BlinkerStatus { match signal { 1 => BlinkerStatusLeftBlinker::Active, 0 => BlinkerStatusLeftBlinker::Inactive, - _ => BlinkerStatusLeftBlinker::_Other(self.left_blinker_raw()), + _ => BlinkerStatusLeftBlinker::_Other(self.left_blinker_phys_val()), } } - /// Get raw value of 'LeftBlinker' + #[inline(always)] + fn left_blinker_phys_val(&self) -> bool { + self.left_blinker_raw_val() == 1 + } + /// Returns the raw value of `LeftBlinker`. /// /// - Start bit: 7 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn left_blinker_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_be::(); - signal == 1 + pub fn left_blinker_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_be::() } - /// Set value of 'LeftBlinker' + /// Sets the raw value of `LeftBlinker`. + #[inline(always)] + pub fn set_left_blinker_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_be(value); + } + /// Sets the value of `LeftBlinker`. #[inline(always)] pub fn set_left_blinker( &mut self, @@ -677,11 +679,11 @@ impl BlinkerStatus { self.raw.view_bits_mut::()[0..1].store_be(value); Ok(()) } - /// Get value of 'BlinkerLight' + /// Returns the value of `BlinkerLight`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn blinker_light(&self) -> BlinkerStatusBlinkerLight { @@ -689,23 +691,29 @@ impl BlinkerStatus { match signal { 1 => BlinkerStatusBlinkerLight::Active, 0 => BlinkerStatusBlinkerLight::Inactive, - _ => BlinkerStatusBlinkerLight::_Other(self.blinker_light_raw()), + _ => BlinkerStatusBlinkerLight::_Other(self.blinker_light_phys_val()), } } - /// Get raw value of 'BlinkerLight' + #[inline(always)] + fn blinker_light_phys_val(&self) -> bool { + self.blinker_light_raw_val() == 1 + } + /// Returns the raw value of `BlinkerLight`. /// /// - Start bit: 25 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn blinker_light_raw(&self) -> bool { - let signal = self.raw.view_bits::()[30..31].load_be::(); - signal == 1 + pub fn blinker_light_raw_val(&self) -> u8 { + self.raw.view_bits::()[30..31].load_be::() } - /// Set value of 'BlinkerLight' + /// Sets the raw value of `BlinkerLight`. + #[inline(always)] + pub fn set_blinker_light_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[30..31].store_be(value); + } + /// Sets the value of `BlinkerLight`. #[inline(always)] pub fn set_blinker_light( &mut self, @@ -855,42 +863,48 @@ impl SteeringWheelAngle { pub const MESSAGE_SIZE: usize = 8; pub const STEERING_WHEEL_ANGLE_MIN: f32 = -540_f32; pub const STEERING_WHEEL_ANGLE_MAX: f32 = 540_f32; - /// Construct new 'SteeringWheelAngle' from values + /// Constructs a new `SteeringWheelAngle` message from values. pub fn new(steering_wheel_angle: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_steering_wheel_angle(steering_wheel_angle)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SteeringWheelAngle` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SteeringWheelAngle' + /// Returns the value of `SteeringWheelAngle`. /// /// - Min: -540 /// - Max: 540 /// - Unit: "deg" /// - Receivers: NEO + /// - Factor: 0.0625 + /// - Offset: 0 #[inline(always)] pub fn steering_wheel_angle(&self) -> f32 { - self.steering_wheel_angle_raw() + let signal = self.raw.view_bits::()[32..48].load_be::(); + let factor = 0.0625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SteeringWheelAngle' + /// Returns the raw value of `SteeringWheelAngle`. /// /// - Start bit: 39 /// - Signal size: 16 bits - /// - Factor: 0.0625 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn steering_wheel_angle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_be::(); - let factor = 0.0625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn steering_wheel_angle_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_be::() + } + /// Sets the raw value of `SteeringWheelAngle`. + #[inline(always)] + pub fn set_steering_wheel_angle_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_be(value); } - /// Set value of 'SteeringWheelAngle' + /// Sets the value of `SteeringWheelAngle`. #[inline(always)] pub fn set_steering_wheel_angle(&mut self, value: f32) -> Result<(), CanError> { if value < -540_f32 || 540_f32 < value { @@ -994,21 +1008,21 @@ impl GearShifter { pub const MESSAGE_SIZE: usize = 8; pub const GEAR_SHIFTER_MIN: u8 = 0_u8; pub const GEAR_SHIFTER_MAX: u8 = 3_u8; - /// Construct new 'GearShifter' from values + /// Constructs a new `GearShifter` message from values. pub fn new(gear_shifter: GearShifterGearShifter) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_gear_shifter(gear_shifter)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `GearShifter` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GearShifter' + /// Returns the value of `GearShifter`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn gear_shifter(&self) -> GearShifterGearShifter { @@ -1016,24 +1030,29 @@ impl GearShifter { match signal { 3 => GearShifterGearShifter::Park, 0 => GearShifterGearShifter::DriveLow, - _ => GearShifterGearShifter::_Other(self.gear_shifter_raw()), + _ => GearShifterGearShifter::_Other(self.gear_shifter_phys_val()), } } - /// Get raw value of 'GearShifter' + #[inline(always)] + fn gear_shifter_phys_val(&self) -> u8 { + self.gear_shifter_raw_val() + } + /// Returns the raw value of `GearShifter`. /// /// - Start bit: 17 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn gear_shifter_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[22..24].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gear_shifter_raw_val(&self) -> u8 { + self.raw.view_bits::()[22..24].load_be::() } - /// Set value of 'GearShifter' + /// Sets the raw value of `GearShifter`. + #[inline(always)] + pub fn set_gear_shifter_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[22..24].store_be(value); + } + /// Sets the value of `GearShifter`. #[inline(always)] pub fn set_gear_shifter( &mut self, @@ -1045,13 +1064,6 @@ impl GearShifter { message_id: GearShifter::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: GearShifter::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[22..24].store_be(value); Ok(()) } @@ -1196,7 +1208,7 @@ impl GasPedalRegenCruise { pub const GAS_PEDAL_MAX: u8 = 254_u8; pub const GEAR_SHIFTER2_NOT_USED_MIN: u8 = 0_u8; pub const GEAR_SHIFTER2_NOT_USED_MAX: u8 = 255_u8; - /// Construct new 'GasPedalRegenCruise' from values + /// Constructs a new `GasPedalRegenCruise` message from values. pub fn new( cruise_control_active: GasPedalRegenCruiseCruiseControlActive, max_regen: bool, @@ -1210,15 +1222,15 @@ impl GasPedalRegenCruise { res.set_gear_shifter2_not_used(gear_shifter2_not_used)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `GasPedalRegenCruise` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'CruiseControlActive' + /// Returns the value of `CruiseControlActive`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN #[inline(always)] pub fn cruise_control_active(&self) -> GasPedalRegenCruiseCruiseControlActive { @@ -1228,25 +1240,31 @@ impl GasPedalRegenCruise { 0 => GasPedalRegenCruiseCruiseControlActive::Inactive, _ => { GasPedalRegenCruiseCruiseControlActive::_Other( - self.cruise_control_active_raw(), + self.cruise_control_active_phys_val(), ) } } } - /// Get raw value of 'CruiseControlActive' + #[inline(always)] + fn cruise_control_active_phys_val(&self) -> bool { + self.cruise_control_active_raw_val() == 1 + } + /// Returns the raw value of `CruiseControlActive`. /// /// - Start bit: 56 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn cruise_control_active_raw(&self) -> bool { - let signal = self.raw.view_bits::()[63..64].load_be::(); - signal == 1 + pub fn cruise_control_active_raw_val(&self) -> u8 { + self.raw.view_bits::()[63..64].load_be::() + } + /// Sets the raw value of `CruiseControlActive`. + #[inline(always)] + pub fn set_cruise_control_active_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[63..64].store_be(value); } - /// Set value of 'CruiseControlActive' + /// Sets the value of `CruiseControlActive`. #[inline(always)] pub fn set_cruise_control_active( &mut self, @@ -1257,61 +1275,68 @@ impl GasPedalRegenCruise { self.raw.view_bits_mut::()[63..64].store_be(value); Ok(()) } - /// Get value of 'MaxRegen' + /// Returns the value of `MaxRegen`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN, NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn max_regen(&self) -> bool { - self.max_regen_raw() + self.max_regen_raw_val() == 1 } - /// Get raw value of 'MaxRegen' + /// Returns the raw value of `MaxRegen`. /// /// - Start bit: 12 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn max_regen_raw(&self) -> bool { - let signal = self.raw.view_bits::()[11..12].load_be::(); - signal == 1 + pub fn max_regen_raw_val(&self) -> u8 { + self.raw.view_bits::()[11..12].load_be::() } - /// Set value of 'MaxRegen' + /// Sets the raw value of `MaxRegen`. + #[inline(always)] + pub fn set_max_regen_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[11..12].store_be(value); + } + /// Sets the value of `MaxRegen`. #[inline(always)] pub fn set_max_regen(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[11..12].store_be(value); Ok(()) } - /// Get value of 'GasPedal' + /// Returns the value of `GasPedal`. /// /// - Min: 0 /// - Max: 254 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN, NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gas_pedal(&self) -> u8 { - self.gas_pedal_raw() + self.gas_pedal_raw_val() } - /// Get raw value of 'GasPedal' + /// Returns the raw value of `GasPedal`. /// /// - Start bit: 47 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn gas_pedal_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gas_pedal_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_be::() + } + /// Sets the raw value of `GasPedal`. + #[inline(always)] + pub fn set_gas_pedal_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_be(value); } - /// Set value of 'GasPedal' + /// Sets the value of `GasPedal`. #[inline(always)] pub fn set_gas_pedal(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 254_u8 < value { @@ -1319,41 +1344,37 @@ impl GasPedalRegenCruise { message_id: GasPedalRegenCruise::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: GasPedalRegenCruise::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_be(value); Ok(()) } - /// Get value of 'GearShifter2NotUsed' + /// Returns the value of `GearShifter2NotUsed`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN, NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gear_shifter2_not_used(&self) -> u8 { - self.gear_shifter2_not_used_raw() + self.gear_shifter2_not_used_raw_val() } - /// Get raw value of 'GearShifter2NotUsed' + /// Returns the raw value of `GearShifter2NotUsed`. /// /// - Start bit: 55 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn gear_shifter2_not_used_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gear_shifter2_not_used_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_be::() } - /// Set value of 'GearShifter2NotUsed' + /// Sets the raw value of `GearShifter2NotUsed`. + #[inline(always)] + pub fn set_gear_shifter2_not_used_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_be(value); + } + /// Sets the value of `GearShifter2NotUsed`. #[inline(always)] pub fn set_gear_shifter2_not_used(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1361,13 +1382,6 @@ impl GasPedalRegenCruise { message_id: GasPedalRegenCruise::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: GasPedalRegenCruise::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_be(value); Ok(()) } @@ -1462,42 +1476,45 @@ impl BrakePedal { pub const BRAKE_LEVEL_MAX: u8 = 3_u8; pub const BRAKE_SENSOR_MIN: u8 = 0_u8; pub const BRAKE_SENSOR_MAX: u8 = 255_u8; - /// Construct new 'BrakePedal' from values + /// Constructs a new `BrakePedal` message from values. pub fn new(brake_level: u8, brake_sensor: u8) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_brake_level(brake_level)?; res.set_brake_sensor(brake_sensor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BrakePedal` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'BrakeLevel' + /// Returns the value of `BrakeLevel`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn brake_level(&self) -> u8 { - self.brake_level_raw() + self.brake_level_raw_val() } - /// Get raw value of 'BrakeLevel' + /// Returns the raw value of `BrakeLevel`. /// /// - Start bit: 2 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_level_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[5..7].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn brake_level_raw_val(&self) -> u8 { + self.raw.view_bits::()[5..7].load_be::() + } + /// Sets the raw value of `BrakeLevel`. + #[inline(always)] + pub fn set_brake_level_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[5..7].store_be(value); } - /// Set value of 'BrakeLevel' + /// Sets the value of `BrakeLevel`. #[inline(always)] pub fn set_brake_level(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 3_u8 < value { @@ -1505,41 +1522,37 @@ impl BrakePedal { message_id: BrakePedal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BrakePedal::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[5..7].store_be(value); Ok(()) } - /// Get value of 'BrakeSensor' + /// Returns the value of `BrakeSensor`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn brake_sensor(&self) -> u8 { - self.brake_sensor_raw() + self.brake_sensor_raw_val() } - /// Get raw value of 'BrakeSensor' + /// Returns the raw value of `BrakeSensor`. /// /// - Start bit: 15 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_sensor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn brake_sensor_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_be::() + } + /// Sets the raw value of `BrakeSensor`. + #[inline(always)] + pub fn set_brake_sensor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_be(value); } - /// Set value of 'BrakeSensor' + /// Sets the value of `BrakeSensor`. #[inline(always)] pub fn set_brake_sensor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1547,13 +1560,6 @@ impl BrakePedal { message_id: BrakePedal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BrakePedal::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_be(value); Ok(()) } @@ -1652,7 +1658,7 @@ impl WheelSpeed { pub const WHEEL_SPEED_RL_MAX: f32 = 70_f32; pub const WHEEL_SPEED_RR_MIN: f32 = 0_f32; pub const WHEEL_SPEED_RR_MAX: f32 = 70_f32; - /// Construct new 'WheelSpeed' from values + /// Constructs a new `WheelSpeed` message from values. pub fn new( wheel_speed_fl: f32, wheel_speed_fr: f32, @@ -1666,36 +1672,41 @@ impl WheelSpeed { res.set_wheel_speed_rr(wheel_speed_rr)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `WheelSpeed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'WheelSpeedFL' + /// Returns the value of `WheelSpeedFL`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_fl(&self) -> f32 { - self.wheel_speed_fl_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedFL' + /// Returns the raw value of `WheelSpeedFL`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_fl_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_fl_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `WheelSpeedFL`. + #[inline(always)] + pub fn set_wheel_speed_fl_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'WheelSpeedFL' + /// Sets the value of `WheelSpeedFL`. #[inline(always)] pub fn set_wheel_speed_fl(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1709,32 +1720,37 @@ impl WheelSpeed { self.raw.view_bits_mut::()[0..16].store_be(value); Ok(()) } - /// Get value of 'WheelSpeedFR' + /// Returns the value of `WheelSpeedFR`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_fr(&self) -> f32 { - self.wheel_speed_fr_raw() + let signal = self.raw.view_bits::()[32..48].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedFR' + /// Returns the raw value of `WheelSpeedFR`. /// /// - Start bit: 39 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_fr_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_fr_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_be::() + } + /// Sets the raw value of `WheelSpeedFR`. + #[inline(always)] + pub fn set_wheel_speed_fr_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_be(value); } - /// Set value of 'WheelSpeedFR' + /// Sets the value of `WheelSpeedFR`. #[inline(always)] pub fn set_wheel_speed_fr(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1748,32 +1764,37 @@ impl WheelSpeed { self.raw.view_bits_mut::()[32..48].store_be(value); Ok(()) } - /// Get value of 'WheelSpeedRL' + /// Returns the value of `WheelSpeedRL`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_rl(&self) -> f32 { - self.wheel_speed_rl_raw() + let signal = self.raw.view_bits::()[16..32].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedRL' + /// Returns the raw value of `WheelSpeedRL`. /// /// - Start bit: 23 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_rl_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_rl_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_be::() + } + /// Sets the raw value of `WheelSpeedRL`. + #[inline(always)] + pub fn set_wheel_speed_rl_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_be(value); } - /// Set value of 'WheelSpeedRL' + /// Sets the value of `WheelSpeedRL`. #[inline(always)] pub fn set_wheel_speed_rl(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1787,32 +1808,37 @@ impl WheelSpeed { self.raw.view_bits_mut::()[16..32].store_be(value); Ok(()) } - /// Get value of 'WheelSpeedRR' + /// Returns the value of `WheelSpeedRR`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_rr(&self) -> f32 { - self.wheel_speed_rr_raw() + let signal = self.raw.view_bits::()[48..64].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedRR' + /// Returns the raw value of `WheelSpeedRR`. /// /// - Start bit: 55 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_rr_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_rr_raw_val(&self) -> u16 { + self.raw.view_bits::()[48..64].load_be::() } - /// Set value of 'WheelSpeedRR' + /// Sets the raw value of `WheelSpeedRR`. + #[inline(always)] + pub fn set_wheel_speed_rr_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[48..64].store_be(value); + } + /// Sets the value of `WheelSpeedRR`. #[inline(always)] pub fn set_wheel_speed_rr(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1892,43 +1918,48 @@ impl VehicleSpeed { pub const VEHICLE_SPEED1_MAX: f32 = 100_f32; pub const VEHICLE_SPEED2_MIN: f32 = 0_f32; pub const VEHICLE_SPEED2_MAX: f32 = 100_f32; - /// Construct new 'VehicleSpeed' from values + /// Constructs a new `VehicleSpeed` message from values. pub fn new(vehicle_speed1: f32, vehicle_speed2: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_vehicle_speed1(vehicle_speed1)?; res.set_vehicle_speed2(vehicle_speed2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `VehicleSpeed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'VehicleSpeed1' + /// Returns the value of `VehicleSpeed1`. /// /// - Min: 0 /// - Max: 100 /// - Unit: "mph" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn vehicle_speed1(&self) -> f32 { - self.vehicle_speed1_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'VehicleSpeed1' + /// Returns the raw value of `VehicleSpeed1`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn vehicle_speed1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn vehicle_speed1_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `VehicleSpeed1`. + #[inline(always)] + pub fn set_vehicle_speed1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'VehicleSpeed1' + /// Sets the value of `VehicleSpeed1`. #[inline(always)] pub fn set_vehicle_speed1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -1942,32 +1973,37 @@ impl VehicleSpeed { self.raw.view_bits_mut::()[0..16].store_be(value); Ok(()) } - /// Get value of 'VehicleSpeed2' + /// Returns the value of `VehicleSpeed2`. /// /// - Min: 0 /// - Max: 100 /// - Unit: "mph" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn vehicle_speed2(&self) -> f32 { - self.vehicle_speed2_raw() + let signal = self.raw.view_bits::()[32..48].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'VehicleSpeed2' + /// Returns the raw value of `VehicleSpeed2`. /// /// - Start bit: 39 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn vehicle_speed2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn vehicle_speed2_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_be::() + } + /// Sets the raw value of `VehicleSpeed2`. + #[inline(always)] + pub fn set_vehicle_speed2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_be(value); } - /// Set value of 'VehicleSpeed2' + /// Sets the value of `VehicleSpeed2`. #[inline(always)] pub fn set_vehicle_speed2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -2070,21 +2106,21 @@ impl CruiseButtons { pub const MESSAGE_SIZE: usize = 3; pub const CRUISE_BUTTONS_MIN: u8 = 0_u8; pub const CRUISE_BUTTONS_MAX: u8 = 12_u8; - /// Construct new 'CruiseButtons' from values + /// Constructs a new `CruiseButtons` message from values. pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_cruise_buttons(cruise_buttons)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CruiseButtons` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'CruiseButtons' + /// Returns the value of `CruiseButtons`. /// /// - Min: 0 /// - Max: 12 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { @@ -2095,24 +2131,29 @@ impl CruiseButtons { 3 => CruiseButtonsCruiseButtons::Set, 2 => CruiseButtonsCruiseButtons::Resume, 1 => CruiseButtonsCruiseButtons::None, - _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_raw()), + _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_phys_val()), } } - /// Get raw value of 'CruiseButtons' + #[inline(always)] + fn cruise_buttons_phys_val(&self) -> u8 { + self.cruise_buttons_raw_val() + } + /// Returns the raw value of `CruiseButtons`. /// /// - Start bit: 3 /// - Signal size: 3 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn cruise_buttons_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..7].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn cruise_buttons_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..7].load_be::() + } + /// Sets the raw value of `CruiseButtons`. + #[inline(always)] + pub fn set_cruise_buttons_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..7].store_be(value); } - /// Set value of 'CruiseButtons' + /// Sets the value of `CruiseButtons`. #[inline(always)] pub fn set_cruise_buttons( &mut self, @@ -2124,13 +2165,6 @@ impl CruiseButtons { message_id: CruiseButtons::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CruiseButtons::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..7].store_be(value); Ok(()) } @@ -2198,21 +2232,21 @@ impl CruiseButtons2 { pub const MESSAGE_SIZE: usize = 1; pub const LKA_GAP_BUTTON_MIN: u8 = 0_u8; pub const LKA_GAP_BUTTON_MAX: u8 = 2_u8; - /// Construct new 'CruiseButtons2' from values + /// Constructs a new `CruiseButtons2` message from values. pub fn new(lka_gap_button: CruiseButtons2LkaGapButton) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_lka_gap_button(lka_gap_button)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CruiseButtons2` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'LKAGapButton' + /// Returns the value of `LKAGapButton`. /// /// - Min: 0 /// - Max: 2 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn lka_gap_button(&self) -> CruiseButtons2LkaGapButton { @@ -2221,24 +2255,29 @@ impl CruiseButtons2 { 2 => CruiseButtons2LkaGapButton::X(2), 1 => CruiseButtons2LkaGapButton::X(1), 0 => CruiseButtons2LkaGapButton::None, - _ => CruiseButtons2LkaGapButton::_Other(self.lka_gap_button_raw()), + _ => CruiseButtons2LkaGapButton::_Other(self.lka_gap_button_phys_val()), } } - /// Get raw value of 'LKAGapButton' + #[inline(always)] + fn lka_gap_button_phys_val(&self) -> u8 { + self.lka_gap_button_raw_val() + } + /// Returns the raw value of `LKAGapButton`. /// /// - Start bit: 1 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn lka_gap_button_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[6..8].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn lka_gap_button_raw_val(&self) -> u8 { + self.raw.view_bits::()[6..8].load_be::() } - /// Set value of 'LKAGapButton' + /// Sets the raw value of `LKAGapButton`. + #[inline(always)] + pub fn set_lka_gap_button_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[6..8].store_be(value); + } + /// Sets the value of `LKAGapButton`. #[inline(always)] pub fn set_lka_gap_button( &mut self, @@ -2250,13 +2289,6 @@ impl CruiseButtons2 { message_id: CruiseButtons2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CruiseButtons2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[6..8].store_be(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/issue_199.snap.stderr b/tests-snapshots/dbc-cantools/issue_199.snap.stderr index f7dca23a..1e3cd37e 100644 --- a/tests-snapshots/dbc-cantools/issue_199.snap.stderr +++ b/tests-snapshots/dbc-cantools/issue_199.snap.stderr @@ -1,199 +1,199 @@ error[E0425]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:998:30 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1012:30 | - 998 | pub fn new(gear_shifter: GearShifterGearShifter) -> Result { +1012 | pub fn new(gear_shifter: GearShifterGearShifter) -> Result { | ^^^^^^^^^^^^^^^^^^^^^^ ... -1133 | pub enum GearShifterLeftBlinker { +1145 | pub enum GearShifterLeftBlinker { | ------------------------------- similarly named enum `GearShifterLeftBlinker` defined here | help: an enum with a similar name exists | - 998 - pub fn new(gear_shifter: GearShifterGearShifter) -> Result { - 998 + pub fn new(gear_shifter: GearShifterLeftBlinker) -> Result { +1012 - pub fn new(gear_shifter: GearShifterGearShifter) -> Result { +1012 + pub fn new(gear_shifter: GearShifterLeftBlinker) -> Result { | error[E0425]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1014:35 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1028:35 | -1014 | pub fn gear_shifter(&self) -> GearShifterGearShifter { +1028 | pub fn gear_shifter(&self) -> GearShifterGearShifter { | ^^^^^^^^^^^^^^^^^^^^^^ ... -1133 | pub enum GearShifterLeftBlinker { +1145 | pub enum GearShifterLeftBlinker { | ------------------------------- similarly named enum `GearShifterLeftBlinker` defined here | help: an enum with a similar name exists | -1014 - pub fn gear_shifter(&self) -> GearShifterGearShifter { -1014 + pub fn gear_shifter(&self) -> GearShifterLeftBlinker { +1028 - pub fn gear_shifter(&self) -> GearShifterGearShifter { +1028 + pub fn gear_shifter(&self) -> GearShifterLeftBlinker { | error[E0425]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1040:16 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1059:16 | -1040 | value: GearShifterGearShifter, +1059 | value: GearShifterGearShifter, | ^^^^^^^^^^^^^^^^^^^^^^ ... -1133 | pub enum GearShifterLeftBlinker { +1145 | pub enum GearShifterLeftBlinker { | ------------------------------- similarly named enum `GearShifterLeftBlinker` defined here | help: an enum with a similar name exists | -1040 - value: GearShifterGearShifter, -1040 + value: GearShifterLeftBlinker, +1059 - value: GearShifterGearShifter, +1059 + value: GearShifterLeftBlinker, | error[E0425]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2074:32 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2110:32 | -2074 | pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { +2110 | pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -2313 | pub enum CruiseButtons2LkaGapButton { +2345 | pub enum CruiseButtons2LkaGapButton { | ----------------------------------- similarly named enum `CruiseButtons2LkaGapButton` defined here | help: an enum with a similar name exists | -2074 - pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { -2074 + pub fn new(cruise_buttons: CruiseButtons2LkaGapButton) -> Result { +2110 - pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { +2110 + pub fn new(cruise_buttons: CruiseButtons2LkaGapButton) -> Result { | error[E0425]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2090:37 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2126:37 | -2090 | pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { +2126 | pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -2313 | pub enum CruiseButtons2LkaGapButton { +2345 | pub enum CruiseButtons2LkaGapButton { | ----------------------------------- similarly named enum `CruiseButtons2LkaGapButton` defined here | help: an enum with a similar name exists | -2090 - pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { -2090 + pub fn cruise_buttons(&self) -> CruiseButtons2LkaGapButton { +2126 - pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { +2126 + pub fn cruise_buttons(&self) -> CruiseButtons2LkaGapButton { | error[E0425]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2119:16 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2160:16 | -2119 | value: CruiseButtonsCruiseButtons, +2160 | value: CruiseButtonsCruiseButtons, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -2313 | pub enum CruiseButtons2LkaGapButton { +2345 | pub enum CruiseButtons2LkaGapButton { | ----------------------------------- similarly named enum `CruiseButtons2LkaGapButton` defined here | help: an enum with a similar name exists | -2119 - value: CruiseButtonsCruiseButtons, -2119 + value: CruiseButtons2LkaGapButton, +2160 - value: CruiseButtonsCruiseButtons, +2160 + value: CruiseButtons2LkaGapButton, | error[E0433]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1017:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1031:18 | -1017 | 3 => GearShifterGearShifter::Park, +1031 | 3 => GearShifterGearShifter::Park, | ^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `GearShifterGearShifter` | help: an enum with a similar name exists | -1017 - 3 => GearShifterGearShifter::Park, -1017 + 3 => GearShifterLeftBlinker::Park, +1031 - 3 => GearShifterGearShifter::Park, +1031 + 3 => GearShifterLeftBlinker::Park, | error[E0433]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1018:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1032:18 | -1018 | 0 => GearShifterGearShifter::DriveLow, +1032 | 0 => GearShifterGearShifter::DriveLow, | ^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `GearShifterGearShifter` | help: an enum with a similar name exists | -1018 - 0 => GearShifterGearShifter::DriveLow, -1018 + 0 => GearShifterLeftBlinker::DriveLow, +1032 - 0 => GearShifterGearShifter::DriveLow, +1032 + 0 => GearShifterLeftBlinker::DriveLow, | error[E0433]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1019:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:1033:18 | -1019 | _ => GearShifterGearShifter::_Other(self.gear_shifter_raw()), +1033 | _ => GearShifterGearShifter::_Other(self.gear_shifter_phys_val()), | ^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `GearShifterGearShifter` | help: an enum with a similar name exists | -1019 - _ => GearShifterGearShifter::_Other(self.gear_shifter_raw()), -1019 + _ => GearShifterLeftBlinker::_Other(self.gear_shifter_raw()), +1033 - _ => GearShifterGearShifter::_Other(self.gear_shifter_phys_val()), +1033 + _ => GearShifterLeftBlinker::_Other(self.gear_shifter_phys_val()), | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2093:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2129:18 | -2093 | 6 => CruiseButtonsCruiseButtons::Cancel, +2129 | 6 => CruiseButtonsCruiseButtons::Cancel, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -2093 - 6 => CruiseButtonsCruiseButtons::Cancel, -2093 + 6 => CruiseButtons2LkaGapButton::Cancel, +2129 - 6 => CruiseButtonsCruiseButtons::Cancel, +2129 + 6 => CruiseButtons2LkaGapButton::Cancel, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2094:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2130:18 | -2094 | 5 => CruiseButtonsCruiseButtons::Main, +2130 | 5 => CruiseButtonsCruiseButtons::Main, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -2094 - 5 => CruiseButtonsCruiseButtons::Main, -2094 + 5 => CruiseButtons2LkaGapButton::Main, +2130 - 5 => CruiseButtonsCruiseButtons::Main, +2130 + 5 => CruiseButtons2LkaGapButton::Main, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2095:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2131:18 | -2095 | 3 => CruiseButtonsCruiseButtons::Set, +2131 | 3 => CruiseButtonsCruiseButtons::Set, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -2095 - 3 => CruiseButtonsCruiseButtons::Set, -2095 + 3 => CruiseButtons2LkaGapButton::Set, +2131 - 3 => CruiseButtonsCruiseButtons::Set, +2131 + 3 => CruiseButtons2LkaGapButton::Set, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2096:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2132:18 | -2096 | 2 => CruiseButtonsCruiseButtons::Resume, +2132 | 2 => CruiseButtonsCruiseButtons::Resume, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -2096 - 2 => CruiseButtonsCruiseButtons::Resume, -2096 + 2 => CruiseButtons2LkaGapButton::Resume, +2132 - 2 => CruiseButtonsCruiseButtons::Resume, +2132 + 2 => CruiseButtons2LkaGapButton::Resume, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2097:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2133:18 | -2097 | 1 => CruiseButtonsCruiseButtons::None, +2133 | 1 => CruiseButtonsCruiseButtons::None, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -2097 - 1 => CruiseButtonsCruiseButtons::None, -2097 + 1 => CruiseButtons2LkaGapButton::None, +2133 - 1 => CruiseButtonsCruiseButtons::None, +2133 + 1 => CruiseButtons2LkaGapButton::None, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2098:18 + --> tests-snapshots/dbc-cantools/issue_199.snap.rs:2134:18 | -2098 | _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_raw()), +2134 | _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_phys_val()), | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -2098 - _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_raw()), -2098 + _ => CruiseButtons2LkaGapButton::_Other(self.cruise_buttons_raw()), +2134 - _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_phys_val()), +2134 + _ => CruiseButtons2LkaGapButton::_Other(self.cruise_buttons_phys_val()), | error: unreachable pattern diff --git a/tests-snapshots/dbc-cantools/issue_199_extended.snap.rs b/tests-snapshots/dbc-cantools/issue_199_extended.snap.rs index 9463bb18..bdff4f83 100644 --- a/tests-snapshots/dbc-cantools/issue_199_extended.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_199_extended.snap.rs @@ -118,7 +118,7 @@ impl DriverDoorStatus { ExtendedId::new_unchecked(0x1fffffff) }); pub const MESSAGE_SIZE: usize = 1; - /// Construct new 'DriverDoorStatus' from values + /// Constructs a new `DriverDoorStatus` message from values. pub fn new( driver_door_opened: DriverDoorStatusDriverDoorOpened, ) -> Result { @@ -126,15 +126,15 @@ impl DriverDoorStatus { res.set_driver_door_opened(driver_door_opened)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `DriverDoorStatus` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'DriverDoorOpened' + /// Returns the value of `DriverDoorOpened`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn driver_door_opened(&self) -> DriverDoorStatusDriverDoorOpened { @@ -142,23 +142,33 @@ impl DriverDoorStatus { match signal { 1 => DriverDoorStatusDriverDoorOpened::Opened, 0 => DriverDoorStatusDriverDoorOpened::Closed, - _ => DriverDoorStatusDriverDoorOpened::_Other(self.driver_door_opened_raw()), + _ => { + DriverDoorStatusDriverDoorOpened::_Other( + self.driver_door_opened_phys_val(), + ) + } } } - /// Get raw value of 'DriverDoorOpened' + #[inline(always)] + fn driver_door_opened_phys_val(&self) -> bool { + self.driver_door_opened_raw_val() == 1 + } + /// Returns the raw value of `DriverDoorOpened`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn driver_door_opened_raw(&self) -> bool { - let signal = self.raw.view_bits::()[7..8].load_be::(); - signal == 1 + pub fn driver_door_opened_raw_val(&self) -> u8 { + self.raw.view_bits::()[7..8].load_be::() } - /// Set value of 'DriverDoorOpened' + /// Sets the raw value of `DriverDoorOpened`. + #[inline(always)] + pub fn set_driver_door_opened_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[7..8].store_be(value); + } + /// Sets the value of `DriverDoorOpened`. #[inline(always)] pub fn set_driver_door_opened( &mut self, @@ -266,7 +276,7 @@ impl Chime { pub const CHIME_BYTE5_MAX: u8 = 0_u8; pub const CHIME_BYTE4_MIN: u8 = 0_u8; pub const CHIME_BYTE4_MAX: u8 = 0_u8; - /// Construct new 'Chime' from values + /// Constructs a new `Chime` message from values. pub fn new( chime_type: u8, chime_repeat: u8, @@ -282,35 +292,38 @@ impl Chime { res.set_chime_byte4(chime_byte4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Chime` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } - /// Get value of 'ChimeType' + /// Returns the value of `ChimeType`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_type(&self) -> u8 { - self.chime_type_raw() + self.chime_type_raw_val() } - /// Get raw value of 'ChimeType' + /// Returns the raw value of `ChimeType`. /// /// - Start bit: 7 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_type_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_type_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_be::() + } + /// Sets the raw value of `ChimeType`. + #[inline(always)] + pub fn set_chime_type_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_be(value); } - /// Set value of 'ChimeType' + /// Sets the value of `ChimeType`. #[inline(always)] pub fn set_chime_type(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -318,41 +331,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_be(value); Ok(()) } - /// Get value of 'ChimeRepeat' + /// Returns the value of `ChimeRepeat`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_repeat(&self) -> u8 { - self.chime_repeat_raw() + self.chime_repeat_raw_val() } - /// Get raw value of 'ChimeRepeat' + /// Returns the raw value of `ChimeRepeat`. /// /// - Start bit: 23 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_repeat_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_repeat_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_be::() + } + /// Sets the raw value of `ChimeRepeat`. + #[inline(always)] + pub fn set_chime_repeat_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_be(value); } - /// Set value of 'ChimeRepeat' + /// Sets the value of `ChimeRepeat`. #[inline(always)] pub fn set_chime_repeat(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -360,41 +369,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_be(value); Ok(()) } - /// Get value of 'ChimeDuration' + /// Returns the value of `ChimeDuration`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_duration(&self) -> u8 { - self.chime_duration_raw() + self.chime_duration_raw_val() } - /// Get raw value of 'ChimeDuration' + /// Returns the raw value of `ChimeDuration`. /// /// - Start bit: 15 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_duration_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_duration_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_be::() + } + /// Sets the raw value of `ChimeDuration`. + #[inline(always)] + pub fn set_chime_duration_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_be(value); } - /// Set value of 'ChimeDuration' + /// Sets the value of `ChimeDuration`. #[inline(always)] pub fn set_chime_duration(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -402,41 +407,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_be(value); Ok(()) } - /// Get value of 'ChimeByte5' + /// Returns the value of `ChimeByte5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_byte5(&self) -> u8 { - self.chime_byte5_raw() + self.chime_byte5_raw_val() } - /// Get raw value of 'ChimeByte5' + /// Returns the raw value of `ChimeByte5`. /// /// - Start bit: 39 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_byte5_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_byte5_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_be::() + } + /// Sets the raw value of `ChimeByte5`. + #[inline(always)] + pub fn set_chime_byte5_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_be(value); } - /// Set value of 'ChimeByte5' + /// Sets the value of `ChimeByte5`. #[inline(always)] pub fn set_chime_byte5(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -444,41 +445,37 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_be(value); Ok(()) } - /// Get value of 'ChimeByte4' + /// Returns the value of `ChimeByte4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn chime_byte4(&self) -> u8 { - self.chime_byte4_raw() + self.chime_byte4_raw_val() } - /// Get raw value of 'ChimeByte4' + /// Returns the raw value of `ChimeByte4`. /// /// - Start bit: 31 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn chime_byte4_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn chime_byte4_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_be::() + } + /// Sets the raw value of `ChimeByte4`. + #[inline(always)] + pub fn set_chime_byte4_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_be(value); } - /// Set value of 'ChimeByte4' + /// Sets the value of `ChimeByte4`. #[inline(always)] pub fn set_chime_byte4(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -486,13 +483,6 @@ impl Chime { message_id: Chime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Chime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_be(value); Ok(()) } @@ -558,7 +548,7 @@ impl BlinkerStatus { StandardId::new_unchecked(0xc000) }); pub const MESSAGE_SIZE: usize = 5; - /// Construct new 'BlinkerStatus' from values + /// Constructs a new `BlinkerStatus` message from values. pub fn new( right_blinker: BlinkerStatusRightBlinker, left_blinker: BlinkerStatusLeftBlinker, @@ -570,15 +560,15 @@ impl BlinkerStatus { res.set_blinker_light(blinker_light)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BlinkerStatus` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } - /// Get value of 'RightBlinker' + /// Returns the value of `RightBlinker`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn right_blinker(&self) -> BlinkerStatusRightBlinker { @@ -586,23 +576,29 @@ impl BlinkerStatus { match signal { 1 => BlinkerStatusRightBlinker::Active, 0 => BlinkerStatusRightBlinker::Inactive, - _ => BlinkerStatusRightBlinker::_Other(self.right_blinker_raw()), + _ => BlinkerStatusRightBlinker::_Other(self.right_blinker_phys_val()), } } - /// Get raw value of 'RightBlinker' + #[inline(always)] + fn right_blinker_phys_val(&self) -> bool { + self.right_blinker_raw_val() == 1 + } + /// Returns the raw value of `RightBlinker`. /// /// - Start bit: 6 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn right_blinker_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_be::(); - signal == 1 + pub fn right_blinker_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_be::() } - /// Set value of 'RightBlinker' + /// Sets the raw value of `RightBlinker`. + #[inline(always)] + pub fn set_right_blinker_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_be(value); + } + /// Sets the value of `RightBlinker`. #[inline(always)] pub fn set_right_blinker( &mut self, @@ -613,11 +609,11 @@ impl BlinkerStatus { self.raw.view_bits_mut::()[1..2].store_be(value); Ok(()) } - /// Get value of 'LeftBlinker' + /// Returns the value of `LeftBlinker`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn left_blinker(&self) -> BlinkerStatusLeftBlinker { @@ -625,23 +621,29 @@ impl BlinkerStatus { match signal { 1 => BlinkerStatusLeftBlinker::Active, 0 => BlinkerStatusLeftBlinker::Inactive, - _ => BlinkerStatusLeftBlinker::_Other(self.left_blinker_raw()), + _ => BlinkerStatusLeftBlinker::_Other(self.left_blinker_phys_val()), } } - /// Get raw value of 'LeftBlinker' + #[inline(always)] + fn left_blinker_phys_val(&self) -> bool { + self.left_blinker_raw_val() == 1 + } + /// Returns the raw value of `LeftBlinker`. /// /// - Start bit: 7 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn left_blinker_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_be::(); - signal == 1 + pub fn left_blinker_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_be::() } - /// Set value of 'LeftBlinker' + /// Sets the raw value of `LeftBlinker`. + #[inline(always)] + pub fn set_left_blinker_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_be(value); + } + /// Sets the value of `LeftBlinker`. #[inline(always)] pub fn set_left_blinker( &mut self, @@ -652,11 +654,11 @@ impl BlinkerStatus { self.raw.view_bits_mut::()[0..1].store_be(value); Ok(()) } - /// Get value of 'BlinkerLight' + /// Returns the value of `BlinkerLight`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn blinker_light(&self) -> BlinkerStatusBlinkerLight { @@ -664,23 +666,29 @@ impl BlinkerStatus { match signal { 1 => BlinkerStatusBlinkerLight::Active, 0 => BlinkerStatusBlinkerLight::Inactive, - _ => BlinkerStatusBlinkerLight::_Other(self.blinker_light_raw()), + _ => BlinkerStatusBlinkerLight::_Other(self.blinker_light_phys_val()), } } - /// Get raw value of 'BlinkerLight' + #[inline(always)] + fn blinker_light_phys_val(&self) -> bool { + self.blinker_light_raw_val() == 1 + } + /// Returns the raw value of `BlinkerLight`. /// /// - Start bit: 25 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn blinker_light_raw(&self) -> bool { - let signal = self.raw.view_bits::()[30..31].load_be::(); - signal == 1 + pub fn blinker_light_raw_val(&self) -> u8 { + self.raw.view_bits::()[30..31].load_be::() } - /// Set value of 'BlinkerLight' + /// Sets the raw value of `BlinkerLight`. + #[inline(always)] + pub fn set_blinker_light_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[30..31].store_be(value); + } + /// Sets the value of `BlinkerLight`. #[inline(always)] pub fn set_blinker_light( &mut self, @@ -830,42 +838,48 @@ impl SteeringWheelAngle { pub const MESSAGE_SIZE: usize = 8; pub const STEERING_WHEEL_ANGLE_MIN: f32 = -540_f32; pub const STEERING_WHEEL_ANGLE_MAX: f32 = 540_f32; - /// Construct new 'SteeringWheelAngle' from values + /// Constructs a new `SteeringWheelAngle` message from values. pub fn new(steering_wheel_angle: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_steering_wheel_angle(steering_wheel_angle)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SteeringWheelAngle` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SteeringWheelAngle' + /// Returns the value of `SteeringWheelAngle`. /// /// - Min: -540 /// - Max: 540 /// - Unit: "deg" /// - Receivers: NEO + /// - Factor: 0.0625 + /// - Offset: 0 #[inline(always)] pub fn steering_wheel_angle(&self) -> f32 { - self.steering_wheel_angle_raw() + let signal = self.raw.view_bits::()[32..48].load_be::(); + let factor = 0.0625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SteeringWheelAngle' + /// Returns the raw value of `SteeringWheelAngle`. /// /// - Start bit: 39 /// - Signal size: 16 bits - /// - Factor: 0.0625 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn steering_wheel_angle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_be::(); - let factor = 0.0625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn steering_wheel_angle_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_be::() + } + /// Sets the raw value of `SteeringWheelAngle`. + #[inline(always)] + pub fn set_steering_wheel_angle_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_be(value); } - /// Set value of 'SteeringWheelAngle' + /// Sets the value of `SteeringWheelAngle`. #[inline(always)] pub fn set_steering_wheel_angle(&mut self, value: f32) -> Result<(), CanError> { if value < -540_f32 || 540_f32 < value { @@ -944,21 +958,21 @@ impl GearShifter { pub const MESSAGE_SIZE: usize = 8; pub const GEAR_SHIFTER_MIN: u8 = 0_u8; pub const GEAR_SHIFTER_MAX: u8 = 3_u8; - /// Construct new 'GearShifter' from values + /// Constructs a new `GearShifter` message from values. pub fn new(gear_shifter: GearShifterGearShifter) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_gear_shifter(gear_shifter)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `GearShifter` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GearShifter' + /// Returns the value of `GearShifter`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn gear_shifter(&self) -> GearShifterGearShifter { @@ -966,24 +980,29 @@ impl GearShifter { match signal { 3 => GearShifterGearShifter::Park, 0 => GearShifterGearShifter::DriveLow, - _ => GearShifterGearShifter::_Other(self.gear_shifter_raw()), + _ => GearShifterGearShifter::_Other(self.gear_shifter_phys_val()), } } - /// Get raw value of 'GearShifter' + #[inline(always)] + fn gear_shifter_phys_val(&self) -> u8 { + self.gear_shifter_raw_val() + } + /// Returns the raw value of `GearShifter`. /// /// - Start bit: 17 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn gear_shifter_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[22..24].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gear_shifter_raw_val(&self) -> u8 { + self.raw.view_bits::()[22..24].load_be::() } - /// Set value of 'GearShifter' + /// Sets the raw value of `GearShifter`. + #[inline(always)] + pub fn set_gear_shifter_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[22..24].store_be(value); + } + /// Sets the value of `GearShifter`. #[inline(always)] pub fn set_gear_shifter( &mut self, @@ -995,13 +1014,6 @@ impl GearShifter { message_id: GearShifter::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: GearShifter::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[22..24].store_be(value); Ok(()) } @@ -1146,7 +1158,7 @@ impl GasPedalRegenCruise { pub const GAS_PEDAL_MAX: u8 = 254_u8; pub const GEAR_SHIFTER2_NOT_USED_MIN: u8 = 0_u8; pub const GEAR_SHIFTER2_NOT_USED_MAX: u8 = 255_u8; - /// Construct new 'GasPedalRegenCruise' from values + /// Constructs a new `GasPedalRegenCruise` message from values. pub fn new( cruise_control_active: GasPedalRegenCruiseCruiseControlActive, max_regen: bool, @@ -1160,15 +1172,15 @@ impl GasPedalRegenCruise { res.set_gear_shifter2_not_used(gear_shifter2_not_used)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `GasPedalRegenCruise` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'CruiseControlActive' + /// Returns the value of `CruiseControlActive`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN #[inline(always)] pub fn cruise_control_active(&self) -> GasPedalRegenCruiseCruiseControlActive { @@ -1178,25 +1190,31 @@ impl GasPedalRegenCruise { 0 => GasPedalRegenCruiseCruiseControlActive::Inactive, _ => { GasPedalRegenCruiseCruiseControlActive::_Other( - self.cruise_control_active_raw(), + self.cruise_control_active_phys_val(), ) } } } - /// Get raw value of 'CruiseControlActive' + #[inline(always)] + fn cruise_control_active_phys_val(&self) -> bool { + self.cruise_control_active_raw_val() == 1 + } + /// Returns the raw value of `CruiseControlActive`. /// /// - Start bit: 56 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn cruise_control_active_raw(&self) -> bool { - let signal = self.raw.view_bits::()[63..64].load_be::(); - signal == 1 + pub fn cruise_control_active_raw_val(&self) -> u8 { + self.raw.view_bits::()[63..64].load_be::() + } + /// Sets the raw value of `CruiseControlActive`. + #[inline(always)] + pub fn set_cruise_control_active_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[63..64].store_be(value); } - /// Set value of 'CruiseControlActive' + /// Sets the value of `CruiseControlActive`. #[inline(always)] pub fn set_cruise_control_active( &mut self, @@ -1207,61 +1225,68 @@ impl GasPedalRegenCruise { self.raw.view_bits_mut::()[63..64].store_be(value); Ok(()) } - /// Get value of 'MaxRegen' + /// Returns the value of `MaxRegen`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN, NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn max_regen(&self) -> bool { - self.max_regen_raw() + self.max_regen_raw_val() == 1 } - /// Get raw value of 'MaxRegen' + /// Returns the raw value of `MaxRegen`. /// /// - Start bit: 12 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn max_regen_raw(&self) -> bool { - let signal = self.raw.view_bits::()[11..12].load_be::(); - signal == 1 + pub fn max_regen_raw_val(&self) -> u8 { + self.raw.view_bits::()[11..12].load_be::() } - /// Set value of 'MaxRegen' + /// Sets the raw value of `MaxRegen`. + #[inline(always)] + pub fn set_max_regen_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[11..12].store_be(value); + } + /// Sets the value of `MaxRegen`. #[inline(always)] pub fn set_max_regen(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[11..12].store_be(value); Ok(()) } - /// Get value of 'GasPedal' + /// Returns the value of `GasPedal`. /// /// - Min: 0 /// - Max: 254 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN, NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gas_pedal(&self) -> u8 { - self.gas_pedal_raw() + self.gas_pedal_raw_val() } - /// Get raw value of 'GasPedal' + /// Returns the raw value of `GasPedal`. /// /// - Start bit: 47 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn gas_pedal_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gas_pedal_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_be::() + } + /// Sets the raw value of `GasPedal`. + #[inline(always)] + pub fn set_gas_pedal_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_be(value); } - /// Set value of 'GasPedal' + /// Sets the value of `GasPedal`. #[inline(always)] pub fn set_gas_pedal(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 254_u8 < value { @@ -1269,41 +1294,37 @@ impl GasPedalRegenCruise { message_id: GasPedalRegenCruise::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: GasPedalRegenCruise::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_be(value); Ok(()) } - /// Get value of 'GearShifter2NotUsed' + /// Returns the value of `GearShifter2NotUsed`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: GMLAN, NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gear_shifter2_not_used(&self) -> u8 { - self.gear_shifter2_not_used_raw() + self.gear_shifter2_not_used_raw_val() } - /// Get raw value of 'GearShifter2NotUsed' + /// Returns the raw value of `GearShifter2NotUsed`. /// /// - Start bit: 55 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn gear_shifter2_not_used_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gear_shifter2_not_used_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_be::() } - /// Set value of 'GearShifter2NotUsed' + /// Sets the raw value of `GearShifter2NotUsed`. + #[inline(always)] + pub fn set_gear_shifter2_not_used_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_be(value); + } + /// Sets the value of `GearShifter2NotUsed`. #[inline(always)] pub fn set_gear_shifter2_not_used(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1311,13 +1332,6 @@ impl GasPedalRegenCruise { message_id: GasPedalRegenCruise::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: GasPedalRegenCruise::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_be(value); Ok(()) } @@ -1412,42 +1426,45 @@ impl BrakePedal { pub const BRAKE_LEVEL_MAX: u8 = 3_u8; pub const BRAKE_SENSOR_MIN: u8 = 0_u8; pub const BRAKE_SENSOR_MAX: u8 = 255_u8; - /// Construct new 'BrakePedal' from values + /// Constructs a new `BrakePedal` message from values. pub fn new(brake_level: u8, brake_sensor: u8) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_brake_level(brake_level)?; res.set_brake_sensor(brake_sensor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BrakePedal` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'BrakeLevel' + /// Returns the value of `BrakeLevel`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn brake_level(&self) -> u8 { - self.brake_level_raw() + self.brake_level_raw_val() } - /// Get raw value of 'BrakeLevel' + /// Returns the raw value of `BrakeLevel`. /// /// - Start bit: 2 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_level_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[5..7].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn brake_level_raw_val(&self) -> u8 { + self.raw.view_bits::()[5..7].load_be::() + } + /// Sets the raw value of `BrakeLevel`. + #[inline(always)] + pub fn set_brake_level_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[5..7].store_be(value); } - /// Set value of 'BrakeLevel' + /// Sets the value of `BrakeLevel`. #[inline(always)] pub fn set_brake_level(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 3_u8 < value { @@ -1455,41 +1472,37 @@ impl BrakePedal { message_id: BrakePedal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BrakePedal::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[5..7].store_be(value); Ok(()) } - /// Get value of 'BrakeSensor' + /// Returns the value of `BrakeSensor`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn brake_sensor(&self) -> u8 { - self.brake_sensor_raw() + self.brake_sensor_raw_val() } - /// Get raw value of 'BrakeSensor' + /// Returns the raw value of `BrakeSensor`. /// /// - Start bit: 15 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn brake_sensor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn brake_sensor_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_be::() + } + /// Sets the raw value of `BrakeSensor`. + #[inline(always)] + pub fn set_brake_sensor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_be(value); } - /// Set value of 'BrakeSensor' + /// Sets the value of `BrakeSensor`. #[inline(always)] pub fn set_brake_sensor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1497,13 +1510,6 @@ impl BrakePedal { message_id: BrakePedal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BrakePedal::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_be(value); Ok(()) } @@ -1577,7 +1583,7 @@ impl WheelSpeed { pub const WHEEL_SPEED_RL_MAX: f32 = 70_f32; pub const WHEEL_SPEED_RR_MIN: f32 = 0_f32; pub const WHEEL_SPEED_RR_MAX: f32 = 70_f32; - /// Construct new 'WheelSpeed' from values + /// Constructs a new `WheelSpeed` message from values. pub fn new( wheel_speed_fl: f32, wheel_speed_fr: f32, @@ -1591,36 +1597,41 @@ impl WheelSpeed { res.set_wheel_speed_rr(wheel_speed_rr)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `WheelSpeed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'WheelSpeedFL' + /// Returns the value of `WheelSpeedFL`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_fl(&self) -> f32 { - self.wheel_speed_fl_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedFL' + /// Returns the raw value of `WheelSpeedFL`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_fl_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_fl_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `WheelSpeedFL`. + #[inline(always)] + pub fn set_wheel_speed_fl_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'WheelSpeedFL' + /// Sets the value of `WheelSpeedFL`. #[inline(always)] pub fn set_wheel_speed_fl(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1634,32 +1645,37 @@ impl WheelSpeed { self.raw.view_bits_mut::()[0..16].store_be(value); Ok(()) } - /// Get value of 'WheelSpeedFR' + /// Returns the value of `WheelSpeedFR`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_fr(&self) -> f32 { - self.wheel_speed_fr_raw() + let signal = self.raw.view_bits::()[32..48].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedFR' + /// Returns the raw value of `WheelSpeedFR`. /// /// - Start bit: 39 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_fr_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_fr_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_be::() + } + /// Sets the raw value of `WheelSpeedFR`. + #[inline(always)] + pub fn set_wheel_speed_fr_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_be(value); } - /// Set value of 'WheelSpeedFR' + /// Sets the value of `WheelSpeedFR`. #[inline(always)] pub fn set_wheel_speed_fr(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1673,32 +1689,37 @@ impl WheelSpeed { self.raw.view_bits_mut::()[32..48].store_be(value); Ok(()) } - /// Get value of 'WheelSpeedRL' + /// Returns the value of `WheelSpeedRL`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_rl(&self) -> f32 { - self.wheel_speed_rl_raw() + let signal = self.raw.view_bits::()[16..32].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedRL' + /// Returns the raw value of `WheelSpeedRL`. /// /// - Start bit: 23 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_rl_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_rl_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_be::() + } + /// Sets the raw value of `WheelSpeedRL`. + #[inline(always)] + pub fn set_wheel_speed_rl_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_be(value); } - /// Set value of 'WheelSpeedRL' + /// Sets the value of `WheelSpeedRL`. #[inline(always)] pub fn set_wheel_speed_rl(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1712,32 +1733,37 @@ impl WheelSpeed { self.raw.view_bits_mut::()[16..32].store_be(value); Ok(()) } - /// Get value of 'WheelSpeedRR' + /// Returns the value of `WheelSpeedRR`. /// /// - Min: 0 /// - Max: 70 /// - Unit: "yd/s" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn wheel_speed_rr(&self) -> f32 { - self.wheel_speed_rr_raw() + let signal = self.raw.view_bits::()[48..64].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'WheelSpeedRR' + /// Returns the raw value of `WheelSpeedRR`. /// /// - Start bit: 55 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn wheel_speed_rr_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn wheel_speed_rr_raw_val(&self) -> u16 { + self.raw.view_bits::()[48..64].load_be::() } - /// Set value of 'WheelSpeedRR' + /// Sets the raw value of `WheelSpeedRR`. + #[inline(always)] + pub fn set_wheel_speed_rr_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[48..64].store_be(value); + } + /// Sets the value of `WheelSpeedRR`. #[inline(always)] pub fn set_wheel_speed_rr(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 70_f32 < value { @@ -1817,43 +1843,48 @@ impl VehicleSpeed { pub const VEHICLE_SPEED1_MAX: f32 = 100_f32; pub const VEHICLE_SPEED2_MIN: f32 = 0_f32; pub const VEHICLE_SPEED2_MAX: f32 = 100_f32; - /// Construct new 'VehicleSpeed' from values + /// Constructs a new `VehicleSpeed` message from values. pub fn new(vehicle_speed1: f32, vehicle_speed2: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_vehicle_speed1(vehicle_speed1)?; res.set_vehicle_speed2(vehicle_speed2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `VehicleSpeed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'VehicleSpeed1' + /// Returns the value of `VehicleSpeed1`. /// /// - Min: 0 /// - Max: 100 /// - Unit: "mph" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn vehicle_speed1(&self) -> f32 { - self.vehicle_speed1_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'VehicleSpeed1' + /// Returns the raw value of `VehicleSpeed1`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn vehicle_speed1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn vehicle_speed1_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `VehicleSpeed1`. + #[inline(always)] + pub fn set_vehicle_speed1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'VehicleSpeed1' + /// Sets the value of `VehicleSpeed1`. #[inline(always)] pub fn set_vehicle_speed1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -1867,32 +1898,37 @@ impl VehicleSpeed { self.raw.view_bits_mut::()[0..16].store_be(value); Ok(()) } - /// Get value of 'VehicleSpeed2' + /// Returns the value of `VehicleSpeed2`. /// /// - Min: 0 /// - Max: 100 /// - Unit: "mph" /// - Receivers: NEO + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn vehicle_speed2(&self) -> f32 { - self.vehicle_speed2_raw() + let signal = self.raw.view_bits::()[32..48].load_be::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'VehicleSpeed2' + /// Returns the raw value of `VehicleSpeed2`. /// /// - Start bit: 39 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn vehicle_speed2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_be::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn vehicle_speed2_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_be::() + } + /// Sets the raw value of `VehicleSpeed2`. + #[inline(always)] + pub fn set_vehicle_speed2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_be(value); } - /// Set value of 'VehicleSpeed2' + /// Sets the value of `VehicleSpeed2`. #[inline(always)] pub fn set_vehicle_speed2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 100_f32 < value { @@ -1970,21 +2006,21 @@ impl CruiseButtons { pub const MESSAGE_SIZE: usize = 3; pub const CRUISE_BUTTONS_MIN: u8 = 0_u8; pub const CRUISE_BUTTONS_MAX: u8 = 12_u8; - /// Construct new 'CruiseButtons' from values + /// Constructs a new `CruiseButtons` message from values. pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_cruise_buttons(cruise_buttons)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CruiseButtons` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'CruiseButtons' + /// Returns the value of `CruiseButtons`. /// /// - Min: 0 /// - Max: 12 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { @@ -1995,24 +2031,29 @@ impl CruiseButtons { 3 => CruiseButtonsCruiseButtons::Set, 2 => CruiseButtonsCruiseButtons::Resume, 1 => CruiseButtonsCruiseButtons::None, - _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_raw()), + _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_phys_val()), } } - /// Get raw value of 'CruiseButtons' + #[inline(always)] + fn cruise_buttons_phys_val(&self) -> u8 { + self.cruise_buttons_raw_val() + } + /// Returns the raw value of `CruiseButtons`. /// /// - Start bit: 3 /// - Signal size: 3 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn cruise_buttons_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..7].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn cruise_buttons_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..7].load_be::() + } + /// Sets the raw value of `CruiseButtons`. + #[inline(always)] + pub fn set_cruise_buttons_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..7].store_be(value); } - /// Set value of 'CruiseButtons' + /// Sets the value of `CruiseButtons`. #[inline(always)] pub fn set_cruise_buttons( &mut self, @@ -2024,13 +2065,6 @@ impl CruiseButtons { message_id: CruiseButtons::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CruiseButtons::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..7].store_be(value); Ok(()) } @@ -2098,21 +2132,21 @@ impl CruiseButtons2 { pub const MESSAGE_SIZE: usize = 1; pub const LKA_GAP_BUTTON_MIN: u8 = 0_u8; pub const LKA_GAP_BUTTON_MAX: u8 = 2_u8; - /// Construct new 'CruiseButtons2' from values + /// Constructs a new `CruiseButtons2` message from values. pub fn new(lka_gap_button: CruiseButtons2LkaGapButton) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_lka_gap_button(lka_gap_button)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `CruiseButtons2` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'LKAGapButton' + /// Returns the value of `LKAGapButton`. /// /// - Min: 0 /// - Max: 2 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: NEO #[inline(always)] pub fn lka_gap_button(&self) -> CruiseButtons2LkaGapButton { @@ -2121,24 +2155,29 @@ impl CruiseButtons2 { 2 => CruiseButtons2LkaGapButton::X(2), 1 => CruiseButtons2LkaGapButton::X(1), 0 => CruiseButtons2LkaGapButton::None, - _ => CruiseButtons2LkaGapButton::_Other(self.lka_gap_button_raw()), + _ => CruiseButtons2LkaGapButton::_Other(self.lka_gap_button_phys_val()), } } - /// Get raw value of 'LKAGapButton' + #[inline(always)] + fn lka_gap_button_phys_val(&self) -> u8 { + self.lka_gap_button_raw_val() + } + /// Returns the raw value of `LKAGapButton`. /// /// - Start bit: 1 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn lka_gap_button_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[6..8].load_be::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn lka_gap_button_raw_val(&self) -> u8 { + self.raw.view_bits::()[6..8].load_be::() } - /// Set value of 'LKAGapButton' + /// Sets the raw value of `LKAGapButton`. + #[inline(always)] + pub fn set_lka_gap_button_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[6..8].store_be(value); + } + /// Sets the value of `LKAGapButton`. #[inline(always)] pub fn set_lka_gap_button( &mut self, @@ -2150,13 +2189,6 @@ impl CruiseButtons2 { message_id: CruiseButtons2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: CruiseButtons2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[6..8].store_be(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/issue_199_extended.snap.stderr b/tests-snapshots/dbc-cantools/issue_199_extended.snap.stderr index 85bf4218..ba4a9e2e 100644 --- a/tests-snapshots/dbc-cantools/issue_199_extended.snap.stderr +++ b/tests-snapshots/dbc-cantools/issue_199_extended.snap.stderr @@ -1,199 +1,199 @@ error[E0425]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:948:30 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:962:30 | - 948 | pub fn new(gear_shifter: GearShifterGearShifter) -> Result { + 962 | pub fn new(gear_shifter: GearShifterGearShifter) -> Result { | ^^^^^^^^^^^^^^^^^^^^^^ ... -1083 | pub enum GearShifterLeftBlinker { +1095 | pub enum GearShifterLeftBlinker { | ------------------------------- similarly named enum `GearShifterLeftBlinker` defined here | help: an enum with a similar name exists | - 948 - pub fn new(gear_shifter: GearShifterGearShifter) -> Result { - 948 + pub fn new(gear_shifter: GearShifterLeftBlinker) -> Result { + 962 - pub fn new(gear_shifter: GearShifterGearShifter) -> Result { + 962 + pub fn new(gear_shifter: GearShifterLeftBlinker) -> Result { | error[E0425]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:964:35 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:978:35 | - 964 | pub fn gear_shifter(&self) -> GearShifterGearShifter { + 978 | pub fn gear_shifter(&self) -> GearShifterGearShifter { | ^^^^^^^^^^^^^^^^^^^^^^ ... -1083 | pub enum GearShifterLeftBlinker { +1095 | pub enum GearShifterLeftBlinker { | ------------------------------- similarly named enum `GearShifterLeftBlinker` defined here | help: an enum with a similar name exists | - 964 - pub fn gear_shifter(&self) -> GearShifterGearShifter { - 964 + pub fn gear_shifter(&self) -> GearShifterLeftBlinker { + 978 - pub fn gear_shifter(&self) -> GearShifterGearShifter { + 978 + pub fn gear_shifter(&self) -> GearShifterLeftBlinker { | error[E0425]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:990:16 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1009:16 | - 990 | value: GearShifterGearShifter, +1009 | value: GearShifterGearShifter, | ^^^^^^^^^^^^^^^^^^^^^^ ... -1083 | pub enum GearShifterLeftBlinker { +1095 | pub enum GearShifterLeftBlinker { | ------------------------------- similarly named enum `GearShifterLeftBlinker` defined here | help: an enum with a similar name exists | - 990 - value: GearShifterGearShifter, - 990 + value: GearShifterLeftBlinker, +1009 - value: GearShifterGearShifter, +1009 + value: GearShifterLeftBlinker, | error[E0425]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1974:32 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2010:32 | -1974 | pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { +2010 | pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -2213 | pub enum CruiseButtons2LkaGapButton { +2245 | pub enum CruiseButtons2LkaGapButton { | ----------------------------------- similarly named enum `CruiseButtons2LkaGapButton` defined here | help: an enum with a similar name exists | -1974 - pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { -1974 + pub fn new(cruise_buttons: CruiseButtons2LkaGapButton) -> Result { +2010 - pub fn new(cruise_buttons: CruiseButtonsCruiseButtons) -> Result { +2010 + pub fn new(cruise_buttons: CruiseButtons2LkaGapButton) -> Result { | error[E0425]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1990:37 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2026:37 | -1990 | pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { +2026 | pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -2213 | pub enum CruiseButtons2LkaGapButton { +2245 | pub enum CruiseButtons2LkaGapButton { | ----------------------------------- similarly named enum `CruiseButtons2LkaGapButton` defined here | help: an enum with a similar name exists | -1990 - pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { -1990 + pub fn cruise_buttons(&self) -> CruiseButtons2LkaGapButton { +2026 - pub fn cruise_buttons(&self) -> CruiseButtonsCruiseButtons { +2026 + pub fn cruise_buttons(&self) -> CruiseButtons2LkaGapButton { | error[E0425]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2019:16 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2060:16 | -2019 | value: CruiseButtonsCruiseButtons, +2060 | value: CruiseButtonsCruiseButtons, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ... -2213 | pub enum CruiseButtons2LkaGapButton { +2245 | pub enum CruiseButtons2LkaGapButton { | ----------------------------------- similarly named enum `CruiseButtons2LkaGapButton` defined here | help: an enum with a similar name exists | -2019 - value: CruiseButtonsCruiseButtons, -2019 + value: CruiseButtons2LkaGapButton, +2060 - value: CruiseButtonsCruiseButtons, +2060 + value: CruiseButtons2LkaGapButton, | error[E0433]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:967:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:981:18 | -967 | 3 => GearShifterGearShifter::Park, +981 | 3 => GearShifterGearShifter::Park, | ^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `GearShifterGearShifter` | help: an enum with a similar name exists | -967 - 3 => GearShifterGearShifter::Park, -967 + 3 => GearShifterLeftBlinker::Park, +981 - 3 => GearShifterGearShifter::Park, +981 + 3 => GearShifterLeftBlinker::Park, | error[E0433]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:968:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:982:18 | -968 | 0 => GearShifterGearShifter::DriveLow, +982 | 0 => GearShifterGearShifter::DriveLow, | ^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `GearShifterGearShifter` | help: an enum with a similar name exists | -968 - 0 => GearShifterGearShifter::DriveLow, -968 + 0 => GearShifterLeftBlinker::DriveLow, +982 - 0 => GearShifterGearShifter::DriveLow, +982 + 0 => GearShifterLeftBlinker::DriveLow, | error[E0433]: cannot find type `GearShifterGearShifter` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:969:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:983:18 | -969 | _ => GearShifterGearShifter::_Other(self.gear_shifter_raw()), +983 | _ => GearShifterGearShifter::_Other(self.gear_shifter_phys_val()), | ^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `GearShifterGearShifter` | help: an enum with a similar name exists | -969 - _ => GearShifterGearShifter::_Other(self.gear_shifter_raw()), -969 + _ => GearShifterLeftBlinker::_Other(self.gear_shifter_raw()), +983 - _ => GearShifterGearShifter::_Other(self.gear_shifter_phys_val()), +983 + _ => GearShifterLeftBlinker::_Other(self.gear_shifter_phys_val()), | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1993:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2029:18 | -1993 | 6 => CruiseButtonsCruiseButtons::Cancel, +2029 | 6 => CruiseButtonsCruiseButtons::Cancel, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -1993 - 6 => CruiseButtonsCruiseButtons::Cancel, -1993 + 6 => CruiseButtons2LkaGapButton::Cancel, +2029 - 6 => CruiseButtonsCruiseButtons::Cancel, +2029 + 6 => CruiseButtons2LkaGapButton::Cancel, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1994:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2030:18 | -1994 | 5 => CruiseButtonsCruiseButtons::Main, +2030 | 5 => CruiseButtonsCruiseButtons::Main, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -1994 - 5 => CruiseButtonsCruiseButtons::Main, -1994 + 5 => CruiseButtons2LkaGapButton::Main, +2030 - 5 => CruiseButtonsCruiseButtons::Main, +2030 + 5 => CruiseButtons2LkaGapButton::Main, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1995:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2031:18 | -1995 | 3 => CruiseButtonsCruiseButtons::Set, +2031 | 3 => CruiseButtonsCruiseButtons::Set, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -1995 - 3 => CruiseButtonsCruiseButtons::Set, -1995 + 3 => CruiseButtons2LkaGapButton::Set, +2031 - 3 => CruiseButtonsCruiseButtons::Set, +2031 + 3 => CruiseButtons2LkaGapButton::Set, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1996:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2032:18 | -1996 | 2 => CruiseButtonsCruiseButtons::Resume, +2032 | 2 => CruiseButtonsCruiseButtons::Resume, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -1996 - 2 => CruiseButtonsCruiseButtons::Resume, -1996 + 2 => CruiseButtons2LkaGapButton::Resume, +2032 - 2 => CruiseButtonsCruiseButtons::Resume, +2032 + 2 => CruiseButtons2LkaGapButton::Resume, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1997:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2033:18 | -1997 | 1 => CruiseButtonsCruiseButtons::None, +2033 | 1 => CruiseButtonsCruiseButtons::None, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -1997 - 1 => CruiseButtonsCruiseButtons::None, -1997 + 1 => CruiseButtons2LkaGapButton::None, +2033 - 1 => CruiseButtonsCruiseButtons::None, +2033 + 1 => CruiseButtons2LkaGapButton::None, | error[E0433]: cannot find type `CruiseButtonsCruiseButtons` in this scope - --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:1998:18 + --> tests-snapshots/dbc-cantools/issue_199_extended.snap.rs:2034:18 | -1998 | _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_raw()), +2034 | _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_phys_val()), | ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `CruiseButtonsCruiseButtons` | help: an enum with a similar name exists | -1998 - _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_raw()), -1998 + _ => CruiseButtons2LkaGapButton::_Other(self.cruise_buttons_raw()), +2034 - _ => CruiseButtonsCruiseButtons::_Other(self.cruise_buttons_phys_val()), +2034 + _ => CruiseButtons2LkaGapButton::_Other(self.cruise_buttons_phys_val()), | error: unreachable pattern diff --git a/tests-snapshots/dbc-cantools/issue_207_sig_plus.snap.rs b/tests-snapshots/dbc-cantools/issue_207_sig_plus.snap.rs index 69a4763a..fa7e81c1 100644 --- a/tests-snapshots/dbc-cantools/issue_207_sig_plus.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_207_sig_plus.snap.rs @@ -71,7 +71,7 @@ impl MyMsg { pub const MY_EXTRA_SIG_WITH_PLUS_MAX: i16 = 127_i16; pub const MY_NORMAL_SIG_MIN: i16 = -128_i16; pub const MY_NORMAL_SIG_MAX: i16 = 127_i16; - /// Construct new 'myMsg' from values + /// Constructs a new `myMsg` message from values. pub fn new( my_extra_sig_with_plus: i16, my_normal_sig: i16, @@ -81,35 +81,41 @@ impl MyMsg { res.set_my_normal_sig(my_normal_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `myMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'myExtraSigWithPlus' + /// Returns the value of `myExtraSigWithPlus`. /// /// - Min: -128 /// - Max: 127 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: -128 #[inline(always)] pub fn my_extra_sig_with_plus(&self) -> i16 { - self.my_extra_sig_with_plus_raw() + let signal = self.raw.view_bits::()[8..16].load_le::(); + let factor = 1; + i16::from(signal).saturating_mul(factor).saturating_sub(128) } - /// Get raw value of 'myExtraSigWithPlus' + /// Returns the raw value of `myExtraSigWithPlus`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: -128 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn my_extra_sig_with_plus_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - i16::from(signal).saturating_mul(factor).saturating_sub(128) + pub fn my_extra_sig_with_plus_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `myExtraSigWithPlus`. + #[inline(always)] + pub fn set_my_extra_sig_with_plus_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'myExtraSigWithPlus' + /// Sets the value of `myExtraSigWithPlus`. #[inline(always)] pub fn set_my_extra_sig_with_plus(&mut self, value: i16) -> Result<(), CanError> { if value < -128_i16 || 127_i16 < value { @@ -128,31 +134,37 @@ impl MyMsg { self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'myNormalSig' + /// Returns the value of `myNormalSig`. /// /// - Min: -128 /// - Max: 127 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: -128 #[inline(always)] pub fn my_normal_sig(&self) -> i16 { - self.my_normal_sig_raw() + let signal = self.raw.view_bits::()[0..8].load_le::(); + let factor = 1; + i16::from(signal).saturating_mul(factor).saturating_sub(128) } - /// Get raw value of 'myNormalSig' + /// Returns the raw value of `myNormalSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: -128 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn my_normal_sig_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - i16::from(signal).saturating_mul(factor).saturating_sub(128) + pub fn my_normal_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `myNormalSig`. + #[inline(always)] + pub fn set_my_normal_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'myNormalSig' + /// Sets the value of `myNormalSig`. #[inline(always)] pub fn set_my_normal_sig(&mut self, value: i16) -> Result<(), CanError> { if value < -128_i16 || 127_i16 < value { diff --git a/tests-snapshots/dbc-cantools/issue_228.snap.rs b/tests-snapshots/dbc-cantools/issue_228.snap.rs index a305473a..28bab9eb 100644 --- a/tests-snapshots/dbc-cantools/issue_228.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_228.snap.rs @@ -76,7 +76,7 @@ impl SgMsg { pub const SG2_MAX: i8 = 0_i8; pub const SG1_MIN: i8 = 0_i8; pub const SG1_MAX: i8 = 0_i8; - /// Construct new 'SGMsg' from values + /// Constructs a new `SGMsg` message from values. pub fn new(dupsig: i8, sg2: i8, sg1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_dupsig(dupsig)?; @@ -84,36 +84,39 @@ impl SgMsg { res.set_sg1(sg1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SGMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'dupsig' + /// Returns the value of `dupsig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn dupsig(&self) -> i8 { - self.dupsig_raw() + self.dupsig_raw_val() } - /// Get raw value of 'dupsig' + /// Returns the raw value of `dupsig`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn dupsig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn dupsig_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `dupsig`. + #[inline(always)] + pub fn set_dupsig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'dupsig' + /// Sets the value of `dupsig`. #[inline(always)] pub fn set_dupsig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -121,43 +124,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'SG2' + /// Returns the value of `SG2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg2(&self) -> i8 { - self.sg2_raw() + self.sg2_raw_val() } - /// Get raw value of 'SG2' + /// Returns the raw value of `SG2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `SG2`. + #[inline(always)] + pub fn set_sg2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'SG2' + /// Sets the value of `SG2`. #[inline(always)] pub fn set_sg2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -165,43 +164,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'SG1' + /// Returns the value of `SG1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg1(&self) -> i8 { - self.sg1_raw() + self.sg1_raw_val() } - /// Get raw value of 'SG1' + /// Returns the raw value of `SG1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SG1' + /// Sets the raw value of `SG1`. + #[inline(always)] + pub fn set_sg1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SG1`. #[inline(always)] pub fn set_sg1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -209,13 +204,6 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -285,43 +273,46 @@ impl NormalMsg { pub const SIG_2_MAX: i8 = 0_i8; pub const SIG_1_MIN: i8 = 0_i8; pub const SIG_1_MAX: i8 = 0_i8; - /// Construct new 'NormalMsg' from values + /// Constructs a new `NormalMsg` message from values. pub fn new(sig_2: i8, sig_1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_2(sig_2)?; res.set_sig_1(sig_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `NormalMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Sig_2' + /// Returns the value of `Sig_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_2(&self) -> i8 { - self.sig_2_raw() + self.sig_2_raw_val() } - /// Get raw value of 'Sig_2' + /// Returns the raw value of `Sig_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Sig_2`. + #[inline(always)] + pub fn set_sig_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Sig_2' + /// Sets the value of `Sig_2`. #[inline(always)] pub fn set_sig_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -329,43 +320,39 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_1' + /// Returns the value of `Sig_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_1(&self) -> i8 { - self.sig_1_raw() + self.sig_1_raw_val() } - /// Get raw value of 'Sig_1' + /// Returns the raw value of `Sig_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_1' + /// Sets the raw value of `Sig_1`. + #[inline(always)] + pub fn set_sig_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_1`. #[inline(always)] pub fn set_sig_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -373,13 +360,6 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/issue_63.snap.rs b/tests-snapshots/dbc-cantools/issue_63.snap.rs index 4769316b..448e8c7d 100644 --- a/tests-snapshots/dbc-cantools/issue_63.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_63.snap.rs @@ -79,7 +79,7 @@ impl Aft1psi2 { pub const PWR_SUPPLY_MAX: u8 = 3_u8; pub const DETECTION_STATUS_MIN: u8 = 0_u8; pub const DETECTION_STATUS_MAX: u8 = 15_u8; - /// Construct new 'AFT1PSI2' from values + /// Constructs a new `AFT1PSI2` message from values. pub fn new( htr_res: f32, max_res: u32, @@ -97,36 +97,41 @@ impl Aft1psi2 { res.set_detection_status(detection_status)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `AFT1PSI2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'HtrRes' + /// Returns the value of `HtrRes`. /// /// - Min: 0 /// - Max: 6425.5 /// - Unit: "ohm" /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn htr_res(&self) -> f32 { - self.htr_res_raw() + let signal = self.raw.view_bits::()[40..56].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'HtrRes' + /// Returns the raw value of `HtrRes`. /// /// - Start bit: 40 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn htr_res_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..56].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn htr_res_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..56].load_le::() + } + /// Sets the raw value of `HtrRes`. + #[inline(always)] + pub fn set_htr_res_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..56].store_le(value); } - /// Set value of 'HtrRes' + /// Sets the value of `HtrRes`. #[inline(always)] pub fn set_htr_res(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 6425.5_f32 < value { @@ -140,31 +145,36 @@ impl Aft1psi2 { self.raw.view_bits_mut::()[40..56].store_le(value); Ok(()) } - /// Get value of 'MaxRes' + /// Returns the value of `MaxRes`. /// /// - Min: 0 /// - Max: 62500 /// - Unit: "kohm" /// - Receivers: Vector__XXX + /// - Factor: 250 + /// - Offset: 0 #[inline(always)] pub fn max_res(&self) -> u32 { - self.max_res_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 250; + u32::from(signal).saturating_mul(factor).saturating_add(0) } - /// Get raw value of 'MaxRes' + /// Returns the raw value of `MaxRes`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 250 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn max_res_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 250; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn max_res_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MaxRes' + /// Sets the raw value of `MaxRes`. + #[inline(always)] + pub fn set_max_res_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MaxRes`. #[inline(always)] pub fn set_max_res(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 62500_u32 < value { @@ -182,32 +192,37 @@ impl Aft1psi2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Temp' + /// Returns the value of `Temp`. /// /// - Min: -273 /// - Max: 1734.96875 /// - Unit: "�C" /// - Receivers: Vector__XXX + /// - Factor: 0.03125 + /// - Offset: -273 #[inline(always)] pub fn temp(&self) -> f32 { - self.temp_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.03125_f32; + let offset = -273_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temp' + /// Returns the raw value of `Temp`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.03125 - /// - Offset: -273 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn temp_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.03125_f32; - let offset = -273_f32; - (signal as f32) * factor + offset + pub fn temp_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'Temp' + /// Sets the raw value of `Temp`. + #[inline(always)] + pub fn set_temp_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `Temp`. #[inline(always)] pub fn set_temp(&mut self, value: f32) -> Result<(), CanError> { if value < -273_f32 || 1734.96875_f32 < value { @@ -221,31 +236,34 @@ impl Aft1psi2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'RegenFailedCount' + /// Returns the value of `RegenFailedCount`. /// /// - Min: 0 /// - Max: 250 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn regen_failed_count(&self) -> u8 { - self.regen_failed_count_raw() + self.regen_failed_count_raw_val() } - /// Get raw value of 'RegenFailedCount' + /// Returns the raw value of `RegenFailedCount`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn regen_failed_count_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn regen_failed_count_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `RegenFailedCount`. + #[inline(always)] + pub fn set_regen_failed_count_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'RegenFailedCount' + /// Sets the value of `RegenFailedCount`. #[inline(always)] pub fn set_regen_failed_count(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 250_u8 < value { @@ -253,41 +271,37 @@ impl Aft1psi2 { message_id: Aft1psi2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Aft1psi2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'PwrSupply' + /// Returns the value of `PwrSupply`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn pwr_supply(&self) -> u8 { - self.pwr_supply_raw() + self.pwr_supply_raw_val() } - /// Get raw value of 'PwrSupply' + /// Returns the raw value of `PwrSupply`. /// /// - Start bit: 4 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn pwr_supply_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..6].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn pwr_supply_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..6].load_le::() } - /// Set value of 'PwrSupply' + /// Sets the raw value of `PwrSupply`. + #[inline(always)] + pub fn set_pwr_supply_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..6].store_le(value); + } + /// Sets the value of `PwrSupply`. #[inline(always)] pub fn set_pwr_supply(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 3_u8 < value { @@ -295,41 +309,37 @@ impl Aft1psi2 { message_id: Aft1psi2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Aft1psi2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..6].store_le(value); Ok(()) } - /// Get value of 'DetectionStatus' + /// Returns the value of `DetectionStatus`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn detection_status(&self) -> u8 { - self.detection_status_raw() + self.detection_status_raw_val() } - /// Get raw value of 'DetectionStatus' + /// Returns the raw value of `DetectionStatus`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn detection_status_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn detection_status_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..4].load_le::() } - /// Set value of 'DetectionStatus' + /// Sets the raw value of `DetectionStatus`. + #[inline(always)] + pub fn set_detection_status_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..4].store_le(value); + } + /// Sets the value of `DetectionStatus`. #[inline(always)] pub fn set_detection_status(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -337,13 +347,6 @@ impl Aft1psi2 { message_id: Aft1psi2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Aft1psi2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/issue_636_negative_scaling.snap.rs b/tests-snapshots/dbc-cantools/issue_636_negative_scaling.snap.rs index 3cfcf8f6..4d0b59b6 100644 --- a/tests-snapshots/dbc-cantools/issue_636_negative_scaling.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_636_negative_scaling.snap.rs @@ -74,17 +74,17 @@ impl ExampleMessage { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_MIN: f32 = 4070_f32; pub const TEMPERATURE_MAX: f32 = 4100_f32; - /// Construct new 'ExampleMessage' from values + /// Constructs a new `ExampleMessage` message from values. pub fn new(temperature: ExampleMessageTemperature) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature(temperature)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ExampleMessage` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature' + /// Returns the value of `Temperature`. /// /// - Min: 4070 /// - Max: 4100 @@ -96,25 +96,32 @@ impl ExampleMessage { match signal { 4095 => ExampleMessageTemperature::Error, 4094 => ExampleMessageTemperature::Init, - _ => ExampleMessageTemperature::_Other(self.temperature_raw()), + _ => ExampleMessageTemperature::_Other(self.temperature_phys_val()), } } - /// Get raw value of 'Temperature' + #[inline(always)] + fn temperature_phys_val(&self) -> f32 { + let signal = self.raw.view_bits::()[4..16].load_be::(); + let factor = -0.01_f32; + let offset = 4100_f32; + (signal as f32) * factor + offset + } + /// Returns the raw value of `Temperature`. /// /// - Start bit: 3 /// - Signal size: 12 bits - /// - Factor: -0.01 - /// - Offset: 4100 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn temperature_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[4..16].load_be::(); - let factor = -0.01_f32; - let offset = 4100_f32; - (signal as f32) * factor + offset + pub fn temperature_raw_val(&self) -> u16 { + self.raw.view_bits::()[4..16].load_be::() + } + /// Sets the raw value of `Temperature`. + #[inline(always)] + pub fn set_temperature_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[4..16].store_be(value); } - /// Set value of 'Temperature' + /// Sets the value of `Temperature`. #[inline(always)] pub fn set_temperature( &mut self, diff --git a/tests-snapshots/dbc-cantools/issue_725.snap.rs b/tests-snapshots/dbc-cantools/issue_725.snap.rs index 92b1041a..988446c9 100644 --- a/tests-snapshots/dbc-cantools/issue_725.snap.rs +++ b/tests-snapshots/dbc-cantools/issue_725.snap.rs @@ -72,41 +72,44 @@ impl TestMessage { pub const MESSAGE_SIZE: usize = 1; pub const SIGNAL1_MIN: u8 = 0_u8; pub const SIGNAL1_MAX: u8 = 250_u8; - /// Construct new 'TestMessage' from values + /// Constructs a new `TestMessage` message from values. pub fn new(signal1: u8) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_signal1(signal1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMessage` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 250 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Node2 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> u8 { - self.signal1_raw() + self.signal1_raw_val() } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Signal1' + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 250_u8 < value { @@ -114,13 +117,6 @@ impl TestMessage { message_id: TestMessage::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/j1939.snap.rs b/tests-snapshots/dbc-cantools/j1939.snap.rs index b67cf7f5..9334b905 100644 --- a/tests-snapshots/dbc-cantools/j1939.snap.rs +++ b/tests-snapshots/dbc-cantools/j1939.snap.rs @@ -73,42 +73,45 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const SIGNAL1_MIN: i8 = 0_i8; pub const SIGNAL1_MAX: i8 = 0_i8; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(signal1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal1(signal1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Node2 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> i8 { - self.signal1_raw() + self.signal1_raw_val() } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Signal1' + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -116,13 +119,6 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -191,42 +187,45 @@ impl Message2 { pub const MESSAGE_SIZE: usize = 8; pub const SIGNAL2_MIN: i8 = 0_i8; pub const SIGNAL2_MAX: i8 = 0_i8; - /// Construct new 'Message2' from values + /// Constructs a new `Message2` message from values. pub fn new(signal2: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal2(signal2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal2' + /// Returns the value of `Signal2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Node1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal2(&self) -> i8 { - self.signal2_raw() + self.signal2_raw_val() } - /// Get raw value of 'Signal2' + /// Returns the raw value of `Signal2`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal2_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Signal2' + /// Sets the raw value of `Signal2`. + #[inline(always)] + pub fn set_signal2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Signal2`. #[inline(always)] pub fn set_signal2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -234,13 +233,6 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/long_names.snap.rs b/tests-snapshots/dbc-cantools/long_names.snap.rs index 2dd7f37d..1fdf9355 100644 --- a/tests-snapshots/dbc-cantools/long_names.snap.rs +++ b/tests-snapshots/dbc-cantools/long_names.snap.rs @@ -134,12 +134,12 @@ impl Ss123456789012345678901234587890 { StandardId::new_unchecked(0x9) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'SS123456789012345678901234587890' from values + /// Constructs a new `SS123456789012345678901234587890` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SS123456789012345678901234587890` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -204,12 +204,12 @@ impl Ss12345678901234567890123450000 { StandardId::new_unchecked(0x8) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'SS1234567890123456789012345_0000' from values + /// Constructs a new `SS1234567890123456789012345_0000` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SS1234567890123456789012345_0000` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -274,12 +274,12 @@ impl Ss12345678901234567890123450001 { StandardId::new_unchecked(0x7) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'SS1234567890123456789012345_0001' from values + /// Constructs a new `SS1234567890123456789012345_0001` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SS1234567890123456789012345_0001` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -344,12 +344,12 @@ impl Ss123456789012345678901234577890 { StandardId::new_unchecked(0x6) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'SS123456789012345678901234577890' from values + /// Constructs a new `SS123456789012345678901234577890` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SS123456789012345678901234577890` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -414,12 +414,12 @@ impl Ss123456789012345678901234567890 { StandardId::new_unchecked(0x5) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'SS123456789012345678901234567890' from values + /// Constructs a new `SS123456789012345678901234567890` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SS123456789012345678901234567890` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -486,42 +486,45 @@ impl S1234567890123456789012345678901 { pub const MESSAGE_SIZE: usize = 8; pub const SS123456789012345678901234567890_MIN: i8 = 0_i8; pub const SS123456789012345678901234567890_MAX: i8 = 0_i8; - /// Construct new 'S1234567890123456789012345678901' from values + /// Constructs a new `S1234567890123456789012345678901` message from values. pub fn new(ss123456789012345678901234567890: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_ss123456789012345678901234567890(ss123456789012345678901234567890)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `S1234567890123456789012345678901` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SS123456789012345678901234567890' + /// Returns the value of `SS123456789012345678901234567890`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ss123456789012345678901234567890(&self) -> i8 { - self.ss123456789012345678901234567890_raw() + self.ss123456789012345678901234567890_raw_val() } - /// Get raw value of 'SS123456789012345678901234567890' + /// Returns the raw value of `SS123456789012345678901234567890`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ss123456789012345678901234567890_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ss123456789012345678901234567890_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `SS123456789012345678901234567890`. + #[inline(always)] + pub fn set_ss123456789012345678901234567890_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'SS123456789012345678901234567890' + /// Sets the value of `SS123456789012345678901234567890`. #[inline(always)] pub fn set_ss123456789012345678901234567890( &mut self, @@ -532,13 +535,6 @@ impl S1234567890123456789012345678901 { message_id: S1234567890123456789012345678901::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: S1234567890123456789012345678901::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -606,42 +602,45 @@ impl M123456789012345678901234560000 { pub const MESSAGE_SIZE: usize = 8; pub const SSS12345678901234567890123456789_MIN: i8 = 0_i8; pub const SSS12345678901234567890123456789_MAX: i8 = 0_i8; - /// Construct new 'M12345678901234567890123456_0000' from values + /// Constructs a new `M12345678901234567890123456_0000` message from values. pub fn new(sss12345678901234567890123456789: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sss12345678901234567890123456789(sss12345678901234567890123456789)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `M12345678901234567890123456_0000` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SSS12345678901234567890123456789' + /// Returns the value of `SSS12345678901234567890123456789`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sss12345678901234567890123456789(&self) -> i8 { - self.sss12345678901234567890123456789_raw() + self.sss12345678901234567890123456789_raw_val() } - /// Get raw value of 'SSS12345678901234567890123456789' + /// Returns the raw value of `SSS12345678901234567890123456789`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sss12345678901234567890123456789_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sss12345678901234567890123456789_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `SSS12345678901234567890123456789`. + #[inline(always)] + pub fn set_sss12345678901234567890123456789_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'SSS12345678901234567890123456789' + /// Sets the value of `SSS12345678901234567890123456789`. #[inline(always)] pub fn set_sss12345678901234567890123456789( &mut self, @@ -652,13 +651,6 @@ impl M123456789012345678901234560000 { message_id: M123456789012345678901234560000::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M123456789012345678901234560000::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -735,7 +727,7 @@ impl M1234567890123456789012345678901 { pub const S12345678901234567890123456_0000_MAX: i8 = 0_i8; pub const S1234567890123456789012345678901_MIN: i8 = 0_i8; pub const S1234567890123456789012345678901_MAX: i8 = 0_i8; - /// Construct new 'M1234567890123456789012345678901' from values + /// Constructs a new `M1234567890123456789012345678901` message from values. pub fn new( ss1234567890123456789012345_0000: i8, ss1234567890123456789012345_0001: i8, @@ -751,36 +743,39 @@ impl M1234567890123456789012345678901 { res.set_s1234567890123456789012345678901(s1234567890123456789012345678901)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `M1234567890123456789012345678901` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SS1234567890123456789012345_0000' + /// Returns the value of `SS1234567890123456789012345_0000`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ss1234567890123456789012345_0000(&self) -> i8 { - self.ss1234567890123456789012345_0000_raw() + self.ss1234567890123456789012345_0000_raw_val() } - /// Get raw value of 'SS1234567890123456789012345_0000' + /// Returns the raw value of `SS1234567890123456789012345_0000`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ss1234567890123456789012345_0000_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ss1234567890123456789012345_0000_raw_val(&self) -> i8 { + self.raw.view_bits::()[32..40].load_le::() } - /// Set value of 'SS1234567890123456789012345_0000' + /// Sets the raw value of `SS1234567890123456789012345_0000`. + #[inline(always)] + pub fn set_ss1234567890123456789012345_0000_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..40].store_le(value); + } + /// Sets the value of `SS1234567890123456789012345_0000`. #[inline(always)] pub fn set_ss1234567890123456789012345_0000( &mut self, @@ -791,43 +786,39 @@ impl M1234567890123456789012345678901 { message_id: M1234567890123456789012345678901::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M1234567890123456789012345678901::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'SS1234567890123456789012345_0001' + /// Returns the value of `SS1234567890123456789012345_0001`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ss1234567890123456789012345_0001(&self) -> i8 { - self.ss1234567890123456789012345_0001_raw() + self.ss1234567890123456789012345_0001_raw_val() } - /// Get raw value of 'SS1234567890123456789012345_0001' + /// Returns the raw value of `SS1234567890123456789012345_0001`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ss1234567890123456789012345_0001_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ss1234567890123456789012345_0001_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `SS1234567890123456789012345_0001`. + #[inline(always)] + pub fn set_ss1234567890123456789012345_0001_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'SS1234567890123456789012345_0001' + /// Sets the value of `SS1234567890123456789012345_0001`. #[inline(always)] pub fn set_ss1234567890123456789012345_0001( &mut self, @@ -838,43 +829,39 @@ impl M1234567890123456789012345678901 { message_id: M1234567890123456789012345678901::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M1234567890123456789012345678901::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'SS1234567890123456789012345_0002' + /// Returns the value of `SS1234567890123456789012345_0002`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: N12345678901234567890123456_0000 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ss1234567890123456789012345_0002(&self) -> i8 { - self.ss1234567890123456789012345_0002_raw() + self.ss1234567890123456789012345_0002_raw_val() } - /// Get raw value of 'SS1234567890123456789012345_0002' + /// Returns the raw value of `SS1234567890123456789012345_0002`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ss1234567890123456789012345_0002_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ss1234567890123456789012345_0002_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'SS1234567890123456789012345_0002' + /// Sets the raw value of `SS1234567890123456789012345_0002`. + #[inline(always)] + pub fn set_ss1234567890123456789012345_0002_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `SS1234567890123456789012345_0002`. #[inline(always)] pub fn set_ss1234567890123456789012345_0002( &mut self, @@ -885,43 +872,39 @@ impl M1234567890123456789012345678901 { message_id: M1234567890123456789012345678901::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M1234567890123456789012345678901::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'S12345678901234567890123456_0000' + /// Returns the value of `S12345678901234567890123456_0000`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s12345678901234567890123456_0000(&self) -> i8 { - self.s12345678901234567890123456_0000_raw() + self.s12345678901234567890123456_0000_raw_val() } - /// Get raw value of 'S12345678901234567890123456_0000' + /// Returns the raw value of `S12345678901234567890123456_0000`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s12345678901234567890123456_0000_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s12345678901234567890123456_0000_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `S12345678901234567890123456_0000`. + #[inline(always)] + pub fn set_s12345678901234567890123456_0000_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'S12345678901234567890123456_0000' + /// Sets the value of `S12345678901234567890123456_0000`. #[inline(always)] pub fn set_s12345678901234567890123456_0000( &mut self, @@ -932,43 +915,39 @@ impl M1234567890123456789012345678901 { message_id: M1234567890123456789012345678901::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M1234567890123456789012345678901::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'S1234567890123456789012345678901' + /// Returns the value of `S1234567890123456789012345678901`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s1234567890123456789012345678901(&self) -> i8 { - self.s1234567890123456789012345678901_raw() + self.s1234567890123456789012345678901_raw_val() } - /// Get raw value of 'S1234567890123456789012345678901' + /// Returns the raw value of `S1234567890123456789012345678901`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s1234567890123456789012345678901_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s1234567890123456789012345678901_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'S1234567890123456789012345678901' + /// Sets the raw value of `S1234567890123456789012345678901`. + #[inline(always)] + pub fn set_s1234567890123456789012345678901_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `S1234567890123456789012345678901`. #[inline(always)] pub fn set_s1234567890123456789012345678901( &mut self, @@ -979,13 +958,6 @@ impl M1234567890123456789012345678901 { message_id: M1234567890123456789012345678901::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M1234567890123456789012345678901::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -1060,7 +1032,7 @@ impl M123456789012345678901234560001 { pub const S12345678901234567890123456_0001_MAX: i8 = 0_i8; pub const S12345678901234567890123456_0002_MIN: i8 = 0_i8; pub const S12345678901234567890123456_0002_MAX: i8 = 0_i8; - /// Construct new 'M12345678901234567890123456_0001' from values + /// Constructs a new `M12345678901234567890123456_0001` message from values. pub fn new( ss1234567890123456789012345_0003: i8, ss1234567890123456789012345_0004: i8, @@ -1074,36 +1046,39 @@ impl M123456789012345678901234560001 { res.set_s12345678901234567890123456_0002(s12345678901234567890123456_0002)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `M12345678901234567890123456_0001` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SS1234567890123456789012345_0003' + /// Returns the value of `SS1234567890123456789012345_0003`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ss1234567890123456789012345_0003(&self) -> i8 { - self.ss1234567890123456789012345_0003_raw() + self.ss1234567890123456789012345_0003_raw_val() } - /// Get raw value of 'SS1234567890123456789012345_0003' + /// Returns the raw value of `SS1234567890123456789012345_0003`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ss1234567890123456789012345_0003_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ss1234567890123456789012345_0003_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'SS1234567890123456789012345_0003' + /// Sets the raw value of `SS1234567890123456789012345_0003`. + #[inline(always)] + pub fn set_ss1234567890123456789012345_0003_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `SS1234567890123456789012345_0003`. #[inline(always)] pub fn set_ss1234567890123456789012345_0003( &mut self, @@ -1114,43 +1089,39 @@ impl M123456789012345678901234560001 { message_id: M123456789012345678901234560001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M123456789012345678901234560001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'SS1234567890123456789012345_0004' + /// Returns the value of `SS1234567890123456789012345_0004`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ss1234567890123456789012345_0004(&self) -> i8 { - self.ss1234567890123456789012345_0004_raw() + self.ss1234567890123456789012345_0004_raw_val() } - /// Get raw value of 'SS1234567890123456789012345_0004' + /// Returns the raw value of `SS1234567890123456789012345_0004`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ss1234567890123456789012345_0004_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ss1234567890123456789012345_0004_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'SS1234567890123456789012345_0004' + /// Sets the raw value of `SS1234567890123456789012345_0004`. + #[inline(always)] + pub fn set_ss1234567890123456789012345_0004_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `SS1234567890123456789012345_0004`. #[inline(always)] pub fn set_ss1234567890123456789012345_0004( &mut self, @@ -1161,43 +1132,39 @@ impl M123456789012345678901234560001 { message_id: M123456789012345678901234560001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M123456789012345678901234560001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'S12345678901234567890123456_0001' + /// Returns the value of `S12345678901234567890123456_0001`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s12345678901234567890123456_0001(&self) -> i8 { - self.s12345678901234567890123456_0001_raw() + self.s12345678901234567890123456_0001_raw_val() } - /// Get raw value of 'S12345678901234567890123456_0001' + /// Returns the raw value of `S12345678901234567890123456_0001`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s12345678901234567890123456_0001_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s12345678901234567890123456_0001_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `S12345678901234567890123456_0001`. + #[inline(always)] + pub fn set_s12345678901234567890123456_0001_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'S12345678901234567890123456_0001' + /// Sets the value of `S12345678901234567890123456_0001`. #[inline(always)] pub fn set_s12345678901234567890123456_0001( &mut self, @@ -1208,43 +1175,39 @@ impl M123456789012345678901234560001 { message_id: M123456789012345678901234560001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M123456789012345678901234560001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'S12345678901234567890123456_0002' + /// Returns the value of `S12345678901234567890123456_0002`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s12345678901234567890123456_0002(&self) -> i8 { - self.s12345678901234567890123456_0002_raw() + self.s12345678901234567890123456_0002_raw_val() } - /// Get raw value of 'S12345678901234567890123456_0002' + /// Returns the raw value of `S12345678901234567890123456_0002`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s12345678901234567890123456_0002_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s12345678901234567890123456_0002_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'S12345678901234567890123456_0002' + /// Sets the raw value of `S12345678901234567890123456_0002`. + #[inline(always)] + pub fn set_s12345678901234567890123456_0002_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `S12345678901234567890123456_0002`. #[inline(always)] pub fn set_s12345678901234567890123456_0002( &mut self, @@ -1255,13 +1218,6 @@ impl M123456789012345678901234560001 { message_id: M123456789012345678901234560001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: M123456789012345678901234560001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -1331,7 +1287,7 @@ impl Mm123456789012345678901234567890 { pub const SSS123456789012345678901234_0000_MAX: i8 = 0_i8; pub const SS1234567890123456789012345_0005_MIN: i8 = 0_i8; pub const SS1234567890123456789012345_0005_MAX: i8 = 0_i8; - /// Construct new 'MM123456789012345678901234567890' from values + /// Constructs a new `MM123456789012345678901234567890` message from values. pub fn new( sss123456789012345678901234_0000: i8, ss1234567890123456789012345_0005: i8, @@ -1341,36 +1297,39 @@ impl Mm123456789012345678901234567890 { res.set_ss1234567890123456789012345_0005(ss1234567890123456789012345_0005)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MM123456789012345678901234567890` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SSS123456789012345678901234_0000' + /// Returns the value of `SSS123456789012345678901234_0000`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sss123456789012345678901234_0000(&self) -> i8 { - self.sss123456789012345678901234_0000_raw() + self.sss123456789012345678901234_0000_raw_val() } - /// Get raw value of 'SSS123456789012345678901234_0000' + /// Returns the raw value of `SSS123456789012345678901234_0000`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sss123456789012345678901234_0000_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sss123456789012345678901234_0000_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'SSS123456789012345678901234_0000' + /// Sets the raw value of `SSS123456789012345678901234_0000`. + #[inline(always)] + pub fn set_sss123456789012345678901234_0000_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `SSS123456789012345678901234_0000`. #[inline(always)] pub fn set_sss123456789012345678901234_0000( &mut self, @@ -1381,43 +1340,39 @@ impl Mm123456789012345678901234567890 { message_id: Mm123456789012345678901234567890::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Mm123456789012345678901234567890::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'SS1234567890123456789012345_0005' + /// Returns the value of `SS1234567890123456789012345_0005`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn ss1234567890123456789012345_0005(&self) -> i8 { - self.ss1234567890123456789012345_0005_raw() + self.ss1234567890123456789012345_0005_raw_val() } - /// Get raw value of 'SS1234567890123456789012345_0005' + /// Returns the raw value of `SS1234567890123456789012345_0005`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ss1234567890123456789012345_0005_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ss1234567890123456789012345_0005_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SS1234567890123456789012345_0005' + /// Sets the raw value of `SS1234567890123456789012345_0005`. + #[inline(always)] + pub fn set_ss1234567890123456789012345_0005_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SS1234567890123456789012345_0005`. #[inline(always)] pub fn set_ss1234567890123456789012345_0005( &mut self, @@ -1428,13 +1383,6 @@ impl Mm123456789012345678901234567890 { message_id: Mm123456789012345678901234567890::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Mm123456789012345678901234567890::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs b/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs index 4e49a977..0554a47f 100644 --- a/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs +++ b/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs @@ -114,7 +114,7 @@ impl MsgLongName5678912345678912 { pub const RX_TWICE_SHORT_MAX: i32 = 0_i32; pub const SIG_USED_TWICE_EFGH_ABCDEFGHI_AB_MIN: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFGHI_AB_MAX: i8 = 0_i8; - /// Construct new 'Msg_Long_Name_56789_123456789_12' from values + /// Constructs a new `Msg_Long_Name_56789_123456789_12` message from values. pub fn new( rx_twice_11111111111111111111111: i8, rx_twice_short: i32, @@ -126,36 +126,39 @@ impl MsgLongName5678912345678912 { res.set_sig_used_twice_efgh_abcdefghi_ab(sig_used_twice_efgh_abcdefghi_ab)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_Long_Name_56789_123456789_12` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'rx_twice_11111111111111111111111' + /// Returns the value of `rx_twice_11111111111111111111111`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_11111111111111111111111(&self) -> i8 { - self.rx_twice_11111111111111111111111_raw() + self.rx_twice_11111111111111111111111_raw_val() } - /// Get raw value of 'rx_twice_11111111111111111111111' + /// Returns the raw value of `rx_twice_11111111111111111111111`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_11111111111111111111111_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_11111111111111111111111_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `rx_twice_11111111111111111111111`. + #[inline(always)] + pub fn set_rx_twice_11111111111111111111111_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'rx_twice_11111111111111111111111' + /// Sets the value of `rx_twice_11111111111111111111111`. #[inline(always)] pub fn set_rx_twice_11111111111111111111111( &mut self, @@ -166,43 +169,39 @@ impl MsgLongName5678912345678912 { message_id: MsgLongName5678912345678912::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345678912::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'rx_twice_short' + /// Returns the value of `rx_twice_short`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_short(&self) -> i32 { - self.rx_twice_short_raw() + self.rx_twice_short_raw_val() } - /// Get raw value of 'rx_twice_short' + /// Returns the raw value of `rx_twice_short`. /// /// - Start bit: 16 /// - Signal size: 18 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_short_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[16..34].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_short_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..34].load_le::() + } + /// Sets the raw value of `rx_twice_short`. + #[inline(always)] + pub fn set_rx_twice_short_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..34].store_le(value); } - /// Set value of 'rx_twice_short' + /// Sets the value of `rx_twice_short`. #[inline(always)] pub fn set_rx_twice_short(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -210,43 +209,39 @@ impl MsgLongName5678912345678912 { message_id: MsgLongName5678912345678912::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345678912::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..34].store_le(value); Ok(()) } - /// Get value of 'Sig_used_twice_efgh_abcdefghi_ab' + /// Returns the value of `Sig_used_twice_efgh_abcdefghi_ab`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefghi_ab(&self) -> i8 { - self.sig_used_twice_efgh_abcdefghi_ab_raw() + self.sig_used_twice_efgh_abcdefghi_ab_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefghi_ab' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefghi_ab`. /// /// - Start bit: 0 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefghi_ab_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..6].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefghi_ab_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..6].load_le::() } - /// Set value of 'Sig_used_twice_efgh_abcdefghi_ab' + /// Sets the raw value of `Sig_used_twice_efgh_abcdefghi_ab`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefghi_ab_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..6].store_le(value); + } + /// Sets the value of `Sig_used_twice_efgh_abcdefghi_ab`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefghi_ab( &mut self, @@ -257,13 +252,6 @@ impl MsgLongName5678912345678912 { message_id: MsgLongName5678912345678912::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345678912::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..6].store_le(value); Ok(()) @@ -334,7 +322,7 @@ impl TxTwice { pub const RX_TWICE_LONG_YYYYYYYYYYYYYYYYYY_MAX: i8 = 0_i8; pub const RX_TWICE_SHORT_MIN: i8 = 0_i8; pub const RX_TWICE_SHORT_MAX: i8 = 0_i8; - /// Construct new 'TX_twice' from values + /// Constructs a new `TX_twice` message from values. pub fn new( rx_twice_long_yyyyyyyyyyyyyyyyyy: i8, rx_twice_short: i8, @@ -344,36 +332,39 @@ impl TxTwice { res.set_rx_twice_short(rx_twice_short)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TX_twice` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'rx_twice_long_yyyyyyyyyyyyyyyyyy' + /// Returns the value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Receiver_1, Receiver_2_zzzzzzzzzzzzzzzzzzzzz + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_long_yyyyyyyyyyyyyyyyyy(&self) -> i8 { - self.rx_twice_long_yyyyyyyyyyyyyyyyyy_raw() + self.rx_twice_long_yyyyyyyyyyyyyyyyyy_raw_val() } - /// Get raw value of 'rx_twice_long_yyyyyyyyyyyyyyyyyy' + /// Returns the raw value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_long_yyyyyyyyyyyyyyyyyy_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_long_yyyyyyyyyyyyyyyyyy_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. + #[inline(always)] + pub fn set_rx_twice_long_yyyyyyyyyyyyyyyyyy_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'rx_twice_long_yyyyyyyyyyyyyyyyyy' + /// Sets the value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. #[inline(always)] pub fn set_rx_twice_long_yyyyyyyyyyyyyyyyyy( &mut self, @@ -384,43 +375,39 @@ impl TxTwice { message_id: TxTwice::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TxTwice::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'rx_twice_short' + /// Returns the value of `rx_twice_short`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Receiver_2_zzzzzzzzzzzzzzzzzzzzz, Receiver_1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_short(&self) -> i8 { - self.rx_twice_short_raw() + self.rx_twice_short_raw_val() } - /// Get raw value of 'rx_twice_short' + /// Returns the raw value of `rx_twice_short`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_short_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_short_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'rx_twice_short' + /// Sets the raw value of `rx_twice_short`. + #[inline(always)] + pub fn set_rx_twice_short_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `rx_twice_short`. #[inline(always)] pub fn set_rx_twice_short(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -428,13 +415,6 @@ impl TxTwice { message_id: TxTwice::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TxTwice::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -503,42 +483,45 @@ impl RxTx1 { pub const MESSAGE_SIZE: usize = 8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0000_MIN: i16 = 0_i16; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0000_MAX: i16 = 0_i16; - /// Construct new 'RX_TX_1' from values + /// Constructs a new `RX_TX_1` message from values. pub fn new(sig_used_twice_efgh_abcdefg_0000: i16) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_used_twice_efgh_abcdefg_0000(sig_used_twice_efgh_abcdefg_0000)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RX_TX_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Sig_used_twice_efgh_abcdefg_0000' + /// Returns the value of `Sig_used_twice_efgh_abcdefg_0000`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefg_0000(&self) -> i16 { - self.sig_used_twice_efgh_abcdefg_0000_raw() + self.sig_used_twice_efgh_abcdefg_0000_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefg_0000' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefg_0000`. /// /// - Start bit: 0 /// - Signal size: 9 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefg_0000_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[0..9].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefg_0000_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..9].load_le::() + } + /// Sets the raw value of `Sig_used_twice_efgh_abcdefg_0000`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefg_0000_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..9].store_le(value); } - /// Set value of 'Sig_used_twice_efgh_abcdefg_0000' + /// Sets the value of `Sig_used_twice_efgh_abcdefg_0000`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefg_0000( &mut self, @@ -549,13 +532,6 @@ impl RxTx1 { message_id: RxTx1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RxTx1::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..9].store_le(value); Ok(()) @@ -621,12 +597,12 @@ impl MsgCaseTest { StandardId::new_unchecked(0x4) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'MSG_CASE_TEST' from values + /// Constructs a new `MSG_CASE_TEST` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MSG_CASE_TEST` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -691,12 +667,12 @@ impl MsgCaseTest { StandardId::new_unchecked(0x3) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'msg_case_test' from values + /// Constructs a new `msg_case_test` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `msg_case_test` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -767,7 +743,7 @@ impl MsgWithValueTableSigs { pub const SIG_WITH_LONG_VAL_TABLE_2_MAX: i8 = 0_i8; pub const SIG_WITH_LONG_VAL_TABLE_1_MIN: i8 = 0_i8; pub const SIG_WITH_LONG_VAL_TABLE_1_MAX: i8 = 0_i8; - /// Construct new 'Msg_with_value_table_sigs' from values + /// Constructs a new `Msg_with_value_table_sigs` message from values. pub fn new( sig_with_short_val_table: MsgWithValueTableSigsSigWithShortValTable, sig_with_long_val_table_2: MsgWithValueTableSigsSigWithLongValTable2, @@ -779,15 +755,15 @@ impl MsgWithValueTableSigs { res.set_sig_with_long_val_table_1(sig_with_long_val_table_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_with_value_table_sigs` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Sig_with_short_val_table' + /// Returns the value of `Sig_with_short_val_table`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn sig_with_short_val_table(&self) -> MsgWithValueTableSigsSigWithShortValTable { @@ -801,27 +777,32 @@ impl MsgWithValueTableSigs { } _ => { MsgWithValueTableSigsSigWithShortValTable::_Other( - self.sig_with_short_val_table_raw(), + self.sig_with_short_val_table_phys_val(), ) } } } - /// Get raw value of 'Sig_with_short_val_table' + #[inline(always)] + fn sig_with_short_val_table_phys_val(&self) -> i8 { + self.sig_with_short_val_table_raw_val() + } + /// Returns the raw value of `Sig_with_short_val_table`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_with_short_val_table_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_with_short_val_table_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'Sig_with_short_val_table' + /// Sets the raw value of `Sig_with_short_val_table`. + #[inline(always)] + pub fn set_sig_with_short_val_table_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `Sig_with_short_val_table`. #[inline(always)] pub fn set_sig_with_short_val_table( &mut self, @@ -833,22 +814,15 @@ impl MsgWithValueTableSigs { message_id: MsgWithValueTableSigs::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgWithValueTableSigs::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Sig_with_long_val_table_2' + /// Returns the value of `Sig_with_long_val_table_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn sig_with_long_val_table_2( @@ -872,27 +846,32 @@ impl MsgWithValueTableSigs { 0 => MsgWithValueTableSigsSigWithLongValTable2::Value0x0, _ => { MsgWithValueTableSigsSigWithLongValTable2::_Other( - self.sig_with_long_val_table_2_raw(), + self.sig_with_long_val_table_2_phys_val(), ) } } } - /// Get raw value of 'Sig_with_long_val_table_2' + #[inline(always)] + fn sig_with_long_val_table_2_phys_val(&self) -> i8 { + self.sig_with_long_val_table_2_raw_val() + } + /// Returns the raw value of `Sig_with_long_val_table_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_with_long_val_table_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_with_long_val_table_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Sig_with_long_val_table_2' + /// Sets the raw value of `Sig_with_long_val_table_2`. + #[inline(always)] + pub fn set_sig_with_long_val_table_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Sig_with_long_val_table_2`. #[inline(always)] pub fn set_sig_with_long_val_table_2( &mut self, @@ -904,22 +883,15 @@ impl MsgWithValueTableSigs { message_id: MsgWithValueTableSigs::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgWithValueTableSigs::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_with_long_val_table_1' + /// Returns the value of `Sig_with_long_val_table_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn sig_with_long_val_table_1( @@ -933,27 +905,32 @@ impl MsgWithValueTableSigs { 0 => MsgWithValueTableSigsSigWithLongValTable1::DescriptionForTheValue0x0, _ => { MsgWithValueTableSigsSigWithLongValTable1::_Other( - self.sig_with_long_val_table_1_raw(), + self.sig_with_long_val_table_1_phys_val(), ) } } } - /// Get raw value of 'Sig_with_long_val_table_1' + #[inline(always)] + fn sig_with_long_val_table_1_phys_val(&self) -> i8 { + self.sig_with_long_val_table_1_raw_val() + } + /// Returns the raw value of `Sig_with_long_val_table_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_with_long_val_table_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_with_long_val_table_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_with_long_val_table_1' + /// Sets the raw value of `Sig_with_long_val_table_1`. + #[inline(always)] + pub fn set_sig_with_long_val_table_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_with_long_val_table_1`. #[inline(always)] pub fn set_sig_with_long_val_table_1( &mut self, @@ -965,13 +942,6 @@ impl MsgWithValueTableSigs { message_id: MsgWithValueTableSigs::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgWithValueTableSigs::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -1148,7 +1118,7 @@ impl MsgLongName5678912345670000 { pub const RX_TWICE_11111111111111111111111_MAX: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0001_MIN: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0001_MAX: i8 = 0_i8; - /// Construct new 'Msg_Long_Name_56789_1234567_0000' from values + /// Constructs a new `Msg_Long_Name_56789_1234567_0000` message from values. pub fn new( rx_twice_11111111111111111111111: i8, sig_used_twice_efgh_abcdefg_0001: i8, @@ -1158,36 +1128,39 @@ impl MsgLongName5678912345670000 { res.set_sig_used_twice_efgh_abcdefg_0001(sig_used_twice_efgh_abcdefg_0001)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_Long_Name_56789_1234567_0000` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'rx_twice_11111111111111111111111' + /// Returns the value of `rx_twice_11111111111111111111111`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_11111111111111111111111(&self) -> i8 { - self.rx_twice_11111111111111111111111_raw() + self.rx_twice_11111111111111111111111_raw_val() } - /// Get raw value of 'rx_twice_11111111111111111111111' + /// Returns the raw value of `rx_twice_11111111111111111111111`. /// /// - Start bit: 8 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_11111111111111111111111_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..10].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_11111111111111111111111_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..10].load_le::() + } + /// Sets the raw value of `rx_twice_11111111111111111111111`. + #[inline(always)] + pub fn set_rx_twice_11111111111111111111111_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..10].store_le(value); } - /// Set value of 'rx_twice_11111111111111111111111' + /// Sets the value of `rx_twice_11111111111111111111111`. #[inline(always)] pub fn set_rx_twice_11111111111111111111111( &mut self, @@ -1198,43 +1171,39 @@ impl MsgLongName5678912345670000 { message_id: MsgLongName5678912345670000::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670000::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..10].store_le(value); Ok(()) } - /// Get value of 'Sig_used_twice_efgh_abcdefg_0001' + /// Returns the value of `Sig_used_twice_efgh_abcdefg_0001`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefg_0001(&self) -> i8 { - self.sig_used_twice_efgh_abcdefg_0001_raw() + self.sig_used_twice_efgh_abcdefg_0001_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefg_0001' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefg_0001`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefg_0001_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefg_0001_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_used_twice_efgh_abcdefg_0001' + /// Sets the raw value of `Sig_used_twice_efgh_abcdefg_0001`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefg_0001_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_used_twice_efgh_abcdefg_0001`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefg_0001( &mut self, @@ -1245,13 +1214,6 @@ impl MsgLongName5678912345670000 { message_id: MsgLongName5678912345670000::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670000::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -1321,7 +1283,7 @@ impl MsgLongName5678912345670001 { pub const RX_TWICE_SHORT_MAX: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0002_MIN: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0002_MAX: i8 = 0_i8; - /// Construct new 'Msg_Long_Name_56789_1234567_0001' from values + /// Constructs a new `Msg_Long_Name_56789_1234567_0001` message from values. pub fn new( rx_twice_short: i8, sig_used_twice_efgh_abcdefg_0002: i8, @@ -1331,36 +1293,39 @@ impl MsgLongName5678912345670001 { res.set_sig_used_twice_efgh_abcdefg_0002(sig_used_twice_efgh_abcdefg_0002)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_Long_Name_56789_1234567_0001` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'rx_twice_short' + /// Returns the value of `rx_twice_short`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_short(&self) -> i8 { - self.rx_twice_short_raw() + self.rx_twice_short_raw_val() } - /// Get raw value of 'rx_twice_short' + /// Returns the raw value of `rx_twice_short`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_short_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_short_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'rx_twice_short' + /// Sets the raw value of `rx_twice_short`. + #[inline(always)] + pub fn set_rx_twice_short_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `rx_twice_short`. #[inline(always)] pub fn set_rx_twice_short(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -1368,43 +1333,39 @@ impl MsgLongName5678912345670001 { message_id: MsgLongName5678912345670001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_used_twice_efgh_abcdefg_0002' + /// Returns the value of `Sig_used_twice_efgh_abcdefg_0002`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefg_0002(&self) -> i8 { - self.sig_used_twice_efgh_abcdefg_0002_raw() + self.sig_used_twice_efgh_abcdefg_0002_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefg_0002' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefg_0002`. /// /// - Start bit: 0 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefg_0002_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..6].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefg_0002_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..6].load_le::() } - /// Set value of 'Sig_used_twice_efgh_abcdefg_0002' + /// Sets the raw value of `Sig_used_twice_efgh_abcdefg_0002`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefg_0002_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..6].store_le(value); + } + /// Sets the value of `Sig_used_twice_efgh_abcdefg_0002`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefg_0002( &mut self, @@ -1415,13 +1376,6 @@ impl MsgLongName5678912345670001 { message_id: MsgLongName5678912345670001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..6].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.stderr b/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.stderr index 8534f442..a2751c9a 100644 --- a/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.stderr +++ b/tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.stderr @@ -10,86 +10,86 @@ error[E0428]: the name `MsgCaseTest` is defined multiple times = note: `MsgCaseTest` must be defined only once in the type namespace of this enum error[E0428]: the name `MsgCaseTest` is defined multiple times - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:677:1 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:653:1 | -607 | pub struct MsgCaseTest { +583 | pub struct MsgCaseTest { | ---------------------- previous definition of the type `MsgCaseTest` here ... -677 | pub struct MsgCaseTest { +653 | pub struct MsgCaseTest { | ^^^^^^^^^^^^^^^^^^^^^^ `MsgCaseTest` redefined here | = note: `MsgCaseTest` must be defined only once in the type namespace of this module error[E0119]: conflicting implementations of trait `Clone` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:676:10 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:652:10 | -606 | #[derive(Clone, Copy)] +582 | #[derive(Clone, Copy)] | ----- first implementation here ... -676 | #[derive(Clone, Copy)] +652 | #[derive(Clone, Copy)] | ^^^^^ conflicting implementation for `MsgCaseTest` error[E0119]: conflicting implementations of trait `Copy` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:676:17 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:652:17 | -606 | #[derive(Clone, Copy)] +582 | #[derive(Clone, Copy)] | ---- first implementation here ... -676 | #[derive(Clone, Copy)] +652 | #[derive(Clone, Copy)] | ^^^^ conflicting implementation for `MsgCaseTest` error[E0119]: conflicting implementations of trait `TryFrom<&[u8]>` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:704:1 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:680:1 | -634 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { +610 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { | -------------------------------------------------- first implementation here ... -704 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { +680 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MsgCaseTest` error[E0119]: conflicting implementations of trait `Frame` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:716:1 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:692:1 | -646 | impl embedded_can::Frame for MsgCaseTest { +622 | impl embedded_can::Frame for MsgCaseTest { | ---------------------------------------- first implementation here ... -716 | impl embedded_can::Frame for MsgCaseTest { +692 | impl embedded_can::Frame for MsgCaseTest { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MsgCaseTest` error[E0592]: duplicate definitions with name `MESSAGE_ID` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `MESSAGE_ID` ... -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | -------------------------------------- other definition for `MESSAGE_ID` error[E0592]: duplicate definitions with name `MESSAGE_SIZE` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:623:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:599:5 | -623 | pub const MESSAGE_SIZE: usize = 8; +599 | pub const MESSAGE_SIZE: usize = 8; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `MESSAGE_SIZE` ... -693 | pub const MESSAGE_SIZE: usize = 8; +669 | pub const MESSAGE_SIZE: usize = 8; | ----------------------------- other definition for `MESSAGE_SIZE` error[E0592]: duplicate definitions with name `new` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:625:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:601:5 | -625 | pub fn new() -> Result { +601 | pub fn new() -> Result { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `new` ... -695 | pub fn new() -> Result { +671 | pub fn new() -> Result { | -------------------------------------- other definition for `new` error[E0592]: duplicate definitions with name `raw` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:630:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:606:5 | -630 | pub fn raw(&self) -> &[u8; 8] { +606 | pub fn raw(&self) -> &[u8; 8] { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `raw` ... -700 | pub fn raw(&self) -> &[u8; 8] { +676 | pub fn raw(&self) -> &[u8; 8] { | ----------------------------- other definition for `raw` error[E0034]: multiple applicable items in scope @@ -99,14 +99,14 @@ error[E0034]: multiple applicable items in scope | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope @@ -116,80 +116,80 @@ error[E0034]: multiple applicable items in scope | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:648:31 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:624:31 | -648 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } +624 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:663:15 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:639:15 | -663 | Self::MESSAGE_ID +639 | Self::MESSAGE_ID | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:718:31 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:694:31 | -718 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } +694 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:733:15 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:709:15 | -733 | Self::MESSAGE_ID +709 | Self::MESSAGE_ID | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs b/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs index e96d9e14..6880c7ce 100644 --- a/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs +++ b/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs @@ -114,7 +114,7 @@ impl MsgLongName5678912345678912 { pub const RX_TWICE_11111111111111111111111_MAX: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFGHI_AB_MIN: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFGHI_AB_MAX: i8 = 0_i8; - /// Construct new 'Msg_Long_Name_56789_123456789_12' from values + /// Constructs a new `Msg_Long_Name_56789_123456789_12` message from values. pub fn new( rx_twice_short: i32, rx_twice_11111111111111111111111: i8, @@ -126,36 +126,39 @@ impl MsgLongName5678912345678912 { res.set_sig_used_twice_efgh_abcdefghi_ab(sig_used_twice_efgh_abcdefghi_ab)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_Long_Name_56789_123456789_12` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'rx_twice_short' + /// Returns the value of `rx_twice_short`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_short(&self) -> i32 { - self.rx_twice_short_raw() + self.rx_twice_short_raw_val() } - /// Get raw value of 'rx_twice_short' + /// Returns the raw value of `rx_twice_short`. /// /// - Start bit: 16 /// - Signal size: 18 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_short_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[16..34].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_short_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..34].load_le::() + } + /// Sets the raw value of `rx_twice_short`. + #[inline(always)] + pub fn set_rx_twice_short_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..34].store_le(value); } - /// Set value of 'rx_twice_short' + /// Sets the value of `rx_twice_short`. #[inline(always)] pub fn set_rx_twice_short(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -163,43 +166,39 @@ impl MsgLongName5678912345678912 { message_id: MsgLongName5678912345678912::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345678912::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..34].store_le(value); Ok(()) } - /// Get value of 'rx_twice_11111111111111111111111' + /// Returns the value of `rx_twice_11111111111111111111111`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_11111111111111111111111(&self) -> i8 { - self.rx_twice_11111111111111111111111_raw() + self.rx_twice_11111111111111111111111_raw_val() } - /// Get raw value of 'rx_twice_11111111111111111111111' + /// Returns the raw value of `rx_twice_11111111111111111111111`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_11111111111111111111111_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_11111111111111111111111_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `rx_twice_11111111111111111111111`. + #[inline(always)] + pub fn set_rx_twice_11111111111111111111111_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'rx_twice_11111111111111111111111' + /// Sets the value of `rx_twice_11111111111111111111111`. #[inline(always)] pub fn set_rx_twice_11111111111111111111111( &mut self, @@ -210,43 +209,39 @@ impl MsgLongName5678912345678912 { message_id: MsgLongName5678912345678912::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345678912::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_used_twice_efgh_abcdefghi_ab' + /// Returns the value of `Sig_used_twice_efgh_abcdefghi_ab`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefghi_ab(&self) -> i8 { - self.sig_used_twice_efgh_abcdefghi_ab_raw() + self.sig_used_twice_efgh_abcdefghi_ab_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefghi_ab' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefghi_ab`. /// /// - Start bit: 0 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefghi_ab_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..6].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefghi_ab_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..6].load_le::() } - /// Set value of 'Sig_used_twice_efgh_abcdefghi_ab' + /// Sets the raw value of `Sig_used_twice_efgh_abcdefghi_ab`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefghi_ab_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..6].store_le(value); + } + /// Sets the value of `Sig_used_twice_efgh_abcdefghi_ab`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefghi_ab( &mut self, @@ -257,13 +252,6 @@ impl MsgLongName5678912345678912 { message_id: MsgLongName5678912345678912::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345678912::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..6].store_le(value); Ok(()) @@ -334,7 +322,7 @@ impl TxTwice { pub const RX_TWICE_LONG_YYYYYYYYYYYYYYYYYY_MAX: i8 = 0_i8; pub const RX_TWICE_SHORT_MIN: i8 = 0_i8; pub const RX_TWICE_SHORT_MAX: i8 = 0_i8; - /// Construct new 'TX_twice' from values + /// Constructs a new `TX_twice` message from values. pub fn new( rx_twice_long_yyyyyyyyyyyyyyyyyy: i8, rx_twice_short: i8, @@ -344,36 +332,39 @@ impl TxTwice { res.set_rx_twice_short(rx_twice_short)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TX_twice` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'rx_twice_long_yyyyyyyyyyyyyyyyyy' + /// Returns the value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Receiver_1, Receiver_2_zzzzzzzzzzzzzzzzzzzzz + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_long_yyyyyyyyyyyyyyyyyy(&self) -> i8 { - self.rx_twice_long_yyyyyyyyyyyyyyyyyy_raw() + self.rx_twice_long_yyyyyyyyyyyyyyyyyy_raw_val() } - /// Get raw value of 'rx_twice_long_yyyyyyyyyyyyyyyyyy' + /// Returns the raw value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_long_yyyyyyyyyyyyyyyyyy_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_long_yyyyyyyyyyyyyyyyyy_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. + #[inline(always)] + pub fn set_rx_twice_long_yyyyyyyyyyyyyyyyyy_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'rx_twice_long_yyyyyyyyyyyyyyyyyy' + /// Sets the value of `rx_twice_long_yyyyyyyyyyyyyyyyyy`. #[inline(always)] pub fn set_rx_twice_long_yyyyyyyyyyyyyyyyyy( &mut self, @@ -384,43 +375,39 @@ impl TxTwice { message_id: TxTwice::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TxTwice::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'rx_twice_short' + /// Returns the value of `rx_twice_short`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Receiver_2_zzzzzzzzzzzzzzzzzzzzz, Receiver_1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_short(&self) -> i8 { - self.rx_twice_short_raw() + self.rx_twice_short_raw_val() } - /// Get raw value of 'rx_twice_short' + /// Returns the raw value of `rx_twice_short`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_short_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_short_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'rx_twice_short' + /// Sets the raw value of `rx_twice_short`. + #[inline(always)] + pub fn set_rx_twice_short_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `rx_twice_short`. #[inline(always)] pub fn set_rx_twice_short(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -428,13 +415,6 @@ impl TxTwice { message_id: TxTwice::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TxTwice::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -503,42 +483,45 @@ impl RxTx1 { pub const MESSAGE_SIZE: usize = 8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0000_MIN: i16 = 0_i16; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0000_MAX: i16 = 0_i16; - /// Construct new 'RX_TX_1' from values + /// Constructs a new `RX_TX_1` message from values. pub fn new(sig_used_twice_efgh_abcdefg_0000: i16) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_used_twice_efgh_abcdefg_0000(sig_used_twice_efgh_abcdefg_0000)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RX_TX_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Sig_used_twice_efgh_abcdefg_0000' + /// Returns the value of `Sig_used_twice_efgh_abcdefg_0000`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefg_0000(&self) -> i16 { - self.sig_used_twice_efgh_abcdefg_0000_raw() + self.sig_used_twice_efgh_abcdefg_0000_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefg_0000' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefg_0000`. /// /// - Start bit: 0 /// - Signal size: 9 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefg_0000_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[0..9].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefg_0000_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..9].load_le::() + } + /// Sets the raw value of `Sig_used_twice_efgh_abcdefg_0000`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefg_0000_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..9].store_le(value); } - /// Set value of 'Sig_used_twice_efgh_abcdefg_0000' + /// Sets the value of `Sig_used_twice_efgh_abcdefg_0000`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefg_0000( &mut self, @@ -549,13 +532,6 @@ impl RxTx1 { message_id: RxTx1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RxTx1::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..9].store_le(value); Ok(()) @@ -621,12 +597,12 @@ impl MsgCaseTest { StandardId::new_unchecked(0x4) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'MSG_CASE_TEST' from values + /// Constructs a new `MSG_CASE_TEST` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MSG_CASE_TEST` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -691,12 +667,12 @@ impl MsgCaseTest { StandardId::new_unchecked(0x3) }); pub const MESSAGE_SIZE: usize = 8; - /// Construct new 'msg_case_test' from values + /// Constructs a new `msg_case_test` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 8] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `msg_case_test` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } @@ -767,7 +743,7 @@ impl MsgWithValueTableSigs { pub const SIG_WITH_LONG_VAL_TABLE_2_MAX: i8 = 0_i8; pub const SIG_WITH_LONG_VAL_TABLE_1_MIN: i8 = 0_i8; pub const SIG_WITH_LONG_VAL_TABLE_1_MAX: i8 = 0_i8; - /// Construct new 'Msg_with_value_table_sigs' from values + /// Constructs a new `Msg_with_value_table_sigs` message from values. pub fn new( sig_with_short_val_table: MsgWithValueTableSigsSigWithShortValTable, sig_with_long_val_table_2: MsgWithValueTableSigsSigWithLongValTable2, @@ -779,15 +755,15 @@ impl MsgWithValueTableSigs { res.set_sig_with_long_val_table_1(sig_with_long_val_table_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_with_value_table_sigs` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Sig_with_short_val_table' + /// Returns the value of `Sig_with_short_val_table`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn sig_with_short_val_table(&self) -> MsgWithValueTableSigsSigWithShortValTable { @@ -801,27 +777,32 @@ impl MsgWithValueTableSigs { } _ => { MsgWithValueTableSigsSigWithShortValTable::_Other( - self.sig_with_short_val_table_raw(), + self.sig_with_short_val_table_phys_val(), ) } } } - /// Get raw value of 'Sig_with_short_val_table' + #[inline(always)] + fn sig_with_short_val_table_phys_val(&self) -> i8 { + self.sig_with_short_val_table_raw_val() + } + /// Returns the raw value of `Sig_with_short_val_table`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_with_short_val_table_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_with_short_val_table_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'Sig_with_short_val_table' + /// Sets the raw value of `Sig_with_short_val_table`. + #[inline(always)] + pub fn set_sig_with_short_val_table_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `Sig_with_short_val_table`. #[inline(always)] pub fn set_sig_with_short_val_table( &mut self, @@ -833,22 +814,15 @@ impl MsgWithValueTableSigs { message_id: MsgWithValueTableSigs::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgWithValueTableSigs::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Sig_with_long_val_table_2' + /// Returns the value of `Sig_with_long_val_table_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn sig_with_long_val_table_2( @@ -872,27 +846,32 @@ impl MsgWithValueTableSigs { 0 => MsgWithValueTableSigsSigWithLongValTable2::Value0x0, _ => { MsgWithValueTableSigsSigWithLongValTable2::_Other( - self.sig_with_long_val_table_2_raw(), + self.sig_with_long_val_table_2_phys_val(), ) } } } - /// Get raw value of 'Sig_with_long_val_table_2' + #[inline(always)] + fn sig_with_long_val_table_2_phys_val(&self) -> i8 { + self.sig_with_long_val_table_2_raw_val() + } + /// Returns the raw value of `Sig_with_long_val_table_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_with_long_val_table_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_with_long_val_table_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Sig_with_long_val_table_2' + /// Sets the raw value of `Sig_with_long_val_table_2`. + #[inline(always)] + pub fn set_sig_with_long_val_table_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Sig_with_long_val_table_2`. #[inline(always)] pub fn set_sig_with_long_val_table_2( &mut self, @@ -904,22 +883,15 @@ impl MsgWithValueTableSigs { message_id: MsgWithValueTableSigs::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgWithValueTableSigs::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_with_long_val_table_1' + /// Returns the value of `Sig_with_long_val_table_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn sig_with_long_val_table_1( @@ -933,27 +905,32 @@ impl MsgWithValueTableSigs { 0 => MsgWithValueTableSigsSigWithLongValTable1::DescriptionForTheValue0x0, _ => { MsgWithValueTableSigsSigWithLongValTable1::_Other( - self.sig_with_long_val_table_1_raw(), + self.sig_with_long_val_table_1_phys_val(), ) } } } - /// Get raw value of 'Sig_with_long_val_table_1' + #[inline(always)] + fn sig_with_long_val_table_1_phys_val(&self) -> i8 { + self.sig_with_long_val_table_1_raw_val() + } + /// Returns the raw value of `Sig_with_long_val_table_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_with_long_val_table_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_with_long_val_table_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_with_long_val_table_1' + /// Sets the raw value of `Sig_with_long_val_table_1`. + #[inline(always)] + pub fn set_sig_with_long_val_table_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_with_long_val_table_1`. #[inline(always)] pub fn set_sig_with_long_val_table_1( &mut self, @@ -965,13 +942,6 @@ impl MsgWithValueTableSigs { message_id: MsgWithValueTableSigs::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgWithValueTableSigs::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -1148,7 +1118,7 @@ impl MsgLongName5678912345670000 { pub const RX_TWICE_11111111111111111111111_MAX: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0001_MIN: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0001_MAX: i8 = 0_i8; - /// Construct new 'Msg_Long_Name_56789_1234567_0000' from values + /// Constructs a new `Msg_Long_Name_56789_1234567_0000` message from values. pub fn new( rx_twice_11111111111111111111111: i8, sig_used_twice_efgh_abcdefg_0001: i8, @@ -1158,36 +1128,39 @@ impl MsgLongName5678912345670000 { res.set_sig_used_twice_efgh_abcdefg_0001(sig_used_twice_efgh_abcdefg_0001)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_Long_Name_56789_1234567_0000` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'rx_twice_11111111111111111111111' + /// Returns the value of `rx_twice_11111111111111111111111`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_11111111111111111111111(&self) -> i8 { - self.rx_twice_11111111111111111111111_raw() + self.rx_twice_11111111111111111111111_raw_val() } - /// Get raw value of 'rx_twice_11111111111111111111111' + /// Returns the raw value of `rx_twice_11111111111111111111111`. /// /// - Start bit: 8 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_11111111111111111111111_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..10].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_11111111111111111111111_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..10].load_le::() + } + /// Sets the raw value of `rx_twice_11111111111111111111111`. + #[inline(always)] + pub fn set_rx_twice_11111111111111111111111_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..10].store_le(value); } - /// Set value of 'rx_twice_11111111111111111111111' + /// Sets the value of `rx_twice_11111111111111111111111`. #[inline(always)] pub fn set_rx_twice_11111111111111111111111( &mut self, @@ -1198,43 +1171,39 @@ impl MsgLongName5678912345670000 { message_id: MsgLongName5678912345670000::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670000::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..10].store_le(value); Ok(()) } - /// Get value of 'Sig_used_twice_efgh_abcdefg_0001' + /// Returns the value of `Sig_used_twice_efgh_abcdefg_0001`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefg_0001(&self) -> i8 { - self.sig_used_twice_efgh_abcdefg_0001_raw() + self.sig_used_twice_efgh_abcdefg_0001_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefg_0001' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefg_0001`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefg_0001_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefg_0001_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_used_twice_efgh_abcdefg_0001' + /// Sets the raw value of `Sig_used_twice_efgh_abcdefg_0001`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefg_0001_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_used_twice_efgh_abcdefg_0001`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefg_0001( &mut self, @@ -1245,13 +1214,6 @@ impl MsgLongName5678912345670000 { message_id: MsgLongName5678912345670000::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670000::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -1321,7 +1283,7 @@ impl MsgLongName5678912345670001 { pub const RX_TWICE_SHORT_MAX: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0002_MIN: i8 = 0_i8; pub const SIG_USED_TWICE_EFGH_ABCDEFG_0002_MAX: i8 = 0_i8; - /// Construct new 'Msg_Long_Name_56789_1234567_0001' from values + /// Constructs a new `Msg_Long_Name_56789_1234567_0001` message from values. pub fn new( rx_twice_short: i8, sig_used_twice_efgh_abcdefg_0002: i8, @@ -1331,36 +1293,39 @@ impl MsgLongName5678912345670001 { res.set_sig_used_twice_efgh_abcdefg_0002(sig_used_twice_efgh_abcdefg_0002)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_Long_Name_56789_1234567_0001` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'rx_twice_short' + /// Returns the value of `rx_twice_short`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rx_twice_short(&self) -> i8 { - self.rx_twice_short_raw() + self.rx_twice_short_raw_val() } - /// Get raw value of 'rx_twice_short' + /// Returns the raw value of `rx_twice_short`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rx_twice_short_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rx_twice_short_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'rx_twice_short' + /// Sets the raw value of `rx_twice_short`. + #[inline(always)] + pub fn set_rx_twice_short_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `rx_twice_short`. #[inline(always)] pub fn set_rx_twice_short(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -1368,43 +1333,39 @@ impl MsgLongName5678912345670001 { message_id: MsgLongName5678912345670001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_used_twice_efgh_abcdefg_0002' + /// Returns the value of `Sig_used_twice_efgh_abcdefg_0002`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_used_twice_efgh_abcdefg_0002(&self) -> i8 { - self.sig_used_twice_efgh_abcdefg_0002_raw() + self.sig_used_twice_efgh_abcdefg_0002_raw_val() } - /// Get raw value of 'Sig_used_twice_efgh_abcdefg_0002' + /// Returns the raw value of `Sig_used_twice_efgh_abcdefg_0002`. /// /// - Start bit: 0 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_used_twice_efgh_abcdefg_0002_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..6].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_used_twice_efgh_abcdefg_0002_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..6].load_le::() } - /// Set value of 'Sig_used_twice_efgh_abcdefg_0002' + /// Sets the raw value of `Sig_used_twice_efgh_abcdefg_0002`. + #[inline(always)] + pub fn set_sig_used_twice_efgh_abcdefg_0002_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..6].store_le(value); + } + /// Sets the value of `Sig_used_twice_efgh_abcdefg_0002`. #[inline(always)] pub fn set_sig_used_twice_efgh_abcdefg_0002( &mut self, @@ -1415,13 +1376,6 @@ impl MsgLongName5678912345670001 { message_id: MsgLongName5678912345670001::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgLongName5678912345670001::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..6].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.stderr b/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.stderr index 3728a191..bfa0c0ae 100644 --- a/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.stderr +++ b/tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.stderr @@ -10,86 +10,86 @@ error[E0428]: the name `MsgCaseTest` is defined multiple times = note: `MsgCaseTest` must be defined only once in the type namespace of this enum error[E0428]: the name `MsgCaseTest` is defined multiple times - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:677:1 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:653:1 | -607 | pub struct MsgCaseTest { +583 | pub struct MsgCaseTest { | ---------------------- previous definition of the type `MsgCaseTest` here ... -677 | pub struct MsgCaseTest { +653 | pub struct MsgCaseTest { | ^^^^^^^^^^^^^^^^^^^^^^ `MsgCaseTest` redefined here | = note: `MsgCaseTest` must be defined only once in the type namespace of this module error[E0119]: conflicting implementations of trait `Clone` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:676:10 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:652:10 | -606 | #[derive(Clone, Copy)] +582 | #[derive(Clone, Copy)] | ----- first implementation here ... -676 | #[derive(Clone, Copy)] +652 | #[derive(Clone, Copy)] | ^^^^^ conflicting implementation for `MsgCaseTest` error[E0119]: conflicting implementations of trait `Copy` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:676:17 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:652:17 | -606 | #[derive(Clone, Copy)] +582 | #[derive(Clone, Copy)] | ---- first implementation here ... -676 | #[derive(Clone, Copy)] +652 | #[derive(Clone, Copy)] | ^^^^ conflicting implementation for `MsgCaseTest` error[E0119]: conflicting implementations of trait `TryFrom<&[u8]>` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:704:1 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:680:1 | -634 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { +610 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { | -------------------------------------------------- first implementation here ... -704 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { +680 | impl core::convert::TryFrom<&[u8]> for MsgCaseTest { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MsgCaseTest` error[E0119]: conflicting implementations of trait `Frame` for type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:716:1 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:692:1 | -646 | impl embedded_can::Frame for MsgCaseTest { +622 | impl embedded_can::Frame for MsgCaseTest { | ---------------------------------------- first implementation here ... -716 | impl embedded_can::Frame for MsgCaseTest { +692 | impl embedded_can::Frame for MsgCaseTest { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MsgCaseTest` error[E0592]: duplicate definitions with name `MESSAGE_ID` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `MESSAGE_ID` ... -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | -------------------------------------- other definition for `MESSAGE_ID` error[E0592]: duplicate definitions with name `MESSAGE_SIZE` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:623:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:599:5 | -623 | pub const MESSAGE_SIZE: usize = 8; +599 | pub const MESSAGE_SIZE: usize = 8; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `MESSAGE_SIZE` ... -693 | pub const MESSAGE_SIZE: usize = 8; +669 | pub const MESSAGE_SIZE: usize = 8; | ----------------------------- other definition for `MESSAGE_SIZE` error[E0592]: duplicate definitions with name `new` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:625:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:601:5 | -625 | pub fn new() -> Result { +601 | pub fn new() -> Result { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `new` ... -695 | pub fn new() -> Result { +671 | pub fn new() -> Result { | -------------------------------------- other definition for `new` error[E0592]: duplicate definitions with name `raw` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:630:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:606:5 | -630 | pub fn raw(&self) -> &[u8; 8] { +606 | pub fn raw(&self) -> &[u8; 8] { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `raw` ... -700 | pub fn raw(&self) -> &[u8; 8] { +676 | pub fn raw(&self) -> &[u8; 8] { | ----------------------------- other definition for `raw` error[E0034]: multiple applicable items in scope @@ -99,14 +99,14 @@ error[E0034]: multiple applicable items in scope | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope @@ -116,80 +116,80 @@ error[E0034]: multiple applicable items in scope | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:648:31 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:624:31 | -648 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } +624 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:663:15 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:639:15 | -663 | Self::MESSAGE_ID +639 | Self::MESSAGE_ID | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:718:31 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:694:31 | -718 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } +694 | if id.into() != Self::MESSAGE_ID { None } else { data.try_into().ok() } | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0034]: multiple applicable items in scope - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:733:15 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:709:15 | -733 | Self::MESSAGE_ID +709 | Self::MESSAGE_ID | ^^^^^^^^^^ multiple `MESSAGE_ID` found | note: candidate #1 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:620:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:596:5 | -620 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +596 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `MsgCaseTest` - --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:690:5 + --> tests-snapshots/dbc-cantools/long_names_multiple_relations_dumped.snap.rs:666:5 | -690 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { +666 | pub const MESSAGE_ID: embedded_can::Id = Id::Standard(unsafe { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests-snapshots/dbc-cantools/message-dlc-zero.snap.rs b/tests-snapshots/dbc-cantools/message-dlc-zero.snap.rs index be9edc8e..462b7814 100644 --- a/tests-snapshots/dbc-cantools/message-dlc-zero.snap.rs +++ b/tests-snapshots/dbc-cantools/message-dlc-zero.snap.rs @@ -68,12 +68,12 @@ impl Message1 { StandardId::new_unchecked(0x400) }); pub const MESSAGE_SIZE: usize = 0; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 0] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 0] { &self.raw } diff --git a/tests-snapshots/dbc-cantools/mod_name_len_dest.snap.rs b/tests-snapshots/dbc-cantools/mod_name_len_dest.snap.rs index 8c77d0c6..62b29dbc 100644 --- a/tests-snapshots/dbc-cantools/mod_name_len_dest.snap.rs +++ b/tests-snapshots/dbc-cantools/mod_name_len_dest.snap.rs @@ -72,41 +72,44 @@ impl MsgNowShort { pub const MESSAGE_SIZE: usize = 8; pub const SIG_NOW_SHORT_MIN: u8 = 0_u8; pub const SIG_NOW_SHORT_MAX: u8 = 0_u8; - /// Construct new 'msg_now_short' from values + /// Constructs a new `msg_now_short` message from values. pub fn new(sig_now_short: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_now_short(sig_now_short)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `msg_now_short` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'sig_now_short' + /// Returns the value of `sig_now_short`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_now_short(&self) -> u8 { - self.sig_now_short_raw() + self.sig_now_short_raw_val() } - /// Get raw value of 'sig_now_short' + /// Returns the raw value of `sig_now_short`. /// /// - Start bit: 1 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sig_now_short_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[1..9].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_now_short_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..9].load_le::() } - /// Set value of 'sig_now_short' + /// Sets the raw value of `sig_now_short`. + #[inline(always)] + pub fn set_sig_now_short_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..9].store_le(value); + } + /// Sets the value of `sig_now_short`. #[inline(always)] pub fn set_sig_now_short(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -114,13 +117,6 @@ impl MsgNowShort { message_id: MsgNowShort::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgNowShort::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[1..9].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/mod_name_len_src.snap.rs b/tests-snapshots/dbc-cantools/mod_name_len_src.snap.rs index 4d8f34ca..339c1b12 100644 --- a/tests-snapshots/dbc-cantools/mod_name_len_src.snap.rs +++ b/tests-snapshots/dbc-cantools/mod_name_len_src.snap.rs @@ -74,41 +74,44 @@ impl MsgWillBeShortened345678912 { pub const MESSAGE_SIZE: usize = 8; pub const SIG_WILL_BE_SHORTENED_3456789_12_MIN: u8 = 0_u8; pub const SIG_WILL_BE_SHORTENED_3456789_12_MAX: u8 = 0_u8; - /// Construct new 'Msg_will_be_shortened_3456789_12' from values + /// Constructs a new `Msg_will_be_shortened_3456789_12` message from values. pub fn new(sig_will_be_shortened_3456789_12: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_will_be_shortened_3456789_12(sig_will_be_shortened_3456789_12)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Msg_will_be_shortened_3456789_12` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Sig_will_be_shortened_3456789_12' + /// Returns the value of `Sig_will_be_shortened_3456789_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_will_be_shortened_3456789_12(&self) -> u8 { - self.sig_will_be_shortened_3456789_12_raw() + self.sig_will_be_shortened_3456789_12_raw_val() } - /// Get raw value of 'Sig_will_be_shortened_3456789_12' + /// Returns the raw value of `Sig_will_be_shortened_3456789_12`. /// /// - Start bit: 1 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sig_will_be_shortened_3456789_12_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[1..9].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_will_be_shortened_3456789_12_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..9].load_le::() } - /// Set value of 'Sig_will_be_shortened_3456789_12' + /// Sets the raw value of `Sig_will_be_shortened_3456789_12`. + #[inline(always)] + pub fn set_sig_will_be_shortened_3456789_12_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..9].store_le(value); + } + /// Sets the value of `Sig_will_be_shortened_3456789_12`. #[inline(always)] pub fn set_sig_will_be_shortened_3456789_12( &mut self, @@ -119,13 +122,6 @@ impl MsgWillBeShortened345678912 { message_id: MsgWillBeShortened345678912::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MsgWillBeShortened345678912::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[1..9].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/motohawk.snap.rs b/tests-snapshots/dbc-cantools/motohawk.snap.rs index 64c4c1cb..6d8456cf 100644 --- a/tests-snapshots/dbc-cantools/motohawk.snap.rs +++ b/tests-snapshots/dbc-cantools/motohawk.snap.rs @@ -76,7 +76,7 @@ impl ExampleMessage { pub const TEMPERATURE_MAX: f32 = 270.47_f32; pub const AVERAGE_RADIUS_MIN: f32 = 0_f32; pub const AVERAGE_RADIUS_MAX: f32 = 5_f32; - /// Construct new 'ExampleMessage' from values + /// Constructs a new `ExampleMessage` message from values. pub fn new( temperature: f32, average_radius: f32, @@ -88,36 +88,42 @@ impl ExampleMessage { res.set_enable(enable)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ExampleMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Temperature' + /// Returns the value of `Temperature`. /// /// - Min: 229.52 /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: PCM1, FOO + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn temperature(&self) -> f32 { - self.temperature_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature' + /// Returns the raw value of `Temperature`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn temperature_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() } - /// Set value of 'Temperature' + /// Sets the raw value of `Temperature`. + #[inline(always)] + pub fn set_temperature_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); + } + /// Sets the value of `Temperature`. #[inline(always)] pub fn set_temperature(&mut self, value: f32) -> Result<(), CanError> { if value < 229.52_f32 || 270.47_f32 < value { @@ -132,32 +138,37 @@ impl ExampleMessage { self.raw.view_bits_mut::()[7..19].store_be(value); Ok(()) } - /// Get value of 'AverageRadius' + /// Returns the value of `AverageRadius`. /// /// - Min: 0 /// - Max: 5 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn average_radius(&self) -> f32 { - self.average_radius_raw() + let signal = self.raw.view_bits::()[1..7].load_be::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AverageRadius' + /// Returns the raw value of `AverageRadius`. /// /// - Start bit: 6 /// - Signal size: 6 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn average_radius_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[1..7].load_be::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn average_radius_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..7].load_be::() } - /// Set value of 'AverageRadius' + /// Sets the raw value of `AverageRadius`. + #[inline(always)] + pub fn set_average_radius_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..7].store_be(value); + } + /// Sets the value of `AverageRadius`. #[inline(always)] pub fn set_average_radius(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 5_f32 < value { @@ -171,7 +182,7 @@ impl ExampleMessage { self.raw.view_bits_mut::()[1..7].store_be(value); Ok(()) } - /// Get value of 'Enable' + /// Returns the value of `Enable`. /// /// - Min: 0 /// - Max: 0 @@ -183,23 +194,29 @@ impl ExampleMessage { match signal { 0 => ExampleMessageEnable::Disabled, 1 => ExampleMessageEnable::Enabled, - _ => ExampleMessageEnable::_Other(self.enable_raw()), + _ => ExampleMessageEnable::_Other(self.enable_phys_val()), } } - /// Get raw value of 'Enable' + #[inline(always)] + fn enable_phys_val(&self) -> bool { + self.enable_raw_val() == 1 + } + /// Returns the raw value of `Enable`. /// /// - Start bit: 7 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn enable_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_be::(); - signal == 1 + pub fn enable_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_be::() + } + /// Sets the raw value of `Enable`. + #[inline(always)] + pub fn set_enable_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_be(value); } - /// Set value of 'Enable' + /// Sets the value of `Enable`. #[inline(always)] pub fn set_enable(&mut self, value: ExampleMessageEnable) -> Result<(), CanError> { let value = bool::from(value); diff --git a/tests-snapshots/dbc-cantools/motohawk_fd.snap.rs b/tests-snapshots/dbc-cantools/motohawk_fd.snap.rs index 3f23a4eb..6a2ed5f8 100644 --- a/tests-snapshots/dbc-cantools/motohawk_fd.snap.rs +++ b/tests-snapshots/dbc-cantools/motohawk_fd.snap.rs @@ -76,7 +76,7 @@ impl ExampleMessage { pub const TEMPERATURE_MAX: f32 = 270.47_f32; pub const AVERAGE_RADIUS_MIN: f32 = 0_f32; pub const AVERAGE_RADIUS_MAX: f32 = 5_f32; - /// Construct new 'ExampleMessage' from values + /// Constructs a new `ExampleMessage` message from values. pub fn new( temperature: f32, average_radius: f32, @@ -88,36 +88,42 @@ impl ExampleMessage { res.set_enable(enable)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ExampleMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Temperature' + /// Returns the value of `Temperature`. /// /// - Min: 229.52 /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: PCM1, FOO + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn temperature(&self) -> f32 { - self.temperature_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature' + /// Returns the raw value of `Temperature`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn temperature_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() } - /// Set value of 'Temperature' + /// Sets the raw value of `Temperature`. + #[inline(always)] + pub fn set_temperature_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); + } + /// Sets the value of `Temperature`. #[inline(always)] pub fn set_temperature(&mut self, value: f32) -> Result<(), CanError> { if value < 229.52_f32 || 270.47_f32 < value { @@ -132,32 +138,37 @@ impl ExampleMessage { self.raw.view_bits_mut::()[7..19].store_be(value); Ok(()) } - /// Get value of 'AverageRadius' + /// Returns the value of `AverageRadius`. /// /// - Min: 0 /// - Max: 5 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn average_radius(&self) -> f32 { - self.average_radius_raw() + let signal = self.raw.view_bits::()[1..7].load_be::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AverageRadius' + /// Returns the raw value of `AverageRadius`. /// /// - Start bit: 6 /// - Signal size: 6 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn average_radius_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[1..7].load_be::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn average_radius_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..7].load_be::() } - /// Set value of 'AverageRadius' + /// Sets the raw value of `AverageRadius`. + #[inline(always)] + pub fn set_average_radius_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..7].store_be(value); + } + /// Sets the value of `AverageRadius`. #[inline(always)] pub fn set_average_radius(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 5_f32 < value { @@ -171,7 +182,7 @@ impl ExampleMessage { self.raw.view_bits_mut::()[1..7].store_be(value); Ok(()) } - /// Get value of 'Enable' + /// Returns the value of `Enable`. /// /// - Min: 0 /// - Max: 0 @@ -183,23 +194,29 @@ impl ExampleMessage { match signal { 0 => ExampleMessageEnable::Disabled, 1 => ExampleMessageEnable::Enabled, - _ => ExampleMessageEnable::_Other(self.enable_raw()), + _ => ExampleMessageEnable::_Other(self.enable_phys_val()), } } - /// Get raw value of 'Enable' + #[inline(always)] + fn enable_phys_val(&self) -> bool { + self.enable_raw_val() == 1 + } + /// Returns the raw value of `Enable`. /// /// - Start bit: 7 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn enable_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_be::(); - signal == 1 + pub fn enable_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_be::() + } + /// Sets the raw value of `Enable`. + #[inline(always)] + pub fn set_enable_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_be(value); } - /// Set value of 'Enable' + /// Sets the value of `Enable`. #[inline(always)] pub fn set_enable(&mut self, value: ExampleMessageEnable) -> Result<(), CanError> { let value = bool::from(value); diff --git a/tests-snapshots/dbc-cantools/motohawk_use_round.snap.rs b/tests-snapshots/dbc-cantools/motohawk_use_round.snap.rs index e47c41ce..72174e0b 100644 --- a/tests-snapshots/dbc-cantools/motohawk_use_round.snap.rs +++ b/tests-snapshots/dbc-cantools/motohawk_use_round.snap.rs @@ -76,7 +76,7 @@ impl ExampleMessage { pub const TEMPERATURE_MAX: f32 = 270.47_f32; pub const AVERAGE_RADIUS_MIN: f32 = 0_f32; pub const AVERAGE_RADIUS_MAX: f32 = 5_f32; - /// Construct new 'ExampleMessage' from values + /// Constructs a new `ExampleMessage` message from values. pub fn new( temperature: f32, average_radius: f32, @@ -88,36 +88,42 @@ impl ExampleMessage { res.set_enable(enable)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ExampleMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Temperature' + /// Returns the value of `Temperature`. /// /// - Min: 229.52 /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: PCM1, FOO + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn temperature(&self) -> f32 { - self.temperature_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature' + /// Returns the raw value of `Temperature`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn temperature_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() } - /// Set value of 'Temperature' + /// Sets the raw value of `Temperature`. + #[inline(always)] + pub fn set_temperature_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); + } + /// Sets the value of `Temperature`. #[inline(always)] pub fn set_temperature(&mut self, value: f32) -> Result<(), CanError> { if value < 229.52_f32 || 270.47_f32 < value { @@ -132,32 +138,37 @@ impl ExampleMessage { self.raw.view_bits_mut::()[7..19].store_be(value); Ok(()) } - /// Get value of 'AverageRadius' + /// Returns the value of `AverageRadius`. /// /// - Min: 0 /// - Max: 5 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn average_radius(&self) -> f32 { - self.average_radius_raw() + let signal = self.raw.view_bits::()[1..7].load_be::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AverageRadius' + /// Returns the raw value of `AverageRadius`. /// /// - Start bit: 6 /// - Signal size: 6 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn average_radius_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[1..7].load_be::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn average_radius_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..7].load_be::() } - /// Set value of 'AverageRadius' + /// Sets the raw value of `AverageRadius`. + #[inline(always)] + pub fn set_average_radius_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..7].store_be(value); + } + /// Sets the value of `AverageRadius`. #[inline(always)] pub fn set_average_radius(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 5_f32 < value { @@ -171,7 +182,7 @@ impl ExampleMessage { self.raw.view_bits_mut::()[1..7].store_be(value); Ok(()) } - /// Get value of 'Enable' + /// Returns the value of `Enable`. /// /// - Min: 0 /// - Max: 0 @@ -183,23 +194,29 @@ impl ExampleMessage { match signal { 0 => ExampleMessageEnable::Disabled, 1 => ExampleMessageEnable::Enabled, - _ => ExampleMessageEnable::_Other(self.enable_raw()), + _ => ExampleMessageEnable::_Other(self.enable_phys_val()), } } - /// Get raw value of 'Enable' + #[inline(always)] + fn enable_phys_val(&self) -> bool { + self.enable_raw_val() == 1 + } + /// Returns the raw value of `Enable`. /// /// - Start bit: 7 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn enable_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_be::(); - signal == 1 + pub fn enable_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_be::() + } + /// Sets the raw value of `Enable`. + #[inline(always)] + pub fn set_enable_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_be(value); } - /// Set value of 'Enable' + /// Sets the value of `Enable`. #[inline(always)] pub fn set_enable(&mut self, value: ExampleMessageEnable) -> Result<(), CanError> { let value = bool::from(value); diff --git a/tests-snapshots/dbc-cantools/motohawk_with_comments.snap.rs b/tests-snapshots/dbc-cantools/motohawk_with_comments.snap.rs index e0b4ffec..49ba3606 100644 --- a/tests-snapshots/dbc-cantools/motohawk_with_comments.snap.rs +++ b/tests-snapshots/dbc-cantools/motohawk_with_comments.snap.rs @@ -76,7 +76,7 @@ impl ExampleMessage { pub const TEMPERATURE_MAX: f32 = 270.47_f32; pub const AVERAGE_RADIUS_MIN: f32 = 0_f32; pub const AVERAGE_RADIUS_MAX: f32 = 5_f32; - /// Construct new 'ExampleMessage' from values + /// Constructs a new `ExampleMessage` message from values. pub fn new( temperature: f32, average_radius: f32, @@ -88,11 +88,11 @@ impl ExampleMessage { res.set_enable(enable)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ExampleMessage` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Temperature' + /// Returns the value of `Temperature`. /// /// Temperature with a really long and complicated comment that probably require many many lines in a decently wide terminal /// @@ -100,26 +100,32 @@ impl ExampleMessage { /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: PCM1, FOO + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn temperature(&self) -> f32 { - self.temperature_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature' + /// Returns the raw value of `Temperature`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn temperature_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() } - /// Set value of 'Temperature' + /// Sets the raw value of `Temperature`. + #[inline(always)] + pub fn set_temperature_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); + } + /// Sets the value of `Temperature`. #[inline(always)] pub fn set_temperature(&mut self, value: f32) -> Result<(), CanError> { if value < 229.52_f32 || 270.47_f32 < value { @@ -134,7 +140,7 @@ impl ExampleMessage { self.raw.view_bits_mut::()[7..19].store_be(value); Ok(()) } - /// Get value of 'AverageRadius' + /// Returns the value of `AverageRadius`. /// /// AverageRadius signal comment /// @@ -142,26 +148,31 @@ impl ExampleMessage { /// - Max: 5 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn average_radius(&self) -> f32 { - self.average_radius_raw() + let signal = self.raw.view_bits::()[1..7].load_be::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AverageRadius' + /// Returns the raw value of `AverageRadius`. /// /// - Start bit: 6 /// - Signal size: 6 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn average_radius_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[1..7].load_be::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn average_radius_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..7].load_be::() } - /// Set value of 'AverageRadius' + /// Sets the raw value of `AverageRadius`. + #[inline(always)] + pub fn set_average_radius_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..7].store_be(value); + } + /// Sets the value of `AverageRadius`. #[inline(always)] pub fn set_average_radius(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 5_f32 < value { @@ -175,7 +186,7 @@ impl ExampleMessage { self.raw.view_bits_mut::()[1..7].store_be(value); Ok(()) } - /// Get value of 'Enable' + /// Returns the value of `Enable`. /// /// Enable signal comment /// @@ -189,23 +200,29 @@ impl ExampleMessage { match signal { 0 => ExampleMessageEnable::Disabled, 1 => ExampleMessageEnable::Enabled, - _ => ExampleMessageEnable::_Other(self.enable_raw()), + _ => ExampleMessageEnable::_Other(self.enable_phys_val()), } } - /// Get raw value of 'Enable' + #[inline(always)] + fn enable_phys_val(&self) -> bool { + self.enable_raw_val() == 1 + } + /// Returns the raw value of `Enable`. /// /// - Start bit: 7 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn enable_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_be::(); - signal == 1 + pub fn enable_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_be::() + } + /// Sets the raw value of `Enable`. + #[inline(always)] + pub fn set_enable_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_be(value); } - /// Set value of 'Enable' + /// Sets the value of `Enable`. #[inline(always)] pub fn set_enable(&mut self, value: ExampleMessageEnable) -> Result<(), CanError> { let value = bool::from(value); diff --git a/tests-snapshots/dbc-cantools/msxii_system_can.snap.rs b/tests-snapshots/dbc-cantools/msxii_system_can.snap.rs index d14d46fa..b5b17e79 100644 --- a/tests-snapshots/dbc-cantools/msxii_system_can.snap.rs +++ b/tests-snapshots/dbc-cantools/msxii_system_can.snap.rs @@ -214,34 +214,37 @@ impl BatteryVt { pub const MODULE_VOLTAGE_00_MAX: u16 = 0_u16; pub const BATTERY_VT_INDEX_MIN: u16 = 0_u16; pub const BATTERY_VT_INDEX_MAX: u16 = 0_u16; - /// Construct new 'BATTERY_VT' from values + /// Constructs a new `BATTERY_VT` message from values. pub fn new(battery_vt_index: u16) -> Result { let mut res = Self { raw: [0x00; 6] }; res.set_battery_vt_index(battery_vt_index)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `BATTERY_VT` message payload. pub fn raw(&self) -> &[u8; 6] { &self.raw } - /// Get raw value of 'BATTERY_VT_INDEX' + /// Returns the raw value of `BATTERY_VT_INDEX`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn battery_vt_index_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn battery_vt_index_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `BATTERY_VT_INDEX`. + #[allow(dead_code)] + #[inline(always)] + fn set_battery_vt_index_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - pub fn battery_vt_index( + /// Selects the active multiplexed sub-message for `BATTERY_VT_INDEX`. + pub fn battery_vt_index_multiplexed( &mut self, ) -> Result { - match self.battery_vt_index_raw() { + match self.battery_vt_index_raw_val() { 0 => { Ok( BatteryVtBatteryVtIndexIndex::M0(BatteryVtBatteryVtIndexM0 { @@ -502,7 +505,7 @@ impl BatteryVt { } } } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] fn set_battery_vt_index(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -510,17 +513,10 @@ impl BatteryVt { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m0(&mut self, value: BatteryVtBatteryVtIndexM0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -529,7 +525,7 @@ impl BatteryVt { self.set_battery_vt_index(0)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m1(&mut self, value: BatteryVtBatteryVtIndexM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -538,7 +534,7 @@ impl BatteryVt { self.set_battery_vt_index(1)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m2(&mut self, value: BatteryVtBatteryVtIndexM2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -547,7 +543,7 @@ impl BatteryVt { self.set_battery_vt_index(2)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m3(&mut self, value: BatteryVtBatteryVtIndexM3) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -556,7 +552,7 @@ impl BatteryVt { self.set_battery_vt_index(3)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m4(&mut self, value: BatteryVtBatteryVtIndexM4) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -565,7 +561,7 @@ impl BatteryVt { self.set_battery_vt_index(4)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m5(&mut self, value: BatteryVtBatteryVtIndexM5) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -574,7 +570,7 @@ impl BatteryVt { self.set_battery_vt_index(5)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m6(&mut self, value: BatteryVtBatteryVtIndexM6) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -583,7 +579,7 @@ impl BatteryVt { self.set_battery_vt_index(6)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m7(&mut self, value: BatteryVtBatteryVtIndexM7) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -592,7 +588,7 @@ impl BatteryVt { self.set_battery_vt_index(7)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m8(&mut self, value: BatteryVtBatteryVtIndexM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -601,7 +597,7 @@ impl BatteryVt { self.set_battery_vt_index(8)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m9(&mut self, value: BatteryVtBatteryVtIndexM9) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -610,7 +606,7 @@ impl BatteryVt { self.set_battery_vt_index(9)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m10( &mut self, @@ -622,7 +618,7 @@ impl BatteryVt { self.set_battery_vt_index(10)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m11( &mut self, @@ -634,7 +630,7 @@ impl BatteryVt { self.set_battery_vt_index(11)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m12( &mut self, @@ -646,7 +642,7 @@ impl BatteryVt { self.set_battery_vt_index(12)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m13( &mut self, @@ -658,7 +654,7 @@ impl BatteryVt { self.set_battery_vt_index(13)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m14( &mut self, @@ -670,7 +666,7 @@ impl BatteryVt { self.set_battery_vt_index(14)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m15( &mut self, @@ -682,7 +678,7 @@ impl BatteryVt { self.set_battery_vt_index(15)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m16( &mut self, @@ -694,7 +690,7 @@ impl BatteryVt { self.set_battery_vt_index(16)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m17( &mut self, @@ -706,7 +702,7 @@ impl BatteryVt { self.set_battery_vt_index(17)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m18( &mut self, @@ -718,7 +714,7 @@ impl BatteryVt { self.set_battery_vt_index(18)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m19( &mut self, @@ -730,7 +726,7 @@ impl BatteryVt { self.set_battery_vt_index(19)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m20( &mut self, @@ -742,7 +738,7 @@ impl BatteryVt { self.set_battery_vt_index(20)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m21( &mut self, @@ -754,7 +750,7 @@ impl BatteryVt { self.set_battery_vt_index(21)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m22( &mut self, @@ -766,7 +762,7 @@ impl BatteryVt { self.set_battery_vt_index(22)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m23( &mut self, @@ -778,7 +774,7 @@ impl BatteryVt { self.set_battery_vt_index(23)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m24( &mut self, @@ -790,7 +786,7 @@ impl BatteryVt { self.set_battery_vt_index(24)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m25( &mut self, @@ -802,7 +798,7 @@ impl BatteryVt { self.set_battery_vt_index(25)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m26( &mut self, @@ -814,7 +810,7 @@ impl BatteryVt { self.set_battery_vt_index(26)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m27( &mut self, @@ -826,7 +822,7 @@ impl BatteryVt { self.set_battery_vt_index(27)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m28( &mut self, @@ -838,7 +834,7 @@ impl BatteryVt { self.set_battery_vt_index(28)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m29( &mut self, @@ -850,7 +846,7 @@ impl BatteryVt { self.set_battery_vt_index(29)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m30( &mut self, @@ -862,7 +858,7 @@ impl BatteryVt { self.set_battery_vt_index(30)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m31( &mut self, @@ -874,7 +870,7 @@ impl BatteryVt { self.set_battery_vt_index(31)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m32( &mut self, @@ -886,7 +882,7 @@ impl BatteryVt { self.set_battery_vt_index(32)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m33( &mut self, @@ -898,7 +894,7 @@ impl BatteryVt { self.set_battery_vt_index(33)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m34( &mut self, @@ -910,7 +906,7 @@ impl BatteryVt { self.set_battery_vt_index(34)?; Ok(()) } - /// Set value of 'BATTERY_VT_INDEX' + /// Sets the value of `BATTERY_VT_INDEX`. #[inline(always)] pub fn set_m35( &mut self, @@ -1035,31 +1031,34 @@ impl BatteryVtBatteryVtIndexM0 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_00' + /// Returns the value of `MODULE_TEMP_00`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_00(&self) -> u16 { - self.module_temp_00_raw() + self.module_temp_00_raw_val() } - /// Get raw value of 'MODULE_TEMP_00' + /// Returns the raw value of `MODULE_TEMP_00`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_00_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_00_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_00`. + #[inline(always)] + pub fn set_module_temp_00_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_00' + /// Sets the value of `MODULE_TEMP_00`. #[inline(always)] pub fn set_module_temp_00(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1067,41 +1066,37 @@ impl BatteryVtBatteryVtIndexM0 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_00' + /// Returns the value of `MODULE_VOLTAGE_00`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_00(&self) -> u16 { - self.module_voltage_00_raw() + self.module_voltage_00_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_00' + /// Returns the raw value of `MODULE_VOLTAGE_00`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_00_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_00_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_00`. + #[inline(always)] + pub fn set_module_voltage_00_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_00' + /// Sets the value of `MODULE_VOLTAGE_00`. #[inline(always)] pub fn set_module_voltage_00(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1109,13 +1104,6 @@ impl BatteryVtBatteryVtIndexM0 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1146,31 +1134,34 @@ impl BatteryVtBatteryVtIndexM1 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_01' + /// Returns the value of `MODULE_TEMP_01`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_01(&self) -> u16 { - self.module_temp_01_raw() + self.module_temp_01_raw_val() } - /// Get raw value of 'MODULE_TEMP_01' + /// Returns the raw value of `MODULE_TEMP_01`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_01_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_01_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_01`. + #[inline(always)] + pub fn set_module_temp_01_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_01' + /// Sets the value of `MODULE_TEMP_01`. #[inline(always)] pub fn set_module_temp_01(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1178,41 +1169,37 @@ impl BatteryVtBatteryVtIndexM1 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_01' + /// Returns the value of `MODULE_VOLTAGE_01`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_01(&self) -> u16 { - self.module_voltage_01_raw() + self.module_voltage_01_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_01' + /// Returns the raw value of `MODULE_VOLTAGE_01`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_01_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_01_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_01`. + #[inline(always)] + pub fn set_module_voltage_01_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_01' + /// Sets the value of `MODULE_VOLTAGE_01`. #[inline(always)] pub fn set_module_voltage_01(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1220,13 +1207,6 @@ impl BatteryVtBatteryVtIndexM1 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1257,31 +1237,34 @@ impl BatteryVtBatteryVtIndexM2 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_02' + /// Returns the value of `MODULE_TEMP_02`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_02(&self) -> u16 { - self.module_temp_02_raw() + self.module_temp_02_raw_val() } - /// Get raw value of 'MODULE_TEMP_02' + /// Returns the raw value of `MODULE_TEMP_02`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_02_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_02_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_02`. + #[inline(always)] + pub fn set_module_temp_02_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_02' + /// Sets the value of `MODULE_TEMP_02`. #[inline(always)] pub fn set_module_temp_02(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1289,41 +1272,37 @@ impl BatteryVtBatteryVtIndexM2 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_02' + /// Returns the value of `MODULE_VOLTAGE_02`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_02(&self) -> u16 { - self.module_voltage_02_raw() + self.module_voltage_02_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_02' + /// Returns the raw value of `MODULE_VOLTAGE_02`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_02_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_02_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_02`. + #[inline(always)] + pub fn set_module_voltage_02_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_02' + /// Sets the value of `MODULE_VOLTAGE_02`. #[inline(always)] pub fn set_module_voltage_02(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1331,13 +1310,6 @@ impl BatteryVtBatteryVtIndexM2 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1368,31 +1340,34 @@ impl BatteryVtBatteryVtIndexM3 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_03' + /// Returns the value of `MODULE_TEMP_03`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_03(&self) -> u16 { - self.module_temp_03_raw() + self.module_temp_03_raw_val() } - /// Get raw value of 'MODULE_TEMP_03' + /// Returns the raw value of `MODULE_TEMP_03`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_03_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_03_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_03`. + #[inline(always)] + pub fn set_module_temp_03_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_03' + /// Sets the value of `MODULE_TEMP_03`. #[inline(always)] pub fn set_module_temp_03(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1400,41 +1375,37 @@ impl BatteryVtBatteryVtIndexM3 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_03' + /// Returns the value of `MODULE_VOLTAGE_03`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_03(&self) -> u16 { - self.module_voltage_03_raw() + self.module_voltage_03_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_03' + /// Returns the raw value of `MODULE_VOLTAGE_03`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_03_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_03_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_03`. + #[inline(always)] + pub fn set_module_voltage_03_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_03' + /// Sets the value of `MODULE_VOLTAGE_03`. #[inline(always)] pub fn set_module_voltage_03(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1442,13 +1413,6 @@ impl BatteryVtBatteryVtIndexM3 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1479,31 +1443,34 @@ impl BatteryVtBatteryVtIndexM4 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_04' + /// Returns the value of `MODULE_TEMP_04`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_04(&self) -> u16 { - self.module_temp_04_raw() + self.module_temp_04_raw_val() } - /// Get raw value of 'MODULE_TEMP_04' + /// Returns the raw value of `MODULE_TEMP_04`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_04_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_04_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_04`. + #[inline(always)] + pub fn set_module_temp_04_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_04' + /// Sets the value of `MODULE_TEMP_04`. #[inline(always)] pub fn set_module_temp_04(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1511,41 +1478,37 @@ impl BatteryVtBatteryVtIndexM4 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_04' + /// Returns the value of `MODULE_VOLTAGE_04`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_04(&self) -> u16 { - self.module_voltage_04_raw() + self.module_voltage_04_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_04' + /// Returns the raw value of `MODULE_VOLTAGE_04`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_04_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_04_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_04`. + #[inline(always)] + pub fn set_module_voltage_04_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_04' + /// Sets the value of `MODULE_VOLTAGE_04`. #[inline(always)] pub fn set_module_voltage_04(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1553,13 +1516,6 @@ impl BatteryVtBatteryVtIndexM4 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1590,31 +1546,34 @@ impl BatteryVtBatteryVtIndexM5 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_05' + /// Returns the value of `MODULE_TEMP_05`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_05(&self) -> u16 { - self.module_temp_05_raw() + self.module_temp_05_raw_val() } - /// Get raw value of 'MODULE_TEMP_05' + /// Returns the raw value of `MODULE_TEMP_05`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_05_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_05_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_05`. + #[inline(always)] + pub fn set_module_temp_05_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_05' + /// Sets the value of `MODULE_TEMP_05`. #[inline(always)] pub fn set_module_temp_05(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1622,41 +1581,37 @@ impl BatteryVtBatteryVtIndexM5 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_05' + /// Returns the value of `MODULE_VOLTAGE_05`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_05(&self) -> u16 { - self.module_voltage_05_raw() + self.module_voltage_05_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_05' + /// Returns the raw value of `MODULE_VOLTAGE_05`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_05_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_05_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_05`. + #[inline(always)] + pub fn set_module_voltage_05_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_05' + /// Sets the value of `MODULE_VOLTAGE_05`. #[inline(always)] pub fn set_module_voltage_05(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1664,13 +1619,6 @@ impl BatteryVtBatteryVtIndexM5 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1701,31 +1649,34 @@ impl BatteryVtBatteryVtIndexM6 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_06' + /// Returns the value of `MODULE_TEMP_06`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_06(&self) -> u16 { - self.module_temp_06_raw() + self.module_temp_06_raw_val() } - /// Get raw value of 'MODULE_TEMP_06' + /// Returns the raw value of `MODULE_TEMP_06`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_06_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_06_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_06`. + #[inline(always)] + pub fn set_module_temp_06_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_06' + /// Sets the value of `MODULE_TEMP_06`. #[inline(always)] pub fn set_module_temp_06(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1733,41 +1684,37 @@ impl BatteryVtBatteryVtIndexM6 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_06' + /// Returns the value of `MODULE_VOLTAGE_06`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_06(&self) -> u16 { - self.module_voltage_06_raw() + self.module_voltage_06_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_06' + /// Returns the raw value of `MODULE_VOLTAGE_06`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_06_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_06_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_06`. + #[inline(always)] + pub fn set_module_voltage_06_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_06' + /// Sets the value of `MODULE_VOLTAGE_06`. #[inline(always)] pub fn set_module_voltage_06(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1775,13 +1722,6 @@ impl BatteryVtBatteryVtIndexM6 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1812,31 +1752,34 @@ impl BatteryVtBatteryVtIndexM7 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_07' + /// Returns the value of `MODULE_TEMP_07`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_07(&self) -> u16 { - self.module_temp_07_raw() + self.module_temp_07_raw_val() } - /// Get raw value of 'MODULE_TEMP_07' + /// Returns the raw value of `MODULE_TEMP_07`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_07_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_07_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_07`. + #[inline(always)] + pub fn set_module_temp_07_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_07' + /// Sets the value of `MODULE_TEMP_07`. #[inline(always)] pub fn set_module_temp_07(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1844,41 +1787,37 @@ impl BatteryVtBatteryVtIndexM7 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_07' + /// Returns the value of `MODULE_VOLTAGE_07`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_07(&self) -> u16 { - self.module_voltage_07_raw() + self.module_voltage_07_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_07' + /// Returns the raw value of `MODULE_VOLTAGE_07`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_07_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_07_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_07`. + #[inline(always)] + pub fn set_module_voltage_07_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_07' + /// Sets the value of `MODULE_VOLTAGE_07`. #[inline(always)] pub fn set_module_voltage_07(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1886,13 +1825,6 @@ impl BatteryVtBatteryVtIndexM7 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -1923,31 +1855,34 @@ impl BatteryVtBatteryVtIndexM8 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_08' + /// Returns the value of `MODULE_TEMP_08`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_08(&self) -> u16 { - self.module_temp_08_raw() + self.module_temp_08_raw_val() } - /// Get raw value of 'MODULE_TEMP_08' + /// Returns the raw value of `MODULE_TEMP_08`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_08_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_08_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_08`. + #[inline(always)] + pub fn set_module_temp_08_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_08' + /// Sets the value of `MODULE_TEMP_08`. #[inline(always)] pub fn set_module_temp_08(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1955,41 +1890,37 @@ impl BatteryVtBatteryVtIndexM8 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_08' + /// Returns the value of `MODULE_VOLTAGE_08`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_08(&self) -> u16 { - self.module_voltage_08_raw() + self.module_voltage_08_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_08' + /// Returns the raw value of `MODULE_VOLTAGE_08`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_08_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_08_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_08`. + #[inline(always)] + pub fn set_module_voltage_08_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_08' + /// Sets the value of `MODULE_VOLTAGE_08`. #[inline(always)] pub fn set_module_voltage_08(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -1997,13 +1928,6 @@ impl BatteryVtBatteryVtIndexM8 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2034,31 +1958,34 @@ impl BatteryVtBatteryVtIndexM9 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_09' + /// Returns the value of `MODULE_TEMP_09`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_09(&self) -> u16 { - self.module_temp_09_raw() + self.module_temp_09_raw_val() } - /// Get raw value of 'MODULE_TEMP_09' + /// Returns the raw value of `MODULE_TEMP_09`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_09_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_09_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_09`. + #[inline(always)] + pub fn set_module_temp_09_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_09' + /// Sets the value of `MODULE_TEMP_09`. #[inline(always)] pub fn set_module_temp_09(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2066,41 +1993,37 @@ impl BatteryVtBatteryVtIndexM9 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_09' + /// Returns the value of `MODULE_VOLTAGE_09`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_09(&self) -> u16 { - self.module_voltage_09_raw() + self.module_voltage_09_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_09' + /// Returns the raw value of `MODULE_VOLTAGE_09`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_09_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_09_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_09`. + #[inline(always)] + pub fn set_module_voltage_09_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_09' + /// Sets the value of `MODULE_VOLTAGE_09`. #[inline(always)] pub fn set_module_voltage_09(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2108,13 +2031,6 @@ impl BatteryVtBatteryVtIndexM9 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2145,31 +2061,34 @@ impl BatteryVtBatteryVtIndexM10 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_10' + /// Returns the value of `MODULE_TEMP_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_10(&self) -> u16 { - self.module_temp_10_raw() + self.module_temp_10_raw_val() } - /// Get raw value of 'MODULE_TEMP_10' + /// Returns the raw value of `MODULE_TEMP_10`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_10_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_10_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_10`. + #[inline(always)] + pub fn set_module_temp_10_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_10' + /// Sets the value of `MODULE_TEMP_10`. #[inline(always)] pub fn set_module_temp_10(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2177,41 +2096,37 @@ impl BatteryVtBatteryVtIndexM10 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_10' + /// Returns the value of `MODULE_VOLTAGE_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_10(&self) -> u16 { - self.module_voltage_10_raw() + self.module_voltage_10_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_10' + /// Returns the raw value of `MODULE_VOLTAGE_10`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_10_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_10_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_10`. + #[inline(always)] + pub fn set_module_voltage_10_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_10' + /// Sets the value of `MODULE_VOLTAGE_10`. #[inline(always)] pub fn set_module_voltage_10(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2219,13 +2134,6 @@ impl BatteryVtBatteryVtIndexM10 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2256,31 +2164,34 @@ impl BatteryVtBatteryVtIndexM11 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_11' + /// Returns the value of `MODULE_TEMP_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_11(&self) -> u16 { - self.module_temp_11_raw() + self.module_temp_11_raw_val() } - /// Get raw value of 'MODULE_TEMP_11' + /// Returns the raw value of `MODULE_TEMP_11`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_11_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_11_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_11`. + #[inline(always)] + pub fn set_module_temp_11_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_11' + /// Sets the value of `MODULE_TEMP_11`. #[inline(always)] pub fn set_module_temp_11(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2288,41 +2199,37 @@ impl BatteryVtBatteryVtIndexM11 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_11' + /// Returns the value of `MODULE_VOLTAGE_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_11(&self) -> u16 { - self.module_voltage_11_raw() + self.module_voltage_11_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_11' + /// Returns the raw value of `MODULE_VOLTAGE_11`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_11_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_11_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_11`. + #[inline(always)] + pub fn set_module_voltage_11_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_11' + /// Sets the value of `MODULE_VOLTAGE_11`. #[inline(always)] pub fn set_module_voltage_11(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2330,13 +2237,6 @@ impl BatteryVtBatteryVtIndexM11 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2367,31 +2267,34 @@ impl BatteryVtBatteryVtIndexM12 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_12' + /// Returns the value of `MODULE_TEMP_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_12(&self) -> u16 { - self.module_temp_12_raw() + self.module_temp_12_raw_val() } - /// Get raw value of 'MODULE_TEMP_12' + /// Returns the raw value of `MODULE_TEMP_12`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_12_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_12_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_12`. + #[inline(always)] + pub fn set_module_temp_12_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_12' + /// Sets the value of `MODULE_TEMP_12`. #[inline(always)] pub fn set_module_temp_12(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2399,41 +2302,37 @@ impl BatteryVtBatteryVtIndexM12 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_12' + /// Returns the value of `MODULE_VOLTAGE_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_12(&self) -> u16 { - self.module_voltage_12_raw() + self.module_voltage_12_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_12' + /// Returns the raw value of `MODULE_VOLTAGE_12`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_12_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_12_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_12`. + #[inline(always)] + pub fn set_module_voltage_12_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_12' + /// Sets the value of `MODULE_VOLTAGE_12`. #[inline(always)] pub fn set_module_voltage_12(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2441,13 +2340,6 @@ impl BatteryVtBatteryVtIndexM12 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2478,31 +2370,34 @@ impl BatteryVtBatteryVtIndexM13 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_13' + /// Returns the value of `MODULE_TEMP_13`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_13(&self) -> u16 { - self.module_temp_13_raw() + self.module_temp_13_raw_val() } - /// Get raw value of 'MODULE_TEMP_13' + /// Returns the raw value of `MODULE_TEMP_13`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_13_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_13_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_13`. + #[inline(always)] + pub fn set_module_temp_13_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_13' + /// Sets the value of `MODULE_TEMP_13`. #[inline(always)] pub fn set_module_temp_13(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2510,41 +2405,37 @@ impl BatteryVtBatteryVtIndexM13 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_13' + /// Returns the value of `MODULE_VOLTAGE_13`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_13(&self) -> u16 { - self.module_voltage_13_raw() + self.module_voltage_13_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_13' + /// Returns the raw value of `MODULE_VOLTAGE_13`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_13_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_13_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_13`. + #[inline(always)] + pub fn set_module_voltage_13_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_13' + /// Sets the value of `MODULE_VOLTAGE_13`. #[inline(always)] pub fn set_module_voltage_13(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2552,13 +2443,6 @@ impl BatteryVtBatteryVtIndexM13 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2589,31 +2473,34 @@ impl BatteryVtBatteryVtIndexM14 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_14' + /// Returns the value of `MODULE_TEMP_14`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_14(&self) -> u16 { - self.module_temp_14_raw() + self.module_temp_14_raw_val() } - /// Get raw value of 'MODULE_TEMP_14' + /// Returns the raw value of `MODULE_TEMP_14`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_14_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_14_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_14`. + #[inline(always)] + pub fn set_module_temp_14_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_14' + /// Sets the value of `MODULE_TEMP_14`. #[inline(always)] pub fn set_module_temp_14(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2621,41 +2508,37 @@ impl BatteryVtBatteryVtIndexM14 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_14' + /// Returns the value of `MODULE_VOLTAGE_14`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_14(&self) -> u16 { - self.module_voltage_14_raw() + self.module_voltage_14_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_14' + /// Returns the raw value of `MODULE_VOLTAGE_14`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_14_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_14_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_14`. + #[inline(always)] + pub fn set_module_voltage_14_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_14' + /// Sets the value of `MODULE_VOLTAGE_14`. #[inline(always)] pub fn set_module_voltage_14(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2663,13 +2546,6 @@ impl BatteryVtBatteryVtIndexM14 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2700,31 +2576,34 @@ impl BatteryVtBatteryVtIndexM15 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_15' + /// Returns the value of `MODULE_TEMP_15`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_15(&self) -> u16 { - self.module_temp_15_raw() + self.module_temp_15_raw_val() } - /// Get raw value of 'MODULE_TEMP_15' + /// Returns the raw value of `MODULE_TEMP_15`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_15_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_15_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_15`. + #[inline(always)] + pub fn set_module_temp_15_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_15' + /// Sets the value of `MODULE_TEMP_15`. #[inline(always)] pub fn set_module_temp_15(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2732,41 +2611,37 @@ impl BatteryVtBatteryVtIndexM15 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_15' + /// Returns the value of `MODULE_VOLTAGE_15`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_15(&self) -> u16 { - self.module_voltage_15_raw() + self.module_voltage_15_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_15' + /// Returns the raw value of `MODULE_VOLTAGE_15`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_15_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_15_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_15`. + #[inline(always)] + pub fn set_module_voltage_15_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_15' + /// Sets the value of `MODULE_VOLTAGE_15`. #[inline(always)] pub fn set_module_voltage_15(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2774,13 +2649,6 @@ impl BatteryVtBatteryVtIndexM15 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2811,31 +2679,34 @@ impl BatteryVtBatteryVtIndexM16 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_16' + /// Returns the value of `MODULE_TEMP_16`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_16(&self) -> u16 { - self.module_temp_16_raw() + self.module_temp_16_raw_val() } - /// Get raw value of 'MODULE_TEMP_16' + /// Returns the raw value of `MODULE_TEMP_16`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_16_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_16_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_16' + /// Sets the raw value of `MODULE_TEMP_16`. + #[inline(always)] + pub fn set_module_temp_16_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_16`. #[inline(always)] pub fn set_module_temp_16(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2843,41 +2714,37 @@ impl BatteryVtBatteryVtIndexM16 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_16' + /// Returns the value of `MODULE_VOLTAGE_16`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_16(&self) -> u16 { - self.module_voltage_16_raw() + self.module_voltage_16_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_16' + /// Returns the raw value of `MODULE_VOLTAGE_16`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_16_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_16_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_16`. + #[inline(always)] + pub fn set_module_voltage_16_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_16' + /// Sets the value of `MODULE_VOLTAGE_16`. #[inline(always)] pub fn set_module_voltage_16(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2885,13 +2752,6 @@ impl BatteryVtBatteryVtIndexM16 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -2922,31 +2782,34 @@ impl BatteryVtBatteryVtIndexM17 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_17' + /// Returns the value of `MODULE_TEMP_17`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_17(&self) -> u16 { - self.module_temp_17_raw() + self.module_temp_17_raw_val() } - /// Get raw value of 'MODULE_TEMP_17' + /// Returns the raw value of `MODULE_TEMP_17`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_17_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_17_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_17' + /// Sets the raw value of `MODULE_TEMP_17`. + #[inline(always)] + pub fn set_module_temp_17_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_17`. #[inline(always)] pub fn set_module_temp_17(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2954,41 +2817,37 @@ impl BatteryVtBatteryVtIndexM17 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_17' + /// Returns the value of `MODULE_VOLTAGE_17`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_17(&self) -> u16 { - self.module_voltage_17_raw() + self.module_voltage_17_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_17' + /// Returns the raw value of `MODULE_VOLTAGE_17`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_17_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_17_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_17`. + #[inline(always)] + pub fn set_module_voltage_17_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_17' + /// Sets the value of `MODULE_VOLTAGE_17`. #[inline(always)] pub fn set_module_voltage_17(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -2996,13 +2855,6 @@ impl BatteryVtBatteryVtIndexM17 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3033,31 +2885,34 @@ impl BatteryVtBatteryVtIndexM18 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_18' + /// Returns the value of `MODULE_TEMP_18`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_18(&self) -> u16 { - self.module_temp_18_raw() + self.module_temp_18_raw_val() } - /// Get raw value of 'MODULE_TEMP_18' + /// Returns the raw value of `MODULE_TEMP_18`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_18_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_18_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_18`. + #[inline(always)] + pub fn set_module_temp_18_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_18' + /// Sets the value of `MODULE_TEMP_18`. #[inline(always)] pub fn set_module_temp_18(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3065,41 +2920,37 @@ impl BatteryVtBatteryVtIndexM18 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_18' + /// Returns the value of `MODULE_VOLTAGE_18`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_18(&self) -> u16 { - self.module_voltage_18_raw() + self.module_voltage_18_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_18' + /// Returns the raw value of `MODULE_VOLTAGE_18`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_18_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_18_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_18' + /// Sets the raw value of `MODULE_VOLTAGE_18`. + #[inline(always)] + pub fn set_module_voltage_18_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_18`. #[inline(always)] pub fn set_module_voltage_18(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3107,13 +2958,6 @@ impl BatteryVtBatteryVtIndexM18 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3144,31 +2988,34 @@ impl BatteryVtBatteryVtIndexM19 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_19' + /// Returns the value of `MODULE_TEMP_19`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_19(&self) -> u16 { - self.module_temp_19_raw() + self.module_temp_19_raw_val() } - /// Get raw value of 'MODULE_TEMP_19' + /// Returns the raw value of `MODULE_TEMP_19`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_19_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_19_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_19' + /// Sets the raw value of `MODULE_TEMP_19`. + #[inline(always)] + pub fn set_module_temp_19_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_19`. #[inline(always)] pub fn set_module_temp_19(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3176,41 +3023,37 @@ impl BatteryVtBatteryVtIndexM19 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_19' + /// Returns the value of `MODULE_VOLTAGE_19`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_19(&self) -> u16 { - self.module_voltage_19_raw() + self.module_voltage_19_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_19' + /// Returns the raw value of `MODULE_VOLTAGE_19`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_19_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_19_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_19`. + #[inline(always)] + pub fn set_module_voltage_19_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_19' + /// Sets the value of `MODULE_VOLTAGE_19`. #[inline(always)] pub fn set_module_voltage_19(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3218,13 +3061,6 @@ impl BatteryVtBatteryVtIndexM19 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3255,31 +3091,34 @@ impl BatteryVtBatteryVtIndexM20 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_20' + /// Returns the value of `MODULE_TEMP_20`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_20(&self) -> u16 { - self.module_temp_20_raw() + self.module_temp_20_raw_val() } - /// Get raw value of 'MODULE_TEMP_20' + /// Returns the raw value of `MODULE_TEMP_20`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_20_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_20_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_20`. + #[inline(always)] + pub fn set_module_temp_20_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_20' + /// Sets the value of `MODULE_TEMP_20`. #[inline(always)] pub fn set_module_temp_20(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3287,41 +3126,37 @@ impl BatteryVtBatteryVtIndexM20 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_20' + /// Returns the value of `MODULE_VOLTAGE_20`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_20(&self) -> u16 { - self.module_voltage_20_raw() + self.module_voltage_20_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_20' + /// Returns the raw value of `MODULE_VOLTAGE_20`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_20_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_20_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_20' + /// Sets the raw value of `MODULE_VOLTAGE_20`. + #[inline(always)] + pub fn set_module_voltage_20_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_20`. #[inline(always)] pub fn set_module_voltage_20(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3329,13 +3164,6 @@ impl BatteryVtBatteryVtIndexM20 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3366,31 +3194,34 @@ impl BatteryVtBatteryVtIndexM21 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_21' + /// Returns the value of `MODULE_TEMP_21`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_21(&self) -> u16 { - self.module_temp_21_raw() + self.module_temp_21_raw_val() } - /// Get raw value of 'MODULE_TEMP_21' + /// Returns the raw value of `MODULE_TEMP_21`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_21_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_21_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_21`. + #[inline(always)] + pub fn set_module_temp_21_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_21' + /// Sets the value of `MODULE_TEMP_21`. #[inline(always)] pub fn set_module_temp_21(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3398,41 +3229,37 @@ impl BatteryVtBatteryVtIndexM21 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_21' + /// Returns the value of `MODULE_VOLTAGE_21`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_21(&self) -> u16 { - self.module_voltage_21_raw() + self.module_voltage_21_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_21' + /// Returns the raw value of `MODULE_VOLTAGE_21`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_21_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_21_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_21' + /// Sets the raw value of `MODULE_VOLTAGE_21`. + #[inline(always)] + pub fn set_module_voltage_21_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_21`. #[inline(always)] pub fn set_module_voltage_21(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3440,13 +3267,6 @@ impl BatteryVtBatteryVtIndexM21 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3477,31 +3297,34 @@ impl BatteryVtBatteryVtIndexM22 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_22' + /// Returns the value of `MODULE_TEMP_22`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_22(&self) -> u16 { - self.module_temp_22_raw() + self.module_temp_22_raw_val() } - /// Get raw value of 'MODULE_TEMP_22' + /// Returns the raw value of `MODULE_TEMP_22`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_22_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_22_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_22`. + #[inline(always)] + pub fn set_module_temp_22_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_22' + /// Sets the value of `MODULE_TEMP_22`. #[inline(always)] pub fn set_module_temp_22(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3509,41 +3332,37 @@ impl BatteryVtBatteryVtIndexM22 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_22' + /// Returns the value of `MODULE_VOLTAGE_22`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_22(&self) -> u16 { - self.module_voltage_22_raw() + self.module_voltage_22_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_22' + /// Returns the raw value of `MODULE_VOLTAGE_22`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_22_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_22_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_22' + /// Sets the raw value of `MODULE_VOLTAGE_22`. + #[inline(always)] + pub fn set_module_voltage_22_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_22`. #[inline(always)] pub fn set_module_voltage_22(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3551,13 +3370,6 @@ impl BatteryVtBatteryVtIndexM22 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3588,31 +3400,34 @@ impl BatteryVtBatteryVtIndexM23 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_23' + /// Returns the value of `MODULE_TEMP_23`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_23(&self) -> u16 { - self.module_temp_23_raw() + self.module_temp_23_raw_val() } - /// Get raw value of 'MODULE_TEMP_23' + /// Returns the raw value of `MODULE_TEMP_23`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_23_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_23_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_23' + /// Sets the raw value of `MODULE_TEMP_23`. + #[inline(always)] + pub fn set_module_temp_23_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_23`. #[inline(always)] pub fn set_module_temp_23(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3620,41 +3435,37 @@ impl BatteryVtBatteryVtIndexM23 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_23' + /// Returns the value of `MODULE_VOLTAGE_23`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_23(&self) -> u16 { - self.module_voltage_23_raw() + self.module_voltage_23_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_23' + /// Returns the raw value of `MODULE_VOLTAGE_23`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_23_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_23_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_23`. + #[inline(always)] + pub fn set_module_voltage_23_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_23' + /// Sets the value of `MODULE_VOLTAGE_23`. #[inline(always)] pub fn set_module_voltage_23(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3662,13 +3473,6 @@ impl BatteryVtBatteryVtIndexM23 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3699,31 +3503,34 @@ impl BatteryVtBatteryVtIndexM24 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_24' + /// Returns the value of `MODULE_TEMP_24`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_24(&self) -> u16 { - self.module_temp_24_raw() + self.module_temp_24_raw_val() } - /// Get raw value of 'MODULE_TEMP_24' + /// Returns the raw value of `MODULE_TEMP_24`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_24_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_24_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_24' + /// Sets the raw value of `MODULE_TEMP_24`. + #[inline(always)] + pub fn set_module_temp_24_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_24`. #[inline(always)] pub fn set_module_temp_24(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3731,41 +3538,37 @@ impl BatteryVtBatteryVtIndexM24 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_24' + /// Returns the value of `MODULE_VOLTAGE_24`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_24(&self) -> u16 { - self.module_voltage_24_raw() + self.module_voltage_24_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_24' + /// Returns the raw value of `MODULE_VOLTAGE_24`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_24_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_24_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_24`. + #[inline(always)] + pub fn set_module_voltage_24_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_24' + /// Sets the value of `MODULE_VOLTAGE_24`. #[inline(always)] pub fn set_module_voltage_24(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3773,13 +3576,6 @@ impl BatteryVtBatteryVtIndexM24 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3810,31 +3606,34 @@ impl BatteryVtBatteryVtIndexM25 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_25' + /// Returns the value of `MODULE_TEMP_25`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_25(&self) -> u16 { - self.module_temp_25_raw() + self.module_temp_25_raw_val() } - /// Get raw value of 'MODULE_TEMP_25' + /// Returns the raw value of `MODULE_TEMP_25`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_25_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_25_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_25' + /// Sets the raw value of `MODULE_TEMP_25`. + #[inline(always)] + pub fn set_module_temp_25_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_25`. #[inline(always)] pub fn set_module_temp_25(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3842,41 +3641,37 @@ impl BatteryVtBatteryVtIndexM25 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_25' + /// Returns the value of `MODULE_VOLTAGE_25`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_25(&self) -> u16 { - self.module_voltage_25_raw() + self.module_voltage_25_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_25' + /// Returns the raw value of `MODULE_VOLTAGE_25`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_25_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_25_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_25`. + #[inline(always)] + pub fn set_module_voltage_25_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_25' + /// Sets the value of `MODULE_VOLTAGE_25`. #[inline(always)] pub fn set_module_voltage_25(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3884,13 +3679,6 @@ impl BatteryVtBatteryVtIndexM25 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -3921,31 +3709,34 @@ impl BatteryVtBatteryVtIndexM26 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_26' + /// Returns the value of `MODULE_TEMP_26`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_26(&self) -> u16 { - self.module_temp_26_raw() + self.module_temp_26_raw_val() } - /// Get raw value of 'MODULE_TEMP_26' + /// Returns the raw value of `MODULE_TEMP_26`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_26_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_26_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_26' + /// Sets the raw value of `MODULE_TEMP_26`. + #[inline(always)] + pub fn set_module_temp_26_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_26`. #[inline(always)] pub fn set_module_temp_26(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3953,41 +3744,37 @@ impl BatteryVtBatteryVtIndexM26 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_26' + /// Returns the value of `MODULE_VOLTAGE_26`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_26(&self) -> u16 { - self.module_voltage_26_raw() + self.module_voltage_26_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_26' + /// Returns the raw value of `MODULE_VOLTAGE_26`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_26_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_26_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_26`. + #[inline(always)] + pub fn set_module_voltage_26_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_26' + /// Sets the value of `MODULE_VOLTAGE_26`. #[inline(always)] pub fn set_module_voltage_26(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -3995,13 +3782,6 @@ impl BatteryVtBatteryVtIndexM26 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4032,31 +3812,34 @@ impl BatteryVtBatteryVtIndexM27 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_27' + /// Returns the value of `MODULE_TEMP_27`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_27(&self) -> u16 { - self.module_temp_27_raw() + self.module_temp_27_raw_val() } - /// Get raw value of 'MODULE_TEMP_27' + /// Returns the raw value of `MODULE_TEMP_27`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_27_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_27_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_27`. + #[inline(always)] + pub fn set_module_temp_27_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_27' + /// Sets the value of `MODULE_TEMP_27`. #[inline(always)] pub fn set_module_temp_27(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4064,41 +3847,37 @@ impl BatteryVtBatteryVtIndexM27 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_27' + /// Returns the value of `MODULE_VOLTAGE_27`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_27(&self) -> u16 { - self.module_voltage_27_raw() + self.module_voltage_27_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_27' + /// Returns the raw value of `MODULE_VOLTAGE_27`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_27_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_27_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_27' + /// Sets the raw value of `MODULE_VOLTAGE_27`. + #[inline(always)] + pub fn set_module_voltage_27_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_27`. #[inline(always)] pub fn set_module_voltage_27(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4106,13 +3885,6 @@ impl BatteryVtBatteryVtIndexM27 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4143,31 +3915,34 @@ impl BatteryVtBatteryVtIndexM28 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_28' + /// Returns the value of `MODULE_TEMP_28`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_28(&self) -> u16 { - self.module_temp_28_raw() + self.module_temp_28_raw_val() } - /// Get raw value of 'MODULE_TEMP_28' + /// Returns the raw value of `MODULE_TEMP_28`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_28_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_28_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_28`. + #[inline(always)] + pub fn set_module_temp_28_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_28' + /// Sets the value of `MODULE_TEMP_28`. #[inline(always)] pub fn set_module_temp_28(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4175,41 +3950,37 @@ impl BatteryVtBatteryVtIndexM28 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_28' + /// Returns the value of `MODULE_VOLTAGE_28`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_28(&self) -> u16 { - self.module_voltage_28_raw() + self.module_voltage_28_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_28' + /// Returns the raw value of `MODULE_VOLTAGE_28`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_28_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_28_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_28' + /// Sets the raw value of `MODULE_VOLTAGE_28`. + #[inline(always)] + pub fn set_module_voltage_28_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_28`. #[inline(always)] pub fn set_module_voltage_28(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4217,13 +3988,6 @@ impl BatteryVtBatteryVtIndexM28 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4254,31 +4018,34 @@ impl BatteryVtBatteryVtIndexM29 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_29' + /// Returns the value of `MODULE_TEMP_29`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_29(&self) -> u16 { - self.module_temp_29_raw() + self.module_temp_29_raw_val() } - /// Get raw value of 'MODULE_TEMP_29' + /// Returns the raw value of `MODULE_TEMP_29`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_29_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_29_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_29`. + #[inline(always)] + pub fn set_module_temp_29_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_29' + /// Sets the value of `MODULE_TEMP_29`. #[inline(always)] pub fn set_module_temp_29(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4286,41 +4053,37 @@ impl BatteryVtBatteryVtIndexM29 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_29' + /// Returns the value of `MODULE_VOLTAGE_29`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_29(&self) -> u16 { - self.module_voltage_29_raw() + self.module_voltage_29_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_29' + /// Returns the raw value of `MODULE_VOLTAGE_29`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_29_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_29_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_29' + /// Sets the raw value of `MODULE_VOLTAGE_29`. + #[inline(always)] + pub fn set_module_voltage_29_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_29`. #[inline(always)] pub fn set_module_voltage_29(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4328,13 +4091,6 @@ impl BatteryVtBatteryVtIndexM29 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4365,31 +4121,34 @@ impl BatteryVtBatteryVtIndexM30 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_30' + /// Returns the value of `MODULE_TEMP_30`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_30(&self) -> u16 { - self.module_temp_30_raw() + self.module_temp_30_raw_val() } - /// Get raw value of 'MODULE_TEMP_30' + /// Returns the raw value of `MODULE_TEMP_30`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_30_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_30_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_30`. + #[inline(always)] + pub fn set_module_temp_30_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_30' + /// Sets the value of `MODULE_TEMP_30`. #[inline(always)] pub fn set_module_temp_30(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4397,41 +4156,37 @@ impl BatteryVtBatteryVtIndexM30 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_30' + /// Returns the value of `MODULE_VOLTAGE_30`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_30(&self) -> u16 { - self.module_voltage_30_raw() + self.module_voltage_30_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_30' + /// Returns the raw value of `MODULE_VOLTAGE_30`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_30_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_30_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_30`. + #[inline(always)] + pub fn set_module_voltage_30_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_30' + /// Sets the value of `MODULE_VOLTAGE_30`. #[inline(always)] pub fn set_module_voltage_30(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4439,13 +4194,6 @@ impl BatteryVtBatteryVtIndexM30 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4476,31 +4224,34 @@ impl BatteryVtBatteryVtIndexM31 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_31' + /// Returns the value of `MODULE_TEMP_31`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_31(&self) -> u16 { - self.module_temp_31_raw() + self.module_temp_31_raw_val() } - /// Get raw value of 'MODULE_TEMP_31' + /// Returns the raw value of `MODULE_TEMP_31`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_31_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_31_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_31' + /// Sets the raw value of `MODULE_TEMP_31`. + #[inline(always)] + pub fn set_module_temp_31_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_31`. #[inline(always)] pub fn set_module_temp_31(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4508,41 +4259,37 @@ impl BatteryVtBatteryVtIndexM31 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_31' + /// Returns the value of `MODULE_VOLTAGE_31`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_31(&self) -> u16 { - self.module_voltage_31_raw() + self.module_voltage_31_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_31' + /// Returns the raw value of `MODULE_VOLTAGE_31`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_31_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_31_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_31`. + #[inline(always)] + pub fn set_module_voltage_31_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_31' + /// Sets the value of `MODULE_VOLTAGE_31`. #[inline(always)] pub fn set_module_voltage_31(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4550,13 +4297,6 @@ impl BatteryVtBatteryVtIndexM31 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4587,31 +4327,34 @@ impl BatteryVtBatteryVtIndexM32 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_32' + /// Returns the value of `MODULE_TEMP_32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_32(&self) -> u16 { - self.module_temp_32_raw() + self.module_temp_32_raw_val() } - /// Get raw value of 'MODULE_TEMP_32' + /// Returns the raw value of `MODULE_TEMP_32`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_32_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_32_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_32' + /// Sets the raw value of `MODULE_TEMP_32`. + #[inline(always)] + pub fn set_module_temp_32_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_32`. #[inline(always)] pub fn set_module_temp_32(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4619,41 +4362,37 @@ impl BatteryVtBatteryVtIndexM32 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_32' + /// Returns the value of `MODULE_VOLTAGE_32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_32(&self) -> u16 { - self.module_voltage_32_raw() + self.module_voltage_32_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_32' + /// Returns the raw value of `MODULE_VOLTAGE_32`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_32_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_32_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_32`. + #[inline(always)] + pub fn set_module_voltage_32_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_32' + /// Sets the value of `MODULE_VOLTAGE_32`. #[inline(always)] pub fn set_module_voltage_32(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4661,13 +4400,6 @@ impl BatteryVtBatteryVtIndexM32 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4698,31 +4430,34 @@ impl BatteryVtBatteryVtIndexM33 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_33' + /// Returns the value of `MODULE_TEMP_33`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_33(&self) -> u16 { - self.module_temp_33_raw() + self.module_temp_33_raw_val() } - /// Get raw value of 'MODULE_TEMP_33' + /// Returns the raw value of `MODULE_TEMP_33`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_33_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_33_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'MODULE_TEMP_33' + /// Sets the raw value of `MODULE_TEMP_33`. + #[inline(always)] + pub fn set_module_temp_33_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `MODULE_TEMP_33`. #[inline(always)] pub fn set_module_temp_33(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4730,41 +4465,37 @@ impl BatteryVtBatteryVtIndexM33 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_33' + /// Returns the value of `MODULE_VOLTAGE_33`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_33(&self) -> u16 { - self.module_voltage_33_raw() + self.module_voltage_33_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_33' + /// Returns the raw value of `MODULE_VOLTAGE_33`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_33_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_33_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `MODULE_VOLTAGE_33`. + #[inline(always)] + pub fn set_module_voltage_33_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'MODULE_VOLTAGE_33' + /// Sets the value of `MODULE_VOLTAGE_33`. #[inline(always)] pub fn set_module_voltage_33(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4772,13 +4503,6 @@ impl BatteryVtBatteryVtIndexM33 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4809,31 +4533,34 @@ impl BatteryVtBatteryVtIndexM34 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_34' + /// Returns the value of `MODULE_TEMP_34`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_34(&self) -> u16 { - self.module_temp_34_raw() + self.module_temp_34_raw_val() } - /// Get raw value of 'MODULE_TEMP_34' + /// Returns the raw value of `MODULE_TEMP_34`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_34_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_34_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_34`. + #[inline(always)] + pub fn set_module_temp_34_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_34' + /// Sets the value of `MODULE_TEMP_34`. #[inline(always)] pub fn set_module_temp_34(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4841,41 +4568,37 @@ impl BatteryVtBatteryVtIndexM34 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_34' + /// Returns the value of `MODULE_VOLTAGE_34`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_34(&self) -> u16 { - self.module_voltage_34_raw() + self.module_voltage_34_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_34' + /// Returns the raw value of `MODULE_VOLTAGE_34`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_34_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_34_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_34' + /// Sets the raw value of `MODULE_VOLTAGE_34`. + #[inline(always)] + pub fn set_module_voltage_34_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_34`. #[inline(always)] pub fn set_module_voltage_34(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4883,13 +4606,6 @@ impl BatteryVtBatteryVtIndexM34 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } @@ -4920,31 +4636,34 @@ impl BatteryVtBatteryVtIndexM35 { pub fn new() -> Self { Self { raw: [0u8; 6] } } - /// Get value of 'MODULE_TEMP_35' + /// Returns the value of `MODULE_TEMP_35`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_temp_35(&self) -> u16 { - self.module_temp_35_raw() + self.module_temp_35_raw_val() } - /// Get raw value of 'MODULE_TEMP_35' + /// Returns the raw value of `MODULE_TEMP_35`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_temp_35_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_temp_35_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `MODULE_TEMP_35`. + #[inline(always)] + pub fn set_module_temp_35_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'MODULE_TEMP_35' + /// Sets the value of `MODULE_TEMP_35`. #[inline(always)] pub fn set_module_temp_35(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4952,41 +4671,37 @@ impl BatteryVtBatteryVtIndexM35 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'MODULE_VOLTAGE_35' + /// Returns the value of `MODULE_VOLTAGE_35`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn module_voltage_35(&self) -> u16 { - self.module_voltage_35_raw() + self.module_voltage_35_raw_val() } - /// Get raw value of 'MODULE_VOLTAGE_35' + /// Returns the raw value of `MODULE_VOLTAGE_35`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn module_voltage_35_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn module_voltage_35_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'MODULE_VOLTAGE_35' + /// Sets the raw value of `MODULE_VOLTAGE_35`. + #[inline(always)] + pub fn set_module_voltage_35_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `MODULE_VOLTAGE_35`. #[inline(always)] pub fn set_module_voltage_35(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -4994,13 +4709,6 @@ impl BatteryVtBatteryVtIndexM35 { message_id: BatteryVt::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: BatteryVt::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/multiple_senders.snap.rs b/tests-snapshots/dbc-cantools/multiple_senders.snap.rs index 619d9fc3..8521dabf 100644 --- a/tests-snapshots/dbc-cantools/multiple_senders.snap.rs +++ b/tests-snapshots/dbc-cantools/multiple_senders.snap.rs @@ -70,42 +70,45 @@ impl Bar { pub const MESSAGE_SIZE: usize = 4; pub const BINARY32_MIN: i32 = 0_i32; pub const BINARY32_MAX: i32 = 0_i32; - /// Construct new 'Bar' from values + /// Constructs a new `Bar` message from values. pub fn new(binary32: i32) -> Result { let mut res = Self { raw: [0x00; 4] }; res.set_binary32(binary32)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Bar` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'Binary32' + /// Returns the value of `Binary32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: FUM + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn binary32(&self) -> i32 { - self.binary32_raw() + self.binary32_raw_val() } - /// Get raw value of 'Binary32' + /// Returns the raw value of `Binary32`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn binary32_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn binary32_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() } - /// Set value of 'Binary32' + /// Sets the raw value of `Binary32`. + #[inline(always)] + pub fn set_binary32_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); + } + /// Sets the value of `Binary32`. #[inline(always)] pub fn set_binary32(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -113,13 +116,6 @@ impl Bar { message_id: Bar::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Bar::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/multiplex.snap.rs b/tests-snapshots/dbc-cantools/multiplex.snap.rs index ce0b5f52..df24bbb5 100644 --- a/tests-snapshots/dbc-cantools/multiplex.snap.rs +++ b/tests-snapshots/dbc-cantools/multiplex.snap.rs @@ -69,32 +69,37 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() + } + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message1MultiplexorIndex::M8(Message1MultiplexorM8 { @@ -117,7 +122,7 @@ impl Message1 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -125,17 +130,10 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message1MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -144,7 +142,7 @@ impl Message1 { self.set_multiplexor(8)?; Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m24(&mut self, value: Message1MultiplexorM24) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -232,120 +230,136 @@ impl Message1MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_l(&self) -> bool { - self.bit_l_raw() + self.bit_l_raw_val() == 1 } - /// Get raw value of 'BIT_L' + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() } - /// Set value of 'BIT_L' + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); + } + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() } - /// Set value of 'BIT_G' + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); + } + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() + } + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); } - /// Set value of 'BIT_C' + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() } - /// Set value of 'BIT_J' + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); + } + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -379,210 +393,238 @@ impl Message1MultiplexorM24 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_K' + /// Returns the value of `BIT_K`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_k(&self) -> bool { - self.bit_k_raw() + self.bit_k_raw_val() == 1 } - /// Get raw value of 'BIT_K' + /// Returns the raw value of `BIT_K`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_k_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn bit_k_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() } - /// Set value of 'BIT_K' + /// Sets the raw value of `BIT_K`. + #[inline(always)] + pub fn set_bit_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); + } + /// Sets the value of `BIT_K`. #[inline(always)] pub fn set_bit_k(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'BIT_D' + /// Returns the value of `BIT_D`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_d(&self) -> bool { - self.bit_d_raw() + self.bit_d_raw_val() == 1 } - /// Get raw value of 'BIT_D' + /// Returns the raw value of `BIT_D`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn bit_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() + } + /// Sets the raw value of `BIT_D`. + #[inline(always)] + pub fn set_bit_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); } - /// Set value of 'BIT_D' + /// Sets the value of `BIT_D`. #[inline(always)] pub fn set_bit_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'BIT_B' + /// Returns the value of `BIT_B`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_b(&self) -> bool { - self.bit_b_raw() + self.bit_b_raw_val() == 1 } - /// Get raw value of 'BIT_B' + /// Returns the raw value of `BIT_B`. /// /// - Start bit: 33 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[33..34].load_le::(); - signal == 1 + pub fn bit_b_raw_val(&self) -> u8 { + self.raw.view_bits::()[33..34].load_le::() } - /// Set value of 'BIT_B' + /// Sets the raw value of `BIT_B`. + #[inline(always)] + pub fn set_bit_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[33..34].store_le(value); + } + /// Sets the value of `BIT_B`. #[inline(always)] pub fn set_bit_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[33..34].store_le(value); Ok(()) } - /// Get value of 'BIT_F' + /// Returns the value of `BIT_F`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_f(&self) -> bool { - self.bit_f_raw() + self.bit_f_raw_val() == 1 } - /// Get raw value of 'BIT_F' + /// Returns the raw value of `BIT_F`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_f_raw(&self) -> bool { - let signal = self.raw.view_bits::()[39..40].load_le::(); - signal == 1 + pub fn bit_f_raw_val(&self) -> u8 { + self.raw.view_bits::()[39..40].load_le::() } - /// Set value of 'BIT_F' + /// Sets the raw value of `BIT_F`. + #[inline(always)] + pub fn set_bit_f_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[39..40].store_le(value); + } + /// Sets the value of `BIT_F`. #[inline(always)] pub fn set_bit_f(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[39..40].store_le(value); Ok(()) } - /// Get value of 'BIT_H' + /// Returns the value of `BIT_H`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_h(&self) -> bool { - self.bit_h_raw() + self.bit_h_raw_val() == 1 } - /// Get raw value of 'BIT_H' + /// Returns the raw value of `BIT_H`. /// /// - Start bit: 38 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_h_raw(&self) -> bool { - let signal = self.raw.view_bits::()[38..39].load_le::(); - signal == 1 + pub fn bit_h_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..39].load_le::() + } + /// Sets the raw value of `BIT_H`. + #[inline(always)] + pub fn set_bit_h_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..39].store_le(value); } - /// Set value of 'BIT_H' + /// Sets the value of `BIT_H`. #[inline(always)] pub fn set_bit_h(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[38..39].store_le(value); Ok(()) } - /// Get value of 'BIT_E' + /// Returns the value of `BIT_E`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_e(&self) -> bool { - self.bit_e_raw() + self.bit_e_raw_val() == 1 } - /// Get raw value of 'BIT_E' + /// Returns the raw value of `BIT_E`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn bit_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() } - /// Set value of 'BIT_E' + /// Sets the raw value of `BIT_E`. + #[inline(always)] + pub fn set_bit_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); + } + /// Sets the value of `BIT_E`. #[inline(always)] pub fn set_bit_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'BIT_A' + /// Returns the value of `BIT_A`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_a(&self) -> bool { - self.bit_a_raw() + self.bit_a_raw_val() == 1 } - /// Get raw value of 'BIT_A' + /// Returns the raw value of `BIT_A`. /// /// - Start bit: 26 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_a_raw(&self) -> bool { - let signal = self.raw.view_bits::()[26..27].load_le::(); - signal == 1 + pub fn bit_a_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..27].load_le::() + } + /// Sets the raw value of `BIT_A`. + #[inline(always)] + pub fn set_bit_a_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..27].store_le(value); } - /// Set value of 'BIT_A' + /// Sets the value of `BIT_A`. #[inline(always)] pub fn set_bit_a(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; diff --git a/tests-snapshots/dbc-cantools/multiplex_2.snap.rs b/tests-snapshots/dbc-cantools/multiplex_2.snap.rs index 78590542..ee912f11 100644 --- a/tests-snapshots/dbc-cantools/multiplex_2.snap.rs +++ b/tests-snapshots/dbc-cantools/multiplex_2.snap.rs @@ -84,33 +84,36 @@ impl Shared { pub const S1_MAX: i8 = 0_i8; pub const S0_MIN: i8 = 0_i8; pub const S0_MAX: i8 = 0_i8; - /// Construct new 'Shared' from values + /// Constructs a new `Shared` message from values. pub fn new(s0: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s0(s0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Shared` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S0' + /// Returns the raw value of `S0`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s0_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() } - pub fn s0(&mut self) -> Result { - match self.s0_raw() { + /// Sets the raw value of `S0`. + #[allow(dead_code)] + #[inline(always)] + fn set_s0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); + } + /// Selects the active multiplexed sub-message for `S0`. + pub fn s0_multiplexed(&mut self) -> Result { + match self.s0_raw_val() { 1 => Ok(SharedS0Index::M1(SharedS0M1 { raw: self.raw })), 2 => Ok(SharedS0Index::M2(SharedS0M2 { raw: self.raw })), multiplexor => { @@ -121,7 +124,7 @@ impl Shared { } } } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] fn set_s0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -129,18 +132,11 @@ impl Shared { message_id: Shared::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Shared::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m1(&mut self, value: SharedS0M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -149,7 +145,7 @@ impl Shared { self.set_s0(1)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m2(&mut self, value: SharedS0M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -237,32 +233,35 @@ impl SharedS0M1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S1' + /// Returns the value of `S1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s1(&self) -> i8 { - self.s1_raw() + self.s1_raw_val() } - /// Get raw value of 'S1' + /// Returns the raw value of `S1`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s1_raw_val(&self) -> i8 { + self.raw.view_bits::()[4..8].load_le::() } - /// Set value of 'S1' + /// Sets the raw value of `S1`. + #[inline(always)] + pub fn set_s1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[4..8].store_le(value); + } + /// Sets the value of `S1`. #[inline(always)] pub fn set_s1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -270,13 +269,6 @@ impl SharedS0M1 { message_id: Shared::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Shared::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) @@ -308,32 +300,35 @@ impl SharedS0M2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S2' + /// Returns the value of `S2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s2(&self) -> i8 { - self.s2_raw() + self.s2_raw_val() } - /// Get raw value of 'S2' + /// Returns the raw value of `S2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'S2' + /// Sets the raw value of `S2`. + #[inline(always)] + pub fn set_s2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `S2`. #[inline(always)] pub fn set_s2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -341,13 +336,6 @@ impl SharedS0M2 { message_id: Shared::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Shared::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -381,33 +369,36 @@ impl Normal { pub const S1_MAX: i8 = 0_i8; pub const S0_MIN: i8 = 0_i8; pub const S0_MAX: i8 = 0_i8; - /// Construct new 'Normal' from values + /// Constructs a new `Normal` message from values. pub fn new(s0: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s0(s0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Normal` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S0' + /// Returns the raw value of `S0`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s0_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() } - pub fn s0(&mut self) -> Result { - match self.s0_raw() { + /// Sets the raw value of `S0`. + #[allow(dead_code)] + #[inline(always)] + fn set_s0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); + } + /// Selects the active multiplexed sub-message for `S0`. + pub fn s0_multiplexed(&mut self) -> Result { + match self.s0_raw_val() { 0 => Ok(NormalS0Index::M0(NormalS0M0 { raw: self.raw })), 1 => Ok(NormalS0Index::M1(NormalS0M1 { raw: self.raw })), multiplexor => { @@ -418,7 +409,7 @@ impl Normal { } } } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] fn set_s0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -426,18 +417,11 @@ impl Normal { message_id: Normal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Normal::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m0(&mut self, value: NormalS0M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -446,7 +430,7 @@ impl Normal { self.set_s0(0)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m1(&mut self, value: NormalS0M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -534,32 +518,35 @@ impl NormalS0M0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S1' + /// Returns the value of `S1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s1(&self) -> i8 { - self.s1_raw() + self.s1_raw_val() } - /// Get raw value of 'S1' + /// Returns the raw value of `S1`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s1_raw_val(&self) -> i8 { + self.raw.view_bits::()[4..8].load_le::() } - /// Set value of 'S1' + /// Sets the raw value of `S1`. + #[inline(always)] + pub fn set_s1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[4..8].store_le(value); + } + /// Sets the value of `S1`. #[inline(always)] pub fn set_s1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -567,13 +554,6 @@ impl NormalS0M0 { message_id: Normal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Normal::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) @@ -605,32 +585,35 @@ impl NormalS0M1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S2' + /// Returns the value of `S2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s2(&self) -> i8 { - self.s2_raw() + self.s2_raw_val() } - /// Get raw value of 'S2' + /// Returns the raw value of `S2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'S2' + /// Sets the raw value of `S2`. + #[inline(always)] + pub fn set_s2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `S2`. #[inline(always)] pub fn set_s2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -638,13 +621,6 @@ impl NormalS0M1 { message_id: Normal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Normal::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -690,34 +666,37 @@ impl Extended { pub const S1_MAX: i8 = 0_i8; pub const S0_MIN: i8 = 0_i8; pub const S0_MAX: i8 = 0_i8; - /// Construct new 'Extended' from values + /// Constructs a new `Extended` message from values. pub fn new(s6: i8, s0: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s6(s6)?; res.set_s0(s0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Extended` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S6' + /// Returns the raw value of `S6`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s6_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s6_raw_val(&self) -> i8 { + self.raw.view_bits::()[32..40].load_le::() } - pub fn s6(&mut self) -> Result { - match self.s6_raw() { + /// Sets the raw value of `S6`. + #[allow(dead_code)] + #[inline(always)] + fn set_s6_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..40].store_le(value); + } + /// Selects the active multiplexed sub-message for `S6`. + pub fn s6_multiplexed(&mut self) -> Result { + match self.s6_raw_val() { 0 => Ok(ExtendedS6Index::M0(ExtendedS6M0 { raw: self.raw })), 1 => Ok(ExtendedS6Index::M1(ExtendedS6M1 { raw: self.raw })), 2 => Ok(ExtendedS6Index::M2(ExtendedS6M2 { raw: self.raw })), @@ -729,7 +708,7 @@ impl Extended { } } } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] fn set_s6(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -737,18 +716,11 @@ impl Extended { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -757,7 +729,7 @@ impl Extended { self.set_s6(0)?; Ok(()) } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -766,7 +738,7 @@ impl Extended { self.set_s6(1)?; Ok(()) } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -775,23 +747,26 @@ impl Extended { self.set_s6(2)?; Ok(()) } - /// Get raw value of 'S0' + /// Returns the raw value of `S0`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s0_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `S0`. + #[allow(dead_code)] + #[inline(always)] + fn set_s0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); } - pub fn s0(&mut self) -> Result { - match self.s0_raw() { + /// Selects the active multiplexed sub-message for `S0`. + pub fn s0_multiplexed(&mut self) -> Result { + match self.s0_raw_val() { 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), @@ -803,7 +778,7 @@ impl Extended { } } } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] fn set_s0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -811,18 +786,11 @@ impl Extended { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -831,7 +799,7 @@ impl Extended { self.set_s0(0)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -840,7 +808,7 @@ impl Extended { self.set_s0(1)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -929,32 +897,35 @@ impl ExtendedS6M0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S3' + /// Returns the value of `S3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s3(&self) -> i16 { - self.s3_raw() + self.s3_raw_val() } - /// Get raw value of 'S3' + /// Returns the raw value of `S3`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s3_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s3_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `S3`. + #[inline(always)] + pub fn set_s3_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'S3' + /// Sets the value of `S3`. #[inline(always)] pub fn set_s3(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 0_i16 < value { @@ -962,43 +933,39 @@ impl ExtendedS6M0 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'S2' + /// Returns the value of `S2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s2(&self) -> i8 { - self.s2_raw() + self.s2_raw_val() } - /// Get raw value of 'S2' + /// Returns the raw value of `S2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `S2`. + #[inline(always)] + pub fn set_s2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'S2' + /// Sets the value of `S2`. #[inline(always)] pub fn set_s2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -1006,13 +973,6 @@ impl ExtendedS6M0 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -1044,32 +1004,35 @@ impl ExtendedS6M1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S7' + /// Returns the value of `S7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s7(&self) -> i32 { - self.s7_raw() + self.s7_raw_val() } - /// Get raw value of 'S7' + /// Returns the raw value of `S7`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s7_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s7_raw_val(&self) -> i32 { + self.raw.view_bits::()[40..64].load_le::() + } + /// Sets the raw value of `S7`. + #[inline(always)] + pub fn set_s7_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..64].store_le(value); } - /// Set value of 'S7' + /// Sets the value of `S7`. #[inline(always)] pub fn set_s7(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1077,43 +1040,39 @@ impl ExtendedS6M1 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'S5' + /// Returns the value of `S5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s5(&self) -> i32 { - self.s5_raw() + self.s5_raw_val() } - /// Get raw value of 'S5' + /// Returns the raw value of `S5`. /// /// - Start bit: 4 /// - Signal size: 28 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s5_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[4..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s5_raw_val(&self) -> i32 { + self.raw.view_bits::()[4..32].load_le::() + } + /// Sets the raw value of `S5`. + #[inline(always)] + pub fn set_s5_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[4..32].store_le(value); } - /// Set value of 'S5' + /// Sets the value of `S5`. #[inline(always)] pub fn set_s5(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1121,13 +1080,6 @@ impl ExtendedS6M1 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[4..32].store_le(value); Ok(()) @@ -1159,32 +1111,35 @@ impl ExtendedS6M2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S8' + /// Returns the value of `S8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s8(&self) -> i8 { - self.s8_raw() + self.s8_raw_val() } - /// Get raw value of 'S8' + /// Returns the raw value of `S8`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s8_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s8_raw_val(&self) -> i8 { + self.raw.view_bits::()[40..48].load_le::() } - /// Set value of 'S8' + /// Sets the raw value of `S8`. + #[inline(always)] + pub fn set_s8_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..48].store_le(value); + } + /// Sets the value of `S8`. #[inline(always)] pub fn set_s8(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -1192,43 +1147,39 @@ impl ExtendedS6M2 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'S4' + /// Returns the value of `S4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s4(&self) -> i32 { - self.s4_raw() + self.s4_raw_val() } - /// Get raw value of 'S4' + /// Returns the raw value of `S4`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s4_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s4_raw_val(&self) -> i32 { + self.raw.view_bits::()[8..32].load_le::() + } + /// Sets the raw value of `S4`. + #[inline(always)] + pub fn set_s4_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..32].store_le(value); } - /// Set value of 'S4' + /// Sets the value of `S4`. #[inline(always)] pub fn set_s4(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1236,13 +1187,6 @@ impl ExtendedS6M2 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) @@ -1278,32 +1222,35 @@ impl ExtendedTypes { pub const S0_MAX: i8 = 0_i8; pub const S11_MIN: u8 = 2_u8; pub const S11_MAX: u8 = 6_u8; - /// Construct new 'ExtendedTypes' from values + /// Constructs a new `ExtendedTypes` message from values. pub fn new(s11: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s11(s11)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ExtendedTypes` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S11' + /// Returns the raw value of `S11`. /// /// - Start bit: 0 /// - Signal size: 5 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn s11_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..5].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s11_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..5].load_le::() } - pub fn s11(&mut self) -> Result { - match self.s11_raw() { + /// Sets the raw value of `S11`. + #[allow(dead_code)] + #[inline(always)] + fn set_s11_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..5].store_le(value); + } + /// Selects the active multiplexed sub-message for `S11`. + pub fn s11_multiplexed(&mut self) -> Result { + match self.s11_raw_val() { 0 => { Ok( ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { @@ -1326,7 +1273,7 @@ impl ExtendedTypes { } } } - /// Set value of 'S11' + /// Sets the value of `S11`. #[inline(always)] fn set_s11(&mut self, value: u8) -> Result<(), CanError> { if value < 2_u8 || 6_u8 < value { @@ -1334,17 +1281,10 @@ impl ExtendedTypes { message_id: ExtendedTypes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtendedTypes::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..5].store_le(value); Ok(()) } - /// Set value of 'S11' + /// Sets the value of `S11`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1353,7 +1293,7 @@ impl ExtendedTypes { self.set_s11(0)?; Ok(()) } - /// Set value of 'S11' + /// Sets the value of `S11`. #[inline(always)] pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1441,32 +1381,35 @@ impl ExtendedTypesS11M0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S10' + /// Returns the value of `S10`. /// /// - Min: -340000000000000000000000000000000000000 /// - Max: 340000000000000000000000000000000000000 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s10(&self) -> i32 { - self.s10_raw() + self.s10_raw_val() } - /// Get raw value of 'S10' + /// Returns the raw value of `S10`. /// /// - Start bit: 16 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s10_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[16..48].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s10_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..48].load_le::() } - /// Set value of 'S10' + /// Sets the raw value of `S10`. + #[inline(always)] + pub fn set_s10_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..48].store_le(value); + } + /// Sets the value of `S10`. #[inline(always)] pub fn set_s10(&mut self, value: i32) -> Result<(), CanError> { if value < -340000000000000000000000000000000000000_i32 @@ -1476,13 +1419,6 @@ impl ExtendedTypesS11M0 { message_id: ExtendedTypes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtendedTypes::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..48].store_le(value); Ok(()) @@ -1514,32 +1450,35 @@ impl ExtendedTypesS11M5 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S9' + /// Returns the value of `S9`. /// /// - Min: -1.34 /// - Max: 1235 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s9(&self) -> i32 { - self.s9_raw() + self.s9_raw_val() } - /// Get raw value of 'S9' + /// Returns the raw value of `S9`. /// /// - Start bit: 24 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s9_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[24..56].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s9_raw_val(&self) -> i32 { + self.raw.view_bits::()[24..56].load_le::() + } + /// Sets the raw value of `S9`. + #[inline(always)] + pub fn set_s9_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..56].store_le(value); } - /// Set value of 'S9' + /// Sets the value of `S9`. #[inline(always)] pub fn set_s9(&mut self, value: i32) -> Result<(), CanError> { if value < -1.34_i32 || 1235_i32 < value { @@ -1547,13 +1486,6 @@ impl ExtendedTypesS11M5 { message_id: ExtendedTypes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtendedTypes::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..56].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/multiplex_2.snap.stderr b/tests-snapshots/dbc-cantools/multiplex_2.snap.stderr index 5985555d..b72cd559 100644 --- a/tests-snapshots/dbc-cantools/multiplex_2.snap.stderr +++ b/tests-snapshots/dbc-cantools/multiplex_2.snap.stderr @@ -1,187 +1,187 @@ error[E0425]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:793:36 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:768:48 | -793 | pub fn s0(&mut self) -> Result { - | ^^^^^^^^^^^^^^^ +768 | pub fn s0_multiplexed(&mut self) -> Result { + | ^^^^^^^^^^^^^^^ ... -901 | pub enum ExtendedS6Index { +869 | pub enum ExtendedS6Index { | ------------------------ similarly named enum `ExtendedS6Index` defined here | help: an enum with a similar name exists | -793 - pub fn s0(&mut self) -> Result { -793 + pub fn s0(&mut self) -> Result { +768 - pub fn s0_multiplexed(&mut self) -> Result { +768 + pub fn s0_multiplexed(&mut self) -> Result { | help: you might be missing a type parameter | -670 | impl Extended { +646 | impl Extended { | +++++++++++++++++ error[E0422]: cannot find struct, variant or union type `ExtendedS0M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:795:41 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:770:41 | -795 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +770 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), | ^^^^^^^^^^^^ ... -916 | pub struct ExtendedS6M0 { +884 | pub struct ExtendedS6M0 { | ----------------------- similarly named struct `ExtendedS6M0` defined here | help: a struct with a similar name exists | -795 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), -795 + 0 => Ok(ExtendedS0Index::M0(ExtendedS6M0 { raw: self.raw })), +770 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +770 + 0 => Ok(ExtendedS0Index::M0(ExtendedS6M0 { raw: self.raw })), | error[E0422]: cannot find struct, variant or union type `ExtendedS0M1` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:796:41 - | - 796 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), - | ^^^^^^^^^^^^ + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:771:41 + | +771 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), + | ^^^^^^^^^^^^ ... -1031 | pub struct ExtendedS6M1 { - | ----------------------- similarly named struct `ExtendedS6M1` defined here - | +991 | pub struct ExtendedS6M1 { + | ----------------------- similarly named struct `ExtendedS6M1` defined here + | help: a struct with a similar name exists - | - 796 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), - 796 + 1 => Ok(ExtendedS0Index::M1(ExtendedS6M1 { raw: self.raw })), - | + | +771 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), +771 + 1 => Ok(ExtendedS0Index::M1(ExtendedS6M1 { raw: self.raw })), + | error[E0422]: cannot find struct, variant or union type `ExtendedS0M2` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:797:41 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:772:41 | - 797 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), + 772 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), | ^^^^^^^^^^^^ ... -1146 | pub struct ExtendedS6M2 { +1098 | pub struct ExtendedS6M2 { | ----------------------- similarly named struct `ExtendedS6M2` defined here | help: a struct with a similar name exists | - 797 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), - 797 + 2 => Ok(ExtendedS0Index::M2(ExtendedS6M2 { raw: self.raw })), + 772 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), + 772 + 2 => Ok(ExtendedS0Index::M2(ExtendedS6M2 { raw: self.raw })), | error[E0425]: cannot find type `ExtendedS0M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:827:37 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:795:37 | -827 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { +795 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -916 | pub struct ExtendedS6M0 { +884 | pub struct ExtendedS6M0 { | ----------------------- similarly named struct `ExtendedS6M0` defined here | help: a struct with a similar name exists | -827 - pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { -827 + pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { +795 - pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { +795 + pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedS0M1` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:836:37 - | - 836 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { - | ^^^^^^^^^^^^ + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:804:37 + | +804 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { + | ^^^^^^^^^^^^ ... -1031 | pub struct ExtendedS6M1 { - | ----------------------- similarly named struct `ExtendedS6M1` defined here - | +991 | pub struct ExtendedS6M1 { + | ----------------------- similarly named struct `ExtendedS6M1` defined here + | help: a struct with a similar name exists - | - 836 - pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { - 836 + pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { - | + | +804 - pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { +804 + pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { + | error[E0425]: cannot find type `ExtendedS0M2` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:845:37 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:813:37 | - 845 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { + 813 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -1146 | pub struct ExtendedS6M2 { +1098 | pub struct ExtendedS6M2 { | ----------------------- similarly named struct `ExtendedS6M2` defined here | help: a struct with a similar name exists | - 845 - pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { - 845 + pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { + 813 - pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { + 813 + pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { | error: invalid suffix `i32` for float literal - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:1273:30 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:1217:30 | -1273 | pub const S9_MIN: i32 = -1.34_i32; +1217 | pub const S9_MIN: i32 = -1.34_i32; | ^^^^^^^^ invalid suffix `i32` | = help: valid suffixes are `f32` and `f64` error: invalid suffix `i32` for float literal - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:1545:21 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:1484:21 | -1545 | if value < -1.34_i32 || 1235_i32 < value { +1484 | if value < -1.34_i32 || 1235_i32 < value { | ^^^^^^^^ invalid suffix `i32` | = help: valid suffixes are `f32` and `f64` error[E0592]: duplicate definitions with name `set_m0` - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:827:5 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:795:5 | -753 | pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { +725 | pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m0` ... -827 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { +795 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m0` error[E0592]: duplicate definitions with name `set_m1` - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:836:5 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:804:5 | -762 | pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { +734 | pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m1` ... -836 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { +804 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m1` error[E0592]: duplicate definitions with name `set_m2` - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:845:5 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:813:5 | -771 | pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { +743 | pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m2` ... -845 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { +813 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m2` error[E0433]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:795:21 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:770:21 | -795 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +770 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS0Index` | help: an enum with a similar name exists | -795 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), -795 + 0 => Ok(ExtendedS6Index::M0(ExtendedS0M0 { raw: self.raw })), +770 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +770 + 0 => Ok(ExtendedS6Index::M0(ExtendedS0M0 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:796:21 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:771:21 | -796 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), +771 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS0Index` | help: an enum with a similar name exists | -796 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), -796 + 1 => Ok(ExtendedS6Index::M1(ExtendedS0M1 { raw: self.raw })), +771 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), +771 + 1 => Ok(ExtendedS6Index::M1(ExtendedS0M1 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:797:21 + --> tests-snapshots/dbc-cantools/multiplex_2.snap.rs:772:21 | -797 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), +772 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS0Index` | help: an enum with a similar name exists | -797 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), -797 + 2 => Ok(ExtendedS6Index::M2(ExtendedS0M2 { raw: self.raw })), +772 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), +772 + 2 => Ok(ExtendedS6Index::M2(ExtendedS0M2 { raw: self.raw })), | diff --git a/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs b/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs index 3a9bcf03..15b0005c 100644 --- a/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs +++ b/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs @@ -84,33 +84,36 @@ impl Shared { pub const S1_MAX: i8 = 0_i8; pub const S0_MIN: i8 = 0_i8; pub const S0_MAX: i8 = 0_i8; - /// Construct new 'Shared' from values + /// Constructs a new `Shared` message from values. pub fn new(s0: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s0(s0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Shared` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S0' + /// Returns the raw value of `S0`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s0_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `S0`. + #[allow(dead_code)] + #[inline(always)] + fn set_s0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); } - pub fn s0(&mut self) -> Result { - match self.s0_raw() { + /// Selects the active multiplexed sub-message for `S0`. + pub fn s0_multiplexed(&mut self) -> Result { + match self.s0_raw_val() { 1 => Ok(SharedS0Index::M1(SharedS0M1 { raw: self.raw })), 2 => Ok(SharedS0Index::M2(SharedS0M2 { raw: self.raw })), multiplexor => { @@ -121,7 +124,7 @@ impl Shared { } } } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] fn set_s0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -129,18 +132,11 @@ impl Shared { message_id: Shared::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Shared::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m1(&mut self, value: SharedS0M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -149,7 +145,7 @@ impl Shared { self.set_s0(1)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m2(&mut self, value: SharedS0M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -237,32 +233,35 @@ impl SharedS0M1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S1' + /// Returns the value of `S1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s1(&self) -> i8 { - self.s1_raw() + self.s1_raw_val() } - /// Get raw value of 'S1' + /// Returns the raw value of `S1`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s1_raw_val(&self) -> i8 { + self.raw.view_bits::()[4..8].load_le::() + } + /// Sets the raw value of `S1`. + #[inline(always)] + pub fn set_s1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[4..8].store_le(value); } - /// Set value of 'S1' + /// Sets the value of `S1`. #[inline(always)] pub fn set_s1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -270,13 +269,6 @@ impl SharedS0M1 { message_id: Shared::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Shared::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) @@ -308,32 +300,35 @@ impl SharedS0M2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S2' + /// Returns the value of `S2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s2(&self) -> i8 { - self.s2_raw() + self.s2_raw_val() } - /// Get raw value of 'S2' + /// Returns the raw value of `S2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'S2' + /// Sets the raw value of `S2`. + #[inline(always)] + pub fn set_s2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `S2`. #[inline(always)] pub fn set_s2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -341,13 +336,6 @@ impl SharedS0M2 { message_id: Shared::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Shared::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -381,33 +369,36 @@ impl Normal { pub const S1_MAX: i8 = 0_i8; pub const S0_MIN: i8 = 0_i8; pub const S0_MAX: i8 = 0_i8; - /// Construct new 'Normal' from values + /// Constructs a new `Normal` message from values. pub fn new(s0: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s0(s0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Normal` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S0' + /// Returns the raw value of `S0`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s0_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() } - pub fn s0(&mut self) -> Result { - match self.s0_raw() { + /// Sets the raw value of `S0`. + #[allow(dead_code)] + #[inline(always)] + fn set_s0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); + } + /// Selects the active multiplexed sub-message for `S0`. + pub fn s0_multiplexed(&mut self) -> Result { + match self.s0_raw_val() { 0 => Ok(NormalS0Index::M0(NormalS0M0 { raw: self.raw })), 1 => Ok(NormalS0Index::M1(NormalS0M1 { raw: self.raw })), multiplexor => { @@ -418,7 +409,7 @@ impl Normal { } } } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] fn set_s0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -426,18 +417,11 @@ impl Normal { message_id: Normal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Normal::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m0(&mut self, value: NormalS0M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -446,7 +430,7 @@ impl Normal { self.set_s0(0)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m1(&mut self, value: NormalS0M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -534,32 +518,35 @@ impl NormalS0M0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S1' + /// Returns the value of `S1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s1(&self) -> i8 { - self.s1_raw() + self.s1_raw_val() } - /// Get raw value of 'S1' + /// Returns the raw value of `S1`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s1_raw_val(&self) -> i8 { + self.raw.view_bits::()[4..8].load_le::() + } + /// Sets the raw value of `S1`. + #[inline(always)] + pub fn set_s1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[4..8].store_le(value); } - /// Set value of 'S1' + /// Sets the value of `S1`. #[inline(always)] pub fn set_s1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -567,13 +554,6 @@ impl NormalS0M0 { message_id: Normal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Normal::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) @@ -605,32 +585,35 @@ impl NormalS0M1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S2' + /// Returns the value of `S2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s2(&self) -> i8 { - self.s2_raw() + self.s2_raw_val() } - /// Get raw value of 'S2' + /// Returns the raw value of `S2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `S2`. + #[inline(always)] + pub fn set_s2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'S2' + /// Sets the value of `S2`. #[inline(always)] pub fn set_s2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -638,13 +621,6 @@ impl NormalS0M1 { message_id: Normal::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Normal::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -690,7 +666,7 @@ impl Extended { pub const S5_MAX: i32 = 0_i32; pub const S0_MIN: i8 = 0_i8; pub const S0_MAX: i8 = 0_i8; - /// Construct new 'Extended' from values + /// Constructs a new `Extended` message from values. pub fn new(s6: i8, s1: i8, s0: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s6(s6)?; @@ -698,27 +674,30 @@ impl Extended { res.set_s0(s0)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Extended` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S6' + /// Returns the raw value of `S6`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s6_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s6_raw_val(&self) -> i8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `S6`. + #[allow(dead_code)] + #[inline(always)] + fn set_s6_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..40].store_le(value); } - pub fn s6(&mut self) -> Result { - match self.s6_raw() { + /// Selects the active multiplexed sub-message for `S6`. + pub fn s6_multiplexed(&mut self) -> Result { + match self.s6_raw_val() { 0 => Ok(ExtendedS6Index::M0(ExtendedS6M0 { raw: self.raw })), 1 => Ok(ExtendedS6Index::M1(ExtendedS6M1 { raw: self.raw })), 2 => Ok(ExtendedS6Index::M2(ExtendedS6M2 { raw: self.raw })), @@ -730,7 +709,7 @@ impl Extended { } } } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] fn set_s6(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -738,18 +717,11 @@ impl Extended { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -758,7 +730,7 @@ impl Extended { self.set_s6(0)?; Ok(()) } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -767,7 +739,7 @@ impl Extended { self.set_s6(1)?; Ok(()) } - /// Set value of 'S6' + /// Sets the value of `S6`. #[inline(always)] pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -776,23 +748,26 @@ impl Extended { self.set_s6(2)?; Ok(()) } - /// Get raw value of 'S1' + /// Returns the raw value of `S1`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s1_raw_val(&self) -> i8 { + self.raw.view_bits::()[4..8].load_le::() } - pub fn s1(&mut self) -> Result { - match self.s1_raw() { + /// Sets the raw value of `S1`. + #[allow(dead_code)] + #[inline(always)] + fn set_s1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[4..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `S1`. + pub fn s1_multiplexed(&mut self) -> Result { + match self.s1_raw_val() { 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), @@ -804,7 +779,7 @@ impl Extended { } } } - /// Set value of 'S1' + /// Sets the value of `S1`. #[inline(always)] fn set_s1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -812,18 +787,11 @@ impl Extended { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) } - /// Set value of 'S1' + /// Sets the value of `S1`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedS1M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -832,7 +800,7 @@ impl Extended { self.set_s1(0)?; Ok(()) } - /// Set value of 'S1' + /// Sets the value of `S1`. #[inline(always)] pub fn set_m1(&mut self, value: ExtendedS1M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -841,7 +809,7 @@ impl Extended { self.set_s1(1)?; Ok(()) } - /// Set value of 'S1' + /// Sets the value of `S1`. #[inline(always)] pub fn set_m2(&mut self, value: ExtendedS1M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -850,23 +818,26 @@ impl Extended { self.set_s1(2)?; Ok(()) } - /// Get raw value of 'S0' + /// Returns the raw value of `S0`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s0_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() } - pub fn s0(&mut self) -> Result { - match self.s0_raw() { + /// Sets the raw value of `S0`. + #[allow(dead_code)] + #[inline(always)] + fn set_s0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); + } + /// Selects the active multiplexed sub-message for `S0`. + pub fn s0_multiplexed(&mut self) -> Result { + match self.s0_raw_val() { 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), @@ -878,7 +849,7 @@ impl Extended { } } } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] fn set_s0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -886,18 +857,11 @@ impl Extended { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -906,7 +870,7 @@ impl Extended { self.set_s0(0)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -915,7 +879,7 @@ impl Extended { self.set_s0(1)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1004,32 +968,35 @@ impl ExtendedS6M0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S3' + /// Returns the value of `S3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s3(&self) -> i16 { - self.s3_raw() + self.s3_raw_val() } - /// Get raw value of 'S3' + /// Returns the raw value of `S3`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s3_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s3_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `S3`. + #[inline(always)] + pub fn set_s3_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'S3' + /// Sets the value of `S3`. #[inline(always)] pub fn set_s3(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 0_i16 < value { @@ -1037,43 +1004,39 @@ impl ExtendedS6M0 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'S2' + /// Returns the value of `S2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s2(&self) -> i8 { - self.s2_raw() + self.s2_raw_val() } - /// Get raw value of 'S2' + /// Returns the raw value of `S2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `S2`. + #[inline(always)] + pub fn set_s2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'S2' + /// Sets the value of `S2`. #[inline(always)] pub fn set_s2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -1081,13 +1044,6 @@ impl ExtendedS6M0 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) @@ -1119,32 +1075,35 @@ impl ExtendedS6M1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S7' + /// Returns the value of `S7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s7(&self) -> i32 { - self.s7_raw() + self.s7_raw_val() } - /// Get raw value of 'S7' + /// Returns the raw value of `S7`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s7_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s7_raw_val(&self) -> i32 { + self.raw.view_bits::()[40..64].load_le::() } - /// Set value of 'S7' + /// Sets the raw value of `S7`. + #[inline(always)] + pub fn set_s7_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..64].store_le(value); + } + /// Sets the value of `S7`. #[inline(always)] pub fn set_s7(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1152,43 +1111,39 @@ impl ExtendedS6M1 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'S5' + /// Returns the value of `S5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s5(&self) -> i32 { - self.s5_raw() + self.s5_raw_val() } - /// Get raw value of 'S5' + /// Returns the raw value of `S5`. /// /// - Start bit: 4 /// - Signal size: 28 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s5_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[4..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s5_raw_val(&self) -> i32 { + self.raw.view_bits::()[4..32].load_le::() + } + /// Sets the raw value of `S5`. + #[inline(always)] + pub fn set_s5_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[4..32].store_le(value); } - /// Set value of 'S5' + /// Sets the value of `S5`. #[inline(always)] pub fn set_s5(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1196,13 +1151,6 @@ impl ExtendedS6M1 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[4..32].store_le(value); Ok(()) @@ -1234,32 +1182,35 @@ impl ExtendedS6M2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S8' + /// Returns the value of `S8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s8(&self) -> i8 { - self.s8_raw() + self.s8_raw_val() } - /// Get raw value of 'S8' + /// Returns the raw value of `S8`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s8_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s8_raw_val(&self) -> i8 { + self.raw.view_bits::()[40..48].load_le::() } - /// Set value of 'S8' + /// Sets the raw value of `S8`. + #[inline(always)] + pub fn set_s8_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..48].store_le(value); + } + /// Sets the value of `S8`. #[inline(always)] pub fn set_s8(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -1267,43 +1218,39 @@ impl ExtendedS6M2 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'S4' + /// Returns the value of `S4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s4(&self) -> i32 { - self.s4_raw() + self.s4_raw_val() } - /// Get raw value of 'S4' + /// Returns the raw value of `S4`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s4_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s4_raw_val(&self) -> i32 { + self.raw.view_bits::()[8..32].load_le::() + } + /// Sets the raw value of `S4`. + #[inline(always)] + pub fn set_s4_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..32].store_le(value); } - /// Set value of 'S4' + /// Sets the value of `S4`. #[inline(always)] pub fn set_s4(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1311,13 +1258,6 @@ impl ExtendedS6M2 { message_id: Extended::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Extended::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) @@ -1353,34 +1293,37 @@ impl ExtendedTypes { pub const S0_MAX: i8 = 0_i8; pub const S11_MIN: u8 = 2_u8; pub const S11_MAX: u8 = 6_u8; - /// Construct new 'ExtendedTypes' from values + /// Constructs a new `ExtendedTypes` message from values. pub fn new(s0: i8, s11: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s0(s0)?; res.set_s11(s11)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ExtendedTypes` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'S0' + /// Returns the raw value of `S0`. /// /// - Start bit: 8 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s0_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..12].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s0_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..12].load_le::() } - pub fn s0(&mut self) -> Result { - match self.s0_raw() { + /// Sets the raw value of `S0`. + #[allow(dead_code)] + #[inline(always)] + fn set_s0_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..12].store_le(value); + } + /// Selects the active multiplexed sub-message for `S0`. + pub fn s0_multiplexed(&mut self) -> Result { + match self.s0_raw_val() { 0 => Ok(ExtendedTypesS0Index::M0(ExtendedTypesS0M0 { raw: self.raw })), 5 => Ok(ExtendedTypesS0Index::M5(ExtendedTypesS0M5 { raw: self.raw })), multiplexor => { @@ -1391,7 +1334,7 @@ impl ExtendedTypes { } } } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] fn set_s0(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -1399,18 +1342,11 @@ impl ExtendedTypes { message_id: ExtendedTypes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtendedTypes::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..12].store_le(value); Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedTypesS0M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1419,7 +1355,7 @@ impl ExtendedTypes { self.set_s0(0)?; Ok(()) } - /// Set value of 'S0' + /// Sets the value of `S0`. #[inline(always)] pub fn set_m5(&mut self, value: ExtendedTypesS0M5) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1428,22 +1364,25 @@ impl ExtendedTypes { self.set_s0(5)?; Ok(()) } - /// Get raw value of 'S11' + /// Returns the raw value of `S11`. /// /// - Start bit: 0 /// - Signal size: 5 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn s11_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..5].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s11_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..5].load_le::() + } + /// Sets the raw value of `S11`. + #[allow(dead_code)] + #[inline(always)] + fn set_s11_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..5].store_le(value); } - pub fn s11(&mut self) -> Result { - match self.s11_raw() { + /// Selects the active multiplexed sub-message for `S11`. + pub fn s11_multiplexed(&mut self) -> Result { + match self.s11_raw_val() { 0 => { Ok( ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { @@ -1466,7 +1405,7 @@ impl ExtendedTypes { } } } - /// Set value of 'S11' + /// Sets the value of `S11`. #[inline(always)] fn set_s11(&mut self, value: u8) -> Result<(), CanError> { if value < 2_u8 || 6_u8 < value { @@ -1474,17 +1413,10 @@ impl ExtendedTypes { message_id: ExtendedTypes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtendedTypes::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..5].store_le(value); Ok(()) } - /// Set value of 'S11' + /// Sets the value of `S11`. #[inline(always)] pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1493,7 +1425,7 @@ impl ExtendedTypes { self.set_s11(0)?; Ok(()) } - /// Set value of 'S11' + /// Sets the value of `S11`. #[inline(always)] pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1581,32 +1513,35 @@ impl ExtendedTypesS0M0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S10' + /// Returns the value of `S10`. /// /// - Min: -340000000000000000000000000000000000000 /// - Max: 340000000000000000000000000000000000000 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s10(&self) -> i32 { - self.s10_raw() + self.s10_raw_val() } - /// Get raw value of 'S10' + /// Returns the raw value of `S10`. /// /// - Start bit: 16 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s10_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[16..48].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s10_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..48].load_le::() } - /// Set value of 'S10' + /// Sets the raw value of `S10`. + #[inline(always)] + pub fn set_s10_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..48].store_le(value); + } + /// Sets the value of `S10`. #[inline(always)] pub fn set_s10(&mut self, value: i32) -> Result<(), CanError> { if value < -340000000000000000000000000000000000000_i32 @@ -1616,13 +1551,6 @@ impl ExtendedTypesS0M0 { message_id: ExtendedTypes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtendedTypes::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..48].store_le(value); Ok(()) @@ -1654,32 +1582,35 @@ impl ExtendedTypesS0M5 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'S9' + /// Returns the value of `S9`. /// /// - Min: -1.34 /// - Max: 1235 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s9(&self) -> i32 { - self.s9_raw() + self.s9_raw_val() } - /// Get raw value of 'S9' + /// Returns the raw value of `S9`. /// /// - Start bit: 24 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s9_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[24..56].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s9_raw_val(&self) -> i32 { + self.raw.view_bits::()[24..56].load_le::() } - /// Set value of 'S9' + /// Sets the raw value of `S9`. + #[inline(always)] + pub fn set_s9_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..56].store_le(value); + } + /// Sets the value of `S9`. #[inline(always)] pub fn set_s9(&mut self, value: i32) -> Result<(), CanError> { if value < -1.34_i32 || 1235_i32 < value { @@ -1687,13 +1618,6 @@ impl ExtendedTypesS0M5 { message_id: ExtendedTypes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ExtendedTypes::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..56].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.stderr b/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.stderr index d12ed8c4..6165385b 100644 --- a/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.stderr +++ b/tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.stderr @@ -1,480 +1,480 @@ error[E0425]: cannot find type `ExtendedS1Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:794:36 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:769:48 | -794 | pub fn s1(&mut self) -> Result { - | ^^^^^^^^^^^^^^^ +769 | pub fn s1_multiplexed(&mut self) -> Result { + | ^^^^^^^^^^^^^^^ ... -976 | pub enum ExtendedS6Index { +940 | pub enum ExtendedS6Index { | ------------------------ similarly named enum `ExtendedS6Index` defined here | help: an enum with a similar name exists | -794 - pub fn s1(&mut self) -> Result { -794 + pub fn s1(&mut self) -> Result { +769 - pub fn s1_multiplexed(&mut self) -> Result { +769 + pub fn s1_multiplexed(&mut self) -> Result { | help: you might be missing a type parameter | -670 | impl Extended { +646 | impl Extended { | +++++++++++++++++ error[E0422]: cannot find struct, variant or union type `ExtendedS1M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:796:41 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:771:41 | -796 | 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), +771 | 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), | ^^^^^^^^^^^^ ... -991 | pub struct ExtendedS6M0 { +955 | pub struct ExtendedS6M0 { | ----------------------- similarly named struct `ExtendedS6M0` defined here | help: a struct with a similar name exists | -796 - 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), -796 + 0 => Ok(ExtendedS1Index::M0(ExtendedS6M0 { raw: self.raw })), +771 - 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), +771 + 0 => Ok(ExtendedS1Index::M0(ExtendedS6M0 { raw: self.raw })), | error[E0422]: cannot find struct, variant or union type `ExtendedS1M1` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:797:41 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:772:41 | - 797 | 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), + 772 | 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), | ^^^^^^^^^^^^ ... -1106 | pub struct ExtendedS6M1 { +1062 | pub struct ExtendedS6M1 { | ----------------------- similarly named struct `ExtendedS6M1` defined here | help: a struct with a similar name exists | - 797 - 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), - 797 + 1 => Ok(ExtendedS1Index::M1(ExtendedS6M1 { raw: self.raw })), + 772 - 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), + 772 + 1 => Ok(ExtendedS1Index::M1(ExtendedS6M1 { raw: self.raw })), | error[E0422]: cannot find struct, variant or union type `ExtendedS1M2` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:798:41 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:773:41 | - 798 | 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), + 773 | 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), | ^^^^^^^^^^^^ ... -1221 | pub struct ExtendedS6M2 { +1169 | pub struct ExtendedS6M2 { | ----------------------- similarly named struct `ExtendedS6M2` defined here | help: a struct with a similar name exists | - 798 - 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), - 798 + 2 => Ok(ExtendedS1Index::M2(ExtendedS6M2 { raw: self.raw })), + 773 - 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), + 773 + 2 => Ok(ExtendedS1Index::M2(ExtendedS6M2 { raw: self.raw })), | error[E0425]: cannot find type `ExtendedS1M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:828:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:796:37 | -828 | pub fn set_m0(&mut self, value: ExtendedS1M0) -> Result<(), CanError> { +796 | pub fn set_m0(&mut self, value: ExtendedS1M0) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -991 | pub struct ExtendedS6M0 { +955 | pub struct ExtendedS6M0 { | ----------------------- similarly named struct `ExtendedS6M0` defined here | help: a struct with a similar name exists | -828 - pub fn set_m0(&mut self, value: ExtendedS1M0) -> Result<(), CanError> { -828 + pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { +796 - pub fn set_m0(&mut self, value: ExtendedS1M0) -> Result<(), CanError> { +796 + pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedS1M1` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:837:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:805:37 | - 837 | pub fn set_m1(&mut self, value: ExtendedS1M1) -> Result<(), CanError> { + 805 | pub fn set_m1(&mut self, value: ExtendedS1M1) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -1106 | pub struct ExtendedS6M1 { +1062 | pub struct ExtendedS6M1 { | ----------------------- similarly named struct `ExtendedS6M1` defined here | help: a struct with a similar name exists | - 837 - pub fn set_m1(&mut self, value: ExtendedS1M1) -> Result<(), CanError> { - 837 + pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { + 805 - pub fn set_m1(&mut self, value: ExtendedS1M1) -> Result<(), CanError> { + 805 + pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedS1M2` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:846:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:814:37 | - 846 | pub fn set_m2(&mut self, value: ExtendedS1M2) -> Result<(), CanError> { + 814 | pub fn set_m2(&mut self, value: ExtendedS1M2) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -1221 | pub struct ExtendedS6M2 { +1169 | pub struct ExtendedS6M2 { | ----------------------- similarly named struct `ExtendedS6M2` defined here | help: a struct with a similar name exists | - 846 - pub fn set_m2(&mut self, value: ExtendedS1M2) -> Result<(), CanError> { - 846 + pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { + 814 - pub fn set_m2(&mut self, value: ExtendedS1M2) -> Result<(), CanError> { + 814 + pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:868:36 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:839:48 | -868 | pub fn s0(&mut self) -> Result { - | ^^^^^^^^^^^^^^^ +839 | pub fn s0_multiplexed(&mut self) -> Result { + | ^^^^^^^^^^^^^^^ ... -976 | pub enum ExtendedS6Index { +940 | pub enum ExtendedS6Index { | ------------------------ similarly named enum `ExtendedS6Index` defined here | help: an enum with a similar name exists | -868 - pub fn s0(&mut self) -> Result { -868 + pub fn s0(&mut self) -> Result { +839 - pub fn s0_multiplexed(&mut self) -> Result { +839 + pub fn s0_multiplexed(&mut self) -> Result { | help: you might be missing a type parameter | -670 | impl Extended { +646 | impl Extended { | +++++++++++++++++ error[E0422]: cannot find struct, variant or union type `ExtendedS0M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:870:41 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:841:41 | -870 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +841 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), | ^^^^^^^^^^^^ ... -991 | pub struct ExtendedS6M0 { +955 | pub struct ExtendedS6M0 { | ----------------------- similarly named struct `ExtendedS6M0` defined here | help: a struct with a similar name exists | -870 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), -870 + 0 => Ok(ExtendedS0Index::M0(ExtendedS6M0 { raw: self.raw })), +841 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +841 + 0 => Ok(ExtendedS0Index::M0(ExtendedS6M0 { raw: self.raw })), | error[E0422]: cannot find struct, variant or union type `ExtendedS0M1` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:871:41 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:842:41 | - 871 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), + 842 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), | ^^^^^^^^^^^^ ... -1106 | pub struct ExtendedS6M1 { +1062 | pub struct ExtendedS6M1 { | ----------------------- similarly named struct `ExtendedS6M1` defined here | help: a struct with a similar name exists | - 871 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), - 871 + 1 => Ok(ExtendedS0Index::M1(ExtendedS6M1 { raw: self.raw })), + 842 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), + 842 + 1 => Ok(ExtendedS0Index::M1(ExtendedS6M1 { raw: self.raw })), | error[E0422]: cannot find struct, variant or union type `ExtendedS0M2` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:872:41 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:843:41 | - 872 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), + 843 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), | ^^^^^^^^^^^^ ... -1221 | pub struct ExtendedS6M2 { +1169 | pub struct ExtendedS6M2 { | ----------------------- similarly named struct `ExtendedS6M2` defined here | help: a struct with a similar name exists | - 872 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), - 872 + 2 => Ok(ExtendedS0Index::M2(ExtendedS6M2 { raw: self.raw })), + 843 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), + 843 + 2 => Ok(ExtendedS0Index::M2(ExtendedS6M2 { raw: self.raw })), | error[E0425]: cannot find type `ExtendedS0M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:902:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:866:37 | -902 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { +866 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -991 | pub struct ExtendedS6M0 { +955 | pub struct ExtendedS6M0 { | ----------------------- similarly named struct `ExtendedS6M0` defined here | help: a struct with a similar name exists | -902 - pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { -902 + pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { +866 - pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { +866 + pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedS0M1` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:911:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:875:37 | - 911 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { + 875 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -1106 | pub struct ExtendedS6M1 { +1062 | pub struct ExtendedS6M1 { | ----------------------- similarly named struct `ExtendedS6M1` defined here | help: a struct with a similar name exists | - 911 - pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { - 911 + pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { + 875 - pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { + 875 + pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedS0M2` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:920:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:884:37 | - 920 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { + 884 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { | ^^^^^^^^^^^^ ... -1221 | pub struct ExtendedS6M2 { +1169 | pub struct ExtendedS6M2 { | ----------------------- similarly named struct `ExtendedS6M2` defined here | help: a struct with a similar name exists | - 920 - pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { - 920 + pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { + 884 - pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { + 884 + pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedTypesS11Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1445:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1384:49 | -1445 | pub fn s11(&mut self) -> Result { - | ^^^^^^^^^^^^^^^^^^^^^ +1384 | pub fn s11_multiplexed(&mut self) -> Result { + | ^^^^^^^^^^^^^^^^^^^^^ ... -1554 | pub enum ExtendedTypesS0Index { +1486 | pub enum ExtendedTypesS0Index { | ----------------------------- similarly named enum `ExtendedTypesS0Index` defined here | help: an enum with a similar name exists | -1445 - pub fn s11(&mut self) -> Result { -1445 + pub fn s11(&mut self) -> Result { +1384 - pub fn s11_multiplexed(&mut self) -> Result { +1384 + pub fn s11_multiplexed(&mut self) -> Result { | help: you might be missing a type parameter | -1343 | impl ExtendedTypes { +1283 | impl ExtendedTypes { | +++++++++++++++++++++++ error[E0422]: cannot find struct, variant or union type `ExtendedTypesS11M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1449:47 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1388:47 | -1449 | ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { +1388 | ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { | ^^^^^^^^^^^^^^^^^^ ... -1568 | pub struct ExtendedTypesS0M0 { +1500 | pub struct ExtendedTypesS0M0 { | ---------------------------- similarly named struct `ExtendedTypesS0M0` defined here | help: a struct with a similar name exists | -1449 - ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { -1449 + ExtendedTypesS11Index::M0(ExtendedTypesS0M0 { +1388 - ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { +1388 + ExtendedTypesS11Index::M0(ExtendedTypesS0M0 { | error[E0422]: cannot find struct, variant or union type `ExtendedTypesS11M5` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1456:47 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1395:47 | -1456 | ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { +1395 | ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { | ^^^^^^^^^^^^^^^^^^ ... -1641 | pub struct ExtendedTypesS0M5 { +1569 | pub struct ExtendedTypesS0M5 { | ---------------------------- similarly named struct `ExtendedTypesS0M5` defined here | help: a struct with a similar name exists | -1456 - ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { -1456 + ExtendedTypesS11Index::M5(ExtendedTypesS0M5 { +1395 - ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { +1395 + ExtendedTypesS11Index::M5(ExtendedTypesS0M5 { | error[E0425]: cannot find type `ExtendedTypesS11M0` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1489:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1421:37 | -1489 | pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { +1421 | pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^ ... -1568 | pub struct ExtendedTypesS0M0 { +1500 | pub struct ExtendedTypesS0M0 { | ---------------------------- similarly named struct `ExtendedTypesS0M0` defined here | help: a struct with a similar name exists | -1489 - pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { -1489 + pub fn set_m0(&mut self, value: ExtendedTypesS0M0) -> Result<(), CanError> { +1421 - pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { +1421 + pub fn set_m0(&mut self, value: ExtendedTypesS0M0) -> Result<(), CanError> { | error[E0425]: cannot find type `ExtendedTypesS11M5` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1498:37 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1430:37 | -1498 | pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { +1430 | pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^ ... -1641 | pub struct ExtendedTypesS0M5 { +1569 | pub struct ExtendedTypesS0M5 { | ---------------------------- similarly named struct `ExtendedTypesS0M5` defined here | help: a struct with a similar name exists | -1498 - pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { -1498 + pub fn set_m5(&mut self, value: ExtendedTypesS0M5) -> Result<(), CanError> { +1430 - pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { +1430 + pub fn set_m5(&mut self, value: ExtendedTypesS0M5) -> Result<(), CanError> { | error: invalid suffix `i32` for float literal - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1348:30 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1288:30 | -1348 | pub const S9_MIN: i32 = -1.34_i32; +1288 | pub const S9_MIN: i32 = -1.34_i32; | ^^^^^^^^ invalid suffix `i32` | = help: valid suffixes are `f32` and `f64` error: invalid suffix `i32` for float literal - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1685:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1616:21 | -1685 | if value < -1.34_i32 || 1235_i32 < value { +1616 | if value < -1.34_i32 || 1235_i32 < value { | ^^^^^^^^ invalid suffix `i32` | = help: valid suffixes are `f32` and `f64` error[E0592]: duplicate definitions with name `set_m0` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:828:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:796:5 | -754 | pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { +726 | pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m0` ... -828 | pub fn set_m0(&mut self, value: ExtendedS1M0) -> Result<(), CanError> { +796 | pub fn set_m0(&mut self, value: ExtendedS1M0) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m0` error[E0592]: duplicate definitions with name `set_m1` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:837:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:805:5 | -763 | pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { +735 | pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m1` ... -837 | pub fn set_m1(&mut self, value: ExtendedS1M1) -> Result<(), CanError> { +805 | pub fn set_m1(&mut self, value: ExtendedS1M1) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m1` error[E0592]: duplicate definitions with name `set_m2` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:846:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:814:5 | -772 | pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { +744 | pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m2` ... -846 | pub fn set_m2(&mut self, value: ExtendedS1M2) -> Result<(), CanError> { +814 | pub fn set_m2(&mut self, value: ExtendedS1M2) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m2` error[E0592]: duplicate definitions with name `set_m0` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:902:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:866:5 | -754 | pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { +726 | pub fn set_m0(&mut self, value: ExtendedS6M0) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m0` ... -902 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { +866 | pub fn set_m0(&mut self, value: ExtendedS0M0) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m0` error[E0592]: duplicate definitions with name `set_m1` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:911:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:875:5 | -763 | pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { +735 | pub fn set_m1(&mut self, value: ExtendedS6M1) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m1` ... -911 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { +875 | pub fn set_m1(&mut self, value: ExtendedS0M1) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m1` error[E0592]: duplicate definitions with name `set_m2` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:920:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:884:5 | -772 | pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { +744 | pub fn set_m2(&mut self, value: ExtendedS6M2) -> Result<(), CanError> { | --------------------------------------------------------------------- other definition for `set_m2` ... -920 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { +884 | pub fn set_m2(&mut self, value: ExtendedS0M2) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m2` error[E0592]: duplicate definitions with name `set_m0` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1489:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1421:5 | -1415 | pub fn set_m0(&mut self, value: ExtendedTypesS0M0) -> Result<(), CanError> { +1351 | pub fn set_m0(&mut self, value: ExtendedTypesS0M0) -> Result<(), CanError> { | -------------------------------------------------------------------------- other definition for `set_m0` ... -1489 | pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { +1421 | pub fn set_m0(&mut self, value: ExtendedTypesS11M0) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m0` error[E0592]: duplicate definitions with name `set_m5` - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1498:5 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1430:5 | -1424 | pub fn set_m5(&mut self, value: ExtendedTypesS0M5) -> Result<(), CanError> { +1360 | pub fn set_m5(&mut self, value: ExtendedTypesS0M5) -> Result<(), CanError> { | -------------------------------------------------------------------------- other definition for `set_m5` ... -1498 | pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { +1430 | pub fn set_m5(&mut self, value: ExtendedTypesS11M5) -> Result<(), CanError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set_m5` error[E0433]: cannot find type `ExtendedS1Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:796:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:771:21 | -796 | 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), +771 | 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS1Index` | help: an enum with a similar name exists | -796 - 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), -796 + 0 => Ok(ExtendedS6Index::M0(ExtendedS1M0 { raw: self.raw })), +771 - 0 => Ok(ExtendedS1Index::M0(ExtendedS1M0 { raw: self.raw })), +771 + 0 => Ok(ExtendedS6Index::M0(ExtendedS1M0 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedS1Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:797:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:772:21 | -797 | 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), +772 | 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS1Index` | help: an enum with a similar name exists | -797 - 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), -797 + 1 => Ok(ExtendedS6Index::M1(ExtendedS1M1 { raw: self.raw })), +772 - 1 => Ok(ExtendedS1Index::M1(ExtendedS1M1 { raw: self.raw })), +772 + 1 => Ok(ExtendedS6Index::M1(ExtendedS1M1 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedS1Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:798:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:773:21 | -798 | 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), +773 | 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS1Index` | help: an enum with a similar name exists | -798 - 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), -798 + 2 => Ok(ExtendedS6Index::M2(ExtendedS1M2 { raw: self.raw })), +773 - 2 => Ok(ExtendedS1Index::M2(ExtendedS1M2 { raw: self.raw })), +773 + 2 => Ok(ExtendedS6Index::M2(ExtendedS1M2 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:870:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:841:21 | -870 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +841 | 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS0Index` | help: an enum with a similar name exists | -870 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), -870 + 0 => Ok(ExtendedS6Index::M0(ExtendedS0M0 { raw: self.raw })), +841 - 0 => Ok(ExtendedS0Index::M0(ExtendedS0M0 { raw: self.raw })), +841 + 0 => Ok(ExtendedS6Index::M0(ExtendedS0M0 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:871:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:842:21 | -871 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), +842 | 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS0Index` | help: an enum with a similar name exists | -871 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), -871 + 1 => Ok(ExtendedS6Index::M1(ExtendedS0M1 { raw: self.raw })), +842 - 1 => Ok(ExtendedS0Index::M1(ExtendedS0M1 { raw: self.raw })), +842 + 1 => Ok(ExtendedS6Index::M1(ExtendedS0M1 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedS0Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:872:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:843:21 | -872 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), +843 | 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), | ^^^^^^^^^^^^^^^ use of undeclared type `ExtendedS0Index` | help: an enum with a similar name exists | -872 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), -872 + 2 => Ok(ExtendedS6Index::M2(ExtendedS0M2 { raw: self.raw })), +843 - 2 => Ok(ExtendedS0Index::M2(ExtendedS0M2 { raw: self.raw })), +843 + 2 => Ok(ExtendedS6Index::M2(ExtendedS0M2 { raw: self.raw })), | error[E0433]: cannot find type `ExtendedTypesS11Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1449:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1388:21 | -1449 | ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { +1388 | ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { | ^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtendedTypesS11Index` | help: an enum with a similar name exists | -1449 - ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { -1449 + ExtendedTypesS0Index::M0(ExtendedTypesS11M0 { +1388 - ExtendedTypesS11Index::M0(ExtendedTypesS11M0 { +1388 + ExtendedTypesS0Index::M0(ExtendedTypesS11M0 { | error[E0433]: cannot find type `ExtendedTypesS11Index` in this scope - --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1456:21 + --> tests-snapshots/dbc-cantools/multiplex_2_dumped.snap.rs:1395:21 | -1456 | ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { +1395 | ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { | ^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `ExtendedTypesS11Index` | help: an enum with a similar name exists | -1456 - ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { -1456 + ExtendedTypesS0Index::M5(ExtendedTypesS11M5 { +1395 - ExtendedTypesS11Index::M5(ExtendedTypesS11M5 { +1395 + ExtendedTypesS0Index::M5(ExtendedTypesS11M5 { | diff --git a/tests-snapshots/dbc-cantools/multiplex_choices.snap.rs b/tests-snapshots/dbc-cantools/multiplex_choices.snap.rs index cd0ec750..b6fe2a50 100644 --- a/tests-snapshots/dbc-cantools/multiplex_choices.snap.rs +++ b/tests-snapshots/dbc-cantools/multiplex_choices.snap.rs @@ -75,32 +75,37 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message1MultiplexorIndex::M8(Message1MultiplexorM8 { @@ -123,7 +128,7 @@ impl Message1 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -131,17 +136,10 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message1MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -150,7 +148,7 @@ impl Message1 { self.set_multiplexor(8)?; Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m24(&mut self, value: Message1MultiplexorM24) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -290,11 +288,11 @@ impl Message1MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn bit_l(&self) -> Message1BitL { @@ -302,23 +300,29 @@ impl Message1MultiplexorM8 { match signal { 0 => Message1BitL::Off, 1 => Message1BitL::On, - _ => Message1BitL::_Other(self.bit_l_raw()), + _ => Message1BitL::_Other(self.bit_l_phys_val()), } } - /// Get raw value of 'BIT_L' + #[inline(always)] + fn bit_l_phys_val(&self) -> bool { + self.bit_l_raw_val() == 1 + } + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() + } + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); } - /// Set value of 'BIT_L' + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: Message1BitL) -> Result<(), CanError> { let value = bool::from(value); @@ -326,90 +330,102 @@ impl Message1MultiplexorM8 { self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() } - /// Set value of 'BIT_G' + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); + } + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() } - /// Set value of 'BIT_C' + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); + } + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() } - /// Set value of 'BIT_J' + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); + } + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -443,210 +459,238 @@ impl Message1MultiplexorM24 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_K' + /// Returns the value of `BIT_K`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_k(&self) -> bool { - self.bit_k_raw() + self.bit_k_raw_val() == 1 } - /// Get raw value of 'BIT_K' + /// Returns the raw value of `BIT_K`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_k_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn bit_k_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() } - /// Set value of 'BIT_K' + /// Sets the raw value of `BIT_K`. + #[inline(always)] + pub fn set_bit_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); + } + /// Sets the value of `BIT_K`. #[inline(always)] pub fn set_bit_k(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'BIT_D' + /// Returns the value of `BIT_D`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_d(&self) -> bool { - self.bit_d_raw() + self.bit_d_raw_val() == 1 } - /// Get raw value of 'BIT_D' + /// Returns the raw value of `BIT_D`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn bit_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() + } + /// Sets the raw value of `BIT_D`. + #[inline(always)] + pub fn set_bit_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); } - /// Set value of 'BIT_D' + /// Sets the value of `BIT_D`. #[inline(always)] pub fn set_bit_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'BIT_B' + /// Returns the value of `BIT_B`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_b(&self) -> bool { - self.bit_b_raw() + self.bit_b_raw_val() == 1 } - /// Get raw value of 'BIT_B' + /// Returns the raw value of `BIT_B`. /// /// - Start bit: 33 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[33..34].load_le::(); - signal == 1 + pub fn bit_b_raw_val(&self) -> u8 { + self.raw.view_bits::()[33..34].load_le::() } - /// Set value of 'BIT_B' + /// Sets the raw value of `BIT_B`. + #[inline(always)] + pub fn set_bit_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[33..34].store_le(value); + } + /// Sets the value of `BIT_B`. #[inline(always)] pub fn set_bit_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[33..34].store_le(value); Ok(()) } - /// Get value of 'BIT_F' + /// Returns the value of `BIT_F`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_f(&self) -> bool { - self.bit_f_raw() + self.bit_f_raw_val() == 1 } - /// Get raw value of 'BIT_F' + /// Returns the raw value of `BIT_F`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_f_raw(&self) -> bool { - let signal = self.raw.view_bits::()[39..40].load_le::(); - signal == 1 + pub fn bit_f_raw_val(&self) -> u8 { + self.raw.view_bits::()[39..40].load_le::() + } + /// Sets the raw value of `BIT_F`. + #[inline(always)] + pub fn set_bit_f_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[39..40].store_le(value); } - /// Set value of 'BIT_F' + /// Sets the value of `BIT_F`. #[inline(always)] pub fn set_bit_f(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[39..40].store_le(value); Ok(()) } - /// Get value of 'BIT_H' + /// Returns the value of `BIT_H`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_h(&self) -> bool { - self.bit_h_raw() + self.bit_h_raw_val() == 1 } - /// Get raw value of 'BIT_H' + /// Returns the raw value of `BIT_H`. /// /// - Start bit: 38 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_h_raw(&self) -> bool { - let signal = self.raw.view_bits::()[38..39].load_le::(); - signal == 1 + pub fn bit_h_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..39].load_le::() } - /// Set value of 'BIT_H' + /// Sets the raw value of `BIT_H`. + #[inline(always)] + pub fn set_bit_h_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..39].store_le(value); + } + /// Sets the value of `BIT_H`. #[inline(always)] pub fn set_bit_h(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[38..39].store_le(value); Ok(()) } - /// Get value of 'BIT_E' + /// Returns the value of `BIT_E`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_e(&self) -> bool { - self.bit_e_raw() + self.bit_e_raw_val() == 1 } - /// Get raw value of 'BIT_E' + /// Returns the raw value of `BIT_E`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn bit_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() + } + /// Sets the raw value of `BIT_E`. + #[inline(always)] + pub fn set_bit_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); } - /// Set value of 'BIT_E' + /// Sets the value of `BIT_E`. #[inline(always)] pub fn set_bit_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'BIT_A' + /// Returns the value of `BIT_A`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_a(&self) -> bool { - self.bit_a_raw() + self.bit_a_raw_val() == 1 } - /// Get raw value of 'BIT_A' + /// Returns the raw value of `BIT_A`. /// /// - Start bit: 26 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_a_raw(&self) -> bool { - let signal = self.raw.view_bits::()[26..27].load_le::(); - signal == 1 + pub fn bit_a_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..27].load_le::() + } + /// Sets the raw value of `BIT_A`. + #[inline(always)] + pub fn set_bit_a_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..27].store_le(value); } - /// Set value of 'BIT_A' + /// Sets the value of `BIT_A`. #[inline(always)] pub fn set_bit_a(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -678,32 +722,37 @@ impl Message2 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message2' from values + /// Constructs a new `Message2` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() + } + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message2MultiplexorIndex::M8(Message2MultiplexorM8 { @@ -726,7 +775,7 @@ impl Message2 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -734,17 +783,10 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message2MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -753,7 +795,7 @@ impl Message2 { self.set_multiplexor(8)?; Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m24(&mut self, value: Message2MultiplexorM24) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -870,120 +912,136 @@ impl Message2MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_l(&self) -> bool { - self.bit_l_raw() + self.bit_l_raw_val() == 1 } - /// Get raw value of 'BIT_L' + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() + } + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); } - /// Set value of 'BIT_L' + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() } - /// Set value of 'BIT_G' + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); + } + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() } - /// Set value of 'BIT_C' + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); + } + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() + } + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); } - /// Set value of 'BIT_J' + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -1017,210 +1075,238 @@ impl Message2MultiplexorM24 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_K' + /// Returns the value of `BIT_K`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_k(&self) -> bool { - self.bit_k_raw() + self.bit_k_raw_val() == 1 } - /// Get raw value of 'BIT_K' + /// Returns the raw value of `BIT_K`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_k_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn bit_k_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() + } + /// Sets the raw value of `BIT_K`. + #[inline(always)] + pub fn set_bit_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); } - /// Set value of 'BIT_K' + /// Sets the value of `BIT_K`. #[inline(always)] pub fn set_bit_k(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'BIT_D' + /// Returns the value of `BIT_D`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_d(&self) -> bool { - self.bit_d_raw() + self.bit_d_raw_val() == 1 } - /// Get raw value of 'BIT_D' + /// Returns the raw value of `BIT_D`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn bit_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() } - /// Set value of 'BIT_D' + /// Sets the raw value of `BIT_D`. + #[inline(always)] + pub fn set_bit_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); + } + /// Sets the value of `BIT_D`. #[inline(always)] pub fn set_bit_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'BIT_B' + /// Returns the value of `BIT_B`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_b(&self) -> bool { - self.bit_b_raw() + self.bit_b_raw_val() == 1 } - /// Get raw value of 'BIT_B' + /// Returns the raw value of `BIT_B`. /// /// - Start bit: 33 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[33..34].load_le::(); - signal == 1 + pub fn bit_b_raw_val(&self) -> u8 { + self.raw.view_bits::()[33..34].load_le::() + } + /// Sets the raw value of `BIT_B`. + #[inline(always)] + pub fn set_bit_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[33..34].store_le(value); } - /// Set value of 'BIT_B' + /// Sets the value of `BIT_B`. #[inline(always)] pub fn set_bit_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[33..34].store_le(value); Ok(()) } - /// Get value of 'BIT_F' + /// Returns the value of `BIT_F`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_f(&self) -> bool { - self.bit_f_raw() + self.bit_f_raw_val() == 1 } - /// Get raw value of 'BIT_F' + /// Returns the raw value of `BIT_F`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_f_raw(&self) -> bool { - let signal = self.raw.view_bits::()[39..40].load_le::(); - signal == 1 + pub fn bit_f_raw_val(&self) -> u8 { + self.raw.view_bits::()[39..40].load_le::() + } + /// Sets the raw value of `BIT_F`. + #[inline(always)] + pub fn set_bit_f_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[39..40].store_le(value); } - /// Set value of 'BIT_F' + /// Sets the value of `BIT_F`. #[inline(always)] pub fn set_bit_f(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[39..40].store_le(value); Ok(()) } - /// Get value of 'BIT_H' + /// Returns the value of `BIT_H`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_h(&self) -> bool { - self.bit_h_raw() + self.bit_h_raw_val() == 1 } - /// Get raw value of 'BIT_H' + /// Returns the raw value of `BIT_H`. /// /// - Start bit: 38 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_h_raw(&self) -> bool { - let signal = self.raw.view_bits::()[38..39].load_le::(); - signal == 1 + pub fn bit_h_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..39].load_le::() } - /// Set value of 'BIT_H' + /// Sets the raw value of `BIT_H`. + #[inline(always)] + pub fn set_bit_h_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..39].store_le(value); + } + /// Sets the value of `BIT_H`. #[inline(always)] pub fn set_bit_h(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[38..39].store_le(value); Ok(()) } - /// Get value of 'BIT_E' + /// Returns the value of `BIT_E`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_e(&self) -> bool { - self.bit_e_raw() + self.bit_e_raw_val() == 1 } - /// Get raw value of 'BIT_E' + /// Returns the raw value of `BIT_E`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn bit_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() } - /// Set value of 'BIT_E' + /// Sets the raw value of `BIT_E`. + #[inline(always)] + pub fn set_bit_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); + } + /// Sets the value of `BIT_E`. #[inline(always)] pub fn set_bit_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'BIT_A' + /// Returns the value of `BIT_A`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_a(&self) -> bool { - self.bit_a_raw() + self.bit_a_raw_val() == 1 } - /// Get raw value of 'BIT_A' + /// Returns the raw value of `BIT_A`. /// /// - Start bit: 26 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_a_raw(&self) -> bool { - let signal = self.raw.view_bits::()[26..27].load_le::(); - signal == 1 + pub fn bit_a_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..27].load_le::() } - /// Set value of 'BIT_A' + /// Sets the raw value of `BIT_A`. + #[inline(always)] + pub fn set_bit_a_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..27].store_le(value); + } + /// Sets the value of `BIT_A`. #[inline(always)] pub fn set_bit_a(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -1252,32 +1338,37 @@ impl Message3 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message3' from values + /// Constructs a new `Message3` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message3` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() + } + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message3MultiplexorIndex::M8(Message3MultiplexorM8 { @@ -1293,7 +1384,7 @@ impl Message3 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -1301,17 +1392,10 @@ impl Message3 { message_id: Message3::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message3::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message3MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1398,120 +1482,136 @@ impl Message3MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_l(&self) -> bool { - self.bit_l_raw() + self.bit_l_raw_val() == 1 } - /// Get raw value of 'BIT_L' + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() + } + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); } - /// Set value of 'BIT_L' + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() + } + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); } - /// Set value of 'BIT_G' + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() + } + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); } - /// Set value of 'BIT_C' + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() + } + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); } - /// Set value of 'BIT_J' + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; diff --git a/tests-snapshots/dbc-cantools/multiplex_choices_dumped.snap.rs b/tests-snapshots/dbc-cantools/multiplex_choices_dumped.snap.rs index 6d1cc0e7..fdbfc525 100644 --- a/tests-snapshots/dbc-cantools/multiplex_choices_dumped.snap.rs +++ b/tests-snapshots/dbc-cantools/multiplex_choices_dumped.snap.rs @@ -75,32 +75,37 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); + } + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message1MultiplexorIndex::M8(Message1MultiplexorM8 { @@ -123,7 +128,7 @@ impl Message1 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -131,17 +136,10 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message1MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -150,7 +148,7 @@ impl Message1 { self.set_multiplexor(8)?; Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m24(&mut self, value: Message1MultiplexorM24) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -290,11 +288,11 @@ impl Message1MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn bit_l(&self) -> Message1BitL { @@ -302,23 +300,29 @@ impl Message1MultiplexorM8 { match signal { 0 => Message1BitL::Off, 1 => Message1BitL::On, - _ => Message1BitL::_Other(self.bit_l_raw()), + _ => Message1BitL::_Other(self.bit_l_phys_val()), } } - /// Get raw value of 'BIT_L' + #[inline(always)] + fn bit_l_phys_val(&self) -> bool { + self.bit_l_raw_val() == 1 + } + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() + } + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); } - /// Set value of 'BIT_L' + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: Message1BitL) -> Result<(), CanError> { let value = bool::from(value); @@ -326,90 +330,102 @@ impl Message1MultiplexorM8 { self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() } - /// Set value of 'BIT_G' + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); + } + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() } - /// Set value of 'BIT_C' + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); + } + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() } - /// Set value of 'BIT_J' + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); + } + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -443,210 +459,238 @@ impl Message1MultiplexorM24 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_F' + /// Returns the value of `BIT_F`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_f(&self) -> bool { - self.bit_f_raw() + self.bit_f_raw_val() == 1 } - /// Get raw value of 'BIT_F' + /// Returns the raw value of `BIT_F`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_f_raw(&self) -> bool { - let signal = self.raw.view_bits::()[39..40].load_le::(); - signal == 1 + pub fn bit_f_raw_val(&self) -> u8 { + self.raw.view_bits::()[39..40].load_le::() } - /// Set value of 'BIT_F' + /// Sets the raw value of `BIT_F`. + #[inline(always)] + pub fn set_bit_f_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[39..40].store_le(value); + } + /// Sets the value of `BIT_F`. #[inline(always)] pub fn set_bit_f(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[39..40].store_le(value); Ok(()) } - /// Get value of 'BIT_H' + /// Returns the value of `BIT_H`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_h(&self) -> bool { - self.bit_h_raw() + self.bit_h_raw_val() == 1 } - /// Get raw value of 'BIT_H' + /// Returns the raw value of `BIT_H`. /// /// - Start bit: 38 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_h_raw(&self) -> bool { - let signal = self.raw.view_bits::()[38..39].load_le::(); - signal == 1 + pub fn bit_h_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..39].load_le::() + } + /// Sets the raw value of `BIT_H`. + #[inline(always)] + pub fn set_bit_h_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..39].store_le(value); } - /// Set value of 'BIT_H' + /// Sets the value of `BIT_H`. #[inline(always)] pub fn set_bit_h(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[38..39].store_le(value); Ok(()) } - /// Get value of 'BIT_B' + /// Returns the value of `BIT_B`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_b(&self) -> bool { - self.bit_b_raw() + self.bit_b_raw_val() == 1 } - /// Get raw value of 'BIT_B' + /// Returns the raw value of `BIT_B`. /// /// - Start bit: 33 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[33..34].load_le::(); - signal == 1 + pub fn bit_b_raw_val(&self) -> u8 { + self.raw.view_bits::()[33..34].load_le::() } - /// Set value of 'BIT_B' + /// Sets the raw value of `BIT_B`. + #[inline(always)] + pub fn set_bit_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[33..34].store_le(value); + } + /// Sets the value of `BIT_B`. #[inline(always)] pub fn set_bit_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[33..34].store_le(value); Ok(()) } - /// Get value of 'BIT_D' + /// Returns the value of `BIT_D`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_d(&self) -> bool { - self.bit_d_raw() + self.bit_d_raw_val() == 1 } - /// Get raw value of 'BIT_D' + /// Returns the raw value of `BIT_D`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn bit_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() + } + /// Sets the raw value of `BIT_D`. + #[inline(always)] + pub fn set_bit_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); } - /// Set value of 'BIT_D' + /// Sets the value of `BIT_D`. #[inline(always)] pub fn set_bit_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'BIT_E' + /// Returns the value of `BIT_E`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_e(&self) -> bool { - self.bit_e_raw() + self.bit_e_raw_val() == 1 } - /// Get raw value of 'BIT_E' + /// Returns the raw value of `BIT_E`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn bit_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() } - /// Set value of 'BIT_E' + /// Sets the raw value of `BIT_E`. + #[inline(always)] + pub fn set_bit_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); + } + /// Sets the value of `BIT_E`. #[inline(always)] pub fn set_bit_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'BIT_K' + /// Returns the value of `BIT_K`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_k(&self) -> bool { - self.bit_k_raw() + self.bit_k_raw_val() == 1 } - /// Get raw value of 'BIT_K' + /// Returns the raw value of `BIT_K`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_k_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn bit_k_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() + } + /// Sets the raw value of `BIT_K`. + #[inline(always)] + pub fn set_bit_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); } - /// Set value of 'BIT_K' + /// Sets the value of `BIT_K`. #[inline(always)] pub fn set_bit_k(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'BIT_A' + /// Returns the value of `BIT_A`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_a(&self) -> bool { - self.bit_a_raw() + self.bit_a_raw_val() == 1 } - /// Get raw value of 'BIT_A' + /// Returns the raw value of `BIT_A`. /// /// - Start bit: 26 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_a_raw(&self) -> bool { - let signal = self.raw.view_bits::()[26..27].load_le::(); - signal == 1 + pub fn bit_a_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..27].load_le::() + } + /// Sets the raw value of `BIT_A`. + #[inline(always)] + pub fn set_bit_a_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..27].store_le(value); } - /// Set value of 'BIT_A' + /// Sets the value of `BIT_A`. #[inline(always)] pub fn set_bit_a(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -678,32 +722,37 @@ impl Message2 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message2' from values + /// Constructs a new `Message2` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() + } + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message2MultiplexorIndex::M8(Message2MultiplexorM8 { @@ -726,7 +775,7 @@ impl Message2 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -734,17 +783,10 @@ impl Message2 { message_id: Message2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message2MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -753,7 +795,7 @@ impl Message2 { self.set_multiplexor(8)?; Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m24(&mut self, value: Message2MultiplexorM24) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -870,120 +912,136 @@ impl Message2MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_l(&self) -> bool { - self.bit_l_raw() + self.bit_l_raw_val() == 1 } - /// Get raw value of 'BIT_L' + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() + } + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); } - /// Set value of 'BIT_L' + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() } - /// Set value of 'BIT_G' + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); + } + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() } - /// Set value of 'BIT_C' + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); + } + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() + } + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); } - /// Set value of 'BIT_J' + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -1017,210 +1075,238 @@ impl Message2MultiplexorM24 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_F' + /// Returns the value of `BIT_F`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_f(&self) -> bool { - self.bit_f_raw() + self.bit_f_raw_val() == 1 } - /// Get raw value of 'BIT_F' + /// Returns the raw value of `BIT_F`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_f_raw(&self) -> bool { - let signal = self.raw.view_bits::()[39..40].load_le::(); - signal == 1 + pub fn bit_f_raw_val(&self) -> u8 { + self.raw.view_bits::()[39..40].load_le::() + } + /// Sets the raw value of `BIT_F`. + #[inline(always)] + pub fn set_bit_f_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[39..40].store_le(value); } - /// Set value of 'BIT_F' + /// Sets the value of `BIT_F`. #[inline(always)] pub fn set_bit_f(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[39..40].store_le(value); Ok(()) } - /// Get value of 'BIT_H' + /// Returns the value of `BIT_H`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_h(&self) -> bool { - self.bit_h_raw() + self.bit_h_raw_val() == 1 } - /// Get raw value of 'BIT_H' + /// Returns the raw value of `BIT_H`. /// /// - Start bit: 38 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_h_raw(&self) -> bool { - let signal = self.raw.view_bits::()[38..39].load_le::(); - signal == 1 + pub fn bit_h_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..39].load_le::() } - /// Set value of 'BIT_H' + /// Sets the raw value of `BIT_H`. + #[inline(always)] + pub fn set_bit_h_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..39].store_le(value); + } + /// Sets the value of `BIT_H`. #[inline(always)] pub fn set_bit_h(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[38..39].store_le(value); Ok(()) } - /// Get value of 'BIT_B' + /// Returns the value of `BIT_B`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_b(&self) -> bool { - self.bit_b_raw() + self.bit_b_raw_val() == 1 } - /// Get raw value of 'BIT_B' + /// Returns the raw value of `BIT_B`. /// /// - Start bit: 33 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[33..34].load_le::(); - signal == 1 + pub fn bit_b_raw_val(&self) -> u8 { + self.raw.view_bits::()[33..34].load_le::() + } + /// Sets the raw value of `BIT_B`. + #[inline(always)] + pub fn set_bit_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[33..34].store_le(value); } - /// Set value of 'BIT_B' + /// Sets the value of `BIT_B`. #[inline(always)] pub fn set_bit_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[33..34].store_le(value); Ok(()) } - /// Get value of 'BIT_D' + /// Returns the value of `BIT_D`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_d(&self) -> bool { - self.bit_d_raw() + self.bit_d_raw_val() == 1 } - /// Get raw value of 'BIT_D' + /// Returns the raw value of `BIT_D`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn bit_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() + } + /// Sets the raw value of `BIT_D`. + #[inline(always)] + pub fn set_bit_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); } - /// Set value of 'BIT_D' + /// Sets the value of `BIT_D`. #[inline(always)] pub fn set_bit_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'BIT_E' + /// Returns the value of `BIT_E`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_e(&self) -> bool { - self.bit_e_raw() + self.bit_e_raw_val() == 1 } - /// Get raw value of 'BIT_E' + /// Returns the raw value of `BIT_E`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn bit_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() } - /// Set value of 'BIT_E' + /// Sets the raw value of `BIT_E`. + #[inline(always)] + pub fn set_bit_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); + } + /// Sets the value of `BIT_E`. #[inline(always)] pub fn set_bit_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'BIT_K' + /// Returns the value of `BIT_K`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_k(&self) -> bool { - self.bit_k_raw() + self.bit_k_raw_val() == 1 } - /// Get raw value of 'BIT_K' + /// Returns the raw value of `BIT_K`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_k_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn bit_k_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() } - /// Set value of 'BIT_K' + /// Sets the raw value of `BIT_K`. + #[inline(always)] + pub fn set_bit_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); + } + /// Sets the value of `BIT_K`. #[inline(always)] pub fn set_bit_k(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'BIT_A' + /// Returns the value of `BIT_A`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_a(&self) -> bool { - self.bit_a_raw() + self.bit_a_raw_val() == 1 } - /// Get raw value of 'BIT_A' + /// Returns the raw value of `BIT_A`. /// /// - Start bit: 26 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_a_raw(&self) -> bool { - let signal = self.raw.view_bits::()[26..27].load_le::(); - signal == 1 + pub fn bit_a_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..27].load_le::() } - /// Set value of 'BIT_A' + /// Sets the raw value of `BIT_A`. + #[inline(always)] + pub fn set_bit_a_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..27].store_le(value); + } + /// Sets the value of `BIT_A`. #[inline(always)] pub fn set_bit_a(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -1252,32 +1338,37 @@ impl Message3 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message3' from values + /// Constructs a new `Message3` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message3` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() + } + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message3MultiplexorIndex::M8(Message3MultiplexorM8 { @@ -1293,7 +1384,7 @@ impl Message3 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -1301,17 +1392,10 @@ impl Message3 { message_id: Message3::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message3::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message3MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -1398,120 +1482,136 @@ impl Message3MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_l(&self) -> bool { - self.bit_l_raw() + self.bit_l_raw_val() == 1 } - /// Get raw value of 'BIT_L' + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() + } + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); } - /// Set value of 'BIT_L' + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() + } + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); } - /// Set value of 'BIT_G' + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() + } + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); } - /// Set value of 'BIT_C' + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() + } + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); } - /// Set value of 'BIT_J' + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; diff --git a/tests-snapshots/dbc-cantools/multiplex_dumped.snap.rs b/tests-snapshots/dbc-cantools/multiplex_dumped.snap.rs index 8630a28d..53ae5111 100644 --- a/tests-snapshots/dbc-cantools/multiplex_dumped.snap.rs +++ b/tests-snapshots/dbc-cantools/multiplex_dumped.snap.rs @@ -69,32 +69,37 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const MULTIPLEXOR_MIN: u8 = 0_u8; pub const MULTIPLEXOR_MAX: u8 = 0_u8; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(multiplexor: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_multiplexor(multiplexor)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Multiplexor' + /// Returns the raw value of `Multiplexor`. /// /// - Start bit: 2 /// - Signal size: 6 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[2..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..8].load_le::() + } + /// Sets the raw value of `Multiplexor`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..8].store_le(value); } - pub fn multiplexor(&mut self) -> Result { - match self.multiplexor_raw() { + /// Selects the active multiplexed sub-message for `Multiplexor`. + pub fn multiplexor_multiplexed( + &mut self, + ) -> Result { + match self.multiplexor_raw_val() { 8 => { Ok( Message1MultiplexorIndex::M8(Message1MultiplexorM8 { @@ -117,7 +122,7 @@ impl Message1 { } } } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] fn set_multiplexor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -125,17 +130,10 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[2..8].store_le(value); Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m8(&mut self, value: Message1MultiplexorM8) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -144,7 +142,7 @@ impl Message1 { self.set_multiplexor(8)?; Ok(()) } - /// Set value of 'Multiplexor' + /// Sets the value of `Multiplexor`. #[inline(always)] pub fn set_m24(&mut self, value: Message1MultiplexorM24) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -232,120 +230,136 @@ impl Message1MultiplexorM8 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_L' + /// Returns the value of `BIT_L`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_l(&self) -> bool { - self.bit_l_raw() + self.bit_l_raw_val() == 1 } - /// Get raw value of 'BIT_L' + /// Returns the raw value of `BIT_L`. /// /// - Start bit: 24 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_l_raw(&self) -> bool { - let signal = self.raw.view_bits::()[24..25].load_le::(); - signal == 1 + pub fn bit_l_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..25].load_le::() } - /// Set value of 'BIT_L' + /// Sets the raw value of `BIT_L`. + #[inline(always)] + pub fn set_bit_l_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..25].store_le(value); + } + /// Sets the value of `BIT_L`. #[inline(always)] pub fn set_bit_l(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[24..25].store_le(value); Ok(()) } - /// Get value of 'BIT_G' + /// Returns the value of `BIT_G`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_g(&self) -> bool { - self.bit_g_raw() + self.bit_g_raw_val() == 1 } - /// Get raw value of 'BIT_G' + /// Returns the raw value of `BIT_G`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn bit_g_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() } - /// Set value of 'BIT_G' + /// Sets the raw value of `BIT_G`. + #[inline(always)] + pub fn set_bit_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); + } + /// Sets the value of `BIT_G`. #[inline(always)] pub fn set_bit_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'BIT_C' + /// Returns the value of `BIT_C`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_c(&self) -> bool { - self.bit_c_raw() + self.bit_c_raw_val() == 1 } - /// Get raw value of 'BIT_C' + /// Returns the raw value of `BIT_C`. /// /// - Start bit: 19 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_c_raw(&self) -> bool { - let signal = self.raw.view_bits::()[19..20].load_le::(); - signal == 1 + pub fn bit_c_raw_val(&self) -> u8 { + self.raw.view_bits::()[19..20].load_le::() + } + /// Sets the raw value of `BIT_C`. + #[inline(always)] + pub fn set_bit_c_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[19..20].store_le(value); } - /// Set value of 'BIT_C' + /// Sets the value of `BIT_C`. #[inline(always)] pub fn set_bit_c(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[19..20].store_le(value); Ok(()) } - /// Get value of 'BIT_J' + /// Returns the value of `BIT_J`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_j(&self) -> bool { - self.bit_j_raw() + self.bit_j_raw_val() == 1 } - /// Get raw value of 'BIT_J' + /// Returns the raw value of `BIT_J`. /// /// - Start bit: 18 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_j_raw(&self) -> bool { - let signal = self.raw.view_bits::()[18..19].load_le::(); - signal == 1 + pub fn bit_j_raw_val(&self) -> u8 { + self.raw.view_bits::()[18..19].load_le::() } - /// Set value of 'BIT_J' + /// Sets the raw value of `BIT_J`. + #[inline(always)] + pub fn set_bit_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[18..19].store_le(value); + } + /// Sets the value of `BIT_J`. #[inline(always)] pub fn set_bit_j(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -379,210 +393,238 @@ impl Message1MultiplexorM24 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'BIT_F' + /// Returns the value of `BIT_F`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_f(&self) -> bool { - self.bit_f_raw() + self.bit_f_raw_val() == 1 } - /// Get raw value of 'BIT_F' + /// Returns the raw value of `BIT_F`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_f_raw(&self) -> bool { - let signal = self.raw.view_bits::()[39..40].load_le::(); - signal == 1 + pub fn bit_f_raw_val(&self) -> u8 { + self.raw.view_bits::()[39..40].load_le::() } - /// Set value of 'BIT_F' + /// Sets the raw value of `BIT_F`. + #[inline(always)] + pub fn set_bit_f_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[39..40].store_le(value); + } + /// Sets the value of `BIT_F`. #[inline(always)] pub fn set_bit_f(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[39..40].store_le(value); Ok(()) } - /// Get value of 'BIT_H' + /// Returns the value of `BIT_H`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_h(&self) -> bool { - self.bit_h_raw() + self.bit_h_raw_val() == 1 } - /// Get raw value of 'BIT_H' + /// Returns the raw value of `BIT_H`. /// /// - Start bit: 38 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_h_raw(&self) -> bool { - let signal = self.raw.view_bits::()[38..39].load_le::(); - signal == 1 + pub fn bit_h_raw_val(&self) -> u8 { + self.raw.view_bits::()[38..39].load_le::() + } + /// Sets the raw value of `BIT_H`. + #[inline(always)] + pub fn set_bit_h_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[38..39].store_le(value); } - /// Set value of 'BIT_H' + /// Sets the value of `BIT_H`. #[inline(always)] pub fn set_bit_h(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[38..39].store_le(value); Ok(()) } - /// Get value of 'BIT_B' + /// Returns the value of `BIT_B`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_b(&self) -> bool { - self.bit_b_raw() + self.bit_b_raw_val() == 1 } - /// Get raw value of 'BIT_B' + /// Returns the raw value of `BIT_B`. /// /// - Start bit: 33 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[33..34].load_le::(); - signal == 1 + pub fn bit_b_raw_val(&self) -> u8 { + self.raw.view_bits::()[33..34].load_le::() } - /// Set value of 'BIT_B' + /// Sets the raw value of `BIT_B`. + #[inline(always)] + pub fn set_bit_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[33..34].store_le(value); + } + /// Sets the value of `BIT_B`. #[inline(always)] pub fn set_bit_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[33..34].store_le(value); Ok(()) } - /// Get value of 'BIT_D' + /// Returns the value of `BIT_D`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_d(&self) -> bool { - self.bit_d_raw() + self.bit_d_raw_val() == 1 } - /// Get raw value of 'BIT_D' + /// Returns the raw value of `BIT_D`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn bit_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() } - /// Set value of 'BIT_D' + /// Sets the raw value of `BIT_D`. + #[inline(always)] + pub fn set_bit_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); + } + /// Sets the value of `BIT_D`. #[inline(always)] pub fn set_bit_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'BIT_E' + /// Returns the value of `BIT_E`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_e(&self) -> bool { - self.bit_e_raw() + self.bit_e_raw_val() == 1 } - /// Get raw value of 'BIT_E' + /// Returns the raw value of `BIT_E`. /// /// - Start bit: 29 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[29..30].load_le::(); - signal == 1 + pub fn bit_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[29..30].load_le::() + } + /// Sets the raw value of `BIT_E`. + #[inline(always)] + pub fn set_bit_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[29..30].store_le(value); } - /// Set value of 'BIT_E' + /// Sets the value of `BIT_E`. #[inline(always)] pub fn set_bit_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[29..30].store_le(value); Ok(()) } - /// Get value of 'BIT_K' + /// Returns the value of `BIT_K`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_k(&self) -> bool { - self.bit_k_raw() + self.bit_k_raw_val() == 1 } - /// Get raw value of 'BIT_K' + /// Returns the raw value of `BIT_K`. /// /// - Start bit: 28 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_k_raw(&self) -> bool { - let signal = self.raw.view_bits::()[28..29].load_le::(); - signal == 1 + pub fn bit_k_raw_val(&self) -> u8 { + self.raw.view_bits::()[28..29].load_le::() } - /// Set value of 'BIT_K' + /// Sets the raw value of `BIT_K`. + #[inline(always)] + pub fn set_bit_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[28..29].store_le(value); + } + /// Sets the value of `BIT_K`. #[inline(always)] pub fn set_bit_k(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[28..29].store_le(value); Ok(()) } - /// Get value of 'BIT_A' + /// Returns the value of `BIT_A`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn bit_a(&self) -> bool { - self.bit_a_raw() + self.bit_a_raw_val() == 1 } - /// Get raw value of 'BIT_A' + /// Returns the raw value of `BIT_A`. /// /// - Start bit: 26 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn bit_a_raw(&self) -> bool { - let signal = self.raw.view_bits::()[26..27].load_le::(); - signal == 1 + pub fn bit_a_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..27].load_le::() + } + /// Sets the raw value of `BIT_A`. + #[inline(always)] + pub fn set_bit_a_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..27].store_le(value); } - /// Set value of 'BIT_A' + /// Sets the value of `BIT_A`. #[inline(always)] pub fn set_bit_a(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; diff --git a/tests-snapshots/dbc-cantools/no_sender.snap.rs b/tests-snapshots/dbc-cantools/no_sender.snap.rs index d236611a..e5948a19 100644 --- a/tests-snapshots/dbc-cantools/no_sender.snap.rs +++ b/tests-snapshots/dbc-cantools/no_sender.snap.rs @@ -71,42 +71,45 @@ impl Foo { pub const MESSAGE_SIZE: usize = 1; pub const SIGNAL_WITHOUT_SENDER_MIN: i8 = 0_i8; pub const SIGNAL_WITHOUT_SENDER_MAX: i8 = 0_i8; - /// Construct new 'Foo' from values + /// Constructs a new `Foo` message from values. pub fn new(signal_without_sender: i8) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_signal_without_sender(signal_without_sender)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Foo` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'signal_without_sender' + /// Returns the value of `signal_without_sender`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal_without_sender(&self) -> i8 { - self.signal_without_sender_raw() + self.signal_without_sender_raw_val() } - /// Get raw value of 'signal_without_sender' + /// Returns the raw value of `signal_without_sender`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal_without_sender_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal_without_sender_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'signal_without_sender' + /// Sets the raw value of `signal_without_sender`. + #[inline(always)] + pub fn set_signal_without_sender_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `signal_without_sender`. #[inline(always)] pub fn set_signal_without_sender(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -114,13 +117,6 @@ impl Foo { message_id: Foo::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Foo::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/no_signals.snap.rs b/tests-snapshots/dbc-cantools/no_signals.snap.rs index c0ea302c..97620998 100644 --- a/tests-snapshots/dbc-cantools/no_signals.snap.rs +++ b/tests-snapshots/dbc-cantools/no_signals.snap.rs @@ -71,12 +71,12 @@ impl Message1 { StandardId::new_unchecked(0x400) }); pub const MESSAGE_SIZE: usize = 5; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 5] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 5] { &self.raw } @@ -142,12 +142,12 @@ impl Message2 { StandardId::new_unchecked(0x401) }); pub const MESSAGE_SIZE: usize = 0; - /// Construct new 'Message2' from values + /// Constructs a new `Message2` message from values. pub fn new() -> Result { let res = Self { raw: [0x00; 0] }; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message2` message payload. pub fn raw(&self) -> &[u8; 0] { &self.raw } diff --git a/tests-snapshots/dbc-cantools/open_actuator.snap.rs b/tests-snapshots/dbc-cantools/open_actuator.snap.rs index bec3a0e5..cb4b63da 100644 --- a/tests-snapshots/dbc-cantools/open_actuator.snap.rs +++ b/tests-snapshots/dbc-cantools/open_actuator.snap.rs @@ -102,7 +102,7 @@ impl ControlCmd { pub const TORQUE_COMMAND_8_MAX: f32 = 8_f32; pub const TORQUE_CLOSE_LOOP_MAX_32_MIN: f32 = 0_f32; pub const TORQUE_CLOSE_LOOP_MAX_32_MAX: f32 = 8_f32; - /// Construct new 'ControlCmd' from values + /// Constructs a new `ControlCmd` message from values. pub fn new( crc8_cmd1: u8, counter_cmd1: u8, @@ -122,35 +122,38 @@ impl ControlCmd { res.set_torque_close_loop_max_32(torque_close_loop_max_32)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ControlCmd` message payload. pub fn raw(&self) -> &[u8; 7] { &self.raw } - /// Get value of 'CRC8_CMD1' + /// Returns the value of `CRC8_CMD1`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn crc8_cmd1(&self) -> u8 { - self.crc8_cmd1_raw() + self.crc8_cmd1_raw_val() } - /// Get raw value of 'CRC8_CMD1' + /// Returns the raw value of `CRC8_CMD1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn crc8_cmd1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn crc8_cmd1_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'CRC8_CMD1' + /// Sets the raw value of `CRC8_CMD1`. + #[inline(always)] + pub fn set_crc8_cmd1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `CRC8_CMD1`. #[inline(always)] pub fn set_crc8_cmd1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -158,41 +161,37 @@ impl ControlCmd { message_id: ControlCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ControlCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'Counter_CMD1' + /// Returns the value of `Counter_CMD1`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn counter_cmd1(&self) -> u8 { - self.counter_cmd1_raw() + self.counter_cmd1_raw_val() } - /// Get raw value of 'Counter_CMD1' + /// Returns the raw value of `Counter_CMD1`. /// /// - Start bit: 48 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn counter_cmd1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..52].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn counter_cmd1_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..52].load_le::() } - /// Set value of 'Counter_CMD1' + /// Sets the raw value of `Counter_CMD1`. + #[inline(always)] + pub fn set_counter_cmd1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..52].store_le(value); + } + /// Sets the value of `Counter_CMD1`. #[inline(always)] pub fn set_counter_cmd1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -200,41 +199,37 @@ impl ControlCmd { message_id: ControlCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ControlCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..52].store_le(value); Ok(()) } - /// Get value of 'TargetMotorID_CMD1' + /// Returns the value of `TargetMotorID_CMD1`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn target_motor_id_cmd1(&self) -> u8 { - self.target_motor_id_cmd1_raw() + self.target_motor_id_cmd1_raw_val() } - /// Get raw value of 'TargetMotorID_CMD1' + /// Returns the raw value of `TargetMotorID_CMD1`. /// /// - Start bit: 12 /// - Signal size: 2 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn target_motor_id_cmd1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[12..14].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn target_motor_id_cmd1_raw_val(&self) -> u8 { + self.raw.view_bits::()[12..14].load_le::() } - /// Set value of 'TargetMotorID_CMD1' + /// Sets the raw value of `TargetMotorID_CMD1`. + #[inline(always)] + pub fn set_target_motor_id_cmd1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[12..14].store_le(value); + } + /// Sets the value of `TargetMotorID_CMD1`. #[inline(always)] pub fn set_target_motor_id_cmd1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 3_u8 < value { @@ -242,21 +237,14 @@ impl ControlCmd { message_id: ControlCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ControlCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[12..14].store_le(value); Ok(()) } - /// Get value of 'TargetMode' + /// Returns the value of `TargetMode`. /// /// - Min: 0 /// - Max: 3 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator #[inline(always)] pub fn target_mode(&self) -> ControlCmdTargetMode { @@ -267,24 +255,29 @@ impl ControlCmd { 2 => ControlCmdTargetMode::PositionRelative, 3 => ControlCmdTargetMode::Torque, 4 => ControlCmdTargetMode::PositionAbsolute, - _ => ControlCmdTargetMode::_Other(self.target_mode_raw()), + _ => ControlCmdTargetMode::_Other(self.target_mode_phys_val()), } } - /// Get raw value of 'TargetMode' + #[inline(always)] + fn target_mode_phys_val(&self) -> u8 { + self.target_mode_raw_val() + } + /// Returns the raw value of `TargetMode`. /// /// - Start bit: 8 /// - Signal size: 3 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn target_mode_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..11].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn target_mode_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..11].load_le::() } - /// Set value of 'TargetMode' + /// Sets the raw value of `TargetMode`. + #[inline(always)] + pub fn set_target_mode_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..11].store_le(value); + } + /// Sets the value of `TargetMode`. #[inline(always)] pub fn set_target_mode( &mut self, @@ -296,17 +289,10 @@ impl ControlCmd { message_id: ControlCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ControlCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..11].store_le(value); Ok(()) } - /// Get value of 'PositionCmd_64' + /// Returns the value of `PositionCmd_64`. /// /// Output relative position. /// Alternative usage - absolute output position @@ -316,26 +302,32 @@ impl ControlCmd { /// - Max: 450 /// - Unit: "deg" /// - Receivers: Actuator + /// - Factor: 0.0154286 + /// - Offset: 0 #[inline(always)] pub fn position_cmd_64(&self) -> f32 { - self.position_cmd_64_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.0154286_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'PositionCmd_64' + /// Returns the raw value of `PositionCmd_64`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.0154286 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn position_cmd_64_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.0154286_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn position_cmd_64_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'PositionCmd_64' + /// Sets the raw value of `PositionCmd_64`. + #[inline(always)] + pub fn set_position_cmd_64_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `PositionCmd_64`. #[inline(always)] pub fn set_position_cmd_64(&mut self, value: f32) -> Result<(), CanError> { if value < -450_f32 || 450_f32 < value { @@ -350,7 +342,7 @@ impl ControlCmd { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'TorqueCommand_8' + /// Returns the value of `TorqueCommand_8`. /// /// Factor: /// 8_const * 1A/1000mA * MotorRatedTorque / MotorRatedCurrent * GearboxRatio * FinalGearRatio @@ -359,26 +351,32 @@ impl ControlCmd { /// - Max: 8 /// - Unit: "N*m" /// - Receivers: Actuator + /// - Factor: 0.0166667 + /// - Offset: 0 #[inline(always)] pub fn torque_command_8(&self) -> f32 { - self.torque_command_8_raw() + let signal = self.raw.view_bits::()[32..42].load_le::(); + let factor = 0.0166667_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'TorqueCommand_8' + /// Returns the raw value of `TorqueCommand_8`. /// /// - Start bit: 32 /// - Signal size: 10 bits - /// - Factor: 0.0166667 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn torque_command_8_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..42].load_le::(); - let factor = 0.0166667_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn torque_command_8_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..42].load_le::() } - /// Set value of 'TorqueCommand_8' + /// Sets the raw value of `TorqueCommand_8`. + #[inline(always)] + pub fn set_torque_command_8_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..42].store_le(value); + } + /// Sets the value of `TorqueCommand_8`. #[inline(always)] pub fn set_torque_command_8(&mut self, value: f32) -> Result<(), CanError> { if value < -8_f32 || 8_f32 < value { @@ -393,7 +391,7 @@ impl ControlCmd { self.raw.view_bits_mut::()[32..42].store_le(value); Ok(()) } - /// Get value of 'TorqueCloseLoopMax_32' + /// Returns the value of `TorqueCloseLoopMax_32`. /// /// For TorqueCmd > 0 /// Max positive close loop torque on top of TorqueCmd (outward torque) and below 0 (centering torque). @@ -406,26 +404,31 @@ impl ControlCmd { /// - Max: 8 /// - Unit: "N*m" /// - Receivers: Actuator + /// - Factor: 0.186666 + /// - Offset: 0 #[inline(always)] pub fn torque_close_loop_max_32(&self) -> f32 { - self.torque_close_loop_max_32_raw() + let signal = self.raw.view_bits::()[42..48].load_le::(); + let factor = 0.186666_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'TorqueCloseLoopMax_32' + /// Returns the raw value of `TorqueCloseLoopMax_32`. /// /// - Start bit: 42 /// - Signal size: 6 bits - /// - Factor: 0.186666 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn torque_close_loop_max_32_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[42..48].load_le::(); - let factor = 0.186666_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn torque_close_loop_max_32_raw_val(&self) -> u8 { + self.raw.view_bits::()[42..48].load_le::() } - /// Set value of 'TorqueCloseLoopMax_32' + /// Sets the raw value of `TorqueCloseLoopMax_32`. + #[inline(always)] + pub fn set_torque_close_loop_max_32_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[42..48].store_le(value); + } + /// Sets the value of `TorqueCloseLoopMax_32`. #[inline(always)] pub fn set_torque_close_loop_max_32(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 8_f32 < value { @@ -540,7 +543,7 @@ impl LimitsCmd { pub const VELOCITY_LIMIT_MAX: u16 = 0_u16; pub const ACCEL_LIMIT_MIN: u16 = 0_u16; pub const ACCEL_LIMIT_MAX: u16 = 0_u16; - /// Construct new 'LimitsCmd' from values + /// Constructs a new `LimitsCmd` message from values. pub fn new( crc8_cmd2: u8, counter_cmd2: u8, @@ -554,35 +557,38 @@ impl LimitsCmd { res.set_accel_limit(accel_limit)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `LimitsCmd` message payload. pub fn raw(&self) -> &[u8; 6] { &self.raw } - /// Get value of 'CRC8_CMD2' + /// Returns the value of `CRC8_CMD2`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn crc8_cmd2(&self) -> u8 { - self.crc8_cmd2_raw() + self.crc8_cmd2_raw_val() } - /// Get raw value of 'CRC8_CMD2' + /// Returns the raw value of `CRC8_CMD2`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn crc8_cmd2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn crc8_cmd2_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'CRC8_CMD2' + /// Sets the raw value of `CRC8_CMD2`. + #[inline(always)] + pub fn set_crc8_cmd2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `CRC8_CMD2`. #[inline(always)] pub fn set_crc8_cmd2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -590,41 +596,37 @@ impl LimitsCmd { message_id: LimitsCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: LimitsCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'Counter_CMD2' + /// Returns the value of `Counter_CMD2`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn counter_cmd2(&self) -> u8 { - self.counter_cmd2_raw() + self.counter_cmd2_raw_val() } - /// Get raw value of 'Counter_CMD2' + /// Returns the raw value of `Counter_CMD2`. /// /// - Start bit: 12 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn counter_cmd2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[12..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn counter_cmd2_raw_val(&self) -> u8 { + self.raw.view_bits::()[12..16].load_le::() } - /// Set value of 'Counter_CMD2' + /// Sets the raw value of `Counter_CMD2`. + #[inline(always)] + pub fn set_counter_cmd2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[12..16].store_le(value); + } + /// Sets the value of `Counter_CMD2`. #[inline(always)] pub fn set_counter_cmd2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -632,41 +634,37 @@ impl LimitsCmd { message_id: LimitsCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: LimitsCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[12..16].store_le(value); Ok(()) } - /// Get value of 'VelocityLimit' + /// Returns the value of `VelocityLimit`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn velocity_limit(&self) -> u16 { - self.velocity_limit_raw() + self.velocity_limit_raw_val() } - /// Get raw value of 'VelocityLimit' + /// Returns the raw value of `VelocityLimit`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn velocity_limit_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn velocity_limit_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'VelocityLimit' + /// Sets the raw value of `VelocityLimit`. + #[inline(always)] + pub fn set_velocity_limit_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `VelocityLimit`. #[inline(always)] pub fn set_velocity_limit(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -674,41 +672,37 @@ impl LimitsCmd { message_id: LimitsCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: LimitsCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'AccelLimit' + /// Returns the value of `AccelLimit`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accel_limit(&self) -> u16 { - self.accel_limit_raw() + self.accel_limit_raw_val() } - /// Get raw value of 'AccelLimit' + /// Returns the raw value of `AccelLimit`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accel_limit_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accel_limit_raw_val(&self) -> u16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `AccelLimit`. + #[inline(always)] + pub fn set_accel_limit_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'AccelLimit' + /// Sets the value of `AccelLimit`. #[inline(always)] pub fn set_accel_limit(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -716,13 +710,6 @@ impl LimitsCmd { message_id: LimitsCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: LimitsCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } @@ -796,7 +783,7 @@ impl ControlStatus { pub const TORQUE_ACTUAL_MAX: f32 = 8_f32; pub const TORQUE_CLOSE_LOOP_ACTUAL_MIN: f32 = 0_f32; pub const TORQUE_CLOSE_LOOP_ACTUAL_MAX: f32 = 8_f32; - /// Construct new 'ControlStatus' from values + /// Constructs a new `ControlStatus` message from values. pub fn new( crc8_stat1: u8, counter_stat1: u8, @@ -810,35 +797,38 @@ impl ControlStatus { res.set_torque_close_loop_actual(torque_close_loop_actual)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `ControlStatus` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'CRC8_STAT1' + /// Returns the value of `CRC8_STAT1`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Driver, Actuator + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn crc8_stat1(&self) -> u8 { - self.crc8_stat1_raw() + self.crc8_stat1_raw_val() } - /// Get raw value of 'CRC8_STAT1' + /// Returns the raw value of `CRC8_STAT1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn crc8_stat1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn crc8_stat1_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `CRC8_STAT1`. + #[inline(always)] + pub fn set_crc8_stat1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'CRC8_STAT1' + /// Sets the value of `CRC8_STAT1`. #[inline(always)] pub fn set_crc8_stat1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -846,41 +836,37 @@ impl ControlStatus { message_id: ControlStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ControlStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'Counter_STAT1' + /// Returns the value of `Counter_STAT1`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Driver + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn counter_stat1(&self) -> u8 { - self.counter_stat1_raw() + self.counter_stat1_raw_val() } - /// Get raw value of 'Counter_STAT1' + /// Returns the raw value of `Counter_STAT1`. /// /// - Start bit: 12 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn counter_stat1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[12..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn counter_stat1_raw_val(&self) -> u8 { + self.raw.view_bits::()[12..16].load_le::() + } + /// Sets the raw value of `Counter_STAT1`. + #[inline(always)] + pub fn set_counter_stat1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[12..16].store_le(value); } - /// Set value of 'Counter_STAT1' + /// Sets the value of `Counter_STAT1`. #[inline(always)] pub fn set_counter_stat1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -888,42 +874,41 @@ impl ControlStatus { message_id: ControlStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: ControlStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[12..16].store_le(value); Ok(()) } - /// Get value of 'TorqueActual' + /// Returns the value of `TorqueActual`. /// /// - Min: -8 /// - Max: 8 /// - Unit: "N*m" /// - Receivers: Driver + /// - Factor: 0.015625 + /// - Offset: 0 #[inline(always)] pub fn torque_actual(&self) -> f32 { - self.torque_actual_raw() + let signal = self.raw.view_bits::()[16..26].load_le::(); + let factor = 0.015625_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'TorqueActual' + /// Returns the raw value of `TorqueActual`. /// /// - Start bit: 16 /// - Signal size: 10 bits - /// - Factor: 0.015625 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn torque_actual_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..26].load_le::(); - let factor = 0.015625_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn torque_actual_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..26].load_le::() } - /// Set value of 'TorqueActual' + /// Sets the raw value of `TorqueActual`. + #[inline(always)] + pub fn set_torque_actual_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..26].store_le(value); + } + /// Sets the value of `TorqueActual`. #[inline(always)] pub fn set_torque_actual(&mut self, value: f32) -> Result<(), CanError> { if value < -8_f32 || 8_f32 < value { @@ -938,32 +923,37 @@ impl ControlStatus { self.raw.view_bits_mut::()[16..26].store_le(value); Ok(()) } - /// Get value of 'TorqueCloseLoopActual' + /// Returns the value of `TorqueCloseLoopActual`. /// /// - Min: 0 /// - Max: 8 /// - Unit: "N*m" /// - Receivers: Driver + /// - Factor: 0.125 + /// - Offset: 0 #[inline(always)] pub fn torque_close_loop_actual(&self) -> f32 { - self.torque_close_loop_actual_raw() + let signal = self.raw.view_bits::()[26..32].load_le::(); + let factor = 0.125_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'TorqueCloseLoopActual' + /// Returns the raw value of `TorqueCloseLoopActual`. /// /// - Start bit: 26 /// - Signal size: 6 bits - /// - Factor: 0.125 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn torque_close_loop_actual_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[26..32].load_le::(); - let factor = 0.125_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn torque_close_loop_actual_raw_val(&self) -> u8 { + self.raw.view_bits::()[26..32].load_le::() } - /// Set value of 'TorqueCloseLoopActual' + /// Sets the raw value of `TorqueCloseLoopActual`. + #[inline(always)] + pub fn set_torque_close_loop_actual_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[26..32].store_le(value); + } + /// Sets the value of `TorqueCloseLoopActual`. #[inline(always)] pub fn set_torque_close_loop_actual(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 8_f32 < value { @@ -1045,7 +1035,7 @@ impl SystemStatus { pub const COUNTER_STAT2_MAX: u8 = 15_u8; pub const CHIP_TEMP_MIN: i16 = -60_i16; pub const CHIP_TEMP_MAX: i16 = 195_i16; - /// Construct new 'SystemStatus' from values + /// Constructs a new `SystemStatus` message from values. pub fn new( crc8_stat2: u8, counter_stat2: u8, @@ -1057,35 +1047,38 @@ impl SystemStatus { res.set_chip_temp(chip_temp)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SystemStatus` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'CRC8_STAT2' + /// Returns the value of `CRC8_STAT2`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Driver + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn crc8_stat2(&self) -> u8 { - self.crc8_stat2_raw() + self.crc8_stat2_raw_val() } - /// Get raw value of 'CRC8_STAT2' + /// Returns the raw value of `CRC8_STAT2`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn crc8_stat2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn crc8_stat2_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'CRC8_STAT2' + /// Sets the raw value of `CRC8_STAT2`. + #[inline(always)] + pub fn set_crc8_stat2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `CRC8_STAT2`. #[inline(always)] pub fn set_crc8_stat2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1093,41 +1086,37 @@ impl SystemStatus { message_id: SystemStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SystemStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'Counter_STAT2' + /// Returns the value of `Counter_STAT2`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Driver + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn counter_stat2(&self) -> u8 { - self.counter_stat2_raw() + self.counter_stat2_raw_val() } - /// Get raw value of 'Counter_STAT2' + /// Returns the raw value of `Counter_STAT2`. /// /// - Start bit: 12 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn counter_stat2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[12..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn counter_stat2_raw_val(&self) -> u8 { + self.raw.view_bits::()[12..16].load_le::() } - /// Set value of 'Counter_STAT2' + /// Sets the raw value of `Counter_STAT2`. + #[inline(always)] + pub fn set_counter_stat2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[12..16].store_le(value); + } + /// Sets the value of `Counter_STAT2`. #[inline(always)] pub fn set_counter_stat2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -1135,41 +1124,39 @@ impl SystemStatus { message_id: SystemStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SystemStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[12..16].store_le(value); Ok(()) } - /// Get value of 'ChipTemp' + /// Returns the value of `ChipTemp`. /// /// - Min: -60 /// - Max: 195 /// - Unit: "C" /// - Receivers: Driver + /// - Factor: 1 + /// - Offset: -60 #[inline(always)] pub fn chip_temp(&self) -> i16 { - self.chip_temp_raw() + let signal = self.raw.view_bits::()[16..24].load_le::(); + let factor = 1; + i16::from(signal).saturating_mul(factor).saturating_sub(60) } - /// Get raw value of 'ChipTemp' + /// Returns the raw value of `ChipTemp`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: -60 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn chip_temp_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - i16::from(signal).saturating_mul(factor).saturating_sub(60) + pub fn chip_temp_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'ChipTemp' + /// Sets the raw value of `ChipTemp`. + #[inline(always)] + pub fn set_chip_temp_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `ChipTemp`. #[inline(always)] pub fn set_chip_temp(&mut self, value: i16) -> Result<(), CanError> { if value < -60_i16 || 195_i16 < value { @@ -1255,7 +1242,7 @@ impl TorqueSensorData { pub const COUNTER_DATA1_MAX: u8 = 15_u8; pub const TORQUE_SENSE_MIN: f32 = -20_f32; pub const TORQUE_SENSE_MAX: f32 = 20_f32; - /// Construct new 'TorqueSensorData' from values + /// Constructs a new `TorqueSensorData` message from values. pub fn new( crc8_data1: u8, counter_data1: u8, @@ -1267,35 +1254,38 @@ impl TorqueSensorData { res.set_torque_sense(torque_sense)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TorqueSensorData` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'CRC8_DATA1' + /// Returns the value of `CRC8_DATA1`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Driver + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn crc8_data1(&self) -> u8 { - self.crc8_data1_raw() + self.crc8_data1_raw_val() } - /// Get raw value of 'CRC8_DATA1' + /// Returns the raw value of `CRC8_DATA1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn crc8_data1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn crc8_data1_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'CRC8_DATA1' + /// Sets the raw value of `CRC8_DATA1`. + #[inline(always)] + pub fn set_crc8_data1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `CRC8_DATA1`. #[inline(always)] pub fn set_crc8_data1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1303,41 +1293,37 @@ impl TorqueSensorData { message_id: TorqueSensorData::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TorqueSensorData::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'Counter_DATA1' + /// Returns the value of `Counter_DATA1`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Driver + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn counter_data1(&self) -> u8 { - self.counter_data1_raw() + self.counter_data1_raw_val() } - /// Get raw value of 'Counter_DATA1' + /// Returns the raw value of `Counter_DATA1`. /// /// - Start bit: 8 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn counter_data1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..12].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn counter_data1_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..12].load_le::() + } + /// Sets the raw value of `Counter_DATA1`. + #[inline(always)] + pub fn set_counter_data1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..12].store_le(value); } - /// Set value of 'Counter_DATA1' + /// Sets the value of `Counter_DATA1`. #[inline(always)] pub fn set_counter_data1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -1345,17 +1331,10 @@ impl TorqueSensorData { message_id: TorqueSensorData::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TorqueSensorData::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..12].store_le(value); Ok(()) } - /// Get value of 'TorqueSense' + /// Returns the value of `TorqueSense`. /// /// Strain gauge torque measured /// @@ -1363,26 +1342,32 @@ impl TorqueSensorData { /// - Max: 20 /// - Unit: "N*m" /// - Receivers: Driver + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn torque_sense(&self) -> f32 { - self.torque_sense_raw() + let signal = self.raw.view_bits::()[12..24].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'TorqueSense' + /// Returns the raw value of `TorqueSense`. /// /// - Start bit: 12 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn torque_sense_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[12..24].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn torque_sense_raw_val(&self) -> i16 { + self.raw.view_bits::()[12..24].load_le::() + } + /// Sets the raw value of `TorqueSense`. + #[inline(always)] + pub fn set_torque_sense_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[12..24].store_le(value); } - /// Set value of 'TorqueSense' + /// Sets the value of `TorqueSense`. #[inline(always)] pub fn set_torque_sense(&mut self, value: f32) -> Result<(), CanError> { if value < -20_f32 || 20_f32 < value { diff --git a/tests-snapshots/dbc-cantools/padding_bit_order.snap.rs b/tests-snapshots/dbc-cantools/padding_bit_order.snap.rs index 1e687ec5..f6eb4796 100644 --- a/tests-snapshots/dbc-cantools/padding_bit_order.snap.rs +++ b/tests-snapshots/dbc-cantools/padding_bit_order.snap.rs @@ -84,7 +84,7 @@ impl Msg0 { pub const A_MAX: u16 = 32767_u16; pub const C_MIN: u16 = 0_u16; pub const C_MAX: u16 = 32767_u16; - /// Construct new 'MSG0' from values + /// Constructs a new `MSG0` message from values. pub fn new(a: u16, b: bool, c: u16, d: bool) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_a(a)?; @@ -93,35 +93,38 @@ impl Msg0 { res.set_d(d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MSG0` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'A' + /// Returns the value of `A`. /// /// - Min: 0 /// - Max: 32767 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn a(&self) -> u16 { - self.a_raw() + self.a_raw_val() } - /// Get raw value of 'A' + /// Returns the raw value of `A`. /// /// - Start bit: 6 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn a_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[1..16].load_be::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn a_raw_val(&self) -> u16 { + self.raw.view_bits::()[1..16].load_be::() + } + /// Sets the raw value of `A`. + #[inline(always)] + pub fn set_a_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[1..16].store_be(value); } - /// Set value of 'A' + /// Sets the value of `A`. #[inline(always)] pub fn set_a(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 32767_u16 < value { @@ -129,71 +132,71 @@ impl Msg0 { message_id: Msg0::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg0::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[1..16].store_be(value); Ok(()) } - /// Get value of 'B' + /// Returns the value of `B`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn b(&self) -> bool { - self.b_raw() + self.b_raw_val() == 1 } - /// Get raw value of 'B' + /// Returns the raw value of `B`. /// /// - Start bit: 7 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn b_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_be::(); - signal == 1 + pub fn b_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_be::() } - /// Set value of 'B' + /// Sets the raw value of `B`. + #[inline(always)] + pub fn set_b_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_be(value); + } + /// Sets the value of `B`. #[inline(always)] pub fn set_b(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[0..1].store_be(value); Ok(()) } - /// Get value of 'C' + /// Returns the value of `C`. /// /// - Min: 0 /// - Max: 32767 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn c(&self) -> u16 { - self.c_raw() + self.c_raw_val() } - /// Get raw value of 'C' + /// Returns the raw value of `C`. /// /// - Start bit: 38 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn c_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[33..48].load_be::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn c_raw_val(&self) -> u16 { + self.raw.view_bits::()[33..48].load_be::() } - /// Set value of 'C' + /// Sets the raw value of `C`. + #[inline(always)] + pub fn set_c_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[33..48].store_be(value); + } + /// Sets the value of `C`. #[inline(always)] pub fn set_c(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 32767_u16 < value { @@ -201,40 +204,37 @@ impl Msg0 { message_id: Msg0::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg0::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[33..48].store_be(value); Ok(()) } - /// Get value of 'D' + /// Returns the value of `D`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn d(&self) -> bool { - self.d_raw() + self.d_raw_val() == 1 } - /// Get raw value of 'D' + /// Returns the raw value of `D`. /// /// - Start bit: 39 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_be::(); - signal == 1 + pub fn d_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_be::() } - /// Set value of 'D' + /// Sets the raw value of `D`. + #[inline(always)] + pub fn set_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_be(value); + } + /// Sets the value of `D`. #[inline(always)] pub fn set_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -307,7 +307,7 @@ impl Msg1 { pub const F_MAX: u16 = 32767_u16; pub const H_MIN: u16 = 0_u16; pub const H_MAX: u16 = 32767_u16; - /// Construct new 'MSG1' from values + /// Constructs a new `MSG1` message from values. pub fn new(e: bool, f: u16, g: bool, h: u16) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_e(e)?; @@ -316,65 +316,72 @@ impl Msg1 { res.set_h(h)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MSG1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'E' + /// Returns the value of `E`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn e(&self) -> bool { - self.e_raw() + self.e_raw_val() == 1 } - /// Get raw value of 'E' + /// Returns the raw value of `E`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn e_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `E`. + #[inline(always)] + pub fn set_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'E' + /// Sets the value of `E`. #[inline(always)] pub fn set_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[0..1].store_le(value); Ok(()) } - /// Get value of 'F' + /// Returns the value of `F`. /// /// - Min: 0 /// - Max: 32767 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn f(&self) -> u16 { - self.f_raw() + self.f_raw_val() } - /// Get raw value of 'F' + /// Returns the raw value of `F`. /// /// - Start bit: 1 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn f_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[1..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn f_raw_val(&self) -> u16 { + self.raw.view_bits::()[1..16].load_le::() + } + /// Sets the raw value of `F`. + #[inline(always)] + pub fn set_f_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[1..16].store_le(value); } - /// Set value of 'F' + /// Sets the value of `F`. #[inline(always)] pub fn set_f(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 32767_u16 < value { @@ -382,71 +389,71 @@ impl Msg1 { message_id: Msg1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg1::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[1..16].store_le(value); Ok(()) } - /// Get value of 'G' + /// Returns the value of `G`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn g(&self) -> bool { - self.g_raw() + self.g_raw_val() == 1 } - /// Get raw value of 'G' + /// Returns the raw value of `G`. /// /// - Start bit: 32 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn g_raw(&self) -> bool { - let signal = self.raw.view_bits::()[32..33].load_le::(); - signal == 1 + pub fn g_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..33].load_le::() + } + /// Sets the raw value of `G`. + #[inline(always)] + pub fn set_g_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..33].store_le(value); } - /// Set value of 'G' + /// Sets the value of `G`. #[inline(always)] pub fn set_g(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[32..33].store_le(value); Ok(()) } - /// Get value of 'H' + /// Returns the value of `H`. /// /// - Min: 0 /// - Max: 32767 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn h(&self) -> u16 { - self.h_raw() + self.h_raw_val() } - /// Get raw value of 'H' + /// Returns the raw value of `H`. /// /// - Start bit: 33 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn h_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[33..48].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn h_raw_val(&self) -> u16 { + self.raw.view_bits::()[33..48].load_le::() } - /// Set value of 'H' + /// Sets the raw value of `H`. + #[inline(always)] + pub fn set_h_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[33..48].store_le(value); + } + /// Sets the value of `H`. #[inline(always)] pub fn set_h(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 32767_u16 < value { @@ -454,13 +461,6 @@ impl Msg1 { message_id: Msg1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg1::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[33..48].store_le(value); Ok(()) } @@ -532,7 +532,7 @@ impl Msg2 { pub const J_MAX: u8 = 15_u8; pub const K_MIN: u8 = 0_u8; pub const K_MAX: u8 = 15_u8; - /// Construct new 'MSG2' from values + /// Constructs a new `MSG2` message from values. pub fn new(i: u8, j: u8, k: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_i(i)?; @@ -540,35 +540,38 @@ impl Msg2 { res.set_k(k)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MSG2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'I' + /// Returns the value of `I`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn i(&self) -> u8 { - self.i_raw() + self.i_raw_val() } - /// Get raw value of 'I' + /// Returns the raw value of `I`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn i_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn i_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `I`. + #[inline(always)] + pub fn set_i_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..4].store_le(value); } - /// Set value of 'I' + /// Sets the value of `I`. #[inline(always)] pub fn set_i(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -576,41 +579,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Get value of 'J' + /// Returns the value of `J`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn j(&self) -> u8 { - self.j_raw() + self.j_raw_val() } - /// Get raw value of 'J' + /// Returns the raw value of `J`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn j_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn j_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..8].load_le::() + } + /// Sets the raw value of `J`. + #[inline(always)] + pub fn set_j_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..8].store_le(value); } - /// Set value of 'J' + /// Sets the value of `J`. #[inline(always)] pub fn set_j(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -618,41 +617,37 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) } - /// Get value of 'K' + /// Returns the value of `K`. /// /// - Min: 0 /// - Max: 15 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn k(&self) -> u8 { - self.k_raw() + self.k_raw_val() } - /// Get raw value of 'K' + /// Returns the raw value of `K`. /// /// - Start bit: 8 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn k_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..12].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn k_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..12].load_le::() } - /// Set value of 'K' + /// Sets the raw value of `K`. + #[inline(always)] + pub fn set_k_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..12].store_le(value); + } + /// Sets the value of `K`. #[inline(always)] pub fn set_k(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 15_u8 < value { @@ -660,13 +655,6 @@ impl Msg2 { message_id: Msg2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..12].store_le(value); Ok(()) } @@ -734,41 +722,44 @@ impl Msg3 { pub const MESSAGE_SIZE: usize = 8; pub const L_MIN: u64 = 0_u64; pub const L_MAX: u64 = 18446744073709551615_u64; - /// Construct new 'MSG3' from values + /// Constructs a new `MSG3` message from values. pub fn new(l: u64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_l(l)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MSG3` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'L' + /// Returns the value of `L`. /// /// - Min: 0 /// - Max: 18446744073709551615 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn l(&self) -> u64 { - self.l_raw() + self.l_raw_val() } - /// Get raw value of 'L' + /// Returns the raw value of `L`. /// /// - Start bit: 7 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn l_raw(&self) -> u64 { - let signal = self.raw.view_bits::()[0..64].load_be::(); - let factor = 1; - u64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn l_raw_val(&self) -> u64 { + self.raw.view_bits::()[0..64].load_be::() } - /// Set value of 'L' + /// Sets the raw value of `L`. + #[inline(always)] + pub fn set_l_raw_val(&mut self, value: u64) { + self.raw.view_bits_mut::()[0..64].store_be(value); + } + /// Sets the value of `L`. #[inline(always)] pub fn set_l(&mut self, value: u64) -> Result<(), CanError> { if value < 0_u64 || 18446744073709551615_u64 < value { @@ -776,13 +767,6 @@ impl Msg3 { message_id: Msg3::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg3::MESSAGE_ID, - })?; - let value = (value / factor) as u64; self.raw.view_bits_mut::()[0..64].store_be(value); Ok(()) } @@ -850,41 +834,44 @@ impl Msg4 { pub const MESSAGE_SIZE: usize = 8; pub const M_MIN: u64 = 0_u64; pub const M_MAX: u64 = 18446744073709551615_u64; - /// Construct new 'MSG4' from values + /// Constructs a new `MSG4` message from values. pub fn new(m: u64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_m(m)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MSG4` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'M' + /// Returns the value of `M`. /// /// - Min: 0 /// - Max: 18446744073709551615 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: E1 + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn m(&self) -> u64 { - self.m_raw() + self.m_raw_val() } - /// Get raw value of 'M' + /// Returns the raw value of `M`. /// /// - Start bit: 0 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn m_raw(&self) -> u64 { - let signal = self.raw.view_bits::()[0..64].load_le::(); - let factor = 1; - u64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn m_raw_val(&self) -> u64 { + self.raw.view_bits::()[0..64].load_le::() + } + /// Sets the raw value of `M`. + #[inline(always)] + pub fn set_m_raw_val(&mut self, value: u64) { + self.raw.view_bits_mut::()[0..64].store_le(value); } - /// Set value of 'M' + /// Sets the value of `M`. #[inline(always)] pub fn set_m(&mut self, value: u64) -> Result<(), CanError> { if value < 0_u64 || 18446744073709551615_u64 < value { @@ -892,13 +879,6 @@ impl Msg4 { message_id: Msg4::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Msg4::MESSAGE_ID, - })?; - let value = (value / factor) as u64; self.raw.view_bits_mut::()[0..64].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/sig_groups.snap.rs b/tests-snapshots/dbc-cantools/sig_groups.snap.rs index 948884fd..0000858a 100644 --- a/tests-snapshots/dbc-cantools/sig_groups.snap.rs +++ b/tests-snapshots/dbc-cantools/sig_groups.snap.rs @@ -79,42 +79,45 @@ impl Test { pub const MESSAGE_SIZE: usize = 8; pub const TEST_SIG_MIN: i8 = 0_i8; pub const TEST_SIG_MAX: i8 = 0_i8; - /// Construct new 'Test' from values + /// Constructs a new `Test` message from values. pub fn new(test_sig: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_sig(test_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Test` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TestSig' + /// Returns the value of `TestSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Tester + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test_sig(&self) -> i8 { - self.test_sig_raw() + self.test_sig_raw_val() } - /// Get raw value of 'TestSig' + /// Returns the raw value of `TestSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn test_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `TestSig`. + #[inline(always)] + pub fn set_test_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'TestSig' + /// Sets the value of `TestSig`. #[inline(always)] pub fn set_test_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -122,13 +125,6 @@ impl Test { message_id: Test::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Test::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -202,7 +198,7 @@ impl SgMsgM { pub const SUB_SIG1_2_MAX: i8 = 0_i8; pub const SUB_SIG1_1_MIN: i8 = 0_i8; pub const SUB_SIG1_1_MAX: i8 = 0_i8; - /// Construct new 'SGMsg_m' from values + /// Constructs a new `SGMsg_m` message from values. pub fn new( dupsig: i8, sub_sig2_1: i8, @@ -216,36 +212,39 @@ impl SgMsgM { res.set_sub_sig1_1(sub_sig1_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SGMsg_m` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'dupsig' + /// Returns the value of `dupsig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn dupsig(&self) -> i8 { - self.dupsig_raw() + self.dupsig_raw_val() } - /// Get raw value of 'dupsig' + /// Returns the raw value of `dupsig`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn dupsig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn dupsig_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `dupsig`. + #[inline(always)] + pub fn set_dupsig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'dupsig' + /// Sets the value of `dupsig`. #[inline(always)] pub fn set_dupsig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -253,43 +252,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'subSig2_1' + /// Returns the value of `subSig2_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig2_1(&self) -> i8 { - self.sub_sig2_1_raw() + self.sub_sig2_1_raw_val() } - /// Get raw value of 'subSig2_1' + /// Returns the raw value of `subSig2_1`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig2_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig2_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'subSig2_1' + /// Sets the raw value of `subSig2_1`. + #[inline(always)] + pub fn set_sub_sig2_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `subSig2_1`. #[inline(always)] pub fn set_sub_sig2_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -297,43 +292,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'subSig1_2' + /// Returns the value of `subSig1_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig1_2(&self) -> i8 { - self.sub_sig1_2_raw() + self.sub_sig1_2_raw_val() } - /// Get raw value of 'subSig1_2' + /// Returns the raw value of `subSig1_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig1_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig1_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `subSig1_2`. + #[inline(always)] + pub fn set_sub_sig1_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'subSig1_2' + /// Sets the value of `subSig1_2`. #[inline(always)] pub fn set_sub_sig1_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -341,43 +332,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'subSig1_1' + /// Returns the value of `subSig1_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig1_1(&self) -> i8 { - self.sub_sig1_1_raw() + self.sub_sig1_1_raw_val() } - /// Get raw value of 'subSig1_1' + /// Returns the raw value of `subSig1_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig1_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig1_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'subSig1_1' + /// Sets the raw value of `subSig1_1`. + #[inline(always)] + pub fn set_sub_sig1_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `subSig1_1`. #[inline(always)] pub fn set_sub_sig1_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -385,13 +372,6 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -463,7 +443,7 @@ impl SgMsg { pub const SG2_MAX: i8 = 0_i8; pub const SG1_MIN: i8 = 0_i8; pub const SG1_MAX: i8 = 0_i8; - /// Construct new 'SGMsg' from values + /// Constructs a new `SGMsg` message from values. pub fn new(dupsig: i8, sg2: i8, sg1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_dupsig(dupsig)?; @@ -471,36 +451,39 @@ impl SgMsg { res.set_sg1(sg1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SGMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'dupsig' + /// Returns the value of `dupsig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn dupsig(&self) -> i8 { - self.dupsig_raw() + self.dupsig_raw_val() } - /// Get raw value of 'dupsig' + /// Returns the raw value of `dupsig`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn dupsig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn dupsig_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `dupsig`. + #[inline(always)] + pub fn set_dupsig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'dupsig' + /// Sets the value of `dupsig`. #[inline(always)] pub fn set_dupsig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -508,43 +491,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'SG2' + /// Returns the value of `SG2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg2(&self) -> i8 { - self.sg2_raw() + self.sg2_raw_val() } - /// Get raw value of 'SG2' + /// Returns the raw value of `SG2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `SG2`. + #[inline(always)] + pub fn set_sg2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'SG2' + /// Sets the value of `SG2`. #[inline(always)] pub fn set_sg2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -552,43 +531,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'SG1' + /// Returns the value of `SG1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg1(&self) -> i8 { - self.sg1_raw() + self.sg1_raw_val() } - /// Get raw value of 'SG1' + /// Returns the raw value of `SG1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SG1' + /// Sets the raw value of `SG1`. + #[inline(always)] + pub fn set_sg1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SG1`. #[inline(always)] pub fn set_sg1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -596,13 +571,6 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -672,43 +640,46 @@ impl NormalMsg { pub const SIG_2_MAX: i8 = 0_i8; pub const SIG_1_MIN: i8 = 0_i8; pub const SIG_1_MAX: i8 = 0_i8; - /// Construct new 'NormalMsg' from values + /// Constructs a new `NormalMsg` message from values. pub fn new(sig_2: i8, sig_1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_2(sig_2)?; res.set_sig_1(sig_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `NormalMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Sig_2' + /// Returns the value of `Sig_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_2(&self) -> i8 { - self.sig_2_raw() + self.sig_2_raw_val() } - /// Get raw value of 'Sig_2' + /// Returns the raw value of `Sig_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Sig_2`. + #[inline(always)] + pub fn set_sig_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Sig_2' + /// Sets the value of `Sig_2`. #[inline(always)] pub fn set_sig_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -716,43 +687,39 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_1' + /// Returns the value of `Sig_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_1(&self) -> i8 { - self.sig_1_raw() + self.sig_1_raw_val() } - /// Get raw value of 'Sig_1' + /// Returns the raw value of `Sig_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_1' + /// Sets the raw value of `Sig_1`. + #[inline(always)] + pub fn set_sig_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_1`. #[inline(always)] pub fn set_sig_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -760,13 +727,6 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/sig_groups_del.snap.rs b/tests-snapshots/dbc-cantools/sig_groups_del.snap.rs index c190449c..cfc478af 100644 --- a/tests-snapshots/dbc-cantools/sig_groups_del.snap.rs +++ b/tests-snapshots/dbc-cantools/sig_groups_del.snap.rs @@ -79,42 +79,45 @@ impl Test { pub const MESSAGE_SIZE: usize = 8; pub const TEST_SIG_MIN: i8 = 0_i8; pub const TEST_SIG_MAX: i8 = 0_i8; - /// Construct new 'Test' from values + /// Constructs a new `Test` message from values. pub fn new(test_sig: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_sig(test_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Test` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TestSig' + /// Returns the value of `TestSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Tester + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test_sig(&self) -> i8 { - self.test_sig_raw() + self.test_sig_raw_val() } - /// Get raw value of 'TestSig' + /// Returns the raw value of `TestSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn test_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `TestSig`. + #[inline(always)] + pub fn set_test_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'TestSig' + /// Sets the value of `TestSig`. #[inline(always)] pub fn set_test_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -122,13 +125,6 @@ impl Test { message_id: Test::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Test::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -202,7 +198,7 @@ impl SgMsgM { pub const SUB_SIG1_2_MAX: i8 = 0_i8; pub const SUB_SIG1_1_MIN: i8 = 0_i8; pub const SUB_SIG1_1_MAX: i8 = 0_i8; - /// Construct new 'SGMsg_m' from values + /// Constructs a new `SGMsg_m` message from values. pub fn new( dupsig: i8, sub_sig2_1: i8, @@ -216,36 +212,39 @@ impl SgMsgM { res.set_sub_sig1_1(sub_sig1_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SGMsg_m` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'dupsig' + /// Returns the value of `dupsig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn dupsig(&self) -> i8 { - self.dupsig_raw() + self.dupsig_raw_val() } - /// Get raw value of 'dupsig' + /// Returns the raw value of `dupsig`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn dupsig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn dupsig_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `dupsig`. + #[inline(always)] + pub fn set_dupsig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'dupsig' + /// Sets the value of `dupsig`. #[inline(always)] pub fn set_dupsig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -253,43 +252,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'subSig2_1' + /// Returns the value of `subSig2_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig2_1(&self) -> i8 { - self.sub_sig2_1_raw() + self.sub_sig2_1_raw_val() } - /// Get raw value of 'subSig2_1' + /// Returns the raw value of `subSig2_1`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig2_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig2_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'subSig2_1' + /// Sets the raw value of `subSig2_1`. + #[inline(always)] + pub fn set_sub_sig2_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `subSig2_1`. #[inline(always)] pub fn set_sub_sig2_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -297,43 +292,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'subSig1_2' + /// Returns the value of `subSig1_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig1_2(&self) -> i8 { - self.sub_sig1_2_raw() + self.sub_sig1_2_raw_val() } - /// Get raw value of 'subSig1_2' + /// Returns the raw value of `subSig1_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig1_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig1_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `subSig1_2`. + #[inline(always)] + pub fn set_sub_sig1_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'subSig1_2' + /// Sets the value of `subSig1_2`. #[inline(always)] pub fn set_sub_sig1_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -341,43 +332,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'subSig1_1' + /// Returns the value of `subSig1_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig1_1(&self) -> i8 { - self.sub_sig1_1_raw() + self.sub_sig1_1_raw_val() } - /// Get raw value of 'subSig1_1' + /// Returns the raw value of `subSig1_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig1_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig1_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'subSig1_1' + /// Sets the raw value of `subSig1_1`. + #[inline(always)] + pub fn set_sub_sig1_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `subSig1_1`. #[inline(always)] pub fn set_sub_sig1_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -385,13 +372,6 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -463,7 +443,7 @@ impl SgMsg { pub const SG2_MAX: i8 = 0_i8; pub const SG1_MIN: i8 = 0_i8; pub const SG1_MAX: i8 = 0_i8; - /// Construct new 'SGMsg' from values + /// Constructs a new `SGMsg` message from values. pub fn new(dupsig: i8, sg2: i8, sg1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_dupsig(dupsig)?; @@ -471,36 +451,39 @@ impl SgMsg { res.set_sg1(sg1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SGMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'dupsig' + /// Returns the value of `dupsig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn dupsig(&self) -> i8 { - self.dupsig_raw() + self.dupsig_raw_val() } - /// Get raw value of 'dupsig' + /// Returns the raw value of `dupsig`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn dupsig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn dupsig_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `dupsig`. + #[inline(always)] + pub fn set_dupsig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'dupsig' + /// Sets the value of `dupsig`. #[inline(always)] pub fn set_dupsig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -508,43 +491,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'SG2' + /// Returns the value of `SG2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg2(&self) -> i8 { - self.sg2_raw() + self.sg2_raw_val() } - /// Get raw value of 'SG2' + /// Returns the raw value of `SG2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `SG2`. + #[inline(always)] + pub fn set_sg2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'SG2' + /// Sets the value of `SG2`. #[inline(always)] pub fn set_sg2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -552,43 +531,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'SG1' + /// Returns the value of `SG1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg1(&self) -> i8 { - self.sg1_raw() + self.sg1_raw_val() } - /// Get raw value of 'SG1' + /// Returns the raw value of `SG1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SG1' + /// Sets the raw value of `SG1`. + #[inline(always)] + pub fn set_sg1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SG1`. #[inline(always)] pub fn set_sg1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -596,13 +571,6 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -672,43 +640,46 @@ impl NormalMsg { pub const SIG_2_MAX: i8 = 0_i8; pub const SIG_1_MIN: i8 = 0_i8; pub const SIG_1_MAX: i8 = 0_i8; - /// Construct new 'NormalMsg' from values + /// Constructs a new `NormalMsg` message from values. pub fn new(sig_2: i8, sig_1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_2(sig_2)?; res.set_sig_1(sig_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `NormalMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Sig_2' + /// Returns the value of `Sig_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_2(&self) -> i8 { - self.sig_2_raw() + self.sig_2_raw_val() } - /// Get raw value of 'Sig_2' + /// Returns the raw value of `Sig_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Sig_2`. + #[inline(always)] + pub fn set_sig_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Sig_2' + /// Sets the value of `Sig_2`. #[inline(always)] pub fn set_sig_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -716,43 +687,39 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_1' + /// Returns the value of `Sig_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_1(&self) -> i8 { - self.sig_1_raw() + self.sig_1_raw_val() } - /// Get raw value of 'Sig_1' + /// Returns the raw value of `Sig_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_1' + /// Sets the raw value of `Sig_1`. + #[inline(always)] + pub fn set_sig_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_1`. #[inline(always)] pub fn set_sig_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -760,13 +727,6 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/sig_groups_out.snap.rs b/tests-snapshots/dbc-cantools/sig_groups_out.snap.rs index c986d4a1..cf3aa962 100644 --- a/tests-snapshots/dbc-cantools/sig_groups_out.snap.rs +++ b/tests-snapshots/dbc-cantools/sig_groups_out.snap.rs @@ -79,42 +79,45 @@ impl Test { pub const MESSAGE_SIZE: usize = 8; pub const TEST_SIG_MIN: i8 = 0_i8; pub const TEST_SIG_MAX: i8 = 0_i8; - /// Construct new 'Test' from values + /// Constructs a new `Test` message from values. pub fn new(test_sig: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_sig(test_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Test` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'TestSig' + /// Returns the value of `TestSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Tester + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn test_sig(&self) -> i8 { - self.test_sig_raw() + self.test_sig_raw_val() } - /// Get raw value of 'TestSig' + /// Returns the raw value of `TestSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn test_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `TestSig`. + #[inline(always)] + pub fn set_test_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'TestSig' + /// Sets the value of `TestSig`. #[inline(always)] pub fn set_test_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -122,13 +125,6 @@ impl Test { message_id: Test::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Test::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -202,7 +198,7 @@ impl SgMsgM { pub const SUB_SIG1_2_MAX: i8 = 0_i8; pub const SUB_SIG1_1_MIN: i8 = 0_i8; pub const SUB_SIG1_1_MAX: i8 = 0_i8; - /// Construct new 'SGMsg_m' from values + /// Constructs a new `SGMsg_m` message from values. pub fn new( dupsig: i8, sub_sig2_1: i8, @@ -216,36 +212,39 @@ impl SgMsgM { res.set_sub_sig1_1(sub_sig1_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SGMsg_m` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'dupsig' + /// Returns the value of `dupsig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn dupsig(&self) -> i8 { - self.dupsig_raw() + self.dupsig_raw_val() } - /// Get raw value of 'dupsig' + /// Returns the raw value of `dupsig`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn dupsig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn dupsig_raw_val(&self) -> i8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `dupsig`. + #[inline(always)] + pub fn set_dupsig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'dupsig' + /// Sets the value of `dupsig`. #[inline(always)] pub fn set_dupsig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -253,43 +252,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'subSig2_1' + /// Returns the value of `subSig2_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig2_1(&self) -> i8 { - self.sub_sig2_1_raw() + self.sub_sig2_1_raw_val() } - /// Get raw value of 'subSig2_1' + /// Returns the raw value of `subSig2_1`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig2_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig2_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'subSig2_1' + /// Sets the raw value of `subSig2_1`. + #[inline(always)] + pub fn set_sub_sig2_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `subSig2_1`. #[inline(always)] pub fn set_sub_sig2_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -297,43 +292,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'subSig1_2' + /// Returns the value of `subSig1_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig1_2(&self) -> i8 { - self.sub_sig1_2_raw() + self.sub_sig1_2_raw_val() } - /// Get raw value of 'subSig1_2' + /// Returns the raw value of `subSig1_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig1_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig1_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `subSig1_2`. + #[inline(always)] + pub fn set_sub_sig1_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'subSig1_2' + /// Sets the value of `subSig1_2`. #[inline(always)] pub fn set_sub_sig1_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -341,43 +332,39 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'subSig1_1' + /// Returns the value of `subSig1_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sub_sig1_1(&self) -> i8 { - self.sub_sig1_1_raw() + self.sub_sig1_1_raw_val() } - /// Get raw value of 'subSig1_1' + /// Returns the raw value of `subSig1_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sub_sig1_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sub_sig1_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'subSig1_1' + /// Sets the raw value of `subSig1_1`. + #[inline(always)] + pub fn set_sub_sig1_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `subSig1_1`. #[inline(always)] pub fn set_sub_sig1_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -385,13 +372,6 @@ impl SgMsgM { message_id: SgMsgM::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsgM::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -463,7 +443,7 @@ impl SgMsg { pub const SG2_MAX: i8 = 0_i8; pub const SG1_MIN: i8 = 0_i8; pub const SG1_MAX: i8 = 0_i8; - /// Construct new 'SGMsg' from values + /// Constructs a new `SGMsg` message from values. pub fn new(dupsig: i8, sg2: i8, sg1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_dupsig(dupsig)?; @@ -471,36 +451,39 @@ impl SgMsg { res.set_sg1(sg1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SGMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'dupsig' + /// Returns the value of `dupsig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn dupsig(&self) -> i8 { - self.dupsig_raw() + self.dupsig_raw_val() } - /// Get raw value of 'dupsig' + /// Returns the raw value of `dupsig`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn dupsig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn dupsig_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `dupsig`. + #[inline(always)] + pub fn set_dupsig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'dupsig' + /// Sets the value of `dupsig`. #[inline(always)] pub fn set_dupsig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -508,43 +491,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'SG2' + /// Returns the value of `SG2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg2(&self) -> i8 { - self.sg2_raw() + self.sg2_raw_val() } - /// Get raw value of 'SG2' + /// Returns the raw value of `SG2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `SG2`. + #[inline(always)] + pub fn set_sg2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'SG2' + /// Sets the value of `SG2`. #[inline(always)] pub fn set_sg2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -552,43 +531,39 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'SG1' + /// Returns the value of `SG1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sg1(&self) -> i8 { - self.sg1_raw() + self.sg1_raw_val() } - /// Get raw value of 'SG1' + /// Returns the raw value of `SG1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sg1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sg1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SG1' + /// Sets the raw value of `SG1`. + #[inline(always)] + pub fn set_sg1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SG1`. #[inline(always)] pub fn set_sg1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -596,13 +571,6 @@ impl SgMsg { message_id: SgMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SgMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -672,43 +640,46 @@ impl NormalMsg { pub const SIG_2_MAX: i8 = 0_i8; pub const SIG_1_MIN: i8 = 0_i8; pub const SIG_1_MAX: i8 = 0_i8; - /// Construct new 'NormalMsg' from values + /// Constructs a new `NormalMsg` message from values. pub fn new(sig_2: i8, sig_1: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_sig_2(sig_2)?; res.set_sig_1(sig_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `NormalMsg` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Sig_2' + /// Returns the value of `Sig_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_2(&self) -> i8 { - self.sig_2_raw() + self.sig_2_raw_val() } - /// Get raw value of 'Sig_2' + /// Returns the raw value of `Sig_2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_2_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_2_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Sig_2`. + #[inline(always)] + pub fn set_sig_2_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Sig_2' + /// Sets the value of `Sig_2`. #[inline(always)] pub fn set_sig_2(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -716,43 +687,39 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Sig_1' + /// Returns the value of `Sig_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sig_1(&self) -> i8 { - self.sig_1_raw() + self.sig_1_raw_val() } - /// Get raw value of 'Sig_1' + /// Returns the raw value of `Sig_1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn sig_1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sig_1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Sig_1' + /// Sets the raw value of `Sig_1`. + #[inline(always)] + pub fn set_sig_1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Sig_1`. #[inline(always)] pub fn set_sig_1(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -760,13 +727,6 @@ impl NormalMsg { message_id: NormalMsg::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: NormalMsg::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/signed.snap.rs b/tests-snapshots/dbc-cantools/signed.snap.rs index 9f0fcc22..a123d604 100644 --- a/tests-snapshots/dbc-cantools/signed.snap.rs +++ b/tests-snapshots/dbc-cantools/signed.snap.rs @@ -127,7 +127,7 @@ impl Message378910 { pub const S8_MAX: i8 = 0_i8; pub const S7_MIN: i8 = 0_i8; pub const S7_MAX: i8 = 0_i8; - /// Construct new 'Message378910' from values + /// Constructs a new `Message378910` message from values. pub fn new( s3big: i8, s3: i8, @@ -149,36 +149,39 @@ impl Message378910 { res.set_s7(s7)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message378910` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's3big' + /// Returns the value of `s3big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s3big(&self) -> i8 { - self.s3big_raw() + self.s3big_raw_val() } - /// Get raw value of 's3big' + /// Returns the raw value of `s3big`. /// /// - Start bit: 39 /// - Signal size: 3 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s3big_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[32..35].load_be::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s3big_raw_val(&self) -> i8 { + self.raw.view_bits::()[32..35].load_be::() } - /// Set value of 's3big' + /// Sets the raw value of `s3big`. + #[inline(always)] + pub fn set_s3big_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..35].store_be(value); + } + /// Sets the value of `s3big`. #[inline(always)] pub fn set_s3big(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -186,43 +189,39 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[32..35].store_be(value); Ok(()) } - /// Get value of 's3' + /// Returns the value of `s3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s3(&self) -> i8 { - self.s3_raw() + self.s3_raw_val() } - /// Get raw value of 's3' + /// Returns the raw value of `s3`. /// /// - Start bit: 34 /// - Signal size: 3 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s3_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[34..37].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s3_raw_val(&self) -> i8 { + self.raw.view_bits::()[34..37].load_le::() + } + /// Sets the raw value of `s3`. + #[inline(always)] + pub fn set_s3_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[34..37].store_le(value); } - /// Set value of 's3' + /// Sets the value of `s3`. #[inline(always)] pub fn set_s3(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -230,43 +229,39 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[34..37].store_le(value); Ok(()) } - /// Get value of 's10big' + /// Returns the value of `s10big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s10big(&self) -> i16 { - self.s10big_raw() + self.s10big_raw_val() } - /// Get raw value of 's10big' + /// Returns the raw value of `s10big`. /// /// - Start bit: 40 /// - Signal size: 10 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s10big_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[47..57].load_be::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s10big_raw_val(&self) -> i16 { + self.raw.view_bits::()[47..57].load_be::() + } + /// Sets the raw value of `s10big`. + #[inline(always)] + pub fn set_s10big_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[47..57].store_be(value); } - /// Set value of 's10big' + /// Sets the value of `s10big`. #[inline(always)] pub fn set_s10big(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 0_i16 < value { @@ -274,43 +269,39 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[47..57].store_be(value); Ok(()) } - /// Get value of 's8big' + /// Returns the value of `s8big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s8big(&self) -> i8 { - self.s8big_raw() + self.s8big_raw_val() } - /// Get raw value of 's8big' + /// Returns the raw value of `s8big`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s8big_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[7..15].load_be::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s8big_raw_val(&self) -> i8 { + self.raw.view_bits::()[7..15].load_be::() } - /// Set value of 's8big' + /// Sets the raw value of `s8big`. + #[inline(always)] + pub fn set_s8big_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..15].store_be(value); + } + /// Sets the value of `s8big`. #[inline(always)] pub fn set_s8big(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -318,43 +309,39 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[7..15].store_be(value); Ok(()) } - /// Get value of 's7big' + /// Returns the value of `s7big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s7big(&self) -> i8 { - self.s7big_raw() + self.s7big_raw_val() } - /// Get raw value of 's7big' + /// Returns the raw value of `s7big`. /// /// - Start bit: 62 /// - Signal size: 7 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s7big_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[57..64].load_be::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s7big_raw_val(&self) -> i8 { + self.raw.view_bits::()[57..64].load_be::() } - /// Set value of 's7big' + /// Sets the raw value of `s7big`. + #[inline(always)] + pub fn set_s7big_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[57..64].store_be(value); + } + /// Sets the value of `s7big`. #[inline(always)] pub fn set_s7big(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -362,43 +349,39 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[57..64].store_be(value); Ok(()) } - /// Get value of 's9' + /// Returns the value of `s9`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s9(&self) -> i16 { - self.s9_raw() + self.s9_raw_val() } - /// Get raw value of 's9' + /// Returns the raw value of `s9`. /// /// - Start bit: 17 /// - Signal size: 9 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s9_raw(&self) -> i16 { - let signal = self.raw.view_bits::()[17..26].load_le::(); - let factor = 1; - let signal = signal as i16; - i16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s9_raw_val(&self) -> i16 { + self.raw.view_bits::()[17..26].load_le::() + } + /// Sets the raw value of `s9`. + #[inline(always)] + pub fn set_s9_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[17..26].store_le(value); } - /// Set value of 's9' + /// Sets the value of `s9`. #[inline(always)] pub fn set_s9(&mut self, value: i16) -> Result<(), CanError> { if value < 0_i16 || 0_i16 < value { @@ -406,43 +389,39 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i16; let value = u16::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[17..26].store_le(value); Ok(()) } - /// Get value of 's8' + /// Returns the value of `s8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s8(&self) -> i8 { - self.s8_raw() + self.s8_raw_val() } - /// Get raw value of 's8' + /// Returns the raw value of `s8`. /// /// - Start bit: 26 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s8_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[26..34].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s8_raw_val(&self) -> i8 { + self.raw.view_bits::()[26..34].load_le::() + } + /// Sets the raw value of `s8`. + #[inline(always)] + pub fn set_s8_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[26..34].store_le(value); } - /// Set value of 's8' + /// Sets the value of `s8`. #[inline(always)] pub fn set_s8(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -450,43 +429,39 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[26..34].store_le(value); Ok(()) } - /// Get value of 's7' + /// Returns the value of `s7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s7(&self) -> i8 { - self.s7_raw() + self.s7_raw_val() } - /// Get raw value of 's7' + /// Returns the raw value of `s7`. /// /// - Start bit: 1 /// - Signal size: 7 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s7_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[1..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s7_raw_val(&self) -> i8 { + self.raw.view_bits::()[1..8].load_le::() + } + /// Sets the raw value of `s7`. + #[inline(always)] + pub fn set_s7_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[1..8].store_le(value); } - /// Set value of 's7' + /// Sets the value of `s7`. #[inline(always)] pub fn set_s7(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -494,13 +469,6 @@ impl Message378910 { message_id: Message378910::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message378910::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[1..8].store_le(value); Ok(()) @@ -568,42 +536,45 @@ impl Message63big1 { pub const MESSAGE_SIZE: usize = 8; pub const S63BIG_MIN: i64 = 0_i64; pub const S63BIG_MAX: i64 = 0_i64; - /// Construct new 'Message63big_1' from values + /// Constructs a new `Message63big_1` message from values. pub fn new(s63big: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s63big(s63big)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message63big_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's63big' + /// Returns the value of `s63big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s63big(&self) -> i64 { - self.s63big_raw() + self.s63big_raw_val() } - /// Get raw value of 's63big' + /// Returns the raw value of `s63big`. /// /// - Start bit: 6 /// - Signal size: 63 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s63big_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[1..64].load_be::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s63big_raw_val(&self) -> i64 { + self.raw.view_bits::()[1..64].load_be::() } - /// Set value of 's63big' + /// Sets the raw value of `s63big`. + #[inline(always)] + pub fn set_s63big_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[1..64].store_be(value); + } + /// Sets the value of `s63big`. #[inline(always)] pub fn set_s63big(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -611,13 +582,6 @@ impl Message63big1 { message_id: Message63big1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message63big1::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[1..64].store_be(value); Ok(()) @@ -685,42 +649,45 @@ impl Message631 { pub const MESSAGE_SIZE: usize = 8; pub const S63_MIN: i64 = 0_i64; pub const S63_MAX: i64 = 0_i64; - /// Construct new 'Message63_1' from values + /// Constructs a new `Message63_1` message from values. pub fn new(s63: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s63(s63)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message63_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's63' + /// Returns the value of `s63`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s63(&self) -> i64 { - self.s63_raw() + self.s63_raw_val() } - /// Get raw value of 's63' + /// Returns the raw value of `s63`. /// /// - Start bit: 1 /// - Signal size: 63 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s63_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[1..64].load_le::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s63_raw_val(&self) -> i64 { + self.raw.view_bits::()[1..64].load_le::() } - /// Set value of 's63' + /// Sets the raw value of `s63`. + #[inline(always)] + pub fn set_s63_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[1..64].store_le(value); + } + /// Sets the value of `s63`. #[inline(always)] pub fn set_s63(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -728,13 +695,6 @@ impl Message631 { message_id: Message631::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message631::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[1..64].store_le(value); Ok(()) @@ -802,42 +762,45 @@ impl Message63big { pub const MESSAGE_SIZE: usize = 8; pub const S63BIG_MIN: i64 = 0_i64; pub const S63BIG_MAX: i64 = 0_i64; - /// Construct new 'Message63big' from values + /// Constructs a new `Message63big` message from values. pub fn new(s63big: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s63big(s63big)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message63big` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's63big' + /// Returns the value of `s63big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s63big(&self) -> i64 { - self.s63big_raw() + self.s63big_raw_val() } - /// Get raw value of 's63big' + /// Returns the raw value of `s63big`. /// /// - Start bit: 7 /// - Signal size: 63 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s63big_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..63].load_be::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s63big_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..63].load_be::() + } + /// Sets the raw value of `s63big`. + #[inline(always)] + pub fn set_s63big_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..63].store_be(value); } - /// Set value of 's63big' + /// Sets the value of `s63big`. #[inline(always)] pub fn set_s63big(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -845,13 +808,6 @@ impl Message63big { message_id: Message63big::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message63big::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..63].store_be(value); Ok(()) @@ -919,42 +875,45 @@ impl Message63 { pub const MESSAGE_SIZE: usize = 8; pub const S63_MIN: i64 = 0_i64; pub const S63_MAX: i64 = 0_i64; - /// Construct new 'Message63' from values + /// Constructs a new `Message63` message from values. pub fn new(s63: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s63(s63)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message63` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's63' + /// Returns the value of `s63`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s63(&self) -> i64 { - self.s63_raw() + self.s63_raw_val() } - /// Get raw value of 's63' + /// Returns the raw value of `s63`. /// /// - Start bit: 0 /// - Signal size: 63 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s63_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..63].load_le::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s63_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..63].load_le::() + } + /// Sets the raw value of `s63`. + #[inline(always)] + pub fn set_s63_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..63].store_le(value); } - /// Set value of 's63' + /// Sets the value of `s63`. #[inline(always)] pub fn set_s63(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -962,13 +921,6 @@ impl Message63 { message_id: Message63::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message63::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..63].store_le(value); Ok(()) @@ -1036,42 +988,45 @@ impl Message32big { pub const MESSAGE_SIZE: usize = 8; pub const S32BIG_MIN: i32 = 0_i32; pub const S32BIG_MAX: i32 = 0_i32; - /// Construct new 'Message32big' from values + /// Constructs a new `Message32big` message from values. pub fn new(s32big: i32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s32big(s32big)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message32big` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's32big' + /// Returns the value of `s32big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s32big(&self) -> i32 { - self.s32big_raw() + self.s32big_raw_val() } - /// Get raw value of 's32big' + /// Returns the raw value of `s32big`. /// /// - Start bit: 7 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s32big_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_be::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s32big_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_be::() } - /// Set value of 's32big' + /// Sets the raw value of `s32big`. + #[inline(always)] + pub fn set_s32big_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_be(value); + } + /// Sets the value of `s32big`. #[inline(always)] pub fn set_s32big(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1079,13 +1034,6 @@ impl Message32big { message_id: Message32big::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message32big::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_be(value); Ok(()) @@ -1153,42 +1101,45 @@ impl Message33big { pub const MESSAGE_SIZE: usize = 8; pub const S33BIG_MIN: i64 = 0_i64; pub const S33BIG_MAX: i64 = 0_i64; - /// Construct new 'Message33big' from values + /// Constructs a new `Message33big` message from values. pub fn new(s33big: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s33big(s33big)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message33big` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's33big' + /// Returns the value of `s33big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s33big(&self) -> i64 { - self.s33big_raw() + self.s33big_raw_val() } - /// Get raw value of 's33big' + /// Returns the raw value of `s33big`. /// /// - Start bit: 7 /// - Signal size: 33 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s33big_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..33].load_be::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s33big_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..33].load_be::() } - /// Set value of 's33big' + /// Sets the raw value of `s33big`. + #[inline(always)] + pub fn set_s33big_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..33].store_be(value); + } + /// Sets the value of `s33big`. #[inline(always)] pub fn set_s33big(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -1196,13 +1147,6 @@ impl Message33big { message_id: Message33big::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message33big::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..33].store_be(value); Ok(()) @@ -1270,42 +1214,45 @@ impl Message64big { pub const MESSAGE_SIZE: usize = 8; pub const S64BIG_MIN: i64 = 0_i64; pub const S64BIG_MAX: i64 = 0_i64; - /// Construct new 'Message64big' from values + /// Constructs a new `Message64big` message from values. pub fn new(s64big: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s64big(s64big)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message64big` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's64big' + /// Returns the value of `s64big`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s64big(&self) -> i64 { - self.s64big_raw() + self.s64big_raw_val() } - /// Get raw value of 's64big' + /// Returns the raw value of `s64big`. /// /// - Start bit: 7 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn s64big_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..64].load_be::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s64big_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..64].load_be::() + } + /// Sets the raw value of `s64big`. + #[inline(always)] + pub fn set_s64big_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..64].store_be(value); } - /// Set value of 's64big' + /// Sets the value of `s64big`. #[inline(always)] pub fn set_s64big(&mut self, value: i64) -> Result<(), CanError> { if value < 0_i64 || 0_i64 < value { @@ -1313,13 +1260,6 @@ impl Message64big { message_id: Message64big::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message64big::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..64].store_be(value); Ok(()) @@ -1387,42 +1327,45 @@ impl Message64 { pub const MESSAGE_SIZE: usize = 8; pub const S64_MIN: i64 = -9223372036854780000_i64; pub const S64_MAX: i64 = 9223372036854780000_i64; - /// Construct new 'Message64' from values + /// Constructs a new `Message64` message from values. pub fn new(s64: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s64(s64)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message64` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's64' + /// Returns the value of `s64`. /// /// - Min: -9223372036854780000 /// - Max: 9223372036854780000 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s64(&self) -> i64 { - self.s64_raw() + self.s64_raw_val() } - /// Get raw value of 's64' + /// Returns the raw value of `s64`. /// /// - Start bit: 0 /// - Signal size: 64 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s64_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..64].load_le::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s64_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..64].load_le::() + } + /// Sets the raw value of `s64`. + #[inline(always)] + pub fn set_s64_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..64].store_le(value); } - /// Set value of 's64' + /// Sets the value of `s64`. #[inline(always)] pub fn set_s64(&mut self, value: i64) -> Result<(), CanError> { if value < -9223372036854780000_i64 || 9223372036854780000_i64 < value { @@ -1430,13 +1373,6 @@ impl Message64 { message_id: Message64::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message64::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..64].store_le(value); Ok(()) @@ -1504,42 +1440,45 @@ impl Message33 { pub const MESSAGE_SIZE: usize = 8; pub const S33_MIN: i64 = -4294967296_i64; pub const S33_MAX: i64 = 4294967295_i64; - /// Construct new 'Message33' from values + /// Constructs a new `Message33` message from values. pub fn new(s33: i64) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s33(s33)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message33` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's33' + /// Returns the value of `s33`. /// /// - Min: -4294967296 /// - Max: 4294967295 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s33(&self) -> i64 { - self.s33_raw() + self.s33_raw_val() } - /// Get raw value of 's33' + /// Returns the raw value of `s33`. /// /// - Start bit: 0 /// - Signal size: 33 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s33_raw(&self) -> i64 { - let signal = self.raw.view_bits::()[0..33].load_le::(); - let factor = 1; - let signal = signal as i64; - i64::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s33_raw_val(&self) -> i64 { + self.raw.view_bits::()[0..33].load_le::() + } + /// Sets the raw value of `s33`. + #[inline(always)] + pub fn set_s33_raw_val(&mut self, value: i64) { + let value = u64::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..33].store_le(value); } - /// Set value of 's33' + /// Sets the value of `s33`. #[inline(always)] pub fn set_s33(&mut self, value: i64) -> Result<(), CanError> { if value < -4294967296_i64 || 4294967295_i64 < value { @@ -1547,13 +1486,6 @@ impl Message33 { message_id: Message33::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message33::MESSAGE_ID, - })?; - let value = (value / factor) as i64; let value = u64::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..33].store_le(value); Ok(()) @@ -1621,42 +1553,45 @@ impl Message32 { pub const MESSAGE_SIZE: usize = 8; pub const S32_MIN: i32 = 0_i32; pub const S32_MAX: i32 = 0_i32; - /// Construct new 'Message32' from values + /// Constructs a new `Message32` message from values. pub fn new(s32: i32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_s32(s32)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message32` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 's32' + /// Returns the value of `s32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn s32(&self) -> i32 { - self.s32_raw() + self.s32_raw_val() } - /// Get raw value of 's32' + /// Returns the raw value of `s32`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn s32_raw(&self) -> i32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 1; - let signal = signal as i32; - i32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn s32_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() } - /// Set value of 's32' + /// Sets the raw value of `s32`. + #[inline(always)] + pub fn set_s32_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); + } + /// Sets the value of `s32`. #[inline(always)] pub fn set_s32(&mut self, value: i32) -> Result<(), CanError> { if value < 0_i32 || 0_i32 < value { @@ -1664,13 +1599,6 @@ impl Message32 { message_id: Message32::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message32::MESSAGE_ID, - })?; - let value = (value / factor) as i32; let value = u32::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..32].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/signed.snap.stderr b/tests-snapshots/dbc-cantools/signed.snap.stderr index fd18611e..bf09068e 100644 --- a/tests-snapshots/dbc-cantools/signed.snap.stderr +++ b/tests-snapshots/dbc-cantools/signed.snap.stderr @@ -1,7 +1,7 @@ error: literal out of range for `i64` - --> tests-snapshots/dbc-cantools/signed.snap.rs:1388:30 + --> tests-snapshots/dbc-cantools/signed.snap.rs:1328:30 | -1388 | pub const S64_MIN: i64 = -9223372036854780000_i64; +1328 | pub const S64_MIN: i64 = -9223372036854780000_i64; | ^^^^^^^^^^^^^^^^^^^^^^^^ | = note: the literal `-9223372036854780000_i64` does not fit into the type `i64` whose range is `-9223372036854775808..=9223372036854775807` @@ -9,27 +9,27 @@ error: literal out of range for `i64` = note: `#[deny(overflowing_literals)]` on by default error: literal out of range for `i64` - --> tests-snapshots/dbc-cantools/signed.snap.rs:1389:30 + --> tests-snapshots/dbc-cantools/signed.snap.rs:1329:30 | -1389 | pub const S64_MAX: i64 = 9223372036854780000_i64; +1329 | pub const S64_MAX: i64 = 9223372036854780000_i64; | ^^^^^^^^^^^^^^^^^^^^^^^ | = note: the literal `9223372036854780000_i64` does not fit into the type `i64` whose range is `-9223372036854775808..=9223372036854775807` = help: consider using the type `u64` instead error: literal out of range for `i64` - --> tests-snapshots/dbc-cantools/signed.snap.rs:1428:20 + --> tests-snapshots/dbc-cantools/signed.snap.rs:1371:20 | -1428 | if value < -9223372036854780000_i64 || 9223372036854780000_i64 < value { +1371 | if value < -9223372036854780000_i64 || 9223372036854780000_i64 < value { | ^^^^^^^^^^^^^^^^^^^^^^^^ | = note: the literal `-9223372036854780000_i64` does not fit into the type `i64` whose range is `-9223372036854775808..=9223372036854775807` = help: consider using the type `i128` instead error: literal out of range for `i64` - --> tests-snapshots/dbc-cantools/signed.snap.rs:1428:48 + --> tests-snapshots/dbc-cantools/signed.snap.rs:1371:48 | -1428 | if value < -9223372036854780000_i64 || 9223372036854780000_i64 < value { +1371 | if value < -9223372036854780000_i64 || 9223372036854780000_i64 < value { | ^^^^^^^^^^^^^^^^^^^^^^^ | = note: the literal `9223372036854780000_i64` does not fit into the type `i64` whose range is `-9223372036854775808..=9223372036854775807` diff --git a/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-default-sort-signals.snap.rs b/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-default-sort-signals.snap.rs index e4da6aa7..11bd6f12 100644 --- a/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-default-sort-signals.snap.rs +++ b/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-default-sort-signals.snap.rs @@ -91,7 +91,7 @@ impl DriverHeartbeat { pub const MESSAGE_CYCLE_TIME_MS: u32 = 1000; pub const DRIVER_HEARTBEAT_CMD_MIN: u8 = 0_u8; pub const DRIVER_HEARTBEAT_CMD_MAX: u8 = 0_u8; - /// Construct new 'DRIVER_HEARTBEAT' from values + /// Constructs a new `DRIVER_HEARTBEAT` message from values. pub fn new( driver_heartbeat_cmd: DriverHeartbeatDriverHeartbeatCmd, ) -> Result { @@ -99,15 +99,15 @@ impl DriverHeartbeat { res.set_driver_heartbeat_cmd(driver_heartbeat_cmd)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `DRIVER_HEARTBEAT` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'DRIVER_HEARTBEAT_cmd' + /// Returns the value of `DRIVER_HEARTBEAT_cmd`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: SENSOR, MOTOR #[inline(always)] pub fn driver_heartbeat_cmd(&self) -> DriverHeartbeatDriverHeartbeatCmd { @@ -118,26 +118,31 @@ impl DriverHeartbeat { 0 => DriverHeartbeatDriverHeartbeatCmd::DriverHeartbeatCmdNoop, _ => { DriverHeartbeatDriverHeartbeatCmd::_Other( - self.driver_heartbeat_cmd_raw(), + self.driver_heartbeat_cmd_phys_val(), ) } } } - /// Get raw value of 'DRIVER_HEARTBEAT_cmd' + #[inline(always)] + fn driver_heartbeat_cmd_phys_val(&self) -> u8 { + self.driver_heartbeat_cmd_raw_val() + } + /// Returns the raw value of `DRIVER_HEARTBEAT_cmd`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn driver_heartbeat_cmd_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn driver_heartbeat_cmd_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `DRIVER_HEARTBEAT_cmd`. + #[inline(always)] + pub fn set_driver_heartbeat_cmd_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'DRIVER_HEARTBEAT_cmd' + /// Sets the value of `DRIVER_HEARTBEAT_cmd`. #[inline(always)] pub fn set_driver_heartbeat_cmd( &mut self, @@ -149,13 +154,6 @@ impl DriverHeartbeat { message_id: DriverHeartbeat::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: DriverHeartbeat::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -257,7 +255,7 @@ impl IoDebug { pub const IO_DEBUG_TEST_ENUM_MAX: u8 = 0_u8; pub const IO_DEBUG_TEST_UNSIGNED_MIN: u8 = 0_u8; pub const IO_DEBUG_TEST_UNSIGNED_MAX: u8 = 0_u8; - /// Construct new 'IO_DEBUG' from values + /// Constructs a new `IO_DEBUG` message from values. pub fn new( io_debug_test_float: f32, io_debug_test_signed: i8, @@ -271,36 +269,41 @@ impl IoDebug { res.set_io_debug_test_unsigned(io_debug_test_unsigned)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `IO_DEBUG` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'IO_DEBUG_test_float' + /// Returns the value of `IO_DEBUG_test_float`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.5 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_float(&self) -> f32 { - self.io_debug_test_float_raw() + let signal = self.raw.view_bits::()[24..32].load_le::(); + let factor = 0.5_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IO_DEBUG_test_float' + /// Returns the raw value of `IO_DEBUG_test_float`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 0.5 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_float_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 0.5_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn io_debug_test_float_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'IO_DEBUG_test_float' + /// Sets the raw value of `IO_DEBUG_test_float`. + #[inline(always)] + pub fn set_io_debug_test_float_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_float`. #[inline(always)] pub fn set_io_debug_test_float(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -314,32 +317,35 @@ impl IoDebug { self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_signed' + /// Returns the value of `IO_DEBUG_test_signed`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_signed(&self) -> i8 { - self.io_debug_test_signed_raw() + self.io_debug_test_signed_raw_val() } - /// Get raw value of 'IO_DEBUG_test_signed' + /// Returns the raw value of `IO_DEBUG_test_signed`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn io_debug_test_signed_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_signed_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `IO_DEBUG_test_signed`. + #[inline(always)] + pub fn set_io_debug_test_signed_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'IO_DEBUG_test_signed' + /// Sets the value of `IO_DEBUG_test_signed`. #[inline(always)] pub fn set_io_debug_test_signed(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -347,22 +353,15 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_enum' + /// Returns the value of `IO_DEBUG_test_enum`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG #[inline(always)] pub fn io_debug_test_enum(&self) -> IoDebugIoDebugTestEnum { @@ -370,24 +369,29 @@ impl IoDebug { match signal { 2 => IoDebugIoDebugTestEnum::IoDebugTest2EnumTwo, 1 => IoDebugIoDebugTestEnum::IoDebugTest2EnumOne, - _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_raw()), + _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_phys_val()), } } - /// Get raw value of 'IO_DEBUG_test_enum' + #[inline(always)] + fn io_debug_test_enum_phys_val(&self) -> u8 { + self.io_debug_test_enum_raw_val() + } + /// Returns the raw value of `IO_DEBUG_test_enum`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_enum_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_enum_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'IO_DEBUG_test_enum' + /// Sets the raw value of `IO_DEBUG_test_enum`. + #[inline(always)] + pub fn set_io_debug_test_enum_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_enum`. #[inline(always)] pub fn set_io_debug_test_enum( &mut self, @@ -399,41 +403,37 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_unsigned' + /// Returns the value of `IO_DEBUG_test_unsigned`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_unsigned(&self) -> u8 { - self.io_debug_test_unsigned_raw() + self.io_debug_test_unsigned_raw_val() } - /// Get raw value of 'IO_DEBUG_test_unsigned' + /// Returns the raw value of `IO_DEBUG_test_unsigned`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_unsigned_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_unsigned_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `IO_DEBUG_test_unsigned`. + #[inline(always)] + pub fn set_io_debug_test_unsigned_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'IO_DEBUG_test_unsigned' + /// Sets the value of `IO_DEBUG_test_unsigned`. #[inline(always)] pub fn set_io_debug_test_unsigned(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -441,13 +441,6 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -543,42 +536,45 @@ impl MotorCmd { pub const MOTOR_CMD_DRIVE_MAX: u8 = 9_u8; pub const MOTOR_CMD_STEER_MIN: i8 = -5_i8; pub const MOTOR_CMD_STEER_MAX: i8 = 5_i8; - /// Construct new 'MOTOR_CMD' from values + /// Constructs a new `MOTOR_CMD` message from values. pub fn new(motor_cmd_drive: u8, motor_cmd_steer: i8) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_motor_cmd_drive(motor_cmd_drive)?; res.set_motor_cmd_steer(motor_cmd_steer)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_CMD` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'MOTOR_CMD_drive' + /// Returns the value of `MOTOR_CMD_drive`. /// /// - Min: 0 /// - Max: 9 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_cmd_drive(&self) -> u8 { - self.motor_cmd_drive_raw() + self.motor_cmd_drive_raw_val() } - /// Get raw value of 'MOTOR_CMD_drive' + /// Returns the raw value of `MOTOR_CMD_drive`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_cmd_drive_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn motor_cmd_drive_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..8].load_le::() + } + /// Sets the raw value of `MOTOR_CMD_drive`. + #[inline(always)] + pub fn set_motor_cmd_drive_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..8].store_le(value); } - /// Set value of 'MOTOR_CMD_drive' + /// Sets the value of `MOTOR_CMD_drive`. #[inline(always)] pub fn set_motor_cmd_drive(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 9_u8 < value { @@ -586,42 +582,41 @@ impl MotorCmd { message_id: MotorCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MotorCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) } - /// Get value of 'MOTOR_CMD_steer' + /// Returns the value of `MOTOR_CMD_steer`. /// /// - Min: -5 /// - Max: 5 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: -5 #[inline(always)] pub fn motor_cmd_steer(&self) -> i8 { - self.motor_cmd_steer_raw() + let signal = self.raw.view_bits::()[0..4].load_le::(); + let factor = 1; + let signal = signal as i8; + i8::from(signal).saturating_mul(factor).saturating_sub(5) } - /// Get raw value of 'MOTOR_CMD_steer' + /// Returns the raw value of `MOTOR_CMD_steer`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: -5 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn motor_cmd_steer_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_sub(5) + pub fn motor_cmd_steer_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() } - /// Set value of 'MOTOR_CMD_steer' + /// Sets the raw value of `MOTOR_CMD_steer`. + #[inline(always)] + pub fn set_motor_cmd_steer_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); + } + /// Sets the value of `MOTOR_CMD_steer`. #[inline(always)] pub fn set_motor_cmd_steer(&mut self, value: i8) -> Result<(), CanError> { if value < -5_i8 || 5_i8 < value { @@ -705,7 +700,7 @@ impl MotorStatus { pub const MESSAGE_CYCLE_TIME_MS: u32 = 100; pub const MOTOR_STATUS_SPEED_KPH_MIN: f32 = 0_f32; pub const MOTOR_STATUS_SPEED_KPH_MAX: f32 = 0_f32; - /// Construct new 'MOTOR_STATUS' from values + /// Constructs a new `MOTOR_STATUS` message from values. pub fn new( motor_status_speed_kph: f32, motor_status_wheel_error: bool, @@ -715,36 +710,41 @@ impl MotorStatus { res.set_motor_status_wheel_error(motor_status_wheel_error)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_STATUS` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'MOTOR_STATUS_speed_kph' + /// Returns the value of `MOTOR_STATUS_speed_kph`. /// /// - Min: 0 /// - Max: 0 /// - Unit: "kph" /// - Receivers: DRIVER, IO + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn motor_status_speed_kph(&self) -> f32 { - self.motor_status_speed_kph_raw() + let signal = self.raw.view_bits::()[8..24].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'MOTOR_STATUS_speed_kph' + /// Returns the raw value of `MOTOR_STATUS_speed_kph`. /// /// - Start bit: 8 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_speed_kph_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..24].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn motor_status_speed_kph_raw_val(&self) -> u16 { + self.raw.view_bits::()[8..24].load_le::() } - /// Set value of 'MOTOR_STATUS_speed_kph' + /// Sets the raw value of `MOTOR_STATUS_speed_kph`. + #[inline(always)] + pub fn set_motor_status_speed_kph_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[8..24].store_le(value); + } + /// Sets the value of `MOTOR_STATUS_speed_kph`. #[inline(always)] pub fn set_motor_status_speed_kph(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -758,30 +758,34 @@ impl MotorStatus { self.raw.view_bits_mut::()[8..24].store_le(value); Ok(()) } - /// Get value of 'MOTOR_STATUS_wheel_error' + /// Returns the value of `MOTOR_STATUS_wheel_error`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_status_wheel_error(&self) -> bool { - self.motor_status_wheel_error_raw() + self.motor_status_wheel_error_raw_val() == 1 } - /// Get raw value of 'MOTOR_STATUS_wheel_error' + /// Returns the raw value of `MOTOR_STATUS_wheel_error`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_wheel_error_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn motor_status_wheel_error_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `MOTOR_STATUS_wheel_error`. + #[inline(always)] + pub fn set_motor_status_wheel_error_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'MOTOR_STATUS_wheel_error' + /// Sets the value of `MOTOR_STATUS_wheel_error`. #[inline(always)] pub fn set_motor_status_wheel_error(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -871,7 +875,7 @@ impl SensorSonars { pub const SENSOR_SONARS_ERR_COUNT_MAX: u16 = 0_u16; pub const SENSOR_SONARS_MUX_MIN: u8 = 0_u8; pub const SENSOR_SONARS_MUX_MAX: u8 = 0_u8; - /// Construct new 'SENSOR_SONARS' from values + /// Constructs a new `SENSOR_SONARS` message from values. pub fn new( sensor_sonars_err_count: u16, sensor_sonars_mux: u8, @@ -881,35 +885,38 @@ impl SensorSonars { res.set_sensor_sonars_mux(sensor_sonars_mux)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SENSOR_SONARS` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SENSOR_SONARS_err_count' + /// Returns the value of `SENSOR_SONARS_err_count`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_err_count(&self) -> u16 { - self.sensor_sonars_err_count_raw() + self.sensor_sonars_err_count_raw_val() } - /// Get raw value of 'SENSOR_SONARS_err_count' + /// Returns the raw value of `SENSOR_SONARS_err_count`. /// /// - Start bit: 4 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_err_count_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[4..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_err_count_raw_val(&self) -> u16 { + self.raw.view_bits::()[4..16].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_err_count`. + #[inline(always)] + pub fn set_sensor_sonars_err_count_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[4..16].store_le(value); } - /// Set value of 'SENSOR_SONARS_err_count' + /// Sets the value of `SENSOR_SONARS_err_count`. #[inline(always)] pub fn set_sensor_sonars_err_count(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -917,34 +924,30 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[4..16].store_le(value); Ok(()) } - /// Get raw value of 'SENSOR_SONARS_mux' + /// Returns the raw value of `SENSOR_SONARS_mux`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_mux_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_mux_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_mux`. + #[allow(dead_code)] + #[inline(always)] + fn set_sensor_sonars_mux_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..4].store_le(value); } - pub fn sensor_sonars_mux( + /// Selects the active multiplexed sub-message for `SENSOR_SONARS_mux`. + pub fn sensor_sonars_mux_multiplexed( &mut self, ) -> Result { - match self.sensor_sonars_mux_raw() { + match self.sensor_sonars_mux_raw_val() { 0 => { Ok( SensorSonarsSensorSonarsMuxIndex::M0(SensorSonarsSensorSonarsMuxM0 { @@ -967,7 +970,7 @@ impl SensorSonars { } } } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] fn set_sensor_sonars_mux(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -975,17 +978,10 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m0( &mut self, @@ -997,7 +993,7 @@ impl SensorSonars { self.set_sensor_sonars_mux(0)?; Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m1( &mut self, @@ -1088,32 +1084,37 @@ impl SensorSonarsSensorSonarsMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_rear' + /// Returns the value of `SENSOR_SONARS_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_rear(&self) -> f32 { - self.sensor_sonars_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_rear' + /// Returns the raw value of `SENSOR_SONARS_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() } - /// Set value of 'SENSOR_SONARS_rear' + /// Sets the raw value of `SENSOR_SONARS_rear`. + #[inline(always)] + pub fn set_sensor_sonars_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_rear`. #[inline(always)] pub fn set_sensor_sonars_rear(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1127,32 +1128,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[52..64].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_right' + /// Returns the value of `SENSOR_SONARS_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_right(&self) -> f32 { - self.sensor_sonars_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_right' + /// Returns the raw value of `SENSOR_SONARS_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() } - /// Set value of 'SENSOR_SONARS_right' + /// Sets the raw value of `SENSOR_SONARS_right`. + #[inline(always)] + pub fn set_sensor_sonars_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_right`. #[inline(always)] pub fn set_sensor_sonars_right(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1166,32 +1172,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[40..52].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_middle' + /// Returns the value of `SENSOR_SONARS_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_middle(&self) -> f32 { - self.sensor_sonars_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_middle' + /// Returns the raw value of `SENSOR_SONARS_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_middle`. + #[inline(always)] + pub fn set_sensor_sonars_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); } - /// Set value of 'SENSOR_SONARS_middle' + /// Sets the value of `SENSOR_SONARS_middle`. #[inline(always)] pub fn set_sensor_sonars_middle(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1205,32 +1216,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_left' + /// Returns the value of `SENSOR_SONARS_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_left(&self) -> f32 { - self.sensor_sonars_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_left' + /// Returns the raw value of `SENSOR_SONARS_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() } - /// Set value of 'SENSOR_SONARS_left' + /// Sets the raw value of `SENSOR_SONARS_left`. + #[inline(always)] + pub fn set_sensor_sonars_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_left`. #[inline(always)] pub fn set_sensor_sonars_left(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1271,32 +1287,37 @@ impl SensorSonarsSensorSonarsMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the value of `SENSOR_SONARS_no_filt_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_rear(&self) -> f32 { - self.sensor_sonars_no_filt_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the raw value of `SENSOR_SONARS_no_filt_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_rear`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_rear' + /// Sets the value of `SENSOR_SONARS_no_filt_rear`. #[inline(always)] pub fn set_sensor_sonars_no_filt_rear( &mut self, @@ -1313,32 +1334,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[52..64].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_right' + /// Returns the value of `SENSOR_SONARS_no_filt_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_right(&self) -> f32 { - self.sensor_sonars_no_filt_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_right' + /// Returns the raw value of `SENSOR_SONARS_no_filt_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_right' + /// Sets the raw value of `SENSOR_SONARS_no_filt_right`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_right`. #[inline(always)] pub fn set_sensor_sonars_no_filt_right( &mut self, @@ -1355,32 +1381,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[40..52].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the value of `SENSOR_SONARS_no_filt_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_middle(&self) -> f32 { - self.sensor_sonars_no_filt_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the raw value of `SENSOR_SONARS_no_filt_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_middle' + /// Sets the raw value of `SENSOR_SONARS_no_filt_middle`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_middle`. #[inline(always)] pub fn set_sensor_sonars_no_filt_middle( &mut self, @@ -1397,32 +1428,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_left' + /// Returns the value of `SENSOR_SONARS_no_filt_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_left(&self) -> f32 { - self.sensor_sonars_no_filt_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_left' + /// Returns the raw value of `SENSOR_SONARS_no_filt_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_left`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_left' + /// Sets the value of `SENSOR_SONARS_no_filt_left`. #[inline(always)] pub fn set_sensor_sonars_no_filt_left( &mut self, diff --git a/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-sort-signals-by-name.snap.rs b/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-sort-signals-by-name.snap.rs index c64660cf..7a4d55e3 100644 --- a/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-sort-signals-by-name.snap.rs +++ b/tests-snapshots/dbc-cantools/socialledge-written-by-cantools-with-sort-signals-by-name.snap.rs @@ -91,7 +91,7 @@ impl DriverHeartbeat { pub const MESSAGE_CYCLE_TIME_MS: u32 = 1000; pub const DRIVER_HEARTBEAT_CMD_MIN: u8 = 0_u8; pub const DRIVER_HEARTBEAT_CMD_MAX: u8 = 0_u8; - /// Construct new 'DRIVER_HEARTBEAT' from values + /// Constructs a new `DRIVER_HEARTBEAT` message from values. pub fn new( driver_heartbeat_cmd: DriverHeartbeatDriverHeartbeatCmd, ) -> Result { @@ -99,15 +99,15 @@ impl DriverHeartbeat { res.set_driver_heartbeat_cmd(driver_heartbeat_cmd)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `DRIVER_HEARTBEAT` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'DRIVER_HEARTBEAT_cmd' + /// Returns the value of `DRIVER_HEARTBEAT_cmd`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: SENSOR, MOTOR #[inline(always)] pub fn driver_heartbeat_cmd(&self) -> DriverHeartbeatDriverHeartbeatCmd { @@ -118,26 +118,31 @@ impl DriverHeartbeat { 0 => DriverHeartbeatDriverHeartbeatCmd::DriverHeartbeatCmdNoop, _ => { DriverHeartbeatDriverHeartbeatCmd::_Other( - self.driver_heartbeat_cmd_raw(), + self.driver_heartbeat_cmd_phys_val(), ) } } } - /// Get raw value of 'DRIVER_HEARTBEAT_cmd' + #[inline(always)] + fn driver_heartbeat_cmd_phys_val(&self) -> u8 { + self.driver_heartbeat_cmd_raw_val() + } + /// Returns the raw value of `DRIVER_HEARTBEAT_cmd`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn driver_heartbeat_cmd_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn driver_heartbeat_cmd_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `DRIVER_HEARTBEAT_cmd`. + #[inline(always)] + pub fn set_driver_heartbeat_cmd_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'DRIVER_HEARTBEAT_cmd' + /// Sets the value of `DRIVER_HEARTBEAT_cmd`. #[inline(always)] pub fn set_driver_heartbeat_cmd( &mut self, @@ -149,13 +154,6 @@ impl DriverHeartbeat { message_id: DriverHeartbeat::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: DriverHeartbeat::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -257,7 +255,7 @@ impl IoDebug { pub const IO_DEBUG_TEST_SIGNED_MAX: i8 = 0_i8; pub const IO_DEBUG_TEST_UNSIGNED_MIN: u8 = 0_u8; pub const IO_DEBUG_TEST_UNSIGNED_MAX: u8 = 0_u8; - /// Construct new 'IO_DEBUG' from values + /// Constructs a new `IO_DEBUG` message from values. pub fn new( io_debug_test_enum: IoDebugIoDebugTestEnum, io_debug_test_float: f32, @@ -271,15 +269,15 @@ impl IoDebug { res.set_io_debug_test_unsigned(io_debug_test_unsigned)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `IO_DEBUG` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'IO_DEBUG_test_enum' + /// Returns the value of `IO_DEBUG_test_enum`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG #[inline(always)] pub fn io_debug_test_enum(&self) -> IoDebugIoDebugTestEnum { @@ -287,24 +285,29 @@ impl IoDebug { match signal { 2 => IoDebugIoDebugTestEnum::IoDebugTest2EnumTwo, 1 => IoDebugIoDebugTestEnum::IoDebugTest2EnumOne, - _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_raw()), + _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_phys_val()), } } - /// Get raw value of 'IO_DEBUG_test_enum' + #[inline(always)] + fn io_debug_test_enum_phys_val(&self) -> u8 { + self.io_debug_test_enum_raw_val() + } + /// Returns the raw value of `IO_DEBUG_test_enum`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_enum_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_enum_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'IO_DEBUG_test_enum' + /// Sets the raw value of `IO_DEBUG_test_enum`. + #[inline(always)] + pub fn set_io_debug_test_enum_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_enum`. #[inline(always)] pub fn set_io_debug_test_enum( &mut self, @@ -316,42 +319,40 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_float' + /// Returns the value of `IO_DEBUG_test_float`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.5 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_float(&self) -> f32 { - self.io_debug_test_float_raw() + let signal = self.raw.view_bits::()[24..32].load_le::(); + let factor = 0.5_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IO_DEBUG_test_float' + /// Returns the raw value of `IO_DEBUG_test_float`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 0.5 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_float_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 0.5_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn io_debug_test_float_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `IO_DEBUG_test_float`. + #[inline(always)] + pub fn set_io_debug_test_float_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'IO_DEBUG_test_float' + /// Sets the value of `IO_DEBUG_test_float`. #[inline(always)] pub fn set_io_debug_test_float(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -365,32 +366,35 @@ impl IoDebug { self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_signed' + /// Returns the value of `IO_DEBUG_test_signed`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_signed(&self) -> i8 { - self.io_debug_test_signed_raw() + self.io_debug_test_signed_raw_val() } - /// Get raw value of 'IO_DEBUG_test_signed' + /// Returns the raw value of `IO_DEBUG_test_signed`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn io_debug_test_signed_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_signed_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'IO_DEBUG_test_signed' + /// Sets the raw value of `IO_DEBUG_test_signed`. + #[inline(always)] + pub fn set_io_debug_test_signed_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_signed`. #[inline(always)] pub fn set_io_debug_test_signed(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -398,42 +402,38 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_unsigned' + /// Returns the value of `IO_DEBUG_test_unsigned`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_unsigned(&self) -> u8 { - self.io_debug_test_unsigned_raw() + self.io_debug_test_unsigned_raw_val() } - /// Get raw value of 'IO_DEBUG_test_unsigned' + /// Returns the raw value of `IO_DEBUG_test_unsigned`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_unsigned_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_unsigned_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `IO_DEBUG_test_unsigned`. + #[inline(always)] + pub fn set_io_debug_test_unsigned_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'IO_DEBUG_test_unsigned' + /// Sets the value of `IO_DEBUG_test_unsigned`. #[inline(always)] pub fn set_io_debug_test_unsigned(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -441,13 +441,6 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -543,42 +536,45 @@ impl MotorCmd { pub const MOTOR_CMD_DRIVE_MAX: u8 = 9_u8; pub const MOTOR_CMD_STEER_MIN: i8 = -5_i8; pub const MOTOR_CMD_STEER_MAX: i8 = 5_i8; - /// Construct new 'MOTOR_CMD' from values + /// Constructs a new `MOTOR_CMD` message from values. pub fn new(motor_cmd_drive: u8, motor_cmd_steer: i8) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_motor_cmd_drive(motor_cmd_drive)?; res.set_motor_cmd_steer(motor_cmd_steer)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_CMD` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'MOTOR_CMD_drive' + /// Returns the value of `MOTOR_CMD_drive`. /// /// - Min: 0 /// - Max: 9 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_cmd_drive(&self) -> u8 { - self.motor_cmd_drive_raw() + self.motor_cmd_drive_raw_val() } - /// Get raw value of 'MOTOR_CMD_drive' + /// Returns the raw value of `MOTOR_CMD_drive`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_cmd_drive_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn motor_cmd_drive_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..8].load_le::() + } + /// Sets the raw value of `MOTOR_CMD_drive`. + #[inline(always)] + pub fn set_motor_cmd_drive_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..8].store_le(value); } - /// Set value of 'MOTOR_CMD_drive' + /// Sets the value of `MOTOR_CMD_drive`. #[inline(always)] pub fn set_motor_cmd_drive(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 9_u8 < value { @@ -586,42 +582,41 @@ impl MotorCmd { message_id: MotorCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MotorCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) } - /// Get value of 'MOTOR_CMD_steer' + /// Returns the value of `MOTOR_CMD_steer`. /// /// - Min: -5 /// - Max: 5 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: -5 #[inline(always)] pub fn motor_cmd_steer(&self) -> i8 { - self.motor_cmd_steer_raw() + let signal = self.raw.view_bits::()[0..4].load_le::(); + let factor = 1; + let signal = signal as i8; + i8::from(signal).saturating_mul(factor).saturating_sub(5) } - /// Get raw value of 'MOTOR_CMD_steer' + /// Returns the raw value of `MOTOR_CMD_steer`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: -5 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn motor_cmd_steer_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_sub(5) + pub fn motor_cmd_steer_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() } - /// Set value of 'MOTOR_CMD_steer' + /// Sets the raw value of `MOTOR_CMD_steer`. + #[inline(always)] + pub fn set_motor_cmd_steer_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); + } + /// Sets the value of `MOTOR_CMD_steer`. #[inline(always)] pub fn set_motor_cmd_steer(&mut self, value: i8) -> Result<(), CanError> { if value < -5_i8 || 5_i8 < value { @@ -705,7 +700,7 @@ impl MotorStatus { pub const MESSAGE_CYCLE_TIME_MS: u32 = 100; pub const MOTOR_STATUS_SPEED_KPH_MIN: f32 = 0_f32; pub const MOTOR_STATUS_SPEED_KPH_MAX: f32 = 0_f32; - /// Construct new 'MOTOR_STATUS' from values + /// Constructs a new `MOTOR_STATUS` message from values. pub fn new( motor_status_speed_kph: f32, motor_status_wheel_error: bool, @@ -715,36 +710,41 @@ impl MotorStatus { res.set_motor_status_wheel_error(motor_status_wheel_error)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_STATUS` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'MOTOR_STATUS_speed_kph' + /// Returns the value of `MOTOR_STATUS_speed_kph`. /// /// - Min: 0 /// - Max: 0 /// - Unit: "kph" /// - Receivers: DRIVER, IO + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn motor_status_speed_kph(&self) -> f32 { - self.motor_status_speed_kph_raw() + let signal = self.raw.view_bits::()[8..24].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'MOTOR_STATUS_speed_kph' + /// Returns the raw value of `MOTOR_STATUS_speed_kph`. /// /// - Start bit: 8 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_speed_kph_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..24].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn motor_status_speed_kph_raw_val(&self) -> u16 { + self.raw.view_bits::()[8..24].load_le::() } - /// Set value of 'MOTOR_STATUS_speed_kph' + /// Sets the raw value of `MOTOR_STATUS_speed_kph`. + #[inline(always)] + pub fn set_motor_status_speed_kph_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[8..24].store_le(value); + } + /// Sets the value of `MOTOR_STATUS_speed_kph`. #[inline(always)] pub fn set_motor_status_speed_kph(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -758,30 +758,34 @@ impl MotorStatus { self.raw.view_bits_mut::()[8..24].store_le(value); Ok(()) } - /// Get value of 'MOTOR_STATUS_wheel_error' + /// Returns the value of `MOTOR_STATUS_wheel_error`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_status_wheel_error(&self) -> bool { - self.motor_status_wheel_error_raw() + self.motor_status_wheel_error_raw_val() == 1 } - /// Get raw value of 'MOTOR_STATUS_wheel_error' + /// Returns the raw value of `MOTOR_STATUS_wheel_error`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_wheel_error_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn motor_status_wheel_error_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `MOTOR_STATUS_wheel_error`. + #[inline(always)] + pub fn set_motor_status_wheel_error_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'MOTOR_STATUS_wheel_error' + /// Sets the value of `MOTOR_STATUS_wheel_error`. #[inline(always)] pub fn set_motor_status_wheel_error(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -871,7 +875,7 @@ impl SensorSonars { pub const SENSOR_SONARS_REAR_MAX: f32 = 0_f32; pub const SENSOR_SONARS_RIGHT_MIN: f32 = 0_f32; pub const SENSOR_SONARS_RIGHT_MAX: f32 = 0_f32; - /// Construct new 'SENSOR_SONARS' from values + /// Constructs a new `SENSOR_SONARS` message from values. pub fn new( sensor_sonars_err_count: u16, sensor_sonars_mux: u8, @@ -881,35 +885,38 @@ impl SensorSonars { res.set_sensor_sonars_mux(sensor_sonars_mux)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SENSOR_SONARS` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SENSOR_SONARS_err_count' + /// Returns the value of `SENSOR_SONARS_err_count`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_err_count(&self) -> u16 { - self.sensor_sonars_err_count_raw() + self.sensor_sonars_err_count_raw_val() } - /// Get raw value of 'SENSOR_SONARS_err_count' + /// Returns the raw value of `SENSOR_SONARS_err_count`. /// /// - Start bit: 4 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_err_count_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[4..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_err_count_raw_val(&self) -> u16 { + self.raw.view_bits::()[4..16].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_err_count`. + #[inline(always)] + pub fn set_sensor_sonars_err_count_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[4..16].store_le(value); } - /// Set value of 'SENSOR_SONARS_err_count' + /// Sets the value of `SENSOR_SONARS_err_count`. #[inline(always)] pub fn set_sensor_sonars_err_count(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -917,34 +924,30 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[4..16].store_le(value); Ok(()) } - /// Get raw value of 'SENSOR_SONARS_mux' + /// Returns the raw value of `SENSOR_SONARS_mux`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_mux_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_mux_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_mux`. + #[allow(dead_code)] + #[inline(always)] + fn set_sensor_sonars_mux_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..4].store_le(value); } - pub fn sensor_sonars_mux( + /// Selects the active multiplexed sub-message for `SENSOR_SONARS_mux`. + pub fn sensor_sonars_mux_multiplexed( &mut self, ) -> Result { - match self.sensor_sonars_mux_raw() { + match self.sensor_sonars_mux_raw_val() { 0 => { Ok( SensorSonarsSensorSonarsMuxIndex::M0(SensorSonarsSensorSonarsMuxM0 { @@ -967,7 +970,7 @@ impl SensorSonars { } } } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] fn set_sensor_sonars_mux(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -975,17 +978,10 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m0( &mut self, @@ -997,7 +993,7 @@ impl SensorSonars { self.set_sensor_sonars_mux(0)?; Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m1( &mut self, @@ -1088,32 +1084,37 @@ impl SensorSonarsSensorSonarsMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_left' + /// Returns the value of `SENSOR_SONARS_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_left(&self) -> f32 { - self.sensor_sonars_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_left' + /// Returns the raw value of `SENSOR_SONARS_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() } - /// Set value of 'SENSOR_SONARS_left' + /// Sets the raw value of `SENSOR_SONARS_left`. + #[inline(always)] + pub fn set_sensor_sonars_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_left`. #[inline(always)] pub fn set_sensor_sonars_left(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1127,32 +1128,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[16..28].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_middle' + /// Returns the value of `SENSOR_SONARS_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_middle(&self) -> f32 { - self.sensor_sonars_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_middle' + /// Returns the raw value of `SENSOR_SONARS_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() } - /// Set value of 'SENSOR_SONARS_middle' + /// Sets the raw value of `SENSOR_SONARS_middle`. + #[inline(always)] + pub fn set_sensor_sonars_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_middle`. #[inline(always)] pub fn set_sensor_sonars_middle(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1166,32 +1172,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_rear' + /// Returns the value of `SENSOR_SONARS_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_rear(&self) -> f32 { - self.sensor_sonars_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_rear' + /// Returns the raw value of `SENSOR_SONARS_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_rear`. + #[inline(always)] + pub fn set_sensor_sonars_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); } - /// Set value of 'SENSOR_SONARS_rear' + /// Sets the value of `SENSOR_SONARS_rear`. #[inline(always)] pub fn set_sensor_sonars_rear(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1205,32 +1216,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[52..64].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_right' + /// Returns the value of `SENSOR_SONARS_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_right(&self) -> f32 { - self.sensor_sonars_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_right' + /// Returns the raw value of `SENSOR_SONARS_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() } - /// Set value of 'SENSOR_SONARS_right' + /// Sets the raw value of `SENSOR_SONARS_right`. + #[inline(always)] + pub fn set_sensor_sonars_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_right`. #[inline(always)] pub fn set_sensor_sonars_right(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1271,32 +1287,37 @@ impl SensorSonarsSensorSonarsMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_no_filt_left' + /// Returns the value of `SENSOR_SONARS_no_filt_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_left(&self) -> f32 { - self.sensor_sonars_no_filt_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_left' + /// Returns the raw value of `SENSOR_SONARS_no_filt_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_left`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_left' + /// Sets the value of `SENSOR_SONARS_no_filt_left`. #[inline(always)] pub fn set_sensor_sonars_no_filt_left( &mut self, @@ -1313,32 +1334,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[16..28].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the value of `SENSOR_SONARS_no_filt_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_middle(&self) -> f32 { - self.sensor_sonars_no_filt_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the raw value of `SENSOR_SONARS_no_filt_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_middle' + /// Sets the raw value of `SENSOR_SONARS_no_filt_middle`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_middle`. #[inline(always)] pub fn set_sensor_sonars_no_filt_middle( &mut self, @@ -1355,32 +1381,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the value of `SENSOR_SONARS_no_filt_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_rear(&self) -> f32 { - self.sensor_sonars_no_filt_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the raw value of `SENSOR_SONARS_no_filt_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_rear' + /// Sets the raw value of `SENSOR_SONARS_no_filt_rear`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_rear`. #[inline(always)] pub fn set_sensor_sonars_no_filt_rear( &mut self, @@ -1397,32 +1428,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[52..64].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_right' + /// Returns the value of `SENSOR_SONARS_no_filt_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_right(&self) -> f32 { - self.sensor_sonars_no_filt_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_right' + /// Returns the raw value of `SENSOR_SONARS_no_filt_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_right`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_right' + /// Sets the value of `SENSOR_SONARS_no_filt_right`. #[inline(always)] pub fn set_sensor_sonars_no_filt_right( &mut self, diff --git a/tests-snapshots/dbc-cantools/socialledge-written-by-cantools.snap.rs b/tests-snapshots/dbc-cantools/socialledge-written-by-cantools.snap.rs index 0c812eee..65e48d3d 100644 --- a/tests-snapshots/dbc-cantools/socialledge-written-by-cantools.snap.rs +++ b/tests-snapshots/dbc-cantools/socialledge-written-by-cantools.snap.rs @@ -91,7 +91,7 @@ impl DriverHeartbeat { pub const MESSAGE_CYCLE_TIME_MS: u32 = 1000; pub const DRIVER_HEARTBEAT_CMD_MIN: u8 = 0_u8; pub const DRIVER_HEARTBEAT_CMD_MAX: u8 = 0_u8; - /// Construct new 'DRIVER_HEARTBEAT' from values + /// Constructs a new `DRIVER_HEARTBEAT` message from values. pub fn new( driver_heartbeat_cmd: DriverHeartbeatDriverHeartbeatCmd, ) -> Result { @@ -99,15 +99,15 @@ impl DriverHeartbeat { res.set_driver_heartbeat_cmd(driver_heartbeat_cmd)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `DRIVER_HEARTBEAT` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'DRIVER_HEARTBEAT_cmd' + /// Returns the value of `DRIVER_HEARTBEAT_cmd`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: SENSOR, MOTOR #[inline(always)] pub fn driver_heartbeat_cmd(&self) -> DriverHeartbeatDriverHeartbeatCmd { @@ -118,26 +118,31 @@ impl DriverHeartbeat { 0 => DriverHeartbeatDriverHeartbeatCmd::DriverHeartbeatCmdNoop, _ => { DriverHeartbeatDriverHeartbeatCmd::_Other( - self.driver_heartbeat_cmd_raw(), + self.driver_heartbeat_cmd_phys_val(), ) } } } - /// Get raw value of 'DRIVER_HEARTBEAT_cmd' + #[inline(always)] + fn driver_heartbeat_cmd_phys_val(&self) -> u8 { + self.driver_heartbeat_cmd_raw_val() + } + /// Returns the raw value of `DRIVER_HEARTBEAT_cmd`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn driver_heartbeat_cmd_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn driver_heartbeat_cmd_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `DRIVER_HEARTBEAT_cmd`. + #[inline(always)] + pub fn set_driver_heartbeat_cmd_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'DRIVER_HEARTBEAT_cmd' + /// Sets the value of `DRIVER_HEARTBEAT_cmd`. #[inline(always)] pub fn set_driver_heartbeat_cmd( &mut self, @@ -149,13 +154,6 @@ impl DriverHeartbeat { message_id: DriverHeartbeat::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: DriverHeartbeat::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -257,7 +255,7 @@ impl IoDebug { pub const IO_DEBUG_TEST_SIGNED_MAX: i8 = 0_i8; pub const IO_DEBUG_TEST_FLOAT_MIN: f32 = 0_f32; pub const IO_DEBUG_TEST_FLOAT_MAX: f32 = 0_f32; - /// Construct new 'IO_DEBUG' from values + /// Constructs a new `IO_DEBUG` message from values. pub fn new( io_debug_test_unsigned: u8, io_debug_test_enum: IoDebugIoDebugTestEnum, @@ -271,35 +269,38 @@ impl IoDebug { res.set_io_debug_test_float(io_debug_test_float)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `IO_DEBUG` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'IO_DEBUG_test_unsigned' + /// Returns the value of `IO_DEBUG_test_unsigned`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_unsigned(&self) -> u8 { - self.io_debug_test_unsigned_raw() + self.io_debug_test_unsigned_raw_val() } - /// Get raw value of 'IO_DEBUG_test_unsigned' + /// Returns the raw value of `IO_DEBUG_test_unsigned`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_unsigned_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_unsigned_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'IO_DEBUG_test_unsigned' + /// Sets the raw value of `IO_DEBUG_test_unsigned`. + #[inline(always)] + pub fn set_io_debug_test_unsigned_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_unsigned`. #[inline(always)] pub fn set_io_debug_test_unsigned(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -307,21 +308,14 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_enum' + /// Returns the value of `IO_DEBUG_test_enum`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG #[inline(always)] pub fn io_debug_test_enum(&self) -> IoDebugIoDebugTestEnum { @@ -329,24 +323,29 @@ impl IoDebug { match signal { 2 => IoDebugIoDebugTestEnum::IoDebugTest2EnumTwo, 1 => IoDebugIoDebugTestEnum::IoDebugTest2EnumOne, - _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_raw()), + _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_phys_val()), } } - /// Get raw value of 'IO_DEBUG_test_enum' + #[inline(always)] + fn io_debug_test_enum_phys_val(&self) -> u8 { + self.io_debug_test_enum_raw_val() + } + /// Returns the raw value of `IO_DEBUG_test_enum`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_enum_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_enum_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'IO_DEBUG_test_enum' + /// Sets the raw value of `IO_DEBUG_test_enum`. + #[inline(always)] + pub fn set_io_debug_test_enum_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_enum`. #[inline(always)] pub fn set_io_debug_test_enum( &mut self, @@ -358,42 +357,38 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_signed' + /// Returns the value of `IO_DEBUG_test_signed`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_signed(&self) -> i8 { - self.io_debug_test_signed_raw() + self.io_debug_test_signed_raw_val() } - /// Get raw value of 'IO_DEBUG_test_signed' + /// Returns the raw value of `IO_DEBUG_test_signed`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn io_debug_test_signed_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_signed_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'IO_DEBUG_test_signed' + /// Sets the raw value of `IO_DEBUG_test_signed`. + #[inline(always)] + pub fn set_io_debug_test_signed_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_signed`. #[inline(always)] pub fn set_io_debug_test_signed(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -401,43 +396,41 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_float' + /// Returns the value of `IO_DEBUG_test_float`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.5 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_float(&self) -> f32 { - self.io_debug_test_float_raw() + let signal = self.raw.view_bits::()[24..32].load_le::(); + let factor = 0.5_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IO_DEBUG_test_float' + /// Returns the raw value of `IO_DEBUG_test_float`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 0.5 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_float_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 0.5_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn io_debug_test_float_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'IO_DEBUG_test_float' + /// Sets the raw value of `IO_DEBUG_test_float`. + #[inline(always)] + pub fn set_io_debug_test_float_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_float`. #[inline(always)] pub fn set_io_debug_test_float(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -543,43 +536,49 @@ impl MotorCmd { pub const MOTOR_CMD_STEER_MAX: i8 = 5_i8; pub const MOTOR_CMD_DRIVE_MIN: u8 = 0_u8; pub const MOTOR_CMD_DRIVE_MAX: u8 = 9_u8; - /// Construct new 'MOTOR_CMD' from values + /// Constructs a new `MOTOR_CMD` message from values. pub fn new(motor_cmd_steer: i8, motor_cmd_drive: u8) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_motor_cmd_steer(motor_cmd_steer)?; res.set_motor_cmd_drive(motor_cmd_drive)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_CMD` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'MOTOR_CMD_steer' + /// Returns the value of `MOTOR_CMD_steer`. /// /// - Min: -5 /// - Max: 5 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: -5 #[inline(always)] pub fn motor_cmd_steer(&self) -> i8 { - self.motor_cmd_steer_raw() + let signal = self.raw.view_bits::()[0..4].load_le::(); + let factor = 1; + let signal = signal as i8; + i8::from(signal).saturating_mul(factor).saturating_sub(5) } - /// Get raw value of 'MOTOR_CMD_steer' + /// Returns the raw value of `MOTOR_CMD_steer`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: -5 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn motor_cmd_steer_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_sub(5) + pub fn motor_cmd_steer_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `MOTOR_CMD_steer`. + #[inline(always)] + pub fn set_motor_cmd_steer_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); } - /// Set value of 'MOTOR_CMD_steer' + /// Sets the value of `MOTOR_CMD_steer`. #[inline(always)] pub fn set_motor_cmd_steer(&mut self, value: i8) -> Result<(), CanError> { if value < -5_i8 || 5_i8 < value { @@ -598,31 +597,34 @@ impl MotorCmd { self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Get value of 'MOTOR_CMD_drive' + /// Returns the value of `MOTOR_CMD_drive`. /// /// - Min: 0 /// - Max: 9 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_cmd_drive(&self) -> u8 { - self.motor_cmd_drive_raw() + self.motor_cmd_drive_raw_val() } - /// Get raw value of 'MOTOR_CMD_drive' + /// Returns the raw value of `MOTOR_CMD_drive`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_cmd_drive_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn motor_cmd_drive_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..8].load_le::() + } + /// Sets the raw value of `MOTOR_CMD_drive`. + #[inline(always)] + pub fn set_motor_cmd_drive_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..8].store_le(value); } - /// Set value of 'MOTOR_CMD_drive' + /// Sets the value of `MOTOR_CMD_drive`. #[inline(always)] pub fn set_motor_cmd_drive(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 9_u8 < value { @@ -630,13 +632,6 @@ impl MotorCmd { message_id: MotorCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MotorCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) } @@ -705,7 +700,7 @@ impl MotorStatus { pub const MESSAGE_CYCLE_TIME_MS: u32 = 100; pub const MOTOR_STATUS_SPEED_KPH_MIN: f32 = 0_f32; pub const MOTOR_STATUS_SPEED_KPH_MAX: f32 = 0_f32; - /// Construct new 'MOTOR_STATUS' from values + /// Constructs a new `MOTOR_STATUS` message from values. pub fn new( motor_status_wheel_error: bool, motor_status_speed_kph: f32, @@ -715,66 +710,75 @@ impl MotorStatus { res.set_motor_status_speed_kph(motor_status_speed_kph)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_STATUS` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'MOTOR_STATUS_wheel_error' + /// Returns the value of `MOTOR_STATUS_wheel_error`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_status_wheel_error(&self) -> bool { - self.motor_status_wheel_error_raw() + self.motor_status_wheel_error_raw_val() == 1 } - /// Get raw value of 'MOTOR_STATUS_wheel_error' + /// Returns the raw value of `MOTOR_STATUS_wheel_error`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_wheel_error_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn motor_status_wheel_error_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'MOTOR_STATUS_wheel_error' + /// Sets the raw value of `MOTOR_STATUS_wheel_error`. + #[inline(always)] + pub fn set_motor_status_wheel_error_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `MOTOR_STATUS_wheel_error`. #[inline(always)] pub fn set_motor_status_wheel_error(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[0..1].store_le(value); Ok(()) } - /// Get value of 'MOTOR_STATUS_speed_kph' + /// Returns the value of `MOTOR_STATUS_speed_kph`. /// /// - Min: 0 /// - Max: 0 /// - Unit: "kph" /// - Receivers: DRIVER, IO + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn motor_status_speed_kph(&self) -> f32 { - self.motor_status_speed_kph_raw() + let signal = self.raw.view_bits::()[8..24].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'MOTOR_STATUS_speed_kph' + /// Returns the raw value of `MOTOR_STATUS_speed_kph`. /// /// - Start bit: 8 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_speed_kph_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..24].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn motor_status_speed_kph_raw_val(&self) -> u16 { + self.raw.view_bits::()[8..24].load_le::() + } + /// Sets the raw value of `MOTOR_STATUS_speed_kph`. + #[inline(always)] + pub fn set_motor_status_speed_kph_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[8..24].store_le(value); } - /// Set value of 'MOTOR_STATUS_speed_kph' + /// Sets the value of `MOTOR_STATUS_speed_kph`. #[inline(always)] pub fn set_motor_status_speed_kph(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -871,7 +875,7 @@ impl SensorSonars { pub const SENSOR_SONARS_NO_FILT_RIGHT_MAX: f32 = 0_f32; pub const SENSOR_SONARS_NO_FILT_REAR_MIN: f32 = 0_f32; pub const SENSOR_SONARS_NO_FILT_REAR_MAX: f32 = 0_f32; - /// Construct new 'SENSOR_SONARS' from values + /// Constructs a new `SENSOR_SONARS` message from values. pub fn new( sensor_sonars_mux: u8, sensor_sonars_err_count: u16, @@ -881,28 +885,31 @@ impl SensorSonars { res.set_sensor_sonars_err_count(sensor_sonars_err_count)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SENSOR_SONARS` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'SENSOR_SONARS_mux' + /// Returns the raw value of `SENSOR_SONARS_mux`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_mux_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_mux_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_mux`. + #[allow(dead_code)] + #[inline(always)] + fn set_sensor_sonars_mux_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..4].store_le(value); } - pub fn sensor_sonars_mux( + /// Selects the active multiplexed sub-message for `SENSOR_SONARS_mux`. + pub fn sensor_sonars_mux_multiplexed( &mut self, ) -> Result { - match self.sensor_sonars_mux_raw() { + match self.sensor_sonars_mux_raw_val() { 0 => { Ok( SensorSonarsSensorSonarsMuxIndex::M0(SensorSonarsSensorSonarsMuxM0 { @@ -925,7 +932,7 @@ impl SensorSonars { } } } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] fn set_sensor_sonars_mux(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -933,17 +940,10 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m0( &mut self, @@ -955,7 +955,7 @@ impl SensorSonars { self.set_sensor_sonars_mux(0)?; Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m1( &mut self, @@ -967,31 +967,34 @@ impl SensorSonars { self.set_sensor_sonars_mux(1)?; Ok(()) } - /// Get value of 'SENSOR_SONARS_err_count' + /// Returns the value of `SENSOR_SONARS_err_count`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_err_count(&self) -> u16 { - self.sensor_sonars_err_count_raw() + self.sensor_sonars_err_count_raw_val() } - /// Get raw value of 'SENSOR_SONARS_err_count' + /// Returns the raw value of `SENSOR_SONARS_err_count`. /// /// - Start bit: 4 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_err_count_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[4..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_err_count_raw_val(&self) -> u16 { + self.raw.view_bits::()[4..16].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_err_count`. + #[inline(always)] + pub fn set_sensor_sonars_err_count_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[4..16].store_le(value); } - /// Set value of 'SENSOR_SONARS_err_count' + /// Sets the value of `SENSOR_SONARS_err_count`. #[inline(always)] pub fn set_sensor_sonars_err_count(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -999,13 +1002,6 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[4..16].store_le(value); Ok(()) } @@ -1088,32 +1084,37 @@ impl SensorSonarsSensorSonarsMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_left' + /// Returns the value of `SENSOR_SONARS_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_left(&self) -> f32 { - self.sensor_sonars_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_left' + /// Returns the raw value of `SENSOR_SONARS_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() } - /// Set value of 'SENSOR_SONARS_left' + /// Sets the raw value of `SENSOR_SONARS_left`. + #[inline(always)] + pub fn set_sensor_sonars_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_left`. #[inline(always)] pub fn set_sensor_sonars_left(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1127,32 +1128,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[16..28].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_middle' + /// Returns the value of `SENSOR_SONARS_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_middle(&self) -> f32 { - self.sensor_sonars_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_middle' + /// Returns the raw value of `SENSOR_SONARS_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() } - /// Set value of 'SENSOR_SONARS_middle' + /// Sets the raw value of `SENSOR_SONARS_middle`. + #[inline(always)] + pub fn set_sensor_sonars_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_middle`. #[inline(always)] pub fn set_sensor_sonars_middle(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1166,32 +1172,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_right' + /// Returns the value of `SENSOR_SONARS_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_right(&self) -> f32 { - self.sensor_sonars_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_right' + /// Returns the raw value of `SENSOR_SONARS_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_right`. + #[inline(always)] + pub fn set_sensor_sonars_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); } - /// Set value of 'SENSOR_SONARS_right' + /// Sets the value of `SENSOR_SONARS_right`. #[inline(always)] pub fn set_sensor_sonars_right(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1205,32 +1216,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[40..52].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_rear' + /// Returns the value of `SENSOR_SONARS_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_rear(&self) -> f32 { - self.sensor_sonars_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_rear' + /// Returns the raw value of `SENSOR_SONARS_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() } - /// Set value of 'SENSOR_SONARS_rear' + /// Sets the raw value of `SENSOR_SONARS_rear`. + #[inline(always)] + pub fn set_sensor_sonars_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_rear`. #[inline(always)] pub fn set_sensor_sonars_rear(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1271,32 +1287,37 @@ impl SensorSonarsSensorSonarsMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_no_filt_left' + /// Returns the value of `SENSOR_SONARS_no_filt_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_left(&self) -> f32 { - self.sensor_sonars_no_filt_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_left' + /// Returns the raw value of `SENSOR_SONARS_no_filt_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_left`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_left' + /// Sets the value of `SENSOR_SONARS_no_filt_left`. #[inline(always)] pub fn set_sensor_sonars_no_filt_left( &mut self, @@ -1313,32 +1334,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[16..28].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the value of `SENSOR_SONARS_no_filt_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_middle(&self) -> f32 { - self.sensor_sonars_no_filt_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the raw value of `SENSOR_SONARS_no_filt_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_middle' + /// Sets the raw value of `SENSOR_SONARS_no_filt_middle`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_middle`. #[inline(always)] pub fn set_sensor_sonars_no_filt_middle( &mut self, @@ -1355,32 +1381,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_right' + /// Returns the value of `SENSOR_SONARS_no_filt_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_right(&self) -> f32 { - self.sensor_sonars_no_filt_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_right' + /// Returns the raw value of `SENSOR_SONARS_no_filt_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_right' + /// Sets the raw value of `SENSOR_SONARS_no_filt_right`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_right`. #[inline(always)] pub fn set_sensor_sonars_no_filt_right( &mut self, @@ -1397,32 +1428,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[40..52].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the value of `SENSOR_SONARS_no_filt_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_rear(&self) -> f32 { - self.sensor_sonars_no_filt_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the raw value of `SENSOR_SONARS_no_filt_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_rear`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_rear' + /// Sets the value of `SENSOR_SONARS_no_filt_rear`. #[inline(always)] pub fn set_sensor_sonars_no_filt_rear( &mut self, diff --git a/tests-snapshots/dbc-cantools/socialledge.snap.rs b/tests-snapshots/dbc-cantools/socialledge.snap.rs index 10e4ed2c..63aeaf4c 100644 --- a/tests-snapshots/dbc-cantools/socialledge.snap.rs +++ b/tests-snapshots/dbc-cantools/socialledge.snap.rs @@ -91,7 +91,7 @@ impl DriverHeartbeat { pub const MESSAGE_CYCLE_TIME_MS: u32 = 1000; pub const DRIVER_HEARTBEAT_CMD_MIN: u8 = 0_u8; pub const DRIVER_HEARTBEAT_CMD_MAX: u8 = 0_u8; - /// Construct new 'DRIVER_HEARTBEAT' from values + /// Constructs a new `DRIVER_HEARTBEAT` message from values. pub fn new( driver_heartbeat_cmd: DriverHeartbeatDriverHeartbeatCmd, ) -> Result { @@ -99,15 +99,15 @@ impl DriverHeartbeat { res.set_driver_heartbeat_cmd(driver_heartbeat_cmd)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `DRIVER_HEARTBEAT` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'DRIVER_HEARTBEAT_cmd' + /// Returns the value of `DRIVER_HEARTBEAT_cmd`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: SENSOR, MOTOR #[inline(always)] pub fn driver_heartbeat_cmd(&self) -> DriverHeartbeatDriverHeartbeatCmd { @@ -118,26 +118,31 @@ impl DriverHeartbeat { 0 => DriverHeartbeatDriverHeartbeatCmd::DriverHeartbeatCmdNoop, _ => { DriverHeartbeatDriverHeartbeatCmd::_Other( - self.driver_heartbeat_cmd_raw(), + self.driver_heartbeat_cmd_phys_val(), ) } } } - /// Get raw value of 'DRIVER_HEARTBEAT_cmd' + #[inline(always)] + fn driver_heartbeat_cmd_phys_val(&self) -> u8 { + self.driver_heartbeat_cmd_raw_val() + } + /// Returns the raw value of `DRIVER_HEARTBEAT_cmd`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn driver_heartbeat_cmd_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn driver_heartbeat_cmd_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `DRIVER_HEARTBEAT_cmd`. + #[inline(always)] + pub fn set_driver_heartbeat_cmd_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'DRIVER_HEARTBEAT_cmd' + /// Sets the value of `DRIVER_HEARTBEAT_cmd`. #[inline(always)] pub fn set_driver_heartbeat_cmd( &mut self, @@ -149,13 +154,6 @@ impl DriverHeartbeat { message_id: DriverHeartbeat::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: DriverHeartbeat::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -257,7 +255,7 @@ impl IoDebug { pub const IO_DEBUG_TEST_SIGNED_MAX: i8 = 0_i8; pub const IO_DEBUG_TEST_FLOAT_MIN: f32 = 0_f32; pub const IO_DEBUG_TEST_FLOAT_MAX: f32 = 0_f32; - /// Construct new 'IO_DEBUG' from values + /// Constructs a new `IO_DEBUG` message from values. pub fn new( io_debug_test_unsigned: u8, io_debug_test_enum: IoDebugIoDebugTestEnum, @@ -271,35 +269,38 @@ impl IoDebug { res.set_io_debug_test_float(io_debug_test_float)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `IO_DEBUG` message payload. pub fn raw(&self) -> &[u8; 4] { &self.raw } - /// Get value of 'IO_DEBUG_test_unsigned' + /// Returns the value of `IO_DEBUG_test_unsigned`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_unsigned(&self) -> u8 { - self.io_debug_test_unsigned_raw() + self.io_debug_test_unsigned_raw_val() } - /// Get raw value of 'IO_DEBUG_test_unsigned' + /// Returns the raw value of `IO_DEBUG_test_unsigned`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_unsigned_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_unsigned_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'IO_DEBUG_test_unsigned' + /// Sets the raw value of `IO_DEBUG_test_unsigned`. + #[inline(always)] + pub fn set_io_debug_test_unsigned_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_unsigned`. #[inline(always)] pub fn set_io_debug_test_unsigned(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -307,21 +308,14 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_enum' + /// Returns the value of `IO_DEBUG_test_enum`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG #[inline(always)] pub fn io_debug_test_enum(&self) -> IoDebugIoDebugTestEnum { @@ -329,24 +323,29 @@ impl IoDebug { match signal { 2 => IoDebugIoDebugTestEnum::IoDebugTest2EnumTwo, 1 => IoDebugIoDebugTestEnum::IoDebugTest2EnumOne, - _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_raw()), + _ => IoDebugIoDebugTestEnum::_Other(self.io_debug_test_enum_phys_val()), } } - /// Get raw value of 'IO_DEBUG_test_enum' + #[inline(always)] + fn io_debug_test_enum_phys_val(&self) -> u8 { + self.io_debug_test_enum_raw_val() + } + /// Returns the raw value of `IO_DEBUG_test_enum`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_enum_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_enum_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'IO_DEBUG_test_enum' + /// Sets the raw value of `IO_DEBUG_test_enum`. + #[inline(always)] + pub fn set_io_debug_test_enum_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_enum`. #[inline(always)] pub fn set_io_debug_test_enum( &mut self, @@ -358,42 +357,38 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_signed' + /// Returns the value of `IO_DEBUG_test_signed`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_signed(&self) -> i8 { - self.io_debug_test_signed_raw() + self.io_debug_test_signed_raw_val() } - /// Get raw value of 'IO_DEBUG_test_signed' + /// Returns the raw value of `IO_DEBUG_test_signed`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn io_debug_test_signed_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn io_debug_test_signed_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'IO_DEBUG_test_signed' + /// Sets the raw value of `IO_DEBUG_test_signed`. + #[inline(always)] + pub fn set_io_debug_test_signed_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_signed`. #[inline(always)] pub fn set_io_debug_test_signed(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -401,43 +396,41 @@ impl IoDebug { message_id: IoDebug::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: IoDebug::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'IO_DEBUG_test_float' + /// Returns the value of `IO_DEBUG_test_float`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.5 + /// - Offset: 0 #[inline(always)] pub fn io_debug_test_float(&self) -> f32 { - self.io_debug_test_float_raw() + let signal = self.raw.view_bits::()[24..32].load_le::(); + let factor = 0.5_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IO_DEBUG_test_float' + /// Returns the raw value of `IO_DEBUG_test_float`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 0.5 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn io_debug_test_float_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 0.5_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn io_debug_test_float_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'IO_DEBUG_test_float' + /// Sets the raw value of `IO_DEBUG_test_float`. + #[inline(always)] + pub fn set_io_debug_test_float_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `IO_DEBUG_test_float`. #[inline(always)] pub fn set_io_debug_test_float(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -543,43 +536,49 @@ impl MotorCmd { pub const MOTOR_CMD_STEER_MAX: i8 = 5_i8; pub const MOTOR_CMD_DRIVE_MIN: u8 = 0_u8; pub const MOTOR_CMD_DRIVE_MAX: u8 = 9_u8; - /// Construct new 'MOTOR_CMD' from values + /// Constructs a new `MOTOR_CMD` message from values. pub fn new(motor_cmd_steer: i8, motor_cmd_drive: u8) -> Result { let mut res = Self { raw: [0x00; 1] }; res.set_motor_cmd_steer(motor_cmd_steer)?; res.set_motor_cmd_drive(motor_cmd_drive)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_CMD` message payload. pub fn raw(&self) -> &[u8; 1] { &self.raw } - /// Get value of 'MOTOR_CMD_steer' + /// Returns the value of `MOTOR_CMD_steer`. /// /// - Min: -5 /// - Max: 5 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: -5 #[inline(always)] pub fn motor_cmd_steer(&self) -> i8 { - self.motor_cmd_steer_raw() + let signal = self.raw.view_bits::()[0..4].load_le::(); + let factor = 1; + let signal = signal as i8; + i8::from(signal).saturating_mul(factor).saturating_sub(5) } - /// Get raw value of 'MOTOR_CMD_steer' + /// Returns the raw value of `MOTOR_CMD_steer`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: -5 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn motor_cmd_steer_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_sub(5) + pub fn motor_cmd_steer_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `MOTOR_CMD_steer`. + #[inline(always)] + pub fn set_motor_cmd_steer_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..4].store_le(value); } - /// Set value of 'MOTOR_CMD_steer' + /// Sets the value of `MOTOR_CMD_steer`. #[inline(always)] pub fn set_motor_cmd_steer(&mut self, value: i8) -> Result<(), CanError> { if value < -5_i8 || 5_i8 < value { @@ -598,31 +597,34 @@ impl MotorCmd { self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Get value of 'MOTOR_CMD_drive' + /// Returns the value of `MOTOR_CMD_drive`. /// /// - Min: 0 /// - Max: 9 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: MOTOR + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_cmd_drive(&self) -> u8 { - self.motor_cmd_drive_raw() + self.motor_cmd_drive_raw_val() } - /// Get raw value of 'MOTOR_CMD_drive' + /// Returns the raw value of `MOTOR_CMD_drive`. /// /// - Start bit: 4 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_cmd_drive_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[4..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn motor_cmd_drive_raw_val(&self) -> u8 { + self.raw.view_bits::()[4..8].load_le::() + } + /// Sets the raw value of `MOTOR_CMD_drive`. + #[inline(always)] + pub fn set_motor_cmd_drive_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[4..8].store_le(value); } - /// Set value of 'MOTOR_CMD_drive' + /// Sets the value of `MOTOR_CMD_drive`. #[inline(always)] pub fn set_motor_cmd_drive(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 9_u8 < value { @@ -630,13 +632,6 @@ impl MotorCmd { message_id: MotorCmd::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MotorCmd::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[4..8].store_le(value); Ok(()) } @@ -705,7 +700,7 @@ impl MotorStatus { pub const MESSAGE_CYCLE_TIME_MS: u32 = 100; pub const MOTOR_STATUS_SPEED_KPH_MIN: f32 = 0_f32; pub const MOTOR_STATUS_SPEED_KPH_MAX: f32 = 0_f32; - /// Construct new 'MOTOR_STATUS' from values + /// Constructs a new `MOTOR_STATUS` message from values. pub fn new( motor_status_wheel_error: bool, motor_status_speed_kph: f32, @@ -715,66 +710,75 @@ impl MotorStatus { res.set_motor_status_speed_kph(motor_status_speed_kph)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MOTOR_STATUS` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'MOTOR_STATUS_wheel_error' + /// Returns the value of `MOTOR_STATUS_wheel_error`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn motor_status_wheel_error(&self) -> bool { - self.motor_status_wheel_error_raw() + self.motor_status_wheel_error_raw_val() == 1 } - /// Get raw value of 'MOTOR_STATUS_wheel_error' + /// Returns the raw value of `MOTOR_STATUS_wheel_error`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_wheel_error_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn motor_status_wheel_error_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'MOTOR_STATUS_wheel_error' + /// Sets the raw value of `MOTOR_STATUS_wheel_error`. + #[inline(always)] + pub fn set_motor_status_wheel_error_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `MOTOR_STATUS_wheel_error`. #[inline(always)] pub fn set_motor_status_wheel_error(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[0..1].store_le(value); Ok(()) } - /// Get value of 'MOTOR_STATUS_speed_kph' + /// Returns the value of `MOTOR_STATUS_speed_kph`. /// /// - Min: 0 /// - Max: 0 /// - Unit: "kph" /// - Receivers: DRIVER, IO + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn motor_status_speed_kph(&self) -> f32 { - self.motor_status_speed_kph_raw() + let signal = self.raw.view_bits::()[8..24].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'MOTOR_STATUS_speed_kph' + /// Returns the raw value of `MOTOR_STATUS_speed_kph`. /// /// - Start bit: 8 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn motor_status_speed_kph_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..24].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn motor_status_speed_kph_raw_val(&self) -> u16 { + self.raw.view_bits::()[8..24].load_le::() + } + /// Sets the raw value of `MOTOR_STATUS_speed_kph`. + #[inline(always)] + pub fn set_motor_status_speed_kph_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[8..24].store_le(value); } - /// Set value of 'MOTOR_STATUS_speed_kph' + /// Sets the value of `MOTOR_STATUS_speed_kph`. #[inline(always)] pub fn set_motor_status_speed_kph(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -871,7 +875,7 @@ impl SensorSonars { pub const SENSOR_SONARS_NO_FILT_RIGHT_MAX: f32 = 0_f32; pub const SENSOR_SONARS_NO_FILT_REAR_MIN: f32 = 0_f32; pub const SENSOR_SONARS_NO_FILT_REAR_MAX: f32 = 0_f32; - /// Construct new 'SENSOR_SONARS' from values + /// Constructs a new `SENSOR_SONARS` message from values. pub fn new( sensor_sonars_mux: u8, sensor_sonars_err_count: u16, @@ -881,28 +885,31 @@ impl SensorSonars { res.set_sensor_sonars_err_count(sensor_sonars_err_count)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SENSOR_SONARS` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'SENSOR_SONARS_mux' + /// Returns the raw value of `SENSOR_SONARS_mux`. /// /// - Start bit: 0 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_mux_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..4].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_mux_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..4].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_mux`. + #[allow(dead_code)] + #[inline(always)] + fn set_sensor_sonars_mux_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..4].store_le(value); } - pub fn sensor_sonars_mux( + /// Selects the active multiplexed sub-message for `SENSOR_SONARS_mux`. + pub fn sensor_sonars_mux_multiplexed( &mut self, ) -> Result { - match self.sensor_sonars_mux_raw() { + match self.sensor_sonars_mux_raw_val() { 0 => { Ok( SensorSonarsSensorSonarsMuxIndex::M0(SensorSonarsSensorSonarsMuxM0 { @@ -925,7 +932,7 @@ impl SensorSonars { } } } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] fn set_sensor_sonars_mux(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -933,17 +940,10 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..4].store_le(value); Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m0( &mut self, @@ -955,7 +955,7 @@ impl SensorSonars { self.set_sensor_sonars_mux(0)?; Ok(()) } - /// Set value of 'SENSOR_SONARS_mux' + /// Sets the value of `SENSOR_SONARS_mux`. #[inline(always)] pub fn set_m1( &mut self, @@ -967,31 +967,34 @@ impl SensorSonars { self.set_sensor_sonars_mux(1)?; Ok(()) } - /// Get value of 'SENSOR_SONARS_err_count' + /// Returns the value of `SENSOR_SONARS_err_count`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_err_count(&self) -> u16 { - self.sensor_sonars_err_count_raw() + self.sensor_sonars_err_count_raw_val() } - /// Get raw value of 'SENSOR_SONARS_err_count' + /// Returns the raw value of `SENSOR_SONARS_err_count`. /// /// - Start bit: 4 /// - Signal size: 12 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_err_count_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[4..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn sensor_sonars_err_count_raw_val(&self) -> u16 { + self.raw.view_bits::()[4..16].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_err_count`. + #[inline(always)] + pub fn set_sensor_sonars_err_count_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[4..16].store_le(value); } - /// Set value of 'SENSOR_SONARS_err_count' + /// Sets the value of `SENSOR_SONARS_err_count`. #[inline(always)] pub fn set_sensor_sonars_err_count(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -999,13 +1002,6 @@ impl SensorSonars { message_id: SensorSonars::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SensorSonars::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[4..16].store_le(value); Ok(()) } @@ -1088,32 +1084,37 @@ impl SensorSonarsSensorSonarsMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_left' + /// Returns the value of `SENSOR_SONARS_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_left(&self) -> f32 { - self.sensor_sonars_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_left' + /// Returns the raw value of `SENSOR_SONARS_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() } - /// Set value of 'SENSOR_SONARS_left' + /// Sets the raw value of `SENSOR_SONARS_left`. + #[inline(always)] + pub fn set_sensor_sonars_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_left`. #[inline(always)] pub fn set_sensor_sonars_left(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1127,32 +1128,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[16..28].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_middle' + /// Returns the value of `SENSOR_SONARS_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_middle(&self) -> f32 { - self.sensor_sonars_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_middle' + /// Returns the raw value of `SENSOR_SONARS_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() } - /// Set value of 'SENSOR_SONARS_middle' + /// Sets the raw value of `SENSOR_SONARS_middle`. + #[inline(always)] + pub fn set_sensor_sonars_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_middle`. #[inline(always)] pub fn set_sensor_sonars_middle(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1166,32 +1172,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_right' + /// Returns the value of `SENSOR_SONARS_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_right(&self) -> f32 { - self.sensor_sonars_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_right' + /// Returns the raw value of `SENSOR_SONARS_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_right`. + #[inline(always)] + pub fn set_sensor_sonars_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); } - /// Set value of 'SENSOR_SONARS_right' + /// Sets the value of `SENSOR_SONARS_right`. #[inline(always)] pub fn set_sensor_sonars_right(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1205,32 +1216,37 @@ impl SensorSonarsSensorSonarsMuxM0 { self.raw.view_bits_mut::()[40..52].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_rear' + /// Returns the value of `SENSOR_SONARS_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DRIVER, IO + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_rear(&self) -> f32 { - self.sensor_sonars_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_rear' + /// Returns the raw value of `SENSOR_SONARS_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() } - /// Set value of 'SENSOR_SONARS_rear' + /// Sets the raw value of `SENSOR_SONARS_rear`. + #[inline(always)] + pub fn set_sensor_sonars_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_rear`. #[inline(always)] pub fn set_sensor_sonars_rear(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -1271,32 +1287,37 @@ impl SensorSonarsSensorSonarsMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'SENSOR_SONARS_no_filt_left' + /// Returns the value of `SENSOR_SONARS_no_filt_left`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_left(&self) -> f32 { - self.sensor_sonars_no_filt_left_raw() + let signal = self.raw.view_bits::()[16..28].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_left' + /// Returns the raw value of `SENSOR_SONARS_no_filt_left`. /// /// - Start bit: 16 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_left_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..28].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_left_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..28].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_left`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_left_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..28].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_left' + /// Sets the value of `SENSOR_SONARS_no_filt_left`. #[inline(always)] pub fn set_sensor_sonars_no_filt_left( &mut self, @@ -1313,32 +1334,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[16..28].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the value of `SENSOR_SONARS_no_filt_middle`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_middle(&self) -> f32 { - self.sensor_sonars_no_filt_middle_raw() + let signal = self.raw.view_bits::()[28..40].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_middle' + /// Returns the raw value of `SENSOR_SONARS_no_filt_middle`. /// /// - Start bit: 28 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_middle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[28..40].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_middle_raw_val(&self) -> u16 { + self.raw.view_bits::()[28..40].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_middle' + /// Sets the raw value of `SENSOR_SONARS_no_filt_middle`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_middle_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[28..40].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_middle`. #[inline(always)] pub fn set_sensor_sonars_no_filt_middle( &mut self, @@ -1355,32 +1381,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[28..40].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_right' + /// Returns the value of `SENSOR_SONARS_no_filt_right`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_right(&self) -> f32 { - self.sensor_sonars_no_filt_right_raw() + let signal = self.raw.view_bits::()[40..52].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_right' + /// Returns the raw value of `SENSOR_SONARS_no_filt_right`. /// /// - Start bit: 40 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_right_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..52].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_right_raw_val(&self) -> u16 { + self.raw.view_bits::()[40..52].load_le::() } - /// Set value of 'SENSOR_SONARS_no_filt_right' + /// Sets the raw value of `SENSOR_SONARS_no_filt_right`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_right_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[40..52].store_le(value); + } + /// Sets the value of `SENSOR_SONARS_no_filt_right`. #[inline(always)] pub fn set_sensor_sonars_no_filt_right( &mut self, @@ -1397,32 +1428,37 @@ impl SensorSonarsSensorSonarsMuxM1 { self.raw.view_bits_mut::()[40..52].store_le(value); Ok(()) } - /// Get value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the value of `SENSOR_SONARS_no_filt_rear`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: DBG + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn sensor_sonars_no_filt_rear(&self) -> f32 { - self.sensor_sonars_no_filt_rear_raw() + let signal = self.raw.view_bits::()[52..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'SENSOR_SONARS_no_filt_rear' + /// Returns the raw value of `SENSOR_SONARS_no_filt_rear`. /// /// - Start bit: 52 /// - Signal size: 12 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn sensor_sonars_no_filt_rear_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[52..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn sensor_sonars_no_filt_rear_raw_val(&self) -> u16 { + self.raw.view_bits::()[52..64].load_le::() + } + /// Sets the raw value of `SENSOR_SONARS_no_filt_rear`. + #[inline(always)] + pub fn set_sensor_sonars_no_filt_rear_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[52..64].store_le(value); } - /// Set value of 'SENSOR_SONARS_no_filt_rear' + /// Sets the value of `SENSOR_SONARS_no_filt_rear`. #[inline(always)] pub fn set_sensor_sonars_no_filt_rear( &mut self, diff --git a/tests-snapshots/dbc-cantools/test_extended_id_dump.snap.rs b/tests-snapshots/dbc-cantools/test_extended_id_dump.snap.rs index b67ea725..d5bcda13 100644 --- a/tests-snapshots/dbc-cantools/test_extended_id_dump.snap.rs +++ b/tests-snapshots/dbc-cantools/test_extended_id_dump.snap.rs @@ -74,42 +74,45 @@ impl SomeFrame { pub const MESSAGE_SIZE: usize = 8; pub const SOME_DIFFERENT_SIG_MIN: i8 = 0_i8; pub const SOME_DIFFERENT_SIG_MAX: i8 = 0_i8; - /// Construct new 'SomeFrame' from values + /// Constructs a new `SomeFrame` message from values. pub fn new(some_different_sig: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_some_different_sig(some_different_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SomeFrame` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SomeDifferentSig' + /// Returns the value of `SomeDifferentSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn some_different_sig(&self) -> i8 { - self.some_different_sig_raw() + self.some_different_sig_raw_val() } - /// Get raw value of 'SomeDifferentSig' + /// Returns the raw value of `SomeDifferentSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn some_different_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn some_different_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SomeDifferentSig' + /// Sets the raw value of `SomeDifferentSig`. + #[inline(always)] + pub fn set_some_different_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SomeDifferentSig`. #[inline(always)] pub fn set_some_different_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -117,13 +120,6 @@ impl SomeFrame { message_id: SomeFrame::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SomeFrame::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) @@ -191,42 +187,45 @@ impl SomeExtFrame { pub const MESSAGE_SIZE: usize = 8; pub const SOME_SIG_MIN: i8 = 0_i8; pub const SOME_SIG_MAX: i8 = 0_i8; - /// Construct new 'SomeExtFrame' from values + /// Constructs a new `SomeExtFrame` message from values. pub fn new(some_sig: i8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_some_sig(some_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `SomeExtFrame` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'SomeSig' + /// Returns the value of `SomeSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn some_sig(&self) -> i8 { - self.some_sig_raw() + self.some_sig_raw_val() } - /// Get raw value of 'SomeSig' + /// Returns the raw value of `SomeSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn some_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn some_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'SomeSig' + /// Sets the raw value of `SomeSig`. + #[inline(always)] + pub fn set_some_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `SomeSig`. #[inline(always)] pub fn set_some_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -234,13 +233,6 @@ impl SomeExtFrame { message_id: SomeExtFrame::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: SomeExtFrame::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/test_multiplex_dump.snap.rs b/tests-snapshots/dbc-cantools/test_multiplex_dump.snap.rs index 31237833..bfe6f93c 100644 --- a/tests-snapshots/dbc-cantools/test_multiplex_dump.snap.rs +++ b/tests-snapshots/dbc-cantools/test_multiplex_dump.snap.rs @@ -75,43 +75,46 @@ impl MuxedFrame { pub const MULTIPLEXED_SIG_MAX: i8 = 0_i8; pub const MULTIPLEXOR_SIG_MIN: u8 = 0_u8; pub const MULTIPLEXOR_SIG_MAX: u8 = 0_u8; - /// Construct new 'MuxedFrame' from values + /// Constructs a new `MuxedFrame` message from values. pub fn new(unmultiplexed_sig: i8, multiplexor_sig: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_unmultiplexed_sig(unmultiplexed_sig)?; res.set_multiplexor_sig(multiplexor_sig)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `MuxedFrame` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'UnmultiplexedSig' + /// Returns the value of `UnmultiplexedSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn unmultiplexed_sig(&self) -> i8 { - self.unmultiplexed_sig_raw() + self.unmultiplexed_sig_raw_val() } - /// Get raw value of 'UnmultiplexedSig' + /// Returns the raw value of `UnmultiplexedSig`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn unmultiplexed_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn unmultiplexed_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `UnmultiplexedSig`. + #[inline(always)] + pub fn set_unmultiplexed_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'UnmultiplexedSig' + /// Sets the value of `UnmultiplexedSig`. #[inline(always)] pub fn set_unmultiplexed_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -119,35 +122,31 @@ impl MuxedFrame { message_id: MuxedFrame::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MuxedFrame::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get raw value of 'MultiplexorSig' + /// Returns the raw value of `MultiplexorSig`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn multiplexor_sig_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexor_sig_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `MultiplexorSig`. + #[allow(dead_code)] + #[inline(always)] + fn set_multiplexor_sig_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - pub fn multiplexor_sig( + /// Selects the active multiplexed sub-message for `MultiplexorSig`. + pub fn multiplexor_sig_multiplexed( &mut self, ) -> Result { - match self.multiplexor_sig_raw() { + match self.multiplexor_sig_raw_val() { 42 => { Ok( MuxedFrameMultiplexorSigIndex::M42(MuxedFrameMultiplexorSigM42 { @@ -163,7 +162,7 @@ impl MuxedFrame { } } } - /// Set value of 'MultiplexorSig' + /// Sets the value of `MultiplexorSig`. #[inline(always)] fn set_multiplexor_sig(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -171,17 +170,10 @@ impl MuxedFrame { message_id: MuxedFrame::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MuxedFrame::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Set value of 'MultiplexorSig' + /// Sets the value of `MultiplexorSig`. #[inline(always)] pub fn set_m42( &mut self, @@ -271,32 +263,35 @@ impl MuxedFrameMultiplexorSigM42 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'MultiplexedSig' + /// Returns the value of `MultiplexedSig`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn multiplexed_sig(&self) -> i8 { - self.multiplexed_sig_raw() + self.multiplexed_sig_raw_val() } - /// Get raw value of 'MultiplexedSig' + /// Returns the raw value of `MultiplexedSig`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn multiplexed_sig_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn multiplexed_sig_raw_val(&self) -> i8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `MultiplexedSig`. + #[inline(always)] + pub fn set_multiplexed_sig_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'MultiplexedSig' + /// Sets the value of `MultiplexedSig`. #[inline(always)] pub fn set_multiplexed_sig(&mut self, value: i8) -> Result<(), CanError> { if value < 0_i8 || 0_i8 < value { @@ -304,13 +299,6 @@ impl MuxedFrameMultiplexorSigM42 { message_id: MuxedFrame::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: MuxedFrame::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/timing.snap.rs b/tests-snapshots/dbc-cantools/timing.snap.rs index e72cb82e..c1afc8dc 100644 --- a/tests-snapshots/dbc-cantools/timing.snap.rs +++ b/tests-snapshots/dbc-cantools/timing.snap.rs @@ -74,42 +74,48 @@ impl Foo { pub const MESSAGE_CYCLE_TIME_MS: u32 = 200; pub const FOO_MIN: f32 = 229.53_f32; pub const FOO_MAX: f32 = 270.47_f32; - /// Construct new 'Foo' from values + /// Constructs a new `Foo` message from values. pub fn new(foo: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_foo(foo)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Foo` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Foo' + /// Returns the value of `Foo`. /// /// - Min: 229.53 /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: Receiver + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn foo(&self) -> f32 { - self.foo_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Foo' + /// Returns the raw value of `Foo`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn foo_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn foo_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() + } + /// Sets the raw value of `Foo`. + #[inline(always)] + pub fn set_foo_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); } - /// Set value of 'Foo' + /// Sets the value of `Foo`. #[inline(always)] pub fn set_foo(&mut self, value: f32) -> Result<(), CanError> { if value < 229.53_f32 || 270.47_f32 < value { @@ -188,42 +194,48 @@ impl Bar { pub const MESSAGE_SIZE: usize = 8; pub const FOO_MIN: f32 = 229.53_f32; pub const FOO_MAX: f32 = 270.47_f32; - /// Construct new 'Bar' from values + /// Constructs a new `Bar` message from values. pub fn new(foo: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_foo(foo)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Bar` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Foo' + /// Returns the value of `Foo`. /// /// - Min: 229.53 /// - Max: 270.47 /// - Unit: "degK" /// - Receivers: Receiver + /// - Factor: 0.01 + /// - Offset: 250 #[inline(always)] pub fn foo(&self) -> f32 { - self.foo_raw() + let signal = self.raw.view_bits::()[7..19].load_be::(); + let factor = 0.01_f32; + let offset = 250_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Foo' + /// Returns the raw value of `Foo`. /// /// - Start bit: 0 /// - Signal size: 12 bits - /// - Factor: 0.01 - /// - Offset: 250 /// - Byte order: BigEndian /// - Value type: Signed #[inline(always)] - pub fn foo_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[7..19].load_be::(); - let factor = 0.01_f32; - let offset = 250_f32; - (signal as f32) * factor + offset + pub fn foo_raw_val(&self) -> i16 { + self.raw.view_bits::()[7..19].load_be::() + } + /// Sets the raw value of `Foo`. + #[inline(always)] + pub fn set_foo_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[7..19].store_be(value); } - /// Set value of 'Foo' + /// Sets the value of `Foo`. #[inline(always)] pub fn set_foo(&mut self, value: f32) -> Result<(), CanError> { if value < 229.53_f32 || 270.47_f32 < value { diff --git a/tests-snapshots/dbc-cantools/val_table.snap.rs b/tests-snapshots/dbc-cantools/val_table.snap.rs index aab8a37e..23637cd8 100644 --- a/tests-snapshots/dbc-cantools/val_table.snap.rs +++ b/tests-snapshots/dbc-cantools/val_table.snap.rs @@ -69,21 +69,21 @@ impl Message1 { pub const MESSAGE_SIZE: usize = 8; pub const SIGNAL1_MIN: i8 = 0_i8; pub const SIGNAL1_MAX: i8 = 0_i8; - /// Construct new 'Message1' from values + /// Constructs a new `Message1` message from values. pub fn new(signal1: Message1Signal1) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_signal1(signal1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Message1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn signal1(&self) -> Message1Signal1 { @@ -91,25 +91,30 @@ impl Message1 { match signal { 1 => Message1Signal1::One, 0 => Message1Signal1::Zero, - _ => Message1Signal1::_Other(self.signal1_raw()), + _ => Message1Signal1::_Other(self.signal1_phys_val()), } } - /// Get raw value of 'Signal1' + #[inline(always)] + fn signal1_phys_val(&self) -> i8 { + self.signal1_raw_val() + } + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn signal1_raw(&self) -> i8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - let signal = signal as i8; - i8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> i8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Signal1' + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: i8) { + let value = u8::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: Message1Signal1) -> Result<(), CanError> { let value = i8::from(value); @@ -118,13 +123,6 @@ impl Message1 { message_id: Message1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: Message1::MESSAGE_ID, - })?; - let value = (value / factor) as i8; let value = u8::from_ne_bytes(value.to_ne_bytes()); self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) diff --git a/tests-snapshots/dbc-cantools/variable_dlc.snap.rs b/tests-snapshots/dbc-cantools/variable_dlc.snap.rs index cec0af51..23b27803 100644 --- a/tests-snapshots/dbc-cantools/variable_dlc.snap.rs +++ b/tests-snapshots/dbc-cantools/variable_dlc.snap.rs @@ -81,7 +81,7 @@ impl TestMessage1 { pub const SIGNAL2_MAX: u8 = 0_u8; pub const SIGNAL3_MIN: u8 = 0_u8; pub const SIGNAL3_MAX: u8 = 0_u8; - /// Construct new 'TestMessage1' from values + /// Constructs a new `TestMessage1` message from values. pub fn new(signal1: u8, signal2: u8, signal3: u8) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_signal1(signal1)?; @@ -89,35 +89,38 @@ impl TestMessage1 { res.set_signal3(signal3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMessage1` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Signal1' + /// Returns the value of `Signal1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal1(&self) -> u8 { - self.signal1_raw() + self.signal1_raw_val() } - /// Get raw value of 'Signal1' + /// Returns the raw value of `Signal1`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal1_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal1_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() } - /// Set value of 'Signal1' + /// Sets the raw value of `Signal1`. + #[inline(always)] + pub fn set_signal1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); + } + /// Sets the value of `Signal1`. #[inline(always)] pub fn set_signal1(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -125,41 +128,37 @@ impl TestMessage1 { message_id: TestMessage1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } - /// Get value of 'Signal2' + /// Returns the value of `Signal2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal2(&self) -> u8 { - self.signal2_raw() + self.signal2_raw_val() } - /// Get raw value of 'Signal2' + /// Returns the raw value of `Signal2`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal2_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Signal2' + /// Sets the raw value of `Signal2`. + #[inline(always)] + pub fn set_signal2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Signal2`. #[inline(always)] pub fn set_signal2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -167,41 +166,37 @@ impl TestMessage1 { message_id: TestMessage1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Signal3' + /// Returns the value of `Signal3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal3(&self) -> u8 { - self.signal3_raw() + self.signal3_raw_val() } - /// Get raw value of 'Signal3' + /// Returns the raw value of `Signal3`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal3_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal3_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'Signal3' + /// Sets the raw value of `Signal3`. + #[inline(always)] + pub fn set_signal3_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `Signal3`. #[inline(always)] pub fn set_signal3(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -209,13 +204,6 @@ impl TestMessage1 { message_id: TestMessage1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } @@ -291,7 +279,7 @@ impl TestMessage2 { pub const SIGNAL7_MAX: u16 = 0_u16; pub const SIGNAL8_MIN: u16 = 0_u16; pub const SIGNAL8_MAX: u16 = 0_u16; - /// Construct new 'TestMessage2' from values + /// Constructs a new `TestMessage2` message from values. pub fn new( signal4: u16, signal5: u16, @@ -307,35 +295,38 @@ impl TestMessage2 { res.set_signal8(signal8)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `TestMessage2` message payload. pub fn raw(&self) -> &[u8; 10] { &self.raw } - /// Get value of 'Signal4' + /// Returns the value of `Signal4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal4(&self) -> u16 { - self.signal4_raw() + self.signal4_raw_val() } - /// Get raw value of 'Signal4' + /// Returns the raw value of `Signal4`. /// /// - Start bit: 0 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal4_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..15].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal4_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..15].load_le::() } - /// Set value of 'Signal4' + /// Sets the raw value of `Signal4`. + #[inline(always)] + pub fn set_signal4_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..15].store_le(value); + } + /// Sets the value of `Signal4`. #[inline(always)] pub fn set_signal4(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -343,41 +334,37 @@ impl TestMessage2 { message_id: TestMessage2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage2::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..15].store_le(value); Ok(()) } - /// Get value of 'Signal5' + /// Returns the value of `Signal5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal5(&self) -> u16 { - self.signal5_raw() + self.signal5_raw_val() } - /// Get raw value of 'Signal5' + /// Returns the raw value of `Signal5`. /// /// - Start bit: 15 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal5_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[15..30].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal5_raw_val(&self) -> u16 { + self.raw.view_bits::()[15..30].load_le::() } - /// Set value of 'Signal5' + /// Sets the raw value of `Signal5`. + #[inline(always)] + pub fn set_signal5_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[15..30].store_le(value); + } + /// Sets the value of `Signal5`. #[inline(always)] pub fn set_signal5(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -385,41 +372,37 @@ impl TestMessage2 { message_id: TestMessage2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage2::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[15..30].store_le(value); Ok(()) } - /// Get value of 'Signal6' + /// Returns the value of `Signal6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal6(&self) -> u16 { - self.signal6_raw() + self.signal6_raw_val() } - /// Get raw value of 'Signal6' + /// Returns the raw value of `Signal6`. /// /// - Start bit: 30 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal6_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[30..45].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal6_raw_val(&self) -> u16 { + self.raw.view_bits::()[30..45].load_le::() } - /// Set value of 'Signal6' + /// Sets the raw value of `Signal6`. + #[inline(always)] + pub fn set_signal6_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[30..45].store_le(value); + } + /// Sets the value of `Signal6`. #[inline(always)] pub fn set_signal6(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -427,41 +410,37 @@ impl TestMessage2 { message_id: TestMessage2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage2::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[30..45].store_le(value); Ok(()) } - /// Get value of 'Signal7' + /// Returns the value of `Signal7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal7(&self) -> u16 { - self.signal7_raw() + self.signal7_raw_val() } - /// Get raw value of 'Signal7' + /// Returns the raw value of `Signal7`. /// /// - Start bit: 45 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal7_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[45..60].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal7_raw_val(&self) -> u16 { + self.raw.view_bits::()[45..60].load_le::() } - /// Set value of 'Signal7' + /// Sets the raw value of `Signal7`. + #[inline(always)] + pub fn set_signal7_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[45..60].store_le(value); + } + /// Sets the value of `Signal7`. #[inline(always)] pub fn set_signal7(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -469,41 +448,37 @@ impl TestMessage2 { message_id: TestMessage2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage2::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[45..60].store_le(value); Ok(()) } - /// Get value of 'Signal8' + /// Returns the value of `Signal8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Test + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn signal8(&self) -> u16 { - self.signal8_raw() + self.signal8_raw_val() } - /// Get raw value of 'Signal8' + /// Returns the raw value of `Signal8`. /// /// - Start bit: 60 /// - Signal size: 15 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn signal8_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[60..75].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn signal8_raw_val(&self) -> u16 { + self.raw.view_bits::()[60..75].load_le::() } - /// Set value of 'Signal8' + /// Sets the raw value of `Signal8`. + #[inline(always)] + pub fn set_signal8_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[60..75].store_le(value); + } + /// Sets the value of `Signal8`. #[inline(always)] pub fn set_signal8(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -511,13 +486,6 @@ impl TestMessage2 { message_id: TestMessage2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestMessage2::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[60..75].store_le(value); Ok(()) } diff --git a/tests-snapshots/dbc-cantools/vehicle.snap.rs b/tests-snapshots/dbc-cantools/vehicle.snap.rs index 9dccd3fc..d20d495d 100644 --- a/tests-snapshots/dbc-cantools/vehicle.snap.rs +++ b/tests-snapshots/dbc-cantools/vehicle.snap.rs @@ -1173,7 +1173,7 @@ impl RtSbInsVelBodyAxes { pub const INS_VEL_FORWARDS_2D_MAX: f32 = 838_f32; pub const ACCURACY_INS_VEL_BODY_MIN: u8 = 0_u8; pub const ACCURACY_INS_VEL_BODY_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Vel_Body_Axes' from values + /// Constructs a new `RT_SB_INS_Vel_Body_Axes` message from values. pub fn new( ins_vel_sideways_2d: f32, ins_vel_forwards_2d: f32, @@ -1189,11 +1189,11 @@ impl RtSbInsVelBodyAxes { res.set_validity_ins_vel_forwards(validity_ins_vel_forwards)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vel_Body_Axes` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Vel_Sideways_2D' + /// Returns the value of `INS_Vel_Sideways_2D`. /// /// Sideways Velocity in the vehicle body axes, 2D (no vertical component) . +ve for motion to the vehicle RHS. /// @@ -1201,26 +1201,32 @@ impl RtSbInsVelBodyAxes { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_sideways_2d(&self) -> f32 { - self.ins_vel_sideways_2d_raw() + let signal = self.raw.view_bits::()[40..64].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_Sideways_2D' + /// Returns the raw value of `INS_Vel_Sideways_2D`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_sideways_2d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_sideways_2d_raw_val(&self) -> i32 { + self.raw.view_bits::()[40..64].load_le::() + } + /// Sets the raw value of `INS_Vel_Sideways_2D`. + #[inline(always)] + pub fn set_ins_vel_sideways_2d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..64].store_le(value); } - /// Set value of 'INS_Vel_Sideways_2D' + /// Sets the value of `INS_Vel_Sideways_2D`. #[inline(always)] pub fn set_ins_vel_sideways_2d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -1235,7 +1241,7 @@ impl RtSbInsVelBodyAxes { self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'INS_Vel_Forwards_2D' + /// Returns the value of `INS_Vel_Forwards_2D`. /// /// Forwards Velocity in the vehicle body axes, 2D (no vertical component) . /// @@ -1243,26 +1249,32 @@ impl RtSbInsVelBodyAxes { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_forwards_2d(&self) -> f32 { - self.ins_vel_forwards_2d_raw() + let signal = self.raw.view_bits::()[16..40].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_Forwards_2D' + /// Returns the raw value of `INS_Vel_Forwards_2D`. /// /// - Start bit: 16 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_forwards_2d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..40].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_forwards_2d_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..40].load_le::() + } + /// Sets the raw value of `INS_Vel_Forwards_2D`. + #[inline(always)] + pub fn set_ins_vel_forwards_2d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..40].store_le(value); } - /// Set value of 'INS_Vel_Forwards_2D' + /// Sets the value of `INS_Vel_Forwards_2D`. #[inline(always)] pub fn set_ins_vel_forwards_2d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -1277,33 +1289,36 @@ impl RtSbInsVelBodyAxes { self.raw.view_bits_mut::()[16..40].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Vel_Body' + /// Returns the value of `Accuracy_INS_Vel_Body`. /// /// Accuracy of INS body axis velocities (forward velocity and sideways velocity) /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_vel_body(&self) -> u8 { - self.accuracy_ins_vel_body_raw() + self.accuracy_ins_vel_body_raw_val() } - /// Get raw value of 'Accuracy_INS_Vel_Body' + /// Returns the raw value of `Accuracy_INS_Vel_Body`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_vel_body_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_vel_body_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Vel_Body`. + #[inline(always)] + pub fn set_accuracy_ins_vel_body_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_INS_Vel_Body' + /// Sets the value of `Accuracy_INS_Vel_Body`. #[inline(always)] pub fn set_accuracy_ins_vel_body(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1311,42 +1326,39 @@ impl RtSbInsVelBodyAxes { message_id: RtSbInsVelBodyAxes::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsVelBodyAxes::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_Sideways' + /// Returns the value of `Validity_INS_Vel_Sideways`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_sideways(&self) -> bool { - self.validity_ins_vel_sideways_raw() + self.validity_ins_vel_sideways_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_Sideways' + /// Returns the raw value of `Validity_INS_Vel_Sideways`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_sideways_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_vel_sideways_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_INS_Vel_Sideways' + /// Sets the raw value of `Validity_INS_Vel_Sideways`. + #[inline(always)] + pub fn set_validity_ins_vel_sideways_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_INS_Vel_Sideways`. #[inline(always)] pub fn set_validity_ins_vel_sideways( &mut self, @@ -1356,32 +1368,36 @@ impl RtSbInsVelBodyAxes { self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_Forwards' + /// Returns the value of `Validity_INS_Vel_Forwards`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_forwards(&self) -> bool { - self.validity_ins_vel_forwards_raw() + self.validity_ins_vel_forwards_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_Forwards' + /// Returns the raw value of `Validity_INS_Vel_Forwards`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_forwards_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_vel_forwards_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_INS_Vel_Forwards' + /// Sets the raw value of `Validity_INS_Vel_Forwards`. + #[inline(always)] + pub fn set_validity_ins_vel_forwards_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_INS_Vel_Forwards`. #[inline(always)] pub fn set_validity_ins_vel_forwards( &mut self, @@ -1456,7 +1472,7 @@ impl RtDl1mk3Speed { pub const SPEED_MAX: f32 = 20000_f32; pub const ACCURACY_SPEED_MIN: u8 = 0_u8; pub const ACCURACY_SPEED_MAX: u8 = 255_u8; - /// Construct new 'RT_DL1MK3_Speed' from values + /// Constructs a new `RT_DL1MK3_Speed` message from values. pub fn new( speed: f32, accuracy_speed: u8, @@ -1468,36 +1484,42 @@ impl RtDl1mk3Speed { res.set_validity_speed(validity_speed)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Speed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Speed' + /// Returns the value of `Speed`. /// /// - Min: -20000 /// - Max: 20000 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.00001 + /// - Offset: 0 #[inline(always)] pub fn speed(&self) -> f32 { - self.speed_raw() + let signal = self.raw.view_bits::()[16..48].load_le::(); + let factor = 0.00001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Speed' + /// Returns the raw value of `Speed`. /// /// - Start bit: 16 /// - Signal size: 32 bits - /// - Factor: 0.00001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn speed_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..48].load_le::(); - let factor = 0.00001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn speed_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..48].load_le::() + } + /// Sets the raw value of `Speed`. + #[inline(always)] + pub fn set_speed_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..48].store_le(value); } - /// Set value of 'Speed' + /// Sets the value of `Speed`. #[inline(always)] pub fn set_speed(&mut self, value: f32) -> Result<(), CanError> { if value < -20000_f32 || 20000_f32 < value { @@ -1512,33 +1534,36 @@ impl RtDl1mk3Speed { self.raw.view_bits_mut::()[16..48].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Speed' + /// Returns the value of `Accuracy_Speed`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_speed(&self) -> u8 { - self.accuracy_speed_raw() + self.accuracy_speed_raw_val() } - /// Get raw value of 'Accuracy_Speed' + /// Returns the raw value of `Accuracy_Speed`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_speed_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Accuracy_Speed' + /// Sets the raw value of `Accuracy_Speed`. + #[inline(always)] + pub fn set_accuracy_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Accuracy_Speed`. #[inline(always)] pub fn set_accuracy_speed(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1546,42 +1571,39 @@ impl RtDl1mk3Speed { message_id: RtDl1mk3Speed::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3Speed::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Speed' + /// Returns the value of `Validity_Speed`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_speed(&self) -> bool { - self.validity_speed_raw() + self.validity_speed_raw_val() == 1 } - /// Get raw value of 'Validity_Speed' + /// Returns the raw value of `Validity_Speed`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_speed_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Speed`. + #[inline(always)] + pub fn set_validity_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Speed' + /// Sets the value of `Validity_Speed`. #[inline(always)] pub fn set_validity_speed(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -1655,7 +1677,7 @@ impl RtDl1mk3GpsTime { pub const GPS_TIME_MAX: f32 = 604800_f32; pub const ACCURACY_GPS_TIME_MIN: u8 = 0_u8; pub const ACCURACY_GPS_TIME_MAX: u8 = 255_u8; - /// Construct new 'RT_DL1MK3_GPS_Time' from values + /// Constructs a new `RT_DL1MK3_GPS_Time` message from values. pub fn new( gps_week: u16, gps_time: f32, @@ -1671,35 +1693,38 @@ impl RtDl1mk3GpsTime { res.set_validity_gps_time(validity_gps_time)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_GPS_Time` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Week' + /// Returns the value of `GPS_Week`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gps_week(&self) -> u16 { - self.gps_week_raw() + self.gps_week_raw_val() } - /// Get raw value of 'GPS_Week' + /// Returns the raw value of `GPS_Week`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_week_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gps_week_raw_val(&self) -> u16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `GPS_Week`. + #[inline(always)] + pub fn set_gps_week_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'GPS_Week' + /// Sets the value of `GPS_Week`. #[inline(always)] pub fn set_gps_week(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -1707,17 +1732,10 @@ impl RtDl1mk3GpsTime { message_id: RtDl1mk3GpsTime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3GpsTime::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Time' + /// Returns the value of `GPS_Time`. /// /// GPS time is the time in seconds since midnight GMT on Saturday night. /// @@ -1725,26 +1743,31 @@ impl RtDl1mk3GpsTime { /// - Max: 604800 /// - Unit: "s" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn gps_time(&self) -> f32 { - self.gps_time_raw() + let signal = self.raw.view_bits::()[16..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Time' + /// Returns the raw value of `GPS_Time`. /// /// - Start bit: 16 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_time_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_time_raw_val(&self) -> u32 { + self.raw.view_bits::()[16..48].load_le::() + } + /// Sets the raw value of `GPS_Time`. + #[inline(always)] + pub fn set_gps_time_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[16..48].store_le(value); } - /// Set value of 'GPS_Time' + /// Sets the value of `GPS_Time`. #[inline(always)] pub fn set_gps_time(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 604800_f32 < value { @@ -1758,31 +1781,34 @@ impl RtDl1mk3GpsTime { self.raw.view_bits_mut::()[16..48].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Time' + /// Returns the value of `Accuracy_GPS_Time`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_time(&self) -> u8 { - self.accuracy_gps_time_raw() + self.accuracy_gps_time_raw_val() } - /// Get raw value of 'Accuracy_GPS_Time' + /// Returns the raw value of `Accuracy_GPS_Time`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_time_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_time_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Time`. + #[inline(always)] + pub fn set_accuracy_gps_time_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Time' + /// Sets the value of `Accuracy_GPS_Time`. #[inline(always)] pub fn set_accuracy_gps_time(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -1790,74 +1816,75 @@ impl RtDl1mk3GpsTime { message_id: RtDl1mk3GpsTime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3GpsTime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Week' + /// Returns the value of `Validity_GPS_Week`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_week(&self) -> bool { - self.validity_gps_week_raw() + self.validity_gps_week_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Week' + /// Returns the raw value of `Validity_GPS_Week`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_week_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_week_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_GPS_Week' + /// Sets the raw value of `Validity_GPS_Week`. + #[inline(always)] + pub fn set_validity_gps_week_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_GPS_Week`. #[inline(always)] pub fn set_validity_gps_week(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Time' + /// Returns the value of `Validity_GPS_Time`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_time(&self) -> bool { - self.validity_gps_time_raw() + self.validity_gps_time_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Time' + /// Returns the raw value of `Validity_GPS_Time`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_time_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_time_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_GPS_Time' + /// Sets the raw value of `Validity_GPS_Time`. + #[inline(always)] + pub fn set_validity_gps_time_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_GPS_Time`. #[inline(always)] pub fn set_validity_gps_time(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -1929,7 +1956,7 @@ impl RtDl1mk3GpsPosLlh2 { pub const GPS_POS_LLH_ALTITUDE_MAX: f32 = 100000_f32; pub const GPS_POS_LLH_LONGITUDE_MIN: f32 = -180_f32; pub const GPS_POS_LLH_LONGITUDE_MAX: f32 = 180_f32; - /// Construct new 'RT_DL1MK3_GPS_Pos_LLH_2' from values + /// Constructs a new `RT_DL1MK3_GPS_Pos_LLH_2` message from values. pub fn new( gps_pos_llh_altitude: f32, gps_pos_llh_longitude: f32, @@ -1939,36 +1966,42 @@ impl RtDl1mk3GpsPosLlh2 { res.set_gps_pos_llh_longitude(gps_pos_llh_longitude)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_GPS_Pos_LLH_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Pos_LLH_Altitude' + /// Returns the value of `GPS_Pos_LLH_Altitude`. /// /// - Min: -1000 /// - Max: 100000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_llh_altitude(&self) -> f32 { - self.gps_pos_llh_altitude_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_LLH_Altitude' + /// Returns the raw value of `GPS_Pos_LLH_Altitude`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_llh_altitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_llh_altitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `GPS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_gps_pos_llh_altitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'GPS_Pos_LLH_Altitude' + /// Sets the value of `GPS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_gps_pos_llh_altitude(&mut self, value: f32) -> Result<(), CanError> { if value < -1000_f32 || 100000_f32 < value { @@ -1983,32 +2016,38 @@ impl RtDl1mk3GpsPosLlh2 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Pos_LLH_Longitude' + /// Returns the value of `GPS_Pos_LLH_Longitude`. /// /// - Min: -180 /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.0000001 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_llh_longitude(&self) -> f32 { - self.gps_pos_llh_longitude_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.0000001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_LLH_Longitude' + /// Returns the raw value of `GPS_Pos_LLH_Longitude`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.0000001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_llh_longitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.0000001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_llh_longitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `GPS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_gps_pos_llh_longitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'GPS_Pos_LLH_Longitude' + /// Sets the value of `GPS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_gps_pos_llh_longitude(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -2092,7 +2131,7 @@ impl RtDl1mk3GpsPosLlh1 { pub const ACCURACY_GPS_POS_LLH_LONGITUDE_MAX: u8 = 255_u8; pub const ACCURACY_GPS_POS_LLH_LATITUDE_MIN: u8 = 0_u8; pub const ACCURACY_GPS_POS_LLH_LATITUDE_MAX: u8 = 255_u8; - /// Construct new 'RT_DL1MK3_GPS_Pos_LLH_1' from values + /// Constructs a new `RT_DL1MK3_GPS_Pos_LLH_1` message from values. pub fn new( gps_pos_llh_latitude: f32, accuracy_gps_pos_llh_altitude: u8, @@ -2112,36 +2151,42 @@ impl RtDl1mk3GpsPosLlh1 { res.set_validity_gps_pos_llh_latitude(validity_gps_pos_llh_latitude)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_GPS_Pos_LLH_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Pos_LLH_Latitude' + /// Returns the value of `GPS_Pos_LLH_Latitude`. /// /// - Min: -90 /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.0000001 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_llh_latitude(&self) -> f32 { - self.gps_pos_llh_latitude_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.0000001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_LLH_Latitude' + /// Returns the raw value of `GPS_Pos_LLH_Latitude`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.0000001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_llh_latitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.0000001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_llh_latitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `GPS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_gps_pos_llh_latitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'GPS_Pos_LLH_Latitude' + /// Sets the value of `GPS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_gps_pos_llh_latitude(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -2156,33 +2201,36 @@ impl RtDl1mk3GpsPosLlh1 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_LLH_Altitude' + /// Returns the value of `Accuracy_GPS_Pos_LLH_Altitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_llh_altitude(&self) -> u8 { - self.accuracy_gps_pos_llh_altitude_raw() + self.accuracy_gps_pos_llh_altitude_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_LLH_Altitude' + /// Returns the raw value of `Accuracy_GPS_Pos_LLH_Altitude`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_llh_altitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_llh_altitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'Accuracy_GPS_Pos_LLH_Altitude' + /// Sets the raw value of `Accuracy_GPS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_accuracy_gps_pos_llh_altitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `Accuracy_GPS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_accuracy_gps_pos_llh_altitude( &mut self, @@ -2193,43 +2241,39 @@ impl RtDl1mk3GpsPosLlh1 { message_id: RtDl1mk3GpsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3GpsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_LLH_Longitude' + /// Returns the value of `Accuracy_GPS_Pos_LLH_Longitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_llh_longitude(&self) -> u8 { - self.accuracy_gps_pos_llh_longitude_raw() + self.accuracy_gps_pos_llh_longitude_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_LLH_Longitude' + /// Returns the raw value of `Accuracy_GPS_Pos_LLH_Longitude`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_llh_longitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_llh_longitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_accuracy_gps_pos_llh_longitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Accuracy_GPS_Pos_LLH_Longitude' + /// Sets the value of `Accuracy_GPS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_accuracy_gps_pos_llh_longitude( &mut self, @@ -2240,43 +2284,39 @@ impl RtDl1mk3GpsPosLlh1 { message_id: RtDl1mk3GpsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3GpsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_LLH_Latitude' + /// Returns the value of `Accuracy_GPS_Pos_LLH_Latitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_llh_latitude(&self) -> u8 { - self.accuracy_gps_pos_llh_latitude_raw() + self.accuracy_gps_pos_llh_latitude_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_LLH_Latitude' + /// Returns the raw value of `Accuracy_GPS_Pos_LLH_Latitude`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_llh_latitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_llh_latitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_accuracy_gps_pos_llh_latitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Pos_LLH_Latitude' + /// Sets the value of `Accuracy_GPS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_accuracy_gps_pos_llh_latitude( &mut self, @@ -2287,42 +2327,39 @@ impl RtDl1mk3GpsPosLlh1 { message_id: RtDl1mk3GpsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3GpsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_LLH_Altitude' + /// Returns the value of `Validity_GPS_Pos_LLH_Altitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_llh_altitude(&self) -> bool { - self.validity_gps_pos_llh_altitude_raw() + self.validity_gps_pos_llh_altitude_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_LLH_Altitude' + /// Returns the raw value of `Validity_GPS_Pos_LLH_Altitude`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_llh_altitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_gps_pos_llh_altitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_validity_gps_pos_llh_altitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_GPS_Pos_LLH_Altitude' + /// Sets the value of `Validity_GPS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_validity_gps_pos_llh_altitude( &mut self, @@ -2332,32 +2369,36 @@ impl RtDl1mk3GpsPosLlh1 { self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_LLH_Longitude' + /// Returns the value of `Validity_GPS_Pos_LLH_Longitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_llh_longitude(&self) -> bool { - self.validity_gps_pos_llh_longitude_raw() + self.validity_gps_pos_llh_longitude_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_LLH_Longitude' + /// Returns the raw value of `Validity_GPS_Pos_LLH_Longitude`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_llh_longitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_pos_llh_longitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_validity_gps_pos_llh_longitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Pos_LLH_Longitude' + /// Sets the value of `Validity_GPS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_validity_gps_pos_llh_longitude( &mut self, @@ -2367,32 +2408,36 @@ impl RtDl1mk3GpsPosLlh1 { self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_LLH_Latitude' + /// Returns the value of `Validity_GPS_Pos_LLH_Latitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_llh_latitude(&self) -> bool { - self.validity_gps_pos_llh_latitude_raw() + self.validity_gps_pos_llh_latitude_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_LLH_Latitude' + /// Returns the raw value of `Validity_GPS_Pos_LLH_Latitude`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_llh_latitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_pos_llh_latitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_validity_gps_pos_llh_latitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Pos_LLH_Latitude' + /// Sets the value of `Validity_GPS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_validity_gps_pos_llh_latitude( &mut self, @@ -2469,7 +2514,7 @@ impl RtDl1mk3GpsSpeed { pub const GPS_SPEED_2D_MAX: f32 = 1675_f32; pub const ACCURACY_GPS_SPEED_MIN: u8 = 0_u8; pub const ACCURACY_GPS_SPEED_MAX: u8 = 255_u8; - /// Construct new 'RT_DL1MK3_GPS_Speed' from values + /// Constructs a new `RT_DL1MK3_GPS_Speed` message from values. pub fn new( gps_speed_3d: f32, gps_speed_2d: f32, @@ -2485,11 +2530,11 @@ impl RtDl1mk3GpsSpeed { res.set_validity_gps_speed_2d(validity_gps_speed_2d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_GPS_Speed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Speed_3D' + /// Returns the value of `GPS_Speed_3D`. /// /// This is GPS scalar 3D speed - scalar speed with the local Z axis component included. /// @@ -2497,26 +2542,31 @@ impl RtDl1mk3GpsSpeed { /// - Max: 1675 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_speed_3d(&self) -> f32 { - self.gps_speed_3d_raw() + let signal = self.raw.view_bits::()[40..64].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Speed_3D' + /// Returns the raw value of `GPS_Speed_3D`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_speed_3d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_speed_3d_raw_val(&self) -> u32 { + self.raw.view_bits::()[40..64].load_le::() } - /// Set value of 'GPS_Speed_3D' + /// Sets the raw value of `GPS_Speed_3D`. + #[inline(always)] + pub fn set_gps_speed_3d_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[40..64].store_le(value); + } + /// Sets the value of `GPS_Speed_3D`. #[inline(always)] pub fn set_gps_speed_3d(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 1675_f32 < value { @@ -2530,7 +2580,7 @@ impl RtDl1mk3GpsSpeed { self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Speed_2D' + /// Returns the value of `GPS_Speed_2D`. /// /// This is GPS scalar 2D speed - scalar speed with no local Z axis component included. /// @@ -2538,26 +2588,31 @@ impl RtDl1mk3GpsSpeed { /// - Max: 1675 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_speed_2d(&self) -> f32 { - self.gps_speed_2d_raw() + let signal = self.raw.view_bits::()[16..40].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Speed_2D' + /// Returns the raw value of `GPS_Speed_2D`. /// /// - Start bit: 16 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_speed_2d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..40].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_speed_2d_raw_val(&self) -> u32 { + self.raw.view_bits::()[16..40].load_le::() + } + /// Sets the raw value of `GPS_Speed_2D`. + #[inline(always)] + pub fn set_gps_speed_2d_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[16..40].store_le(value); } - /// Set value of 'GPS_Speed_2D' + /// Sets the value of `GPS_Speed_2D`. #[inline(always)] pub fn set_gps_speed_2d(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 1675_f32 < value { @@ -2571,33 +2626,36 @@ impl RtDl1mk3GpsSpeed { self.raw.view_bits_mut::()[16..40].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Speed' + /// Returns the value of `Accuracy_GPS_Speed`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_speed(&self) -> u8 { - self.accuracy_gps_speed_raw() + self.accuracy_gps_speed_raw_val() } - /// Get raw value of 'Accuracy_GPS_Speed' + /// Returns the raw value of `Accuracy_GPS_Speed`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_speed_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Speed`. + #[inline(always)] + pub fn set_accuracy_gps_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Speed' + /// Sets the value of `Accuracy_GPS_Speed`. #[inline(always)] pub fn set_accuracy_gps_speed(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -2605,74 +2663,75 @@ impl RtDl1mk3GpsSpeed { message_id: RtDl1mk3GpsSpeed::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3GpsSpeed::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Speed_3D' + /// Returns the value of `Validity_GPS_Speed_3D`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_speed_3d(&self) -> bool { - self.validity_gps_speed_3d_raw() + self.validity_gps_speed_3d_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Speed_3D' + /// Returns the raw value of `Validity_GPS_Speed_3D`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_speed_3d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_speed_3d_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Speed_3D`. + #[inline(always)] + pub fn set_validity_gps_speed_3d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Speed_3D' + /// Sets the value of `Validity_GPS_Speed_3D`. #[inline(always)] pub fn set_validity_gps_speed_3d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Speed_2D' + /// Returns the value of `Validity_GPS_Speed_2D`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_speed_2d(&self) -> bool { - self.validity_gps_speed_2d_raw() + self.validity_gps_speed_2d_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Speed_2D' + /// Returns the raw value of `Validity_GPS_Speed_2D`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_speed_2d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_speed_2d_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Speed_2D`. + #[inline(always)] + pub fn set_validity_gps_speed_2d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Speed_2D' + /// Sets the value of `Validity_GPS_Speed_2D`. #[inline(always)] pub fn set_validity_gps_speed_2d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -2742,42 +2801,48 @@ impl RtIrTempTemp7 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_7_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_7_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_7' from values + /// Constructs a new `RT_IRTemp_Temp_7` message from values. pub fn new(ir_temperature_7: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_7(ir_temperature_7)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_7` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_7' + /// Returns the value of `IR_Temperature_7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_7(&self) -> f32 { - self.ir_temperature_7_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_7' + /// Returns the raw value of `IR_Temperature_7`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_7_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_7_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `IR_Temperature_7`. + #[inline(always)] + pub fn set_ir_temperature_7_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'IR_Temperature_7' + /// Sets the value of `IR_Temperature_7`. #[inline(always)] pub fn set_ir_temperature_7(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -2861,7 +2926,7 @@ impl RtIrTempTempRr2 { pub const IR_TEMPERATURE_30_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_29_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_29_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_RR_2' from values + /// Constructs a new `RT_IRTemp_Temp_RR_2` message from values. pub fn new( ir_temperature_32: f32, ir_temperature_31: f32, @@ -2875,36 +2940,42 @@ impl RtIrTempTempRr2 { res.set_ir_temperature_29(ir_temperature_29)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_RR_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_32' + /// Returns the value of `IR_Temperature_32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_32(&self) -> f32 { - self.ir_temperature_32_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_32' + /// Returns the raw value of `IR_Temperature_32`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_32_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_32_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `IR_Temperature_32`. + #[inline(always)] + pub fn set_ir_temperature_32_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'IR_Temperature_32' + /// Sets the value of `IR_Temperature_32`. #[inline(always)] pub fn set_ir_temperature_32(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -2919,32 +2990,38 @@ impl RtIrTempTempRr2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_31' + /// Returns the value of `IR_Temperature_31`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_31(&self) -> f32 { - self.ir_temperature_31_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_31' + /// Returns the raw value of `IR_Temperature_31`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_31_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_31_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `IR_Temperature_31`. + #[inline(always)] + pub fn set_ir_temperature_31_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'IR_Temperature_31' + /// Sets the value of `IR_Temperature_31`. #[inline(always)] pub fn set_ir_temperature_31(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -2959,32 +3036,38 @@ impl RtIrTempTempRr2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_30' + /// Returns the value of `IR_Temperature_30`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_30(&self) -> f32 { - self.ir_temperature_30_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_30' + /// Returns the raw value of `IR_Temperature_30`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_30_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_30_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `IR_Temperature_30`. + #[inline(always)] + pub fn set_ir_temperature_30_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'IR_Temperature_30' + /// Sets the value of `IR_Temperature_30`. #[inline(always)] pub fn set_ir_temperature_30(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -2999,32 +3082,38 @@ impl RtIrTempTempRr2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_29' + /// Returns the value of `IR_Temperature_29`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_29(&self) -> f32 { - self.ir_temperature_29_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_29' + /// Returns the raw value of `IR_Temperature_29`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_29_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_29_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `IR_Temperature_29`. + #[inline(always)] + pub fn set_ir_temperature_29_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'IR_Temperature_29' + /// Sets the value of `IR_Temperature_29`. #[inline(always)] pub fn set_ir_temperature_29(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3108,7 +3197,7 @@ impl RtIrTempTempRl2 { pub const IR_TEMPERATURE_22_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_21_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_21_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_RL_2' from values + /// Constructs a new `RT_IRTemp_Temp_RL_2` message from values. pub fn new( ir_temperature_24: f32, ir_temperature_23: f32, @@ -3122,36 +3211,42 @@ impl RtIrTempTempRl2 { res.set_ir_temperature_21(ir_temperature_21)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_RL_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_24' + /// Returns the value of `IR_Temperature_24`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_24(&self) -> f32 { - self.ir_temperature_24_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_24' + /// Returns the raw value of `IR_Temperature_24`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_24_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_24_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `IR_Temperature_24`. + #[inline(always)] + pub fn set_ir_temperature_24_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'IR_Temperature_24' + /// Sets the value of `IR_Temperature_24`. #[inline(always)] pub fn set_ir_temperature_24(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3166,32 +3261,38 @@ impl RtIrTempTempRl2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_23' + /// Returns the value of `IR_Temperature_23`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_23(&self) -> f32 { - self.ir_temperature_23_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_23' + /// Returns the raw value of `IR_Temperature_23`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_23_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_23_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `IR_Temperature_23`. + #[inline(always)] + pub fn set_ir_temperature_23_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'IR_Temperature_23' + /// Sets the value of `IR_Temperature_23`. #[inline(always)] pub fn set_ir_temperature_23(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3206,32 +3307,38 @@ impl RtIrTempTempRl2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_22' + /// Returns the value of `IR_Temperature_22`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_22(&self) -> f32 { - self.ir_temperature_22_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_22' + /// Returns the raw value of `IR_Temperature_22`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_22_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_22_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `IR_Temperature_22`. + #[inline(always)] + pub fn set_ir_temperature_22_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'IR_Temperature_22' + /// Sets the value of `IR_Temperature_22`. #[inline(always)] pub fn set_ir_temperature_22(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3246,32 +3353,38 @@ impl RtIrTempTempRl2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_21' + /// Returns the value of `IR_Temperature_21`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_21(&self) -> f32 { - self.ir_temperature_21_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_21' + /// Returns the raw value of `IR_Temperature_21`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_21_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_21_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `IR_Temperature_21`. + #[inline(always)] + pub fn set_ir_temperature_21_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'IR_Temperature_21' + /// Sets the value of `IR_Temperature_21`. #[inline(always)] pub fn set_ir_temperature_21(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3355,7 +3468,7 @@ impl RtIrTempTempFr2 { pub const IR_TEMPERATURE_14_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_13_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_13_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_FR_2' from values + /// Constructs a new `RT_IRTemp_Temp_FR_2` message from values. pub fn new( ir_temperature_16: f32, ir_temperature_15: f32, @@ -3369,36 +3482,42 @@ impl RtIrTempTempFr2 { res.set_ir_temperature_13(ir_temperature_13)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_FR_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_16' + /// Returns the value of `IR_Temperature_16`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_16(&self) -> f32 { - self.ir_temperature_16_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_16' + /// Returns the raw value of `IR_Temperature_16`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_16_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_16_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `IR_Temperature_16`. + #[inline(always)] + pub fn set_ir_temperature_16_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'IR_Temperature_16' + /// Sets the value of `IR_Temperature_16`. #[inline(always)] pub fn set_ir_temperature_16(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3413,32 +3532,38 @@ impl RtIrTempTempFr2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_15' + /// Returns the value of `IR_Temperature_15`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_15(&self) -> f32 { - self.ir_temperature_15_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_15' + /// Returns the raw value of `IR_Temperature_15`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_15_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_15_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `IR_Temperature_15`. + #[inline(always)] + pub fn set_ir_temperature_15_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'IR_Temperature_15' + /// Sets the value of `IR_Temperature_15`. #[inline(always)] pub fn set_ir_temperature_15(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3453,32 +3578,38 @@ impl RtIrTempTempFr2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_14' + /// Returns the value of `IR_Temperature_14`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_14(&self) -> f32 { - self.ir_temperature_14_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_14' + /// Returns the raw value of `IR_Temperature_14`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_14_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_14_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'IR_Temperature_14' + /// Sets the raw value of `IR_Temperature_14`. + #[inline(always)] + pub fn set_ir_temperature_14_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `IR_Temperature_14`. #[inline(always)] pub fn set_ir_temperature_14(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3493,32 +3624,38 @@ impl RtIrTempTempFr2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_13' + /// Returns the value of `IR_Temperature_13`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_13(&self) -> f32 { - self.ir_temperature_13_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_13' + /// Returns the raw value of `IR_Temperature_13`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_13_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_13_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_13' + /// Sets the raw value of `IR_Temperature_13`. + #[inline(always)] + pub fn set_ir_temperature_13_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_13`. #[inline(always)] pub fn set_ir_temperature_13(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3602,7 +3739,7 @@ impl RtIrTempTempFl2 { pub const IR_TEMPERATURE_6_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_5_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_5_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_FL_2' from values + /// Constructs a new `RT_IRTemp_Temp_FL_2` message from values. pub fn new( ir_temperature_8: f32, ir_temperature_7: f32, @@ -3616,36 +3753,42 @@ impl RtIrTempTempFl2 { res.set_ir_temperature_5(ir_temperature_5)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_FL_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_8' + /// Returns the value of `IR_Temperature_8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_8(&self) -> f32 { - self.ir_temperature_8_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_8' + /// Returns the raw value of `IR_Temperature_8`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_8_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_8_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `IR_Temperature_8`. + #[inline(always)] + pub fn set_ir_temperature_8_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'IR_Temperature_8' + /// Sets the value of `IR_Temperature_8`. #[inline(always)] pub fn set_ir_temperature_8(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3660,32 +3803,38 @@ impl RtIrTempTempFl2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_7' + /// Returns the value of `IR_Temperature_7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_7(&self) -> f32 { - self.ir_temperature_7_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_7' + /// Returns the raw value of `IR_Temperature_7`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_7_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_7_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `IR_Temperature_7`. + #[inline(always)] + pub fn set_ir_temperature_7_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'IR_Temperature_7' + /// Sets the value of `IR_Temperature_7`. #[inline(always)] pub fn set_ir_temperature_7(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3700,32 +3849,38 @@ impl RtIrTempTempFl2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_6' + /// Returns the value of `IR_Temperature_6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_6(&self) -> f32 { - self.ir_temperature_6_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_6' + /// Returns the raw value of `IR_Temperature_6`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_6_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_6_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `IR_Temperature_6`. + #[inline(always)] + pub fn set_ir_temperature_6_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'IR_Temperature_6' + /// Sets the value of `IR_Temperature_6`. #[inline(always)] pub fn set_ir_temperature_6(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3740,32 +3895,38 @@ impl RtIrTempTempFl2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_5' + /// Returns the value of `IR_Temperature_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_5(&self) -> f32 { - self.ir_temperature_5_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_5' + /// Returns the raw value of `IR_Temperature_5`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_5_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_5_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_5' + /// Sets the raw value of `IR_Temperature_5`. + #[inline(always)] + pub fn set_ir_temperature_5_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_5`. #[inline(always)] pub fn set_ir_temperature_5(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3849,7 +4010,7 @@ impl RtIrTempTempRr1 { pub const IR_TEMPERATURE_26_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_25_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_25_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_RR_1' from values + /// Constructs a new `RT_IRTemp_Temp_RR_1` message from values. pub fn new( ir_temperature_28: f32, ir_temperature_27: f32, @@ -3863,36 +4024,42 @@ impl RtIrTempTempRr1 { res.set_ir_temperature_25(ir_temperature_25)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_RR_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_28' + /// Returns the value of `IR_Temperature_28`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_28(&self) -> f32 { - self.ir_temperature_28_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_28' + /// Returns the raw value of `IR_Temperature_28`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_28_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_28_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() } - /// Set value of 'IR_Temperature_28' + /// Sets the raw value of `IR_Temperature_28`. + #[inline(always)] + pub fn set_ir_temperature_28_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); + } + /// Sets the value of `IR_Temperature_28`. #[inline(always)] pub fn set_ir_temperature_28(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3907,32 +4074,38 @@ impl RtIrTempTempRr1 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_27' + /// Returns the value of `IR_Temperature_27`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_27(&self) -> f32 { - self.ir_temperature_27_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_27' + /// Returns the raw value of `IR_Temperature_27`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_27_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_27_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'IR_Temperature_27' + /// Sets the raw value of `IR_Temperature_27`. + #[inline(always)] + pub fn set_ir_temperature_27_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `IR_Temperature_27`. #[inline(always)] pub fn set_ir_temperature_27(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3947,32 +4120,38 @@ impl RtIrTempTempRr1 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_26' + /// Returns the value of `IR_Temperature_26`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_26(&self) -> f32 { - self.ir_temperature_26_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_26' + /// Returns the raw value of `IR_Temperature_26`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_26_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_26_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'IR_Temperature_26' + /// Sets the raw value of `IR_Temperature_26`. + #[inline(always)] + pub fn set_ir_temperature_26_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `IR_Temperature_26`. #[inline(always)] pub fn set_ir_temperature_26(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -3987,32 +4166,38 @@ impl RtIrTempTempRr1 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_25' + /// Returns the value of `IR_Temperature_25`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_25(&self) -> f32 { - self.ir_temperature_25_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_25' + /// Returns the raw value of `IR_Temperature_25`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_25_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_25_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `IR_Temperature_25`. + #[inline(always)] + pub fn set_ir_temperature_25_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'IR_Temperature_25' + /// Sets the value of `IR_Temperature_25`. #[inline(always)] pub fn set_ir_temperature_25(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4096,7 +4281,7 @@ impl RtIrTempTempRl1 { pub const IR_TEMPERATURE_18_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_17_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_17_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_RL_1' from values + /// Constructs a new `RT_IRTemp_Temp_RL_1` message from values. pub fn new( ir_temperature_20: f32, ir_temperature_19: f32, @@ -4110,36 +4295,42 @@ impl RtIrTempTempRl1 { res.set_ir_temperature_17(ir_temperature_17)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_RL_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_20' + /// Returns the value of `IR_Temperature_20`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_20(&self) -> f32 { - self.ir_temperature_20_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_20' + /// Returns the raw value of `IR_Temperature_20`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_20_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_20_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `IR_Temperature_20`. + #[inline(always)] + pub fn set_ir_temperature_20_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'IR_Temperature_20' + /// Sets the value of `IR_Temperature_20`. #[inline(always)] pub fn set_ir_temperature_20(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4154,32 +4345,38 @@ impl RtIrTempTempRl1 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_19' + /// Returns the value of `IR_Temperature_19`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_19(&self) -> f32 { - self.ir_temperature_19_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_19' + /// Returns the raw value of `IR_Temperature_19`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_19_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_19_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'IR_Temperature_19' + /// Sets the raw value of `IR_Temperature_19`. + #[inline(always)] + pub fn set_ir_temperature_19_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `IR_Temperature_19`. #[inline(always)] pub fn set_ir_temperature_19(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4194,32 +4391,38 @@ impl RtIrTempTempRl1 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_18' + /// Returns the value of `IR_Temperature_18`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_18(&self) -> f32 { - self.ir_temperature_18_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_18' + /// Returns the raw value of `IR_Temperature_18`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_18_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_18_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'IR_Temperature_18' + /// Sets the raw value of `IR_Temperature_18`. + #[inline(always)] + pub fn set_ir_temperature_18_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `IR_Temperature_18`. #[inline(always)] pub fn set_ir_temperature_18(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4234,32 +4437,38 @@ impl RtIrTempTempRl1 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_17' + /// Returns the value of `IR_Temperature_17`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_17(&self) -> f32 { - self.ir_temperature_17_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_17' + /// Returns the raw value of `IR_Temperature_17`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_17_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_17_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `IR_Temperature_17`. + #[inline(always)] + pub fn set_ir_temperature_17_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'IR_Temperature_17' + /// Sets the value of `IR_Temperature_17`. #[inline(always)] pub fn set_ir_temperature_17(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4343,7 +4552,7 @@ impl RtIrTempTempFr1 { pub const IR_TEMPERATURE_10_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_9_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_9_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_FR_1' from values + /// Constructs a new `RT_IRTemp_Temp_FR_1` message from values. pub fn new( ir_temperature_12: f32, ir_temperature_11: f32, @@ -4357,36 +4566,42 @@ impl RtIrTempTempFr1 { res.set_ir_temperature_9(ir_temperature_9)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_FR_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_12' + /// Returns the value of `IR_Temperature_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_12(&self) -> f32 { - self.ir_temperature_12_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_12' + /// Returns the raw value of `IR_Temperature_12`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_12_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_12_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() } - /// Set value of 'IR_Temperature_12' + /// Sets the raw value of `IR_Temperature_12`. + #[inline(always)] + pub fn set_ir_temperature_12_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); + } + /// Sets the value of `IR_Temperature_12`. #[inline(always)] pub fn set_ir_temperature_12(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4401,32 +4616,38 @@ impl RtIrTempTempFr1 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_11' + /// Returns the value of `IR_Temperature_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_11(&self) -> f32 { - self.ir_temperature_11_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_11' + /// Returns the raw value of `IR_Temperature_11`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_11_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_11_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `IR_Temperature_11`. + #[inline(always)] + pub fn set_ir_temperature_11_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'IR_Temperature_11' + /// Sets the value of `IR_Temperature_11`. #[inline(always)] pub fn set_ir_temperature_11(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4441,32 +4662,38 @@ impl RtIrTempTempFr1 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_10' + /// Returns the value of `IR_Temperature_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_10(&self) -> f32 { - self.ir_temperature_10_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_10' + /// Returns the raw value of `IR_Temperature_10`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_10_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_10_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `IR_Temperature_10`. + #[inline(always)] + pub fn set_ir_temperature_10_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'IR_Temperature_10' + /// Sets the value of `IR_Temperature_10`. #[inline(always)] pub fn set_ir_temperature_10(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4481,32 +4708,38 @@ impl RtIrTempTempFr1 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_9' + /// Returns the value of `IR_Temperature_9`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_9(&self) -> f32 { - self.ir_temperature_9_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_9' + /// Returns the raw value of `IR_Temperature_9`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_9_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_9_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_9' + /// Sets the raw value of `IR_Temperature_9`. + #[inline(always)] + pub fn set_ir_temperature_9_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_9`. #[inline(always)] pub fn set_ir_temperature_9(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4590,7 +4823,7 @@ impl RtIrTempTempFl1 { pub const IR_TEMPERATURE_2_MAX: f32 = 0_f32; pub const IR_TEMPERATURE_1_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_1_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_FL_1' from values + /// Constructs a new `RT_IRTemp_Temp_FL_1` message from values. pub fn new( ir_temperature_4: f32, ir_temperature_3: f32, @@ -4604,36 +4837,42 @@ impl RtIrTempTempFl1 { res.set_ir_temperature_1(ir_temperature_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_FL_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'IR_Temperature_4' + /// Returns the value of `IR_Temperature_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_4(&self) -> f32 { - self.ir_temperature_4_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_4' + /// Returns the raw value of `IR_Temperature_4`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_4_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_4_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() } - /// Set value of 'IR_Temperature_4' + /// Sets the raw value of `IR_Temperature_4`. + #[inline(always)] + pub fn set_ir_temperature_4_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); + } + /// Sets the value of `IR_Temperature_4`. #[inline(always)] pub fn set_ir_temperature_4(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4648,32 +4887,38 @@ impl RtIrTempTempFl1 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_3' + /// Returns the value of `IR_Temperature_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_3(&self) -> f32 { - self.ir_temperature_3_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_3' + /// Returns the raw value of `IR_Temperature_3`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_3_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `IR_Temperature_3`. + #[inline(always)] + pub fn set_ir_temperature_3_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'IR_Temperature_3' + /// Sets the value of `IR_Temperature_3`. #[inline(always)] pub fn set_ir_temperature_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4688,32 +4933,38 @@ impl RtIrTempTempFl1 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_2' + /// Returns the value of `IR_Temperature_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_2(&self) -> f32 { - self.ir_temperature_2_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_2' + /// Returns the raw value of `IR_Temperature_2`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_2_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'IR_Temperature_2' + /// Sets the raw value of `IR_Temperature_2`. + #[inline(always)] + pub fn set_ir_temperature_2_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `IR_Temperature_2`. #[inline(always)] pub fn set_ir_temperature_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4728,32 +4979,38 @@ impl RtIrTempTempFl1 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'IR_Temperature_1' + /// Returns the value of `IR_Temperature_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_1(&self) -> f32 { - self.ir_temperature_1_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_1' + /// Returns the raw value of `IR_Temperature_1`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_1_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_1' + /// Sets the raw value of `IR_Temperature_1`. + #[inline(always)] + pub fn set_ir_temperature_1_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_1`. #[inline(always)] pub fn set_ir_temperature_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4831,42 +5088,48 @@ impl RtIrTempTemp32 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_32_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_32_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_32' from values + /// Constructs a new `RT_IRTemp_Temp_32` message from values. pub fn new(ir_temperature_32: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_32(ir_temperature_32)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_32` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_32' + /// Returns the value of `IR_Temperature_32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_32(&self) -> f32 { - self.ir_temperature_32_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_32' + /// Returns the raw value of `IR_Temperature_32`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_32_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_32_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_32' + /// Sets the raw value of `IR_Temperature_32`. + #[inline(always)] + pub fn set_ir_temperature_32_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_32`. #[inline(always)] pub fn set_ir_temperature_32(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -4944,42 +5207,48 @@ impl RtIrTempTemp31 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_31_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_31_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_31' from values + /// Constructs a new `RT_IRTemp_Temp_31` message from values. pub fn new(ir_temperature_31: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_31(ir_temperature_31)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_31` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_31' + /// Returns the value of `IR_Temperature_31`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_31(&self) -> f32 { - self.ir_temperature_31_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_31' + /// Returns the raw value of `IR_Temperature_31`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_31_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_31_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_31' + /// Sets the raw value of `IR_Temperature_31`. + #[inline(always)] + pub fn set_ir_temperature_31_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_31`. #[inline(always)] pub fn set_ir_temperature_31(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5057,42 +5326,48 @@ impl RtIrTempTemp30 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_30_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_30_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_30' from values + /// Constructs a new `RT_IRTemp_Temp_30` message from values. pub fn new(ir_temperature_30: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_30(ir_temperature_30)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_30` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_30' + /// Returns the value of `IR_Temperature_30`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_30(&self) -> f32 { - self.ir_temperature_30_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_30' + /// Returns the raw value of `IR_Temperature_30`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_30_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_30_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_30' + /// Sets the raw value of `IR_Temperature_30`. + #[inline(always)] + pub fn set_ir_temperature_30_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_30`. #[inline(always)] pub fn set_ir_temperature_30(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5170,42 +5445,48 @@ impl RtIrTempTemp29 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_29_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_29_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_29' from values + /// Constructs a new `RT_IRTemp_Temp_29` message from values. pub fn new(ir_temperature_29: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_29(ir_temperature_29)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_29` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_29' + /// Returns the value of `IR_Temperature_29`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_29(&self) -> f32 { - self.ir_temperature_29_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_29' + /// Returns the raw value of `IR_Temperature_29`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_29_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_29_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_29' + /// Sets the raw value of `IR_Temperature_29`. + #[inline(always)] + pub fn set_ir_temperature_29_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_29`. #[inline(always)] pub fn set_ir_temperature_29(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5283,42 +5564,48 @@ impl RtIrTempTemp28 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_28_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_28_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_28' from values + /// Constructs a new `RT_IRTemp_Temp_28` message from values. pub fn new(ir_temperature_28: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_28(ir_temperature_28)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_28` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_28' + /// Returns the value of `IR_Temperature_28`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_28(&self) -> f32 { - self.ir_temperature_28_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_28' + /// Returns the raw value of `IR_Temperature_28`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_28_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_28_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_28' + /// Sets the raw value of `IR_Temperature_28`. + #[inline(always)] + pub fn set_ir_temperature_28_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_28`. #[inline(always)] pub fn set_ir_temperature_28(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5396,42 +5683,48 @@ impl RtIrTempTemp27 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_27_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_27_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_27' from values + /// Constructs a new `RT_IRTemp_Temp_27` message from values. pub fn new(ir_temperature_27: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_27(ir_temperature_27)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_27` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_27' + /// Returns the value of `IR_Temperature_27`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_27(&self) -> f32 { - self.ir_temperature_27_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_27' + /// Returns the raw value of `IR_Temperature_27`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_27_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_27_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_27' + /// Sets the raw value of `IR_Temperature_27`. + #[inline(always)] + pub fn set_ir_temperature_27_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_27`. #[inline(always)] pub fn set_ir_temperature_27(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5509,42 +5802,48 @@ impl RtIrTempTemp26 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_26_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_26_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_26' from values + /// Constructs a new `RT_IRTemp_Temp_26` message from values. pub fn new(ir_temperature_26: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_26(ir_temperature_26)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_26` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_26' + /// Returns the value of `IR_Temperature_26`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_26(&self) -> f32 { - self.ir_temperature_26_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_26' + /// Returns the raw value of `IR_Temperature_26`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_26_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_26_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_26' + /// Sets the raw value of `IR_Temperature_26`. + #[inline(always)] + pub fn set_ir_temperature_26_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_26`. #[inline(always)] pub fn set_ir_temperature_26(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5622,42 +5921,48 @@ impl RtIrTempTemp25 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_25_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_25_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_25' from values + /// Constructs a new `RT_IRTemp_Temp_25` message from values. pub fn new(ir_temperature_25: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_25(ir_temperature_25)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_25` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_25' + /// Returns the value of `IR_Temperature_25`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_25(&self) -> f32 { - self.ir_temperature_25_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_25' + /// Returns the raw value of `IR_Temperature_25`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_25_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_25_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_25' + /// Sets the raw value of `IR_Temperature_25`. + #[inline(always)] + pub fn set_ir_temperature_25_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_25`. #[inline(always)] pub fn set_ir_temperature_25(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5735,42 +6040,48 @@ impl RtIrTempTemp24 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_24_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_24_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_24' from values + /// Constructs a new `RT_IRTemp_Temp_24` message from values. pub fn new(ir_temperature_24: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_24(ir_temperature_24)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_24` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_24' + /// Returns the value of `IR_Temperature_24`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_24(&self) -> f32 { - self.ir_temperature_24_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_24' + /// Returns the raw value of `IR_Temperature_24`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_24_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_24_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_24' + /// Sets the raw value of `IR_Temperature_24`. + #[inline(always)] + pub fn set_ir_temperature_24_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_24`. #[inline(always)] pub fn set_ir_temperature_24(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5848,42 +6159,48 @@ impl RtIrTempTemp22 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_22_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_22_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_22' from values + /// Constructs a new `RT_IRTemp_Temp_22` message from values. pub fn new(ir_temperature_22: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_22(ir_temperature_22)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_22` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_22' + /// Returns the value of `IR_Temperature_22`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_22(&self) -> f32 { - self.ir_temperature_22_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_22' + /// Returns the raw value of `IR_Temperature_22`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_22_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_22_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_22' + /// Sets the raw value of `IR_Temperature_22`. + #[inline(always)] + pub fn set_ir_temperature_22_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_22`. #[inline(always)] pub fn set_ir_temperature_22(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -5961,42 +6278,48 @@ impl RtIrTempTemp23 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_23_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_23_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_23' from values + /// Constructs a new `RT_IRTemp_Temp_23` message from values. pub fn new(ir_temperature_23: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_23(ir_temperature_23)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_23` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_23' + /// Returns the value of `IR_Temperature_23`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_23(&self) -> f32 { - self.ir_temperature_23_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_23' + /// Returns the raw value of `IR_Temperature_23`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_23_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_23_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_23' + /// Sets the raw value of `IR_Temperature_23`. + #[inline(always)] + pub fn set_ir_temperature_23_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_23`. #[inline(always)] pub fn set_ir_temperature_23(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6074,42 +6397,48 @@ impl RtIrTempTemp21 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_21_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_21_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_21' from values + /// Constructs a new `RT_IRTemp_Temp_21` message from values. pub fn new(ir_temperature_21: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_21(ir_temperature_21)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_21` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_21' + /// Returns the value of `IR_Temperature_21`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_21(&self) -> f32 { - self.ir_temperature_21_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_21' + /// Returns the raw value of `IR_Temperature_21`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_21_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_21_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_21' + /// Sets the raw value of `IR_Temperature_21`. + #[inline(always)] + pub fn set_ir_temperature_21_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_21`. #[inline(always)] pub fn set_ir_temperature_21(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6187,42 +6516,48 @@ impl RtIrTempTemp20 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_20_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_20_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_20' from values + /// Constructs a new `RT_IRTemp_Temp_20` message from values. pub fn new(ir_temperature_20: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_20(ir_temperature_20)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_20` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_20' + /// Returns the value of `IR_Temperature_20`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_20(&self) -> f32 { - self.ir_temperature_20_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_20' + /// Returns the raw value of `IR_Temperature_20`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_20_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_20_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_20' + /// Sets the raw value of `IR_Temperature_20`. + #[inline(always)] + pub fn set_ir_temperature_20_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_20`. #[inline(always)] pub fn set_ir_temperature_20(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6300,42 +6635,48 @@ impl RtIrTempTemp19 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_19_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_19_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_19' from values + /// Constructs a new `RT_IRTemp_Temp_19` message from values. pub fn new(ir_temperature_19: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_19(ir_temperature_19)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_19` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_19' + /// Returns the value of `IR_Temperature_19`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_19(&self) -> f32 { - self.ir_temperature_19_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_19' + /// Returns the raw value of `IR_Temperature_19`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_19_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_19_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_19' + /// Sets the raw value of `IR_Temperature_19`. + #[inline(always)] + pub fn set_ir_temperature_19_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_19`. #[inline(always)] pub fn set_ir_temperature_19(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6413,42 +6754,48 @@ impl RtIrTempTemp18 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_18_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_18_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_18' from values + /// Constructs a new `RT_IRTemp_Temp_18` message from values. pub fn new(ir_temperature_18: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_18(ir_temperature_18)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_18` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_18' + /// Returns the value of `IR_Temperature_18`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_18(&self) -> f32 { - self.ir_temperature_18_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_18' + /// Returns the raw value of `IR_Temperature_18`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_18_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_18_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_18' + /// Sets the raw value of `IR_Temperature_18`. + #[inline(always)] + pub fn set_ir_temperature_18_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_18`. #[inline(always)] pub fn set_ir_temperature_18(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6526,42 +6873,48 @@ impl RtIrTempTemp16 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_16_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_16_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_16' from values + /// Constructs a new `RT_IRTemp_Temp_16` message from values. pub fn new(ir_temperature_16: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_16(ir_temperature_16)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_16` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_16' + /// Returns the value of `IR_Temperature_16`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_16(&self) -> f32 { - self.ir_temperature_16_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_16' + /// Returns the raw value of `IR_Temperature_16`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_16_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_16_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_16' + /// Sets the raw value of `IR_Temperature_16`. + #[inline(always)] + pub fn set_ir_temperature_16_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_16`. #[inline(always)] pub fn set_ir_temperature_16(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6639,42 +6992,48 @@ impl RtIrTempTemp15 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_15_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_15_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_15' from values + /// Constructs a new `RT_IRTemp_Temp_15` message from values. pub fn new(ir_temperature_15: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_15(ir_temperature_15)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_15` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_15' + /// Returns the value of `IR_Temperature_15`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_15(&self) -> f32 { - self.ir_temperature_15_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_15' + /// Returns the raw value of `IR_Temperature_15`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_15_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_15_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_15' + /// Sets the raw value of `IR_Temperature_15`. + #[inline(always)] + pub fn set_ir_temperature_15_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_15`. #[inline(always)] pub fn set_ir_temperature_15(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6752,42 +7111,48 @@ impl RtIrTempTemp14 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_14_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_14_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_14' from values + /// Constructs a new `RT_IRTemp_Temp_14` message from values. pub fn new(ir_temperature_14: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_14(ir_temperature_14)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_14` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_14' + /// Returns the value of `IR_Temperature_14`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_14(&self) -> f32 { - self.ir_temperature_14_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_14' + /// Returns the raw value of `IR_Temperature_14`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_14_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_14_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_14' + /// Sets the raw value of `IR_Temperature_14`. + #[inline(always)] + pub fn set_ir_temperature_14_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_14`. #[inline(always)] pub fn set_ir_temperature_14(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6865,42 +7230,48 @@ impl RtIrTempTemp13 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_13_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_13_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_13' from values + /// Constructs a new `RT_IRTemp_Temp_13` message from values. pub fn new(ir_temperature_13: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_13(ir_temperature_13)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_13` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_13' + /// Returns the value of `IR_Temperature_13`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_13(&self) -> f32 { - self.ir_temperature_13_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_13' + /// Returns the raw value of `IR_Temperature_13`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_13_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_13_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_13' + /// Sets the raw value of `IR_Temperature_13`. + #[inline(always)] + pub fn set_ir_temperature_13_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_13`. #[inline(always)] pub fn set_ir_temperature_13(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -6978,42 +7349,48 @@ impl RtIrTempTemp12 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_12_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_12_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_12' from values + /// Constructs a new `RT_IRTemp_Temp_12` message from values. pub fn new(ir_temperature_12: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_12(ir_temperature_12)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_12` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_12' + /// Returns the value of `IR_Temperature_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_12(&self) -> f32 { - self.ir_temperature_12_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_12' + /// Returns the raw value of `IR_Temperature_12`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_12_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_12_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_12' + /// Sets the raw value of `IR_Temperature_12`. + #[inline(always)] + pub fn set_ir_temperature_12_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_12`. #[inline(always)] pub fn set_ir_temperature_12(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7091,42 +7468,48 @@ impl RtIrTempTemp11 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_11_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_11_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_11' from values + /// Constructs a new `RT_IRTemp_Temp_11` message from values. pub fn new(ir_temperature_11: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_11(ir_temperature_11)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_11` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_11' + /// Returns the value of `IR_Temperature_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_11(&self) -> f32 { - self.ir_temperature_11_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_11' + /// Returns the raw value of `IR_Temperature_11`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_11_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_11_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_11' + /// Sets the raw value of `IR_Temperature_11`. + #[inline(always)] + pub fn set_ir_temperature_11_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_11`. #[inline(always)] pub fn set_ir_temperature_11(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7204,42 +7587,48 @@ impl RtIrTempTemp10 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_10_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_10_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_10' from values + /// Constructs a new `RT_IRTemp_Temp_10` message from values. pub fn new(ir_temperature_10: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_10(ir_temperature_10)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_10` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_10' + /// Returns the value of `IR_Temperature_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_10(&self) -> f32 { - self.ir_temperature_10_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_10' + /// Returns the raw value of `IR_Temperature_10`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_10_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_10_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_10' + /// Sets the raw value of `IR_Temperature_10`. + #[inline(always)] + pub fn set_ir_temperature_10_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_10`. #[inline(always)] pub fn set_ir_temperature_10(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7317,42 +7706,48 @@ impl RtIrTempTemp8 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_8_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_8_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_8' from values + /// Constructs a new `RT_IRTemp_Temp_8` message from values. pub fn new(ir_temperature_8: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_8(ir_temperature_8)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_8` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_8' + /// Returns the value of `IR_Temperature_8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_8(&self) -> f32 { - self.ir_temperature_8_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_8' + /// Returns the raw value of `IR_Temperature_8`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_8_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_8_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_8' + /// Sets the raw value of `IR_Temperature_8`. + #[inline(always)] + pub fn set_ir_temperature_8_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_8`. #[inline(always)] pub fn set_ir_temperature_8(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7430,42 +7825,48 @@ impl RtIrTempTemp9 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_9_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_9_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_9' from values + /// Constructs a new `RT_IRTemp_Temp_9` message from values. pub fn new(ir_temperature_9: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_9(ir_temperature_9)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_9` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_9' + /// Returns the value of `IR_Temperature_9`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_9(&self) -> f32 { - self.ir_temperature_9_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_9' + /// Returns the raw value of `IR_Temperature_9`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_9_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_9_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_9' + /// Sets the raw value of `IR_Temperature_9`. + #[inline(always)] + pub fn set_ir_temperature_9_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_9`. #[inline(always)] pub fn set_ir_temperature_9(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7543,42 +7944,48 @@ impl RtIrTempTemp17 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_17_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_17_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_17' from values + /// Constructs a new `RT_IRTemp_Temp_17` message from values. pub fn new(ir_temperature_17: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_17(ir_temperature_17)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_17` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_17' + /// Returns the value of `IR_Temperature_17`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_17(&self) -> f32 { - self.ir_temperature_17_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_17' + /// Returns the raw value of `IR_Temperature_17`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_17_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_17_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_17' + /// Sets the raw value of `IR_Temperature_17`. + #[inline(always)] + pub fn set_ir_temperature_17_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_17`. #[inline(always)] pub fn set_ir_temperature_17(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7656,42 +8063,48 @@ impl RtIrTempTemp6 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_6_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_6_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_6' from values + /// Constructs a new `RT_IRTemp_Temp_6` message from values. pub fn new(ir_temperature_6: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_6(ir_temperature_6)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_6` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_6' + /// Returns the value of `IR_Temperature_6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_6(&self) -> f32 { - self.ir_temperature_6_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_6' + /// Returns the raw value of `IR_Temperature_6`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_6_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_6_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_6' + /// Sets the raw value of `IR_Temperature_6`. + #[inline(always)] + pub fn set_ir_temperature_6_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_6`. #[inline(always)] pub fn set_ir_temperature_6(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7769,42 +8182,48 @@ impl RtIrTempTemp5 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_5_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_5_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_5' from values + /// Constructs a new `RT_IRTemp_Temp_5` message from values. pub fn new(ir_temperature_5: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_5(ir_temperature_5)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_5` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_5' + /// Returns the value of `IR_Temperature_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_5(&self) -> f32 { - self.ir_temperature_5_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_5' + /// Returns the raw value of `IR_Temperature_5`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_5_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_5_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_5' + /// Sets the raw value of `IR_Temperature_5`. + #[inline(always)] + pub fn set_ir_temperature_5_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_5`. #[inline(always)] pub fn set_ir_temperature_5(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7882,42 +8301,48 @@ impl RtIrTempTemp4 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_4_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_4_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_4' from values + /// Constructs a new `RT_IRTemp_Temp_4` message from values. pub fn new(ir_temperature_4: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_4(ir_temperature_4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_4` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_4' + /// Returns the value of `IR_Temperature_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_4(&self) -> f32 { - self.ir_temperature_4_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_4' + /// Returns the raw value of `IR_Temperature_4`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_4_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_4_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_4' + /// Sets the raw value of `IR_Temperature_4`. + #[inline(always)] + pub fn set_ir_temperature_4_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_4`. #[inline(always)] pub fn set_ir_temperature_4(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -7995,42 +8420,48 @@ impl RtIrTempTemp3 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_3_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_3_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_3' from values + /// Constructs a new `RT_IRTemp_Temp_3` message from values. pub fn new(ir_temperature_3: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_3(ir_temperature_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_3` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_3' + /// Returns the value of `IR_Temperature_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_3(&self) -> f32 { - self.ir_temperature_3_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_3' + /// Returns the raw value of `IR_Temperature_3`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_3_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_3' + /// Sets the raw value of `IR_Temperature_3`. + #[inline(always)] + pub fn set_ir_temperature_3_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_3`. #[inline(always)] pub fn set_ir_temperature_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -8108,42 +8539,48 @@ impl RtIrTempTemp2 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_2_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_2_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_2' from values + /// Constructs a new `RT_IRTemp_Temp_2` message from values. pub fn new(ir_temperature_2: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_2(ir_temperature_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_2` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_2' + /// Returns the value of `IR_Temperature_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_2(&self) -> f32 { - self.ir_temperature_2_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_2' + /// Returns the raw value of `IR_Temperature_2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_2_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_2' + /// Sets the raw value of `IR_Temperature_2`. + #[inline(always)] + pub fn set_ir_temperature_2_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_2`. #[inline(always)] pub fn set_ir_temperature_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -8221,42 +8658,48 @@ impl RtIrTempTemp1 { pub const MESSAGE_SIZE: usize = 2; pub const IR_TEMPERATURE_1_MIN: f32 = 0_f32; pub const IR_TEMPERATURE_1_MAX: f32 = 0_f32; - /// Construct new 'RT_IRTemp_Temp_1' from values + /// Constructs a new `RT_IRTemp_Temp_1` message from values. pub fn new(ir_temperature_1: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_ir_temperature_1(ir_temperature_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IRTemp_Temp_1` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'IR_Temperature_1' + /// Returns the value of `IR_Temperature_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn ir_temperature_1(&self) -> f32 { - self.ir_temperature_1_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'IR_Temperature_1' + /// Returns the raw value of `IR_Temperature_1`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ir_temperature_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ir_temperature_1_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'IR_Temperature_1' + /// Sets the raw value of `IR_Temperature_1`. + #[inline(always)] + pub fn set_ir_temperature_1_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `IR_Temperature_1`. #[inline(always)] pub fn set_ir_temperature_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -8334,18 +8777,18 @@ impl RtSbTrigFinalCondition { pub const MESSAGE_SIZE: usize = 8; pub const FINAL_SPEED_MIN: f32 = 0_f32; pub const FINAL_SPEED_MAX: f32 = 1675_f32; - /// Construct new 'RT_SB_Trig_Final_Condition' from values + /// Constructs a new `RT_SB_Trig_Final_Condition` message from values. pub fn new(final_speed: f32, validity_final_speed: bool) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_final_speed(final_speed)?; res.set_validity_final_speed(validity_final_speed)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Trig_Final_Condition` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Final_Speed' + /// Returns the value of `Final_Speed`. /// /// Speed at end of triggered test /// @@ -8353,26 +8796,31 @@ impl RtSbTrigFinalCondition { /// - Max: 1675 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn final_speed(&self) -> f32 { - self.final_speed_raw() + let signal = self.raw.view_bits::()[8..32].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Final_Speed' + /// Returns the raw value of `Final_Speed`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn final_speed_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn final_speed_raw_val(&self) -> u32 { + self.raw.view_bits::()[8..32].load_le::() } - /// Set value of 'Final_Speed' + /// Sets the raw value of `Final_Speed`. + #[inline(always)] + pub fn set_final_speed_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[8..32].store_le(value); + } + /// Sets the value of `Final_Speed`. #[inline(always)] pub fn set_final_speed(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 1675_f32 < value { @@ -8386,32 +8834,36 @@ impl RtSbTrigFinalCondition { self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) } - /// Get value of 'Validity_Final_Speed' + /// Returns the value of `Validity_Final_Speed`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_final_speed(&self) -> bool { - self.validity_final_speed_raw() + self.validity_final_speed_raw_val() == 1 } - /// Get raw value of 'Validity_Final_Speed' + /// Returns the raw value of `Validity_Final_Speed`. /// /// - Start bit: 0 - /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 + /// - Signal size: 1 bits /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_final_speed_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_final_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Final_Speed`. + #[inline(always)] + pub fn set_validity_final_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Final_Speed' + /// Sets the value of `Validity_Final_Speed`. #[inline(always)] pub fn set_validity_final_speed(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -8487,7 +8939,7 @@ impl RtSbTrigInitialCondition { pub const INITIAL_HEADING_MAX: f32 = 180_f32; pub const INITIAL_SPEED_MIN: f32 = 0_f32; pub const INITIAL_SPEED_MAX: f32 = 1675_f32; - /// Construct new 'RT_SB_Trig_Initial_Condition' from values + /// Constructs a new `RT_SB_Trig_Initial_Condition` message from values. pub fn new( mfdd_end_threshold: u8, mfdd_start_threshold: u8, @@ -8505,35 +8957,38 @@ impl RtSbTrigInitialCondition { res.set_validity_initial_speed(validity_initial_speed)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Trig_Initial_Condition` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'MFDD_End_Threshold' + /// Returns the value of `MFDD_End_Threshold`. /// /// - Min: 0 /// - Max: 100 /// - Unit: "%" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn mfdd_end_threshold(&self) -> u8 { - self.mfdd_end_threshold_raw() + self.mfdd_end_threshold_raw_val() } - /// Get raw value of 'MFDD_End_Threshold' + /// Returns the raw value of `MFDD_End_Threshold`. /// /// - Start bit: 56 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn mfdd_end_threshold_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn mfdd_end_threshold_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_le::() + } + /// Sets the raw value of `MFDD_End_Threshold`. + #[inline(always)] + pub fn set_mfdd_end_threshold_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_le(value); } - /// Set value of 'MFDD_End_Threshold' + /// Sets the value of `MFDD_End_Threshold`. #[inline(always)] pub fn set_mfdd_end_threshold(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 100_u8 < value { @@ -8541,41 +8996,37 @@ impl RtSbTrigInitialCondition { message_id: RtSbTrigInitialCondition::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbTrigInitialCondition::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_le(value); Ok(()) } - /// Get value of 'MFDD_Start_Threshold' + /// Returns the value of `MFDD_Start_Threshold`. /// /// - Min: 0 /// - Max: 100 /// - Unit: "%" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn mfdd_start_threshold(&self) -> u8 { - self.mfdd_start_threshold_raw() + self.mfdd_start_threshold_raw_val() } - /// Get raw value of 'MFDD_Start_Threshold' + /// Returns the raw value of `MFDD_Start_Threshold`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn mfdd_start_threshold_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn mfdd_start_threshold_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() + } + /// Sets the raw value of `MFDD_Start_Threshold`. + #[inline(always)] + pub fn set_mfdd_start_threshold_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); } - /// Set value of 'MFDD_Start_Threshold' + /// Sets the value of `MFDD_Start_Threshold`. #[inline(always)] pub fn set_mfdd_start_threshold(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 100_u8 < value { @@ -8583,17 +9034,10 @@ impl RtSbTrigInitialCondition { message_id: RtSbTrigInitialCondition::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbTrigInitialCondition::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } - /// Get value of 'Initial_Heading' + /// Returns the value of `Initial_Heading`. /// /// Heading (track) at start of triggered test /// @@ -8601,26 +9045,32 @@ impl RtSbTrigInitialCondition { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn initial_heading(&self) -> f32 { - self.initial_heading_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Initial_Heading' + /// Returns the raw value of `Initial_Heading`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn initial_heading_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn initial_heading_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'Initial_Heading' + /// Sets the raw value of `Initial_Heading`. + #[inline(always)] + pub fn set_initial_heading_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `Initial_Heading`. #[inline(always)] pub fn set_initial_heading(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -8635,7 +9085,7 @@ impl RtSbTrigInitialCondition { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Initial_Speed' + /// Returns the value of `Initial_Speed`. /// /// Speed at start of triggered test /// @@ -8643,26 +9093,31 @@ impl RtSbTrigInitialCondition { /// - Max: 1675 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn initial_speed(&self) -> f32 { - self.initial_speed_raw() + let signal = self.raw.view_bits::()[8..32].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Initial_Speed' + /// Returns the raw value of `Initial_Speed`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn initial_speed_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn initial_speed_raw_val(&self) -> u32 { + self.raw.view_bits::()[8..32].load_le::() } - /// Set value of 'Initial_Speed' + /// Sets the raw value of `Initial_Speed`. + #[inline(always)] + pub fn set_initial_speed_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[8..32].store_le(value); + } + /// Sets the value of `Initial_Speed`. #[inline(always)] pub fn set_initial_speed(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 1675_f32 < value { @@ -8676,64 +9131,72 @@ impl RtSbTrigInitialCondition { self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) } - /// Get value of 'Validity_Initial_Heading' + /// Returns the value of `Validity_Initial_Heading`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_initial_heading(&self) -> bool { - self.validity_initial_heading_raw() + self.validity_initial_heading_raw_val() == 1 } - /// Get raw value of 'Validity_Initial_Heading' + /// Returns the raw value of `Validity_Initial_Heading`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_initial_heading_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_initial_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_Initial_Heading' + /// Sets the raw value of `Validity_Initial_Heading`. + #[inline(always)] + pub fn set_validity_initial_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_Initial_Heading`. #[inline(always)] pub fn set_validity_initial_heading(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Initial_Speed' + /// Returns the value of `Validity_Initial_Speed`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_initial_speed(&self) -> bool { - self.validity_initial_speed_raw() + self.validity_initial_speed_raw_val() == 1 } - /// Get raw value of 'Validity_Initial_Speed' + /// Returns the raw value of `Validity_Initial_Speed`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_initial_speed_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_initial_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_Initial_Speed' + /// Sets the raw value of `Validity_Initial_Speed`. + #[inline(always)] + pub fn set_validity_initial_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_Initial_Speed`. #[inline(always)] pub fn set_validity_initial_speed(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -8805,18 +9268,18 @@ impl RtSbTrigDirectDist { pub const PATH_DISTANCE_2D_MAX: f32 = 4294967_f32; pub const DIRECT_DISTANCE_MIN: f32 = 0_f32; pub const DIRECT_DISTANCE_MAX: f32 = 4294967_f32; - /// Construct new 'RT_SB_Trig_Direct_Dist' from values + /// Constructs a new `RT_SB_Trig_Direct_Dist` message from values. pub fn new(path_distance_2d: f32, direct_distance: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_path_distance_2d(path_distance_2d)?; res.set_direct_distance(direct_distance)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Trig_Direct_Dist` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Path_Distance_2D' + /// Returns the value of `Path_Distance_2D`. /// /// 2D path distance (horizontal components only) /// @@ -8824,26 +9287,31 @@ impl RtSbTrigDirectDist { /// - Max: 4294967 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn path_distance_2d(&self) -> f32 { - self.path_distance_2d_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Path_Distance_2D' + /// Returns the raw value of `Path_Distance_2D`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn path_distance_2d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn path_distance_2d_raw_val(&self) -> u32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `Path_Distance_2D`. + #[inline(always)] + pub fn set_path_distance_2d_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'Path_Distance_2D' + /// Sets the value of `Path_Distance_2D`. #[inline(always)] pub fn set_path_distance_2d(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 4294967_f32 < value { @@ -8857,7 +9325,7 @@ impl RtSbTrigDirectDist { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Direct_Distance' + /// Returns the value of `Direct_Distance`. /// /// Direct distance from start of test to current position /// @@ -8865,26 +9333,31 @@ impl RtSbTrigDirectDist { /// - Max: 4294967 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn direct_distance(&self) -> f32 { - self.direct_distance_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Direct_Distance' + /// Returns the raw value of `Direct_Distance`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn direct_distance_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn direct_distance_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `Direct_Distance`. + #[inline(always)] + pub fn set_direct_distance_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'Direct_Distance' + /// Sets the value of `Direct_Distance`. #[inline(always)] pub fn set_direct_distance(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 4294967_f32 < value { @@ -8963,7 +9436,7 @@ impl RtSbTrigForwardDist { pub const DEVIATION_DISTANCE_MAX: f32 = 2147483.647_f32; pub const FORWARD_DISTANCE_MIN: f32 = -2147483.648_f32; pub const FORWARD_DISTANCE_MAX: f32 = 2147483.647_f32; - /// Construct new 'RT_SB_Trig_Forward_Dist' from values + /// Constructs a new `RT_SB_Trig_Forward_Dist` message from values. pub fn new( deviation_distance: f32, forward_distance: f32, @@ -8973,11 +9446,11 @@ impl RtSbTrigForwardDist { res.set_forward_distance(forward_distance)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Trig_Forward_Dist` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Deviation_Distance' + /// Returns the value of `Deviation_Distance`. /// /// Current deviation distance from a line projected along the initial heading at start of test, +ve for deviation to the right. /// @@ -8985,26 +9458,32 @@ impl RtSbTrigForwardDist { /// - Max: 2147483.647 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn deviation_distance(&self) -> f32 { - self.deviation_distance_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Deviation_Distance' + /// Returns the raw value of `Deviation_Distance`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn deviation_distance_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn deviation_distance_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `Deviation_Distance`. + #[inline(always)] + pub fn set_deviation_distance_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'Deviation_Distance' + /// Sets the value of `Deviation_Distance`. #[inline(always)] pub fn set_deviation_distance(&mut self, value: f32) -> Result<(), CanError> { if value < -2147483.648_f32 || 2147483.647_f32 < value { @@ -9019,7 +9498,7 @@ impl RtSbTrigForwardDist { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Forward_Distance' + /// Returns the value of `Forward_Distance`. /// /// Current forward distance from start of test in direction of initial heading at start of test /// @@ -9027,26 +9506,32 @@ impl RtSbTrigForwardDist { /// - Max: 2147483.647 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn forward_distance(&self) -> f32 { - self.forward_distance_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Forward_Distance' + /// Returns the raw value of `Forward_Distance`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn forward_distance_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn forward_distance_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `Forward_Distance`. + #[inline(always)] + pub fn set_forward_distance_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'Forward_Distance' + /// Sets the value of `Forward_Distance`. #[inline(always)] pub fn set_forward_distance(&mut self, value: f32) -> Result<(), CanError> { if value < -2147483.648_f32 || 2147483.647_f32 < value { @@ -9124,17 +9609,17 @@ impl RtSbTrigPathDist { pub const MESSAGE_SIZE: usize = 8; pub const PATH_DISTANCE_3D_MIN: f32 = 0_f32; pub const PATH_DISTANCE_3D_MAX: f32 = 4294967_f32; - /// Construct new 'RT_SB_Trig_Path_Dist' from values + /// Constructs a new `RT_SB_Trig_Path_Dist` message from values. pub fn new(path_distance_3d: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_path_distance_3d(path_distance_3d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Trig_Path_Dist` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Path_Distance_3D' + /// Returns the value of `Path_Distance_3D`. /// /// 3D path distance /// @@ -9142,26 +9627,31 @@ impl RtSbTrigPathDist { /// - Max: 4294967 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn path_distance_3d(&self) -> f32 { - self.path_distance_3d_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Path_Distance_3D' + /// Returns the raw value of `Path_Distance_3D`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn path_distance_3d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn path_distance_3d_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `Path_Distance_3D`. + #[inline(always)] + pub fn set_path_distance_3d_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'Path_Distance_3D' + /// Sets the value of `Path_Distance_3D`. #[inline(always)] pub fn set_path_distance_3d(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 4294967_f32 < value { @@ -9242,7 +9732,7 @@ impl RtSbTrigAccel { pub const AVERAGE_ACCEL_MAX: f32 = 65_f32; pub const MFDD_MIN: f32 = -65_f32; pub const MFDD_MAX: f32 = 65_f32; - /// Construct new 'RT_SB_Trig_Accel' from values + /// Constructs a new `RT_SB_Trig_Accel` message from values. pub fn new( triggered_time: f32, average_accel: f32, @@ -9260,11 +9750,11 @@ impl RtSbTrigAccel { res.set_validity_mfdd(validity_mfdd)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Trig_Accel` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Triggered_Time' + /// Returns the value of `Triggered_Time`. /// /// Cumulative time from start of triggered test to current time. /// @@ -9272,26 +9762,31 @@ impl RtSbTrigAccel { /// - Max: 167772 /// - Unit: "s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn triggered_time(&self) -> f32 { - self.triggered_time_raw() + let signal = self.raw.view_bits::()[40..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Triggered_Time' + /// Returns the raw value of `Triggered_Time`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn triggered_time_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn triggered_time_raw_val(&self) -> u32 { + self.raw.view_bits::()[40..64].load_le::() } - /// Set value of 'Triggered_Time' + /// Sets the raw value of `Triggered_Time`. + #[inline(always)] + pub fn set_triggered_time_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[40..64].store_le(value); + } + /// Sets the value of `Triggered_Time`. #[inline(always)] pub fn set_triggered_time(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 167772_f32 < value { @@ -9305,7 +9800,7 @@ impl RtSbTrigAccel { self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'Average_Accel' + /// Returns the value of `Average_Accel`. /// /// Average acceleration from start of triggered test to current time. /// @@ -9313,26 +9808,32 @@ impl RtSbTrigAccel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn average_accel(&self) -> f32 { - self.average_accel_raw() + let signal = self.raw.view_bits::()[24..40].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Average_Accel' + /// Returns the raw value of `Average_Accel`. /// /// - Start bit: 24 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn average_accel_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[24..40].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn average_accel_raw_val(&self) -> i16 { + self.raw.view_bits::()[24..40].load_le::() + } + /// Sets the raw value of `Average_Accel`. + #[inline(always)] + pub fn set_average_accel_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[24..40].store_le(value); } - /// Set value of 'Average_Accel' + /// Sets the value of `Average_Accel`. #[inline(always)] pub fn set_average_accel(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -9347,7 +9848,7 @@ impl RtSbTrigAccel { self.raw.view_bits_mut::()[24..40].store_le(value); Ok(()) } - /// Get value of 'MFDD' + /// Returns the value of `MFDD`. /// /// Mean fully-developed decelleration of triggered test. Thresholds used are as set in the logger configuration. /// @@ -9355,26 +9856,32 @@ impl RtSbTrigAccel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn mfdd(&self) -> f32 { - self.mfdd_raw() + let signal = self.raw.view_bits::()[8..24].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'MFDD' + /// Returns the raw value of `MFDD`. /// /// - Start bit: 8 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn mfdd_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..24].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn mfdd_raw_val(&self) -> i16 { + self.raw.view_bits::()[8..24].load_le::() + } + /// Sets the raw value of `MFDD`. + #[inline(always)] + pub fn set_mfdd_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..24].store_le(value); } - /// Set value of 'MFDD' + /// Sets the value of `MFDD`. #[inline(always)] pub fn set_mfdd(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -9389,96 +9896,108 @@ impl RtSbTrigAccel { self.raw.view_bits_mut::()[8..24].store_le(value); Ok(()) } - /// Get value of 'Validity_Triggered_Time' + /// Returns the value of `Validity_Triggered_Time`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_triggered_time(&self) -> bool { - self.validity_triggered_time_raw() + self.validity_triggered_time_raw_val() == 1 } - /// Get raw value of 'Validity_Triggered_Time' + /// Returns the raw value of `Validity_Triggered_Time`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_triggered_time_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_triggered_time_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() } - /// Set value of 'Validity_Triggered_Time' + /// Sets the raw value of `Validity_Triggered_Time`. + #[inline(always)] + pub fn set_validity_triggered_time_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); + } + /// Sets the value of `Validity_Triggered_Time`. #[inline(always)] pub fn set_validity_triggered_time(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_Average_Accel' + /// Returns the value of `Validity_Average_Accel`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_average_accel(&self) -> bool { - self.validity_average_accel_raw() + self.validity_average_accel_raw_val() == 1 } - /// Get raw value of 'Validity_Average_Accel' + /// Returns the raw value of `Validity_Average_Accel`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_average_accel_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_average_accel_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_Average_Accel' + /// Sets the raw value of `Validity_Average_Accel`. + #[inline(always)] + pub fn set_validity_average_accel_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_Average_Accel`. #[inline(always)] pub fn set_validity_average_accel(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_MFDD' + /// Returns the value of `Validity_MFDD`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_mfdd(&self) -> bool { - self.validity_mfdd_raw() + self.validity_mfdd_raw_val() == 1 } - /// Get raw value of 'Validity_MFDD' + /// Returns the raw value of `Validity_MFDD`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_mfdd_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_mfdd_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_MFDD' + /// Sets the raw value of `Validity_MFDD`. + #[inline(always)] + pub fn set_validity_mfdd_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_MFDD`. #[inline(always)] pub fn set_validity_mfdd(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -9548,41 +10067,44 @@ impl RtDl1mk3MeasureTime12 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_12_MIN: u32 = 0_u32; pub const MEASURED_TIME_12_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_12' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_12` message from values. pub fn new(measured_time_12: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_12(measured_time_12)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_12` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_12' + /// Returns the value of `Measured_Time_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_12(&self) -> u32 { - self.measured_time_12_raw() + self.measured_time_12_raw_val() } - /// Get raw value of 'Measured_Time_12' + /// Returns the raw value of `Measured_Time_12`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_12_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_12_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_12`. + #[inline(always)] + pub fn set_measured_time_12_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_12' + /// Sets the value of `Measured_Time_12`. #[inline(always)] pub fn set_measured_time_12(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -9590,13 +10112,6 @@ impl RtDl1mk3MeasureTime12 { message_id: RtDl1mk3MeasureTime12::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime12::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -9663,41 +10178,44 @@ impl RtDl1mk3MeasureTime11 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_11_MIN: u32 = 0_u32; pub const MEASURED_TIME_11_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_11' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_11` message from values. pub fn new(measured_time_11: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_11(measured_time_11)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_11` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_11' + /// Returns the value of `Measured_Time_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_11(&self) -> u32 { - self.measured_time_11_raw() + self.measured_time_11_raw_val() } - /// Get raw value of 'Measured_Time_11' + /// Returns the raw value of `Measured_Time_11`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_11_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_11_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_11`. + #[inline(always)] + pub fn set_measured_time_11_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_11' + /// Sets the value of `Measured_Time_11`. #[inline(always)] pub fn set_measured_time_11(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -9705,13 +10223,6 @@ impl RtDl1mk3MeasureTime11 { message_id: RtDl1mk3MeasureTime11::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime11::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -9778,41 +10289,44 @@ impl RtDl1mk3MeasureTime10 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_10_MIN: u32 = 0_u32; pub const MEASURED_TIME_10_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_10' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_10` message from values. pub fn new(measured_time_10: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_10(measured_time_10)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_10` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_10' + /// Returns the value of `Measured_Time_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_10(&self) -> u32 { - self.measured_time_10_raw() + self.measured_time_10_raw_val() } - /// Get raw value of 'Measured_Time_10' + /// Returns the raw value of `Measured_Time_10`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_10_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_10_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_10`. + #[inline(always)] + pub fn set_measured_time_10_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_10' + /// Sets the value of `Measured_Time_10`. #[inline(always)] pub fn set_measured_time_10(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -9820,13 +10334,6 @@ impl RtDl1mk3MeasureTime10 { message_id: RtDl1mk3MeasureTime10::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime10::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -9893,41 +10400,44 @@ impl RtDl1mk3MeasureTime9 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_9_MIN: u32 = 0_u32; pub const MEASURED_TIME_9_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_9' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_9` message from values. pub fn new(measured_time_9: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_9(measured_time_9)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_9` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_9' + /// Returns the value of `Measured_Time_9`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_9(&self) -> u32 { - self.measured_time_9_raw() + self.measured_time_9_raw_val() } - /// Get raw value of 'Measured_Time_9' + /// Returns the raw value of `Measured_Time_9`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_9_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_9_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_9`. + #[inline(always)] + pub fn set_measured_time_9_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_9' + /// Sets the value of `Measured_Time_9`. #[inline(always)] pub fn set_measured_time_9(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -9935,13 +10445,6 @@ impl RtDl1mk3MeasureTime9 { message_id: RtDl1mk3MeasureTime9::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime9::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10008,41 +10511,44 @@ impl RtDl1mk3MeasureTime8 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_8_MIN: u32 = 0_u32; pub const MEASURED_TIME_8_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_8' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_8` message from values. pub fn new(measured_time_8: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_8(measured_time_8)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_8` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_8' + /// Returns the value of `Measured_Time_8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_8(&self) -> u32 { - self.measured_time_8_raw() + self.measured_time_8_raw_val() } - /// Get raw value of 'Measured_Time_8' + /// Returns the raw value of `Measured_Time_8`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_8_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_8_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_8`. + #[inline(always)] + pub fn set_measured_time_8_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_8' + /// Sets the value of `Measured_Time_8`. #[inline(always)] pub fn set_measured_time_8(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10050,13 +10556,6 @@ impl RtDl1mk3MeasureTime8 { message_id: RtDl1mk3MeasureTime8::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime8::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10123,41 +10622,44 @@ impl RtDl1mk3MeasureTime7 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_7_MIN: u32 = 0_u32; pub const MEASURED_TIME_7_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_7' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_7` message from values. pub fn new(measured_time_7: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_7(measured_time_7)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_7` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_7' + /// Returns the value of `Measured_Time_7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_7(&self) -> u32 { - self.measured_time_7_raw() + self.measured_time_7_raw_val() } - /// Get raw value of 'Measured_Time_7' + /// Returns the raw value of `Measured_Time_7`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_7_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_7_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_7`. + #[inline(always)] + pub fn set_measured_time_7_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_7' + /// Sets the value of `Measured_Time_7`. #[inline(always)] pub fn set_measured_time_7(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10165,13 +10667,6 @@ impl RtDl1mk3MeasureTime7 { message_id: RtDl1mk3MeasureTime7::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime7::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10238,41 +10733,44 @@ impl RtDl1mk3MeasureTime6 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_6_MIN: u32 = 0_u32; pub const MEASURED_TIME_6_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_6' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_6` message from values. pub fn new(measured_time_6: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_6(measured_time_6)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_6` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_6' + /// Returns the value of `Measured_Time_6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_6(&self) -> u32 { - self.measured_time_6_raw() + self.measured_time_6_raw_val() } - /// Get raw value of 'Measured_Time_6' + /// Returns the raw value of `Measured_Time_6`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_6_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_6_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_6`. + #[inline(always)] + pub fn set_measured_time_6_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_6' + /// Sets the value of `Measured_Time_6`. #[inline(always)] pub fn set_measured_time_6(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10280,13 +10778,6 @@ impl RtDl1mk3MeasureTime6 { message_id: RtDl1mk3MeasureTime6::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime6::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10353,41 +10844,44 @@ impl RtDl1mk3MeasureTime5 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_5_MIN: u32 = 0_u32; pub const MEASURED_TIME_5_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_5' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_5` message from values. pub fn new(measured_time_5: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_5(measured_time_5)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_5` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_5' + /// Returns the value of `Measured_Time_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_5(&self) -> u32 { - self.measured_time_5_raw() + self.measured_time_5_raw_val() } - /// Get raw value of 'Measured_Time_5' + /// Returns the raw value of `Measured_Time_5`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_5_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_5_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_5`. + #[inline(always)] + pub fn set_measured_time_5_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_5' + /// Sets the value of `Measured_Time_5`. #[inline(always)] pub fn set_measured_time_5(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10395,13 +10889,6 @@ impl RtDl1mk3MeasureTime5 { message_id: RtDl1mk3MeasureTime5::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime5::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10468,41 +10955,44 @@ impl RtDl1mk3MeasureTime4 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_4_MIN: u32 = 0_u32; pub const MEASURED_TIME_4_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_4' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_4` message from values. pub fn new(measured_time_4: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_4(measured_time_4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_4` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_4' + /// Returns the value of `Measured_Time_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_4(&self) -> u32 { - self.measured_time_4_raw() + self.measured_time_4_raw_val() } - /// Get raw value of 'Measured_Time_4' + /// Returns the raw value of `Measured_Time_4`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_4_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_4_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_4`. + #[inline(always)] + pub fn set_measured_time_4_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_4' + /// Sets the value of `Measured_Time_4`. #[inline(always)] pub fn set_measured_time_4(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10510,13 +11000,6 @@ impl RtDl1mk3MeasureTime4 { message_id: RtDl1mk3MeasureTime4::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime4::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10583,41 +11066,44 @@ impl RtDl1mk3MeasureTime3 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_3_MIN: u32 = 0_u32; pub const MEASURED_TIME_3_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_3' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_3` message from values. pub fn new(measured_time_3: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_3(measured_time_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_3` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_3' + /// Returns the value of `Measured_Time_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_3(&self) -> u32 { - self.measured_time_3_raw() + self.measured_time_3_raw_val() } - /// Get raw value of 'Measured_Time_3' + /// Returns the raw value of `Measured_Time_3`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_3_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_3_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_3`. + #[inline(always)] + pub fn set_measured_time_3_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_3' + /// Sets the value of `Measured_Time_3`. #[inline(always)] pub fn set_measured_time_3(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10625,13 +11111,6 @@ impl RtDl1mk3MeasureTime3 { message_id: RtDl1mk3MeasureTime3::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime3::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10698,41 +11177,44 @@ impl RtDl1mk3MeasureTime2 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_2_MIN: u32 = 0_u32; pub const MEASURED_TIME_2_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_2' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_2` message from values. pub fn new(measured_time_2: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_2(measured_time_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_2` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_2' + /// Returns the value of `Measured_Time_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_2(&self) -> u32 { - self.measured_time_2_raw() + self.measured_time_2_raw_val() } - /// Get raw value of 'Measured_Time_2' + /// Returns the raw value of `Measured_Time_2`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_2_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_2_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_2`. + #[inline(always)] + pub fn set_measured_time_2_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_2' + /// Sets the value of `Measured_Time_2`. #[inline(always)] pub fn set_measured_time_2(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10740,13 +11222,6 @@ impl RtDl1mk3MeasureTime2 { message_id: RtDl1mk3MeasureTime2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime2::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10813,41 +11288,44 @@ impl RtDl1mk3MeasureTime1 { pub const MESSAGE_SIZE: usize = 3; pub const MEASURED_TIME_1_MIN: u32 = 0_u32; pub const MEASURED_TIME_1_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Measure_Time_1' from values + /// Constructs a new `RT_DL1MK3_Measure_Time_1` message from values. pub fn new(measured_time_1: u32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_measured_time_1(measured_time_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Measure_Time_1` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Measured_Time_1' + /// Returns the value of `Measured_Time_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn measured_time_1(&self) -> u32 { - self.measured_time_1_raw() + self.measured_time_1_raw_val() } - /// Get raw value of 'Measured_Time_1' + /// Returns the raw value of `Measured_Time_1`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn measured_time_1_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 1; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn measured_time_1_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Measured_Time_1`. + #[inline(always)] + pub fn set_measured_time_1_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Measured_Time_1' + /// Sets the value of `Measured_Time_1`. #[inline(always)] pub fn set_measured_time_1(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -10855,13 +11333,6 @@ impl RtDl1mk3MeasureTime1 { message_id: RtDl1mk3MeasureTime1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3MeasureTime1::MESSAGE_ID, - })?; - let value = (value / factor) as u32; self.raw.view_bits_mut::()[0..24].store_le(value); Ok(()) } @@ -10928,41 +11399,44 @@ impl RtDl1mk3Rpm { pub const MESSAGE_SIZE: usize = 2; pub const RPM_MIN: u16 = 0_u16; pub const RPM_MAX: u16 = 0_u16; - /// Construct new 'RT_DL1MK3_RPM' from values + /// Constructs a new `RT_DL1MK3_RPM` message from values. pub fn new(rpm: u16) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_rpm(rpm)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_RPM` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'RPM' + /// Returns the value of `RPM`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rpm(&self) -> u16 { - self.rpm_raw() + self.rpm_raw_val() } - /// Get raw value of 'RPM' + /// Returns the raw value of `RPM`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn rpm_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rpm_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `RPM`. + #[inline(always)] + pub fn set_rpm_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'RPM' + /// Sets the value of `RPM`. #[inline(always)] pub fn set_rpm(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 0_u16 < value { @@ -10970,13 +11444,6 @@ impl RtDl1mk3Rpm { message_id: RtDl1mk3Rpm::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3Rpm::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -11043,42 +11510,47 @@ impl RtDl1mk3Freq4 { pub const MESSAGE_SIZE: usize = 2; pub const FREQUENCY_4_MIN: f32 = 0_f32; pub const FREQUENCY_4_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Freq_4' from values + /// Constructs a new `RT_DL1MK3_Freq_4` message from values. pub fn new(frequency_4: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_frequency_4(frequency_4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Freq_4` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Frequency_4' + /// Returns the value of `Frequency_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn frequency_4(&self) -> f32 { - self.frequency_4_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Frequency_4' + /// Returns the raw value of `Frequency_4`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn frequency_4_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn frequency_4_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Frequency_4`. + #[inline(always)] + pub fn set_frequency_4_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Frequency_4' + /// Sets the value of `Frequency_4`. #[inline(always)] pub fn set_frequency_4(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11155,42 +11627,47 @@ impl RtDl1mk3Freq3 { pub const MESSAGE_SIZE: usize = 2; pub const FREQUENCY_3_MIN: f32 = 0_f32; pub const FREQUENCY_3_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Freq_3' from values + /// Constructs a new `RT_DL1MK3_Freq_3` message from values. pub fn new(frequency_3: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_frequency_3(frequency_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Freq_3` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Frequency_3' + /// Returns the value of `Frequency_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn frequency_3(&self) -> f32 { - self.frequency_3_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Frequency_3' + /// Returns the raw value of `Frequency_3`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn frequency_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn frequency_3_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Frequency_3`. + #[inline(always)] + pub fn set_frequency_3_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Frequency_3' + /// Sets the value of `Frequency_3`. #[inline(always)] pub fn set_frequency_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11267,42 +11744,47 @@ impl RtDl1mk3Freq2 { pub const MESSAGE_SIZE: usize = 2; pub const FREQUENCY_2_MIN: f32 = 0_f32; pub const FREQUENCY_2_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Freq_2' from values + /// Constructs a new `RT_DL1MK3_Freq_2` message from values. pub fn new(frequency_2: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_frequency_2(frequency_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Freq_2` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Frequency_2' + /// Returns the value of `Frequency_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn frequency_2(&self) -> f32 { - self.frequency_2_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Frequency_2' + /// Returns the raw value of `Frequency_2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn frequency_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn frequency_2_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Frequency_2`. + #[inline(always)] + pub fn set_frequency_2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Frequency_2' + /// Sets the value of `Frequency_2`. #[inline(always)] pub fn set_frequency_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11379,42 +11861,47 @@ impl RtDl1mk3Misc3 { pub const MESSAGE_SIZE: usize = 2; pub const MISC_3_MIN: f32 = 0_f32; pub const MISC_3_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Misc_3' from values + /// Constructs a new `RT_DL1MK3_Misc_3` message from values. pub fn new(misc_3: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_misc_3(misc_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Misc_3` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Misc_3' + /// Returns the value of `Misc_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn misc_3(&self) -> f32 { - self.misc_3_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Misc_3' + /// Returns the raw value of `Misc_3`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn misc_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn misc_3_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'Misc_3' + /// Sets the raw value of `Misc_3`. + #[inline(always)] + pub fn set_misc_3_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `Misc_3`. #[inline(always)] pub fn set_misc_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11491,42 +11978,47 @@ impl RtDl1mk3Misc2 { pub const MESSAGE_SIZE: usize = 2; pub const MISC_2_MIN: f32 = 0_f32; pub const MISC_2_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Misc_2' from values + /// Constructs a new `RT_DL1MK3_Misc_2` message from values. pub fn new(misc_2: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_misc_2(misc_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Misc_2` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Misc_2' + /// Returns the value of `Misc_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn misc_2(&self) -> f32 { - self.misc_2_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Misc_2' + /// Returns the raw value of `Misc_2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned - #[inline(always)] - pub fn misc_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + #[inline(always)] + pub fn misc_2_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Misc_2`. + #[inline(always)] + pub fn set_misc_2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Misc_2' + /// Sets the value of `Misc_2`. #[inline(always)] pub fn set_misc_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11603,42 +12095,47 @@ impl RtDl1mk3Misc1 { pub const MESSAGE_SIZE: usize = 2; pub const MISC_1_MIN: f32 = 0_f32; pub const MISC_1_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Misc_1' from values + /// Constructs a new `RT_DL1MK3_Misc_1` message from values. pub fn new(misc_1: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_misc_1(misc_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Misc_1` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Misc_1' + /// Returns the value of `Misc_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn misc_1(&self) -> f32 { - self.misc_1_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Misc_1' + /// Returns the raw value of `Misc_1`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn misc_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn misc_1_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'Misc_1' + /// Sets the raw value of `Misc_1`. + #[inline(always)] + pub fn set_misc_1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `Misc_1`. #[inline(always)] pub fn set_misc_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11715,42 +12212,47 @@ impl RtDl1mk3Aux31 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_31_MIN: f32 = 0_f32; pub const AUX_31_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_31' from values + /// Constructs a new `RT_DL1MK3_Aux_31` message from values. pub fn new(aux_31: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_31(aux_31)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_31` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_31' + /// Returns the value of `AUX_31`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_31(&self) -> f32 { - self.aux_31_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_31' + /// Returns the raw value of `AUX_31`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_31_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_31_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_31`. + #[inline(always)] + pub fn set_aux_31_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_31' + /// Sets the value of `AUX_31`. #[inline(always)] pub fn set_aux_31(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11827,42 +12329,47 @@ impl RtDl1mk3Aux30 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_30_MIN: f32 = 0_f32; pub const AUX_30_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_30' from values + /// Constructs a new `RT_DL1MK3_Aux_30` message from values. pub fn new(aux_30: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_30(aux_30)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_30` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_30' + /// Returns the value of `AUX_30`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_30(&self) -> f32 { - self.aux_30_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_30' + /// Returns the raw value of `AUX_30`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_30_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_30_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_30`. + #[inline(always)] + pub fn set_aux_30_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_30' + /// Sets the value of `AUX_30`. #[inline(always)] pub fn set_aux_30(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -11939,42 +12446,47 @@ impl RtDl1mk3Aux29 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_29_MIN: f32 = 0_f32; pub const AUX_29_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_29' from values + /// Constructs a new `RT_DL1MK3_Aux_29` message from values. pub fn new(aux_29: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_29(aux_29)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_29` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_29' + /// Returns the value of `AUX_29`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_29(&self) -> f32 { - self.aux_29_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_29' + /// Returns the raw value of `AUX_29`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_29_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_29_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_29`. + #[inline(always)] + pub fn set_aux_29_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_29' + /// Sets the value of `AUX_29`. #[inline(always)] pub fn set_aux_29(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12051,42 +12563,47 @@ impl RtDl1mk3Aux28 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_28_MIN: f32 = 0_f32; pub const AUX_28_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_28' from values + /// Constructs a new `RT_DL1MK3_Aux_28` message from values. pub fn new(aux_28: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_28(aux_28)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_28` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_28' + /// Returns the value of `AUX_28`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_28(&self) -> f32 { - self.aux_28_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_28' + /// Returns the raw value of `AUX_28`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_28_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_28_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_28' + /// Sets the raw value of `AUX_28`. + #[inline(always)] + pub fn set_aux_28_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_28`. #[inline(always)] pub fn set_aux_28(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12163,42 +12680,47 @@ impl RtDl1mk3Aux27 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_27_MIN: f32 = 0_f32; pub const AUX_27_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_27' from values + /// Constructs a new `RT_DL1MK3_Aux_27` message from values. pub fn new(aux_27: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_27(aux_27)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_27` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_27' + /// Returns the value of `AUX_27`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_27(&self) -> f32 { - self.aux_27_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_27' + /// Returns the raw value of `AUX_27`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_27_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_27_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_27`. + #[inline(always)] + pub fn set_aux_27_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_27' + /// Sets the value of `AUX_27`. #[inline(always)] pub fn set_aux_27(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12275,42 +12797,47 @@ impl RtDl1mk3Aux26 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_26_MIN: f32 = 0_f32; pub const AUX_26_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_26' from values + /// Constructs a new `RT_DL1MK3_Aux_26` message from values. pub fn new(aux_26: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_26(aux_26)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_26` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_26' + /// Returns the value of `AUX_26`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_26(&self) -> f32 { - self.aux_26_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_26' + /// Returns the raw value of `AUX_26`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_26_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_26_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_26`. + #[inline(always)] + pub fn set_aux_26_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_26' + /// Sets the value of `AUX_26`. #[inline(always)] pub fn set_aux_26(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12387,42 +12914,47 @@ impl RtDl1mk3Aux25 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_25_MIN: f32 = 0_f32; pub const AUX_25_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_25' from values + /// Constructs a new `RT_DL1MK3_Aux_25` message from values. pub fn new(aux_25: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_25(aux_25)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_25` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_25' + /// Returns the value of `AUX_25`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_25(&self) -> f32 { - self.aux_25_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_25' + /// Returns the raw value of `AUX_25`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_25_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_25_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_25`. + #[inline(always)] + pub fn set_aux_25_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_25' + /// Sets the value of `AUX_25`. #[inline(always)] pub fn set_aux_25(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12499,42 +13031,47 @@ impl RtDl1mk3Aux24 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_24_MIN: f32 = 0_f32; pub const AUX_24_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_24' from values + /// Constructs a new `RT_DL1MK3_Aux_24` message from values. pub fn new(aux_24: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_24(aux_24)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_24` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_24' + /// Returns the value of `AUX_24`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_24(&self) -> f32 { - self.aux_24_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_24' + /// Returns the raw value of `AUX_24`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_24_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_24_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_24' + /// Sets the raw value of `AUX_24`. + #[inline(always)] + pub fn set_aux_24_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_24`. #[inline(always)] pub fn set_aux_24(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12611,42 +13148,47 @@ impl RtDl1mk3Aux23 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_23_MIN: f32 = 0_f32; pub const AUX_23_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_23' from values + /// Constructs a new `RT_DL1MK3_Aux_23` message from values. pub fn new(aux_23: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_23(aux_23)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_23` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_23' + /// Returns the value of `AUX_23`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_23(&self) -> f32 { - self.aux_23_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_23' + /// Returns the raw value of `AUX_23`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_23_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_23_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_23`. + #[inline(always)] + pub fn set_aux_23_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_23' + /// Sets the value of `AUX_23`. #[inline(always)] pub fn set_aux_23(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12723,41 +13265,46 @@ impl RtDl1mk3Aux22 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_22_MIN: u32 = 0_u32; pub const AUX_22_MAX: u32 = 0_u32; - /// Construct new 'RT_DL1MK3_Aux_22' from values + /// Constructs a new `RT_DL1MK3_Aux_22` message from values. pub fn new(aux_22: u32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_22(aux_22)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_22` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_22' + /// Returns the value of `AUX_22`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 10 + /// - Offset: 0 #[inline(always)] pub fn aux_22(&self) -> u32 { - self.aux_22_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 10; + u32::from(signal).saturating_mul(factor).saturating_add(0) } - /// Get raw value of 'AUX_22' + /// Returns the raw value of `AUX_22`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 10 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_22_raw(&self) -> u32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 10; - u32::from(signal).saturating_mul(factor).saturating_add(0) + pub fn aux_22_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_22' + /// Sets the raw value of `AUX_22`. + #[inline(always)] + pub fn set_aux_22_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_22`. #[inline(always)] pub fn set_aux_22(&mut self, value: u32) -> Result<(), CanError> { if value < 0_u32 || 0_u32 < value { @@ -12838,42 +13385,47 @@ impl RtDl1mk3Aux21 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_21_MIN: f32 = 0_f32; pub const AUX_21_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_21' from values + /// Constructs a new `RT_DL1MK3_Aux_21` message from values. pub fn new(aux_21: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_21(aux_21)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_21` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_21' + /// Returns the value of `AUX_21`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_21(&self) -> f32 { - self.aux_21_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_21' + /// Returns the raw value of `AUX_21`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_21_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_21_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_21`. + #[inline(always)] + pub fn set_aux_21_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_21' + /// Sets the value of `AUX_21`. #[inline(always)] pub fn set_aux_21(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -12950,42 +13502,47 @@ impl RtDl1mk3Aux20 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_20_MIN: f32 = 0_f32; pub const AUX_20_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_20' from values + /// Constructs a new `RT_DL1MK3_Aux_20` message from values. pub fn new(aux_20: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_20(aux_20)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_20` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_20' + /// Returns the value of `AUX_20`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_20(&self) -> f32 { - self.aux_20_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_20' + /// Returns the raw value of `AUX_20`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_20_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_20_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_20`. + #[inline(always)] + pub fn set_aux_20_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_20' + /// Sets the value of `AUX_20`. #[inline(always)] pub fn set_aux_20(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13062,42 +13619,47 @@ impl RtDl1mk3Aux19 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_19_MIN: f32 = 0_f32; pub const AUX_19_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_19' from values + /// Constructs a new `RT_DL1MK3_Aux_19` message from values. pub fn new(aux_19: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_19(aux_19)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_19` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_19' + /// Returns the value of `AUX_19`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_19(&self) -> f32 { - self.aux_19_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_19' + /// Returns the raw value of `AUX_19`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_19_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_19_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_19`. + #[inline(always)] + pub fn set_aux_19_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_19' + /// Sets the value of `AUX_19`. #[inline(always)] pub fn set_aux_19(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13174,42 +13736,47 @@ impl RtDl1mk3Aux18 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_18_MIN: f32 = 0_f32; pub const AUX_18_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_18' from values + /// Constructs a new `RT_DL1MK3_Aux_18` message from values. pub fn new(aux_18: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_18(aux_18)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_18` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_18' + /// Returns the value of `AUX_18`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_18(&self) -> f32 { - self.aux_18_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_18' + /// Returns the raw value of `AUX_18`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_18_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_18_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_18' + /// Sets the raw value of `AUX_18`. + #[inline(always)] + pub fn set_aux_18_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_18`. #[inline(always)] pub fn set_aux_18(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13286,42 +13853,47 @@ impl RtDl1mk3Aux17 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_17_MIN: f32 = 0_f32; pub const AUX_17_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_17' from values + /// Constructs a new `RT_DL1MK3_Aux_17` message from values. pub fn new(aux_17: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_17(aux_17)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_17` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_17' + /// Returns the value of `AUX_17`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_17(&self) -> f32 { - self.aux_17_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_17' + /// Returns the raw value of `AUX_17`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_17_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_17_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_17`. + #[inline(always)] + pub fn set_aux_17_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_17' + /// Sets the value of `AUX_17`. #[inline(always)] pub fn set_aux_17(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13398,42 +13970,47 @@ impl RtDl1mk3Aux16 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_16_MIN: f32 = 0_f32; pub const AUX_16_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_16' from values + /// Constructs a new `RT_DL1MK3_Aux_16` message from values. pub fn new(aux_16: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_16(aux_16)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_16` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_16' + /// Returns the value of `AUX_16`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_16(&self) -> f32 { - self.aux_16_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_16' + /// Returns the raw value of `AUX_16`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_16_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_16_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_16`. + #[inline(always)] + pub fn set_aux_16_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_16' + /// Sets the value of `AUX_16`. #[inline(always)] pub fn set_aux_16(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13510,42 +14087,47 @@ impl RtDl1mk3Aux15 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_15_MIN: f32 = 0_f32; pub const AUX_15_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_15' from values + /// Constructs a new `RT_DL1MK3_Aux_15` message from values. pub fn new(aux_15: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_15(aux_15)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_15` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_15' + /// Returns the value of `AUX_15`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_15(&self) -> f32 { - self.aux_15_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_15' + /// Returns the raw value of `AUX_15`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_15_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_15_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_15`. + #[inline(always)] + pub fn set_aux_15_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_15' + /// Sets the value of `AUX_15`. #[inline(always)] pub fn set_aux_15(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13622,42 +14204,47 @@ impl RtDl1mk3Aux14 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_14_MIN: f32 = 0_f32; pub const AUX_14_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_14' from values + /// Constructs a new `RT_DL1MK3_Aux_14` message from values. pub fn new(aux_14: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_14(aux_14)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_14` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_14' + /// Returns the value of `AUX_14`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_14(&self) -> f32 { - self.aux_14_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_14' + /// Returns the raw value of `AUX_14`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_14_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_14_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_14' + /// Sets the raw value of `AUX_14`. + #[inline(always)] + pub fn set_aux_14_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_14`. #[inline(always)] pub fn set_aux_14(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13734,42 +14321,47 @@ impl RtDl1mk3Aux13 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_13_MIN: f32 = 0_f32; pub const AUX_13_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_13' from values + /// Constructs a new `RT_DL1MK3_Aux_13` message from values. pub fn new(aux_13: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_13(aux_13)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_13` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_13' + /// Returns the value of `AUX_13`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_13(&self) -> f32 { - self.aux_13_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_13' + /// Returns the raw value of `AUX_13`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_13_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_13_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_13`. + #[inline(always)] + pub fn set_aux_13_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_13' + /// Sets the value of `AUX_13`. #[inline(always)] pub fn set_aux_13(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13846,42 +14438,47 @@ impl RtDl1mk3Aux12 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_12_MIN: f32 = 0_f32; pub const AUX_12_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_12' from values + /// Constructs a new `RT_DL1MK3_Aux_12` message from values. pub fn new(aux_12: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_12(aux_12)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_12` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_12' + /// Returns the value of `AUX_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_12(&self) -> f32 { - self.aux_12_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_12' + /// Returns the raw value of `AUX_12`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_12_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_12_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_12`. + #[inline(always)] + pub fn set_aux_12_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_12' + /// Sets the value of `AUX_12`. #[inline(always)] pub fn set_aux_12(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -13958,42 +14555,47 @@ impl RtDl1mk3Aux11 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_11_MIN: f32 = 0_f32; pub const AUX_11_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_11' from values + /// Constructs a new `RT_DL1MK3_Aux_11` message from values. pub fn new(aux_11: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_11(aux_11)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_11` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_11' + /// Returns the value of `AUX_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_11(&self) -> f32 { - self.aux_11_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_11' + /// Returns the raw value of `AUX_11`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_11_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_11_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_11`. + #[inline(always)] + pub fn set_aux_11_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_11' + /// Sets the value of `AUX_11`. #[inline(always)] pub fn set_aux_11(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14070,42 +14672,47 @@ impl RtDl1mk3Aux9 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_9_MIN: f32 = 0_f32; pub const AUX_9_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_9' from values + /// Constructs a new `RT_DL1MK3_Aux_9` message from values. pub fn new(aux_9: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_9(aux_9)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_9` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_9' + /// Returns the value of `AUX_9`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_9(&self) -> f32 { - self.aux_9_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_9' + /// Returns the raw value of `AUX_9`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_9_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_9_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_9' + /// Sets the raw value of `AUX_9`. + #[inline(always)] + pub fn set_aux_9_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_9`. #[inline(always)] pub fn set_aux_9(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14182,42 +14789,47 @@ impl RtDl1mk3Aux10 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_10_MIN: f32 = 0_f32; pub const AUX_10_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_10' from values + /// Constructs a new `RT_DL1MK3_Aux_10` message from values. pub fn new(aux_10: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_10(aux_10)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_10` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_10' + /// Returns the value of `AUX_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_10(&self) -> f32 { - self.aux_10_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_10' + /// Returns the raw value of `AUX_10`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_10_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_10_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_10`. + #[inline(always)] + pub fn set_aux_10_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_10' + /// Sets the value of `AUX_10`. #[inline(always)] pub fn set_aux_10(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14294,42 +14906,47 @@ impl RtDl1mk3Aux8 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_8_MIN: f32 = 0_f32; pub const AUX_8_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_8' from values + /// Constructs a new `RT_DL1MK3_Aux_8` message from values. pub fn new(aux_8: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_8(aux_8)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_8` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_8' + /// Returns the value of `AUX_8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_8(&self) -> f32 { - self.aux_8_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_8' + /// Returns the raw value of `AUX_8`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_8_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_8_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_8`. + #[inline(always)] + pub fn set_aux_8_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_8' + /// Sets the value of `AUX_8`. #[inline(always)] pub fn set_aux_8(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14406,42 +15023,47 @@ impl RtDl1mk3Aux7 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_7_MIN: f32 = 0_f32; pub const AUX_7_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_7' from values + /// Constructs a new `RT_DL1MK3_Aux_7` message from values. pub fn new(aux_7: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_7(aux_7)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_7` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_7' + /// Returns the value of `AUX_7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_7(&self) -> f32 { - self.aux_7_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_7' + /// Returns the raw value of `AUX_7`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_7_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_7_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_7`. + #[inline(always)] + pub fn set_aux_7_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_7' + /// Sets the value of `AUX_7`. #[inline(always)] pub fn set_aux_7(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14518,42 +15140,47 @@ impl RtDl1mk3Aux6 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_6_MIN: f32 = 0_f32; pub const AUX_6_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_6' from values + /// Constructs a new `RT_DL1MK3_Aux_6` message from values. pub fn new(aux_6: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_6(aux_6)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_6` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_6' + /// Returns the value of `AUX_6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_6(&self) -> f32 { - self.aux_6_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_6' + /// Returns the raw value of `AUX_6`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_6_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_6_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_6' + /// Sets the raw value of `AUX_6`. + #[inline(always)] + pub fn set_aux_6_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_6`. #[inline(always)] pub fn set_aux_6(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14630,42 +15257,47 @@ impl RtDl1mk3Aux5 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_5_MIN: f32 = 0_f32; pub const AUX_5_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_5' from values + /// Constructs a new `RT_DL1MK3_Aux_5` message from values. pub fn new(aux_5: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_5(aux_5)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_5` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_5' + /// Returns the value of `AUX_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_5(&self) -> f32 { - self.aux_5_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_5' + /// Returns the raw value of `AUX_5`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_5_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_5_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_5`. + #[inline(always)] + pub fn set_aux_5_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_5' + /// Sets the value of `AUX_5`. #[inline(always)] pub fn set_aux_5(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14742,42 +15374,47 @@ impl RtDl1mk3Aux4 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_4_MIN: f32 = 0_f32; pub const AUX_4_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_4' from values + /// Constructs a new `RT_DL1MK3_Aux_4` message from values. pub fn new(aux_4: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_4(aux_4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_4` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_4' + /// Returns the value of `AUX_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_4(&self) -> f32 { - self.aux_4_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_4' + /// Returns the raw value of `AUX_4`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_4_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_4_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_4`. + #[inline(always)] + pub fn set_aux_4_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_4' + /// Sets the value of `AUX_4`. #[inline(always)] pub fn set_aux_4(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14854,42 +15491,47 @@ impl RtDl1mk3Aux3 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_3_MIN: f32 = 0_f32; pub const AUX_3_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_3' from values + /// Constructs a new `RT_DL1MK3_Aux_3` message from values. pub fn new(aux_3: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_3(aux_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_3` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_3' + /// Returns the value of `AUX_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_3(&self) -> f32 { - self.aux_3_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_3' + /// Returns the raw value of `AUX_3`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_3_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_3`. + #[inline(always)] + pub fn set_aux_3_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_3' + /// Sets the value of `AUX_3`. #[inline(always)] pub fn set_aux_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -14966,42 +15608,47 @@ impl RtDl1mk3Aux2 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_2_MIN: f32 = 0_f32; pub const AUX_2_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_2' from values + /// Constructs a new `RT_DL1MK3_Aux_2` message from values. pub fn new(aux_2: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_2(aux_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_2` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_2' + /// Returns the value of `AUX_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_2(&self) -> f32 { - self.aux_2_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_2' + /// Returns the raw value of `AUX_2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_2_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'AUX_2' + /// Sets the raw value of `AUX_2`. + #[inline(always)] + pub fn set_aux_2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `AUX_2`. #[inline(always)] pub fn set_aux_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15078,42 +15725,47 @@ impl RtDl1mk3Aux1 { pub const MESSAGE_SIZE: usize = 2; pub const AUX_1_MIN: f32 = 0_f32; pub const AUX_1_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Aux_1' from values + /// Constructs a new `RT_DL1MK3_Aux_1` message from values. pub fn new(aux_1: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_aux_1(aux_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Aux_1` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'AUX_1' + /// Returns the value of `AUX_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn aux_1(&self) -> f32 { - self.aux_1_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'AUX_1' + /// Returns the raw value of `AUX_1`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn aux_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn aux_1_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `AUX_1`. + #[inline(always)] + pub fn set_aux_1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'AUX_1' + /// Sets the value of `AUX_1`. #[inline(always)] pub fn set_aux_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15190,42 +15842,47 @@ impl RtDl1mk3Pressure5 { pub const MESSAGE_SIZE: usize = 3; pub const PRESSURE_5_MIN: f32 = 0_f32; pub const PRESSURE_5_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Pressure_5' from values + /// Constructs a new `RT_DL1MK3_Pressure_5` message from values. pub fn new(pressure_5: f32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_pressure_5(pressure_5)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Pressure_5` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Pressure_5' + /// Returns the value of `Pressure_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn pressure_5(&self) -> f32 { - self.pressure_5_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Pressure_5' + /// Returns the raw value of `Pressure_5`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn pressure_5_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn pressure_5_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Pressure_5`. + #[inline(always)] + pub fn set_pressure_5_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Pressure_5' + /// Sets the value of `Pressure_5`. #[inline(always)] pub fn set_pressure_5(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15302,42 +15959,47 @@ impl RtDl1mk3Pressure4 { pub const MESSAGE_SIZE: usize = 3; pub const PRESSURE_4_MIN: f32 = 0_f32; pub const PRESSURE_4_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Pressure_4' from values + /// Constructs a new `RT_DL1MK3_Pressure_4` message from values. pub fn new(pressure_4: f32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_pressure_4(pressure_4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Pressure_4` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Pressure_4' + /// Returns the value of `Pressure_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn pressure_4(&self) -> f32 { - self.pressure_4_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Pressure_4' + /// Returns the raw value of `Pressure_4`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn pressure_4_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn pressure_4_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Pressure_4`. + #[inline(always)] + pub fn set_pressure_4_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Pressure_4' + /// Sets the value of `Pressure_4`. #[inline(always)] pub fn set_pressure_4(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15414,42 +16076,47 @@ impl RtDl1mk3Pressure3 { pub const MESSAGE_SIZE: usize = 3; pub const PRESSURE_3_MIN: f32 = 0_f32; pub const PRESSURE_3_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Pressure_3' from values + /// Constructs a new `RT_DL1MK3_Pressure_3` message from values. pub fn new(pressure_3: f32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_pressure_3(pressure_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Pressure_3` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Pressure_3' + /// Returns the value of `Pressure_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn pressure_3(&self) -> f32 { - self.pressure_3_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Pressure_3' + /// Returns the raw value of `Pressure_3`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn pressure_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn pressure_3_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() } - /// Set value of 'Pressure_3' + /// Sets the raw value of `Pressure_3`. + #[inline(always)] + pub fn set_pressure_3_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); + } + /// Sets the value of `Pressure_3`. #[inline(always)] pub fn set_pressure_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15526,42 +16193,47 @@ impl RtDl1mk3Pressure2 { pub const MESSAGE_SIZE: usize = 3; pub const PRESSURE_2_MIN: f32 = 0_f32; pub const PRESSURE_2_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Pressure_2' from values + /// Constructs a new `RT_DL1MK3_Pressure_2` message from values. pub fn new(pressure_2: f32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_pressure_2(pressure_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Pressure_2` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Pressure_2' + /// Returns the value of `Pressure_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn pressure_2(&self) -> f32 { - self.pressure_2_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Pressure_2' + /// Returns the raw value of `Pressure_2`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn pressure_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn pressure_2_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Pressure_2`. + #[inline(always)] + pub fn set_pressure_2_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Pressure_2' + /// Sets the value of `Pressure_2`. #[inline(always)] pub fn set_pressure_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15638,42 +16310,47 @@ impl RtDl1mk3Pressure1 { pub const MESSAGE_SIZE: usize = 3; pub const PRESSURE_1_MIN: f32 = 0_f32; pub const PRESSURE_1_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Pressure_1' from values + /// Constructs a new `RT_DL1MK3_Pressure_1` message from values. pub fn new(pressure_1: f32) -> Result { let mut res = Self { raw: [0x00; 3] }; res.set_pressure_1(pressure_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Pressure_1` message payload. pub fn raw(&self) -> &[u8; 3] { &self.raw } - /// Get value of 'Pressure_1' + /// Returns the value of `Pressure_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn pressure_1(&self) -> f32 { - self.pressure_1_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Pressure_1' + /// Returns the raw value of `Pressure_1`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn pressure_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn pressure_1_raw_val(&self) -> u32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Pressure_1`. + #[inline(always)] + pub fn set_pressure_1_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Pressure_1' + /// Sets the value of `Pressure_1`. #[inline(always)] pub fn set_pressure_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15750,42 +16427,48 @@ impl RtDl1mk3Angle3 { pub const MESSAGE_SIZE: usize = 2; pub const ANGLE_3_MIN: f32 = 0_f32; pub const ANGLE_3_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Angle_3' from values + /// Constructs a new `RT_DL1MK3_Angle_3` message from values. pub fn new(angle_3: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_angle_3(angle_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Angle_3` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Angle_3' + /// Returns the value of `Angle_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn angle_3(&self) -> f32 { - self.angle_3_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Angle_3' + /// Returns the raw value of `Angle_3`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn angle_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn angle_3_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Angle_3`. + #[inline(always)] + pub fn set_angle_3_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Angle_3' + /// Sets the value of `Angle_3`. #[inline(always)] pub fn set_angle_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15863,42 +16546,48 @@ impl RtDl1mk3Angle2 { pub const MESSAGE_SIZE: usize = 2; pub const ANGLE_2_MIN: f32 = 0_f32; pub const ANGLE_2_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Angle_2' from values + /// Constructs a new `RT_DL1MK3_Angle_2` message from values. pub fn new(angle_2: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_angle_2(angle_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Angle_2` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Angle_2' + /// Returns the value of `Angle_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn angle_2(&self) -> f32 { - self.angle_2_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Angle_2' + /// Returns the raw value of `Angle_2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn angle_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn angle_2_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Angle_2`. + #[inline(always)] + pub fn set_angle_2_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Angle_2' + /// Sets the value of `Angle_2`. #[inline(always)] pub fn set_angle_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -15976,42 +16665,48 @@ impl RtDl1mk3Angle1 { pub const MESSAGE_SIZE: usize = 2; pub const ANGLE_1_MIN: f32 = 0_f32; pub const ANGLE_1_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Angle_1' from values + /// Constructs a new `RT_DL1MK3_Angle_1` message from values. pub fn new(angle_1: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_angle_1(angle_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Angle_1` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Angle_1' + /// Returns the value of `Angle_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn angle_1(&self) -> f32 { - self.angle_1_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Angle_1' + /// Returns the raw value of `Angle_1`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn angle_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn angle_1_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Angle_1`. + #[inline(always)] + pub fn set_angle_1_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Angle_1' + /// Sets the value of `Angle_1`. #[inline(always)] pub fn set_angle_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16089,42 +16784,48 @@ impl RtDl1mk3Temp25 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_25_MIN: f32 = 0_f32; pub const TEMPERATURE_25_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_25' from values + /// Constructs a new `RT_DL1MK3_Temp_25` message from values. pub fn new(temperature_25: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_25(temperature_25)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_25` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_25' + /// Returns the value of `Temperature_25`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_25(&self) -> f32 { - self.temperature_25_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_25' + /// Returns the raw value of `Temperature_25`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_25_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_25_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_25`. + #[inline(always)] + pub fn set_temperature_25_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_25' + /// Sets the value of `Temperature_25`. #[inline(always)] pub fn set_temperature_25(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16202,42 +16903,48 @@ impl RtDl1mk3Temp24 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_24_MIN: f32 = 0_f32; pub const TEMPERATURE_24_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_24' from values + /// Constructs a new `RT_DL1MK3_Temp_24` message from values. pub fn new(temperature_24: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_24(temperature_24)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_24` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_24' + /// Returns the value of `Temperature_24`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_24(&self) -> f32 { - self.temperature_24_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_24' + /// Returns the raw value of `Temperature_24`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_24_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_24_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_24`. + #[inline(always)] + pub fn set_temperature_24_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_24' + /// Sets the value of `Temperature_24`. #[inline(always)] pub fn set_temperature_24(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16315,42 +17022,48 @@ impl RtDl1mk3Temp23 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_23_MIN: f32 = 0_f32; pub const TEMPERATURE_23_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_23' from values + /// Constructs a new `RT_DL1MK3_Temp_23` message from values. pub fn new(temperature_23: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_23(temperature_23)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_23` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_23' + /// Returns the value of `Temperature_23`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_23(&self) -> f32 { - self.temperature_23_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_23' + /// Returns the raw value of `Temperature_23`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_23_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_23_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_23`. + #[inline(always)] + pub fn set_temperature_23_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_23' + /// Sets the value of `Temperature_23`. #[inline(always)] pub fn set_temperature_23(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16428,42 +17141,48 @@ impl RtDl1mk3Temp22 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_22_MIN: f32 = 0_f32; pub const TEMPERATURE_22_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_22' from values + /// Constructs a new `RT_DL1MK3_Temp_22` message from values. pub fn new(temperature_22: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_22(temperature_22)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_22` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_22' + /// Returns the value of `Temperature_22`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_22(&self) -> f32 { - self.temperature_22_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_22' + /// Returns the raw value of `Temperature_22`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_22_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_22_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_22`. + #[inline(always)] + pub fn set_temperature_22_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_22' + /// Sets the value of `Temperature_22`. #[inline(always)] pub fn set_temperature_22(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16541,42 +17260,48 @@ impl RtDl1mk3Temp21 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_21_MIN: f32 = 0_f32; pub const TEMPERATURE_21_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_21' from values + /// Constructs a new `RT_DL1MK3_Temp_21` message from values. pub fn new(temperature_21: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_21(temperature_21)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_21` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_21' + /// Returns the value of `Temperature_21`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_21(&self) -> f32 { - self.temperature_21_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_21' + /// Returns the raw value of `Temperature_21`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_21_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_21_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_21`. + #[inline(always)] + pub fn set_temperature_21_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_21' + /// Sets the value of `Temperature_21`. #[inline(always)] pub fn set_temperature_21(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16654,42 +17379,48 @@ impl RtDl1mk3Temp20 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_20_MIN: f32 = 0_f32; pub const TEMPERATURE_20_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_20' from values + /// Constructs a new `RT_DL1MK3_Temp_20` message from values. pub fn new(temperature_20: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_20(temperature_20)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_20` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_20' + /// Returns the value of `Temperature_20`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_20(&self) -> f32 { - self.temperature_20_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_20' + /// Returns the raw value of `Temperature_20`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_20_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_20_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_20`. + #[inline(always)] + pub fn set_temperature_20_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_20' + /// Sets the value of `Temperature_20`. #[inline(always)] pub fn set_temperature_20(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16767,42 +17498,48 @@ impl RtDl1mk3Temp19 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_19_MIN: f32 = 0_f32; pub const TEMPERATURE_19_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_19' from values + /// Constructs a new `RT_DL1MK3_Temp_19` message from values. pub fn new(temperature_19: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_19(temperature_19)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_19` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_19' + /// Returns the value of `Temperature_19`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_19(&self) -> f32 { - self.temperature_19_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_19' + /// Returns the raw value of `Temperature_19`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_19_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_19_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_19`. + #[inline(always)] + pub fn set_temperature_19_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_19' + /// Sets the value of `Temperature_19`. #[inline(always)] pub fn set_temperature_19(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16880,42 +17617,48 @@ impl RtDl1mk3Temp18 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_18_MIN: f32 = 0_f32; pub const TEMPERATURE_18_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_18' from values + /// Constructs a new `RT_DL1MK3_Temp_18` message from values. pub fn new(temperature_18: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_18(temperature_18)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_18` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_18' + /// Returns the value of `Temperature_18`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_18(&self) -> f32 { - self.temperature_18_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_18' + /// Returns the raw value of `Temperature_18`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_18_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_18_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_18`. + #[inline(always)] + pub fn set_temperature_18_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_18' + /// Sets the value of `Temperature_18`. #[inline(always)] pub fn set_temperature_18(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -16993,42 +17736,48 @@ impl RtDl1mk3Temp17 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_17_MIN: f32 = 0_f32; pub const TEMPERATURE_17_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_17' from values + /// Constructs a new `RT_DL1MK3_Temp_17` message from values. pub fn new(temperature_17: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_17(temperature_17)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_17` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_17' + /// Returns the value of `Temperature_17`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_17(&self) -> f32 { - self.temperature_17_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_17' + /// Returns the raw value of `Temperature_17`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_17_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_17_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_17`. + #[inline(always)] + pub fn set_temperature_17_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_17' + /// Sets the value of `Temperature_17`. #[inline(always)] pub fn set_temperature_17(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17106,42 +17855,48 @@ impl RtDl1mk3Temp16 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_16_MIN: f32 = 0_f32; pub const TEMPERATURE_16_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_16' from values + /// Constructs a new `RT_DL1MK3_Temp_16` message from values. pub fn new(temperature_16: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_16(temperature_16)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_16` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_16' + /// Returns the value of `Temperature_16`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_16(&self) -> f32 { - self.temperature_16_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_16' + /// Returns the raw value of `Temperature_16`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_16_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_16_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_16`. + #[inline(always)] + pub fn set_temperature_16_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_16' + /// Sets the value of `Temperature_16`. #[inline(always)] pub fn set_temperature_16(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17219,42 +17974,48 @@ impl RtDl1mk3Temp15 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_15_MIN: f32 = 0_f32; pub const TEMPERATURE_15_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_15' from values + /// Constructs a new `RT_DL1MK3_Temp_15` message from values. pub fn new(temperature_15: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_15(temperature_15)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_15` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_15' + /// Returns the value of `Temperature_15`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_15(&self) -> f32 { - self.temperature_15_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_15' + /// Returns the raw value of `Temperature_15`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_15_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_15_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_15`. + #[inline(always)] + pub fn set_temperature_15_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_15' + /// Sets the value of `Temperature_15`. #[inline(always)] pub fn set_temperature_15(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17332,42 +18093,48 @@ impl RtDl1mk3Temp14 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_14_MIN: f32 = 0_f32; pub const TEMPERATURE_14_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_14' from values + /// Constructs a new `RT_DL1MK3_Temp_14` message from values. pub fn new(temperature_14: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_14(temperature_14)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_14` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_14' + /// Returns the value of `Temperature_14`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_14(&self) -> f32 { - self.temperature_14_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_14' + /// Returns the raw value of `Temperature_14`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_14_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_14_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_14`. + #[inline(always)] + pub fn set_temperature_14_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_14' + /// Sets the value of `Temperature_14`. #[inline(always)] pub fn set_temperature_14(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17445,42 +18212,48 @@ impl RtDl1mk3Temp13 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_13_MIN: f32 = 0_f32; pub const TEMPERATURE_13_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_13' from values + /// Constructs a new `RT_DL1MK3_Temp_13` message from values. pub fn new(temperature_13: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_13(temperature_13)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_13` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_13' + /// Returns the value of `Temperature_13`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_13(&self) -> f32 { - self.temperature_13_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_13' + /// Returns the raw value of `Temperature_13`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_13_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_13_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_13`. + #[inline(always)] + pub fn set_temperature_13_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_13' + /// Sets the value of `Temperature_13`. #[inline(always)] pub fn set_temperature_13(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17558,42 +18331,48 @@ impl RtDl1mk3Temp12 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_12_MIN: f32 = 0_f32; pub const TEMPERATURE_12_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_12' from values + /// Constructs a new `RT_DL1MK3_Temp_12` message from values. pub fn new(temperature_12: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_12(temperature_12)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_12` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_12' + /// Returns the value of `Temperature_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_12(&self) -> f32 { - self.temperature_12_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_12' + /// Returns the raw value of `Temperature_12`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_12_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_12_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_12`. + #[inline(always)] + pub fn set_temperature_12_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_12' + /// Sets the value of `Temperature_12`. #[inline(always)] pub fn set_temperature_12(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17671,42 +18450,48 @@ impl RtDl1mk3Temp11 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_11_MIN: f32 = 0_f32; pub const TEMPERATURE_11_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_11' from values + /// Constructs a new `RT_DL1MK3_Temp_11` message from values. pub fn new(temperature_11: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_11(temperature_11)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_11` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_11' + /// Returns the value of `Temperature_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_11(&self) -> f32 { - self.temperature_11_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_11' + /// Returns the raw value of `Temperature_11`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_11_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_11_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_11`. + #[inline(always)] + pub fn set_temperature_11_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_11' + /// Sets the value of `Temperature_11`. #[inline(always)] pub fn set_temperature_11(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17784,42 +18569,48 @@ impl RtDl1mk3Temp10 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_10_MIN: f32 = 0_f32; pub const TEMPERATURE_10_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_10' from values + /// Constructs a new `RT_DL1MK3_Temp_10` message from values. pub fn new(temperature_10: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_10(temperature_10)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_10` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_10' + /// Returns the value of `Temperature_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_10(&self) -> f32 { - self.temperature_10_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_10' + /// Returns the raw value of `Temperature_10`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_10_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_10_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_10`. + #[inline(always)] + pub fn set_temperature_10_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_10' + /// Sets the value of `Temperature_10`. #[inline(always)] pub fn set_temperature_10(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -17897,42 +18688,48 @@ impl RtDl1mk3Temp9 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_9_MIN: f32 = 0_f32; pub const TEMPERATURE_9_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_9' from values + /// Constructs a new `RT_DL1MK3_Temp_9` message from values. pub fn new(temperature_9: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_9(temperature_9)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_9` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_9' + /// Returns the value of `Temperature_9`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_9(&self) -> f32 { - self.temperature_9_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_9' + /// Returns the raw value of `Temperature_9`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_9_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_9_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_9`. + #[inline(always)] + pub fn set_temperature_9_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_9' + /// Sets the value of `Temperature_9`. #[inline(always)] pub fn set_temperature_9(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18010,42 +18807,48 @@ impl RtDl1mk3Temp8 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_8_MIN: f32 = 0_f32; pub const TEMPERATURE_8_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_8' from values + /// Constructs a new `RT_DL1MK3_Temp_8` message from values. pub fn new(temperature_8: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_8(temperature_8)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_8` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_8' + /// Returns the value of `Temperature_8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_8(&self) -> f32 { - self.temperature_8_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_8' + /// Returns the raw value of `Temperature_8`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_8_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_8_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_8`. + #[inline(always)] + pub fn set_temperature_8_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_8' + /// Sets the value of `Temperature_8`. #[inline(always)] pub fn set_temperature_8(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18123,42 +18926,48 @@ impl RtDl1mk3Temp7 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_7_MIN: f32 = 0_f32; pub const TEMPERATURE_7_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_7' from values + /// Constructs a new `RT_DL1MK3_Temp_7` message from values. pub fn new(temperature_7: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_7(temperature_7)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_7` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_7' + /// Returns the value of `Temperature_7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_7(&self) -> f32 { - self.temperature_7_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_7' + /// Returns the raw value of `Temperature_7`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_7_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_7_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_7`. + #[inline(always)] + pub fn set_temperature_7_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_7' + /// Sets the value of `Temperature_7`. #[inline(always)] pub fn set_temperature_7(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18236,42 +19045,48 @@ impl RtDl1mk3Temp6 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_6_MIN: f32 = 0_f32; pub const TEMPERATURE_6_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_6' from values + /// Constructs a new `RT_DL1MK3_Temp_6` message from values. pub fn new(temperature_6: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_6(temperature_6)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_6` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_6' + /// Returns the value of `Temperature_6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_6(&self) -> f32 { - self.temperature_6_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_6' + /// Returns the raw value of `Temperature_6`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_6_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_6_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_6`. + #[inline(always)] + pub fn set_temperature_6_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_6' + /// Sets the value of `Temperature_6`. #[inline(always)] pub fn set_temperature_6(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18349,42 +19164,48 @@ impl RtDl1mk3Temp5 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_5_MIN: f32 = 0_f32; pub const TEMPERATURE_5_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_5' from values + /// Constructs a new `RT_DL1MK3_Temp_5` message from values. pub fn new(temperature_5: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_5(temperature_5)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_5` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_5' + /// Returns the value of `Temperature_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_5(&self) -> f32 { - self.temperature_5_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_5' + /// Returns the raw value of `Temperature_5`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_5_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_5_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_5`. + #[inline(always)] + pub fn set_temperature_5_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_5' + /// Sets the value of `Temperature_5`. #[inline(always)] pub fn set_temperature_5(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18462,42 +19283,48 @@ impl RtDl1mk3Temp4 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_4_MIN: f32 = 0_f32; pub const TEMPERATURE_4_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_4' from values + /// Constructs a new `RT_DL1MK3_Temp_4` message from values. pub fn new(temperature_4: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_4(temperature_4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_4` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_4' + /// Returns the value of `Temperature_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_4(&self) -> f32 { - self.temperature_4_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_4' + /// Returns the raw value of `Temperature_4`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_4_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_4_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_4`. + #[inline(always)] + pub fn set_temperature_4_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_4' + /// Sets the value of `Temperature_4`. #[inline(always)] pub fn set_temperature_4(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18575,42 +19402,48 @@ impl RtDl1mk3Temp3 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_3_MIN: f32 = 0_f32; pub const TEMPERATURE_3_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_3' from values + /// Constructs a new `RT_DL1MK3_Temp_3` message from values. pub fn new(temperature_3: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_3(temperature_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_3` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_3' + /// Returns the value of `Temperature_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_3(&self) -> f32 { - self.temperature_3_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_3' + /// Returns the raw value of `Temperature_3`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_3_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_3`. + #[inline(always)] + pub fn set_temperature_3_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_3' + /// Sets the value of `Temperature_3`. #[inline(always)] pub fn set_temperature_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18688,42 +19521,48 @@ impl RtDl1mk3Temp2 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_2_MIN: f32 = 0_f32; pub const TEMPERATURE_2_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_2' from values + /// Constructs a new `RT_DL1MK3_Temp_2` message from values. pub fn new(temperature_2: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_2(temperature_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_2` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_2' + /// Returns the value of `Temperature_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_2(&self) -> f32 { - self.temperature_2_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_2' + /// Returns the raw value of `Temperature_2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_2_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_2`. + #[inline(always)] + pub fn set_temperature_2_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_2' + /// Sets the value of `Temperature_2`. #[inline(always)] pub fn set_temperature_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18801,42 +19640,48 @@ impl RtDl1mk3Temp1 { pub const MESSAGE_SIZE: usize = 2; pub const TEMPERATURE_1_MIN: f32 = 0_f32; pub const TEMPERATURE_1_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Temp_1' from values + /// Constructs a new `RT_DL1MK3_Temp_1` message from values. pub fn new(temperature_1: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_temperature_1(temperature_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Temp_1` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Temperature_1' + /// Returns the value of `Temperature_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.1 + /// - Offset: 0 #[inline(always)] pub fn temperature_1(&self) -> f32 { - self.temperature_1_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.1_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Temperature_1' + /// Returns the raw value of `Temperature_1`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn temperature_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.1_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn temperature_1_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Temperature_1`. + #[inline(always)] + pub fn set_temperature_1_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Temperature_1' + /// Sets the value of `Temperature_1`. #[inline(always)] pub fn set_temperature_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -18914,42 +19759,47 @@ impl RtDl1mk3Analog32 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_32_MIN: f32 = 0_f32; pub const ANALOG_32_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_32' from values + /// Constructs a new `RT_DL1MK3_Analog_32` message from values. pub fn new(analog_32: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_32(analog_32)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_32` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_32' + /// Returns the value of `Analog_32`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_32(&self) -> f32 { - self.analog_32_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_32' + /// Returns the raw value of `Analog_32`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_32_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_32_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_32`. + #[inline(always)] + pub fn set_analog_32_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_32' + /// Sets the value of `Analog_32`. #[inline(always)] pub fn set_analog_32(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19026,42 +19876,47 @@ impl RtDl1mk3Analog31 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_31_MIN: f32 = 0_f32; pub const ANALOG_31_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_31' from values + /// Constructs a new `RT_DL1MK3_Analog_31` message from values. pub fn new(analog_31: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_31(analog_31)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_31` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_31' + /// Returns the value of `Analog_31`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_31(&self) -> f32 { - self.analog_31_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_31' + /// Returns the raw value of `Analog_31`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_31_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_31_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_31' + /// Sets the raw value of `Analog_31`. + #[inline(always)] + pub fn set_analog_31_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_31`. #[inline(always)] pub fn set_analog_31(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19138,42 +19993,47 @@ impl RtDl1mk3Analog30 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_30_MIN: f32 = 0_f32; pub const ANALOG_30_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_30' from values + /// Constructs a new `RT_DL1MK3_Analog_30` message from values. pub fn new(analog_30: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_30(analog_30)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_30` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_30' + /// Returns the value of `Analog_30`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_30(&self) -> f32 { - self.analog_30_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_30' + /// Returns the raw value of `Analog_30`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_30_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_30_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_30`. + #[inline(always)] + pub fn set_analog_30_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_30' + /// Sets the value of `Analog_30`. #[inline(always)] pub fn set_analog_30(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19250,42 +20110,47 @@ impl RtDl1mk3Analog29 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_29_MIN: f32 = 0_f32; pub const ANALOG_29_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_29' from values + /// Constructs a new `RT_DL1MK3_Analog_29` message from values. pub fn new(analog_29: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_29(analog_29)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_29` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_29' + /// Returns the value of `Analog_29`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_29(&self) -> f32 { - self.analog_29_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_29' + /// Returns the raw value of `Analog_29`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_29_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_29_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_29`. + #[inline(always)] + pub fn set_analog_29_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_29' + /// Sets the value of `Analog_29`. #[inline(always)] pub fn set_analog_29(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19362,42 +20227,47 @@ impl RtDl1mk3Analog28 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_28_MIN: f32 = 0_f32; pub const ANALOG_28_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_28' from values + /// Constructs a new `RT_DL1MK3_Analog_28` message from values. pub fn new(analog_28: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_28(analog_28)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_28` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_28' + /// Returns the value of `Analog_28`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_28(&self) -> f32 { - self.analog_28_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_28' + /// Returns the raw value of `Analog_28`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_28_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_28_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_28`. + #[inline(always)] + pub fn set_analog_28_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_28' + /// Sets the value of `Analog_28`. #[inline(always)] pub fn set_analog_28(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19474,42 +20344,47 @@ impl RtDl1mk3Analog27 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_27_MIN: f32 = 0_f32; pub const ANALOG_27_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_27' from values + /// Constructs a new `RT_DL1MK3_Analog_27` message from values. pub fn new(analog_27: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_27(analog_27)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_27` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_27' + /// Returns the value of `Analog_27`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_27(&self) -> f32 { - self.analog_27_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_27' + /// Returns the raw value of `Analog_27`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_27_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_27_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_27' + /// Sets the raw value of `Analog_27`. + #[inline(always)] + pub fn set_analog_27_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_27`. #[inline(always)] pub fn set_analog_27(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19586,42 +20461,47 @@ impl RtDl1mk3Analog26 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_26_MIN: f32 = 0_f32; pub const ANALOG_26_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_26' from values + /// Constructs a new `RT_DL1MK3_Analog_26` message from values. pub fn new(analog_26: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_26(analog_26)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_26` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_26' + /// Returns the value of `Analog_26`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_26(&self) -> f32 { - self.analog_26_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_26' + /// Returns the raw value of `Analog_26`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_26_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_26_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_26`. + #[inline(always)] + pub fn set_analog_26_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_26' + /// Sets the value of `Analog_26`. #[inline(always)] pub fn set_analog_26(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19698,42 +20578,47 @@ impl RtDl1mk3Analog25 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_25_MIN: f32 = 0_f32; pub const ANALOG_25_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_25' from values + /// Constructs a new `RT_DL1MK3_Analog_25` message from values. pub fn new(analog_25: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_25(analog_25)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_25` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_25' + /// Returns the value of `Analog_25`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_25(&self) -> f32 { - self.analog_25_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_25' + /// Returns the raw value of `Analog_25`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_25_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_25_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_25`. + #[inline(always)] + pub fn set_analog_25_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_25' + /// Sets the value of `Analog_25`. #[inline(always)] pub fn set_analog_25(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19810,42 +20695,47 @@ impl RtDl1mk3Analog15 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_15_MIN: f32 = 0_f32; pub const ANALOG_15_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_15' from values + /// Constructs a new `RT_DL1MK3_Analog_15` message from values. pub fn new(analog_15: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_15(analog_15)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_15` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_15' + /// Returns the value of `Analog_15`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_15(&self) -> f32 { - self.analog_15_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_15' + /// Returns the raw value of `Analog_15`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_15_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_15_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_15`. + #[inline(always)] + pub fn set_analog_15_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_15' + /// Sets the value of `Analog_15`. #[inline(always)] pub fn set_analog_15(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -19922,42 +20812,47 @@ impl RtDl1mk3Analog14 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_14_MIN: f32 = 0_f32; pub const ANALOG_14_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_14' from values + /// Constructs a new `RT_DL1MK3_Analog_14` message from values. pub fn new(analog_14: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_14(analog_14)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_14` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_14' + /// Returns the value of `Analog_14`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_14(&self) -> f32 { - self.analog_14_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_14' + /// Returns the raw value of `Analog_14`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_14_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_14_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_14' + /// Sets the raw value of `Analog_14`. + #[inline(always)] + pub fn set_analog_14_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_14`. #[inline(always)] pub fn set_analog_14(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20034,42 +20929,47 @@ impl RtDl1mk3Analog17 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_17_MIN: f32 = 0_f32; pub const ANALOG_17_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_17' from values + /// Constructs a new `RT_DL1MK3_Analog_17` message from values. pub fn new(analog_17: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_17(analog_17)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_17` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_17' + /// Returns the value of `Analog_17`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_17(&self) -> f32 { - self.analog_17_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_17' + /// Returns the raw value of `Analog_17`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_17_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_17_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_17`. + #[inline(always)] + pub fn set_analog_17_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_17' + /// Sets the value of `Analog_17`. #[inline(always)] pub fn set_analog_17(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20146,42 +21046,47 @@ impl RtDl1mk3Analog24 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_24_MIN: f32 = 0_f32; pub const ANALOG_24_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_24' from values + /// Constructs a new `RT_DL1MK3_Analog_24` message from values. pub fn new(analog_24: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_24(analog_24)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_24` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_24' + /// Returns the value of `Analog_24`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_24(&self) -> f32 { - self.analog_24_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_24' + /// Returns the raw value of `Analog_24`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_24_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_24_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_24`. + #[inline(always)] + pub fn set_analog_24_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_24' + /// Sets the value of `Analog_24`. #[inline(always)] pub fn set_analog_24(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20258,42 +21163,47 @@ impl RtDl1mk3Analog23 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_23_MIN: f32 = 0_f32; pub const ANALOG_23_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_23' from values + /// Constructs a new `RT_DL1MK3_Analog_23` message from values. pub fn new(analog_23: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_23(analog_23)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_23` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_23' + /// Returns the value of `Analog_23`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_23(&self) -> f32 { - self.analog_23_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_23' + /// Returns the raw value of `Analog_23`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_23_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_23_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_23`. + #[inline(always)] + pub fn set_analog_23_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_23' + /// Sets the value of `Analog_23`. #[inline(always)] pub fn set_analog_23(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20370,42 +21280,47 @@ impl RtDl1mk3Analog22 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_22_MIN: f32 = 0_f32; pub const ANALOG_22_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_22' from values + /// Constructs a new `RT_DL1MK3_Analog_22` message from values. pub fn new(analog_22: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_22(analog_22)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_22` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_22' + /// Returns the value of `Analog_22`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_22(&self) -> f32 { - self.analog_22_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_22' + /// Returns the raw value of `Analog_22`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_22_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_22_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_22' + /// Sets the raw value of `Analog_22`. + #[inline(always)] + pub fn set_analog_22_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_22`. #[inline(always)] pub fn set_analog_22(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20482,42 +21397,47 @@ impl RtDl1mk3Analog21 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_21_MIN: f32 = 0_f32; pub const ANALOG_21_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_21' from values + /// Constructs a new `RT_DL1MK3_Analog_21` message from values. pub fn new(analog_21: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_21(analog_21)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_21` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_21' + /// Returns the value of `Analog_21`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_21(&self) -> f32 { - self.analog_21_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_21' + /// Returns the raw value of `Analog_21`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_21_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_21_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_21`. + #[inline(always)] + pub fn set_analog_21_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_21' + /// Sets the value of `Analog_21`. #[inline(always)] pub fn set_analog_21(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20594,42 +21514,47 @@ impl RtDl1mk3Analog20 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_20_MIN: f32 = 0_f32; pub const ANALOG_20_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_20' from values + /// Constructs a new `RT_DL1MK3_Analog_20` message from values. pub fn new(analog_20: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_20(analog_20)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_20` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_20' + /// Returns the value of `Analog_20`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_20(&self) -> f32 { - self.analog_20_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_20' + /// Returns the raw value of `Analog_20`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_20_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_20_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_20`. + #[inline(always)] + pub fn set_analog_20_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_20' + /// Sets the value of `Analog_20`. #[inline(always)] pub fn set_analog_20(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20706,42 +21631,47 @@ impl RtDl1mk3Analog19 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_19_MIN: f32 = 0_f32; pub const ANALOG_19_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_19' from values + /// Constructs a new `RT_DL1MK3_Analog_19` message from values. pub fn new(analog_19: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_19(analog_19)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_19` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_19' + /// Returns the value of `Analog_19`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_19(&self) -> f32 { - self.analog_19_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_19' + /// Returns the raw value of `Analog_19`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_19_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_19_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_19`. + #[inline(always)] + pub fn set_analog_19_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_19' + /// Sets the value of `Analog_19`. #[inline(always)] pub fn set_analog_19(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20818,42 +21748,47 @@ impl RtDl1mk3Analog16 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_16_MIN: f32 = 0_f32; pub const ANALOG_16_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_16' from values + /// Constructs a new `RT_DL1MK3_Analog_16` message from values. pub fn new(analog_16: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_16(analog_16)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_16` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_16' + /// Returns the value of `Analog_16`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_16(&self) -> f32 { - self.analog_16_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_16' + /// Returns the raw value of `Analog_16`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_16_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_16_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_16' + /// Sets the raw value of `Analog_16`. + #[inline(always)] + pub fn set_analog_16_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_16`. #[inline(always)] pub fn set_analog_16(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -20930,42 +21865,47 @@ impl RtDl1mk3Analog18 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_18_MIN: f32 = 0_f32; pub const ANALOG_18_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_18' from values + /// Constructs a new `RT_DL1MK3_Analog_18` message from values. pub fn new(analog_18: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_18(analog_18)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_18` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_18' + /// Returns the value of `Analog_18`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_18(&self) -> f32 { - self.analog_18_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_18' + /// Returns the raw value of `Analog_18`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_18_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_18_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_18`. + #[inline(always)] + pub fn set_analog_18_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_18' + /// Sets the value of `Analog_18`. #[inline(always)] pub fn set_analog_18(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21042,42 +21982,47 @@ impl RtDl1mk3Analog12 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_12_MIN: f32 = 0_f32; pub const ANALOG_12_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_12' from values + /// Constructs a new `RT_DL1MK3_Analog_12` message from values. pub fn new(analog_12: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_12(analog_12)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_12` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_12' + /// Returns the value of `Analog_12`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_12(&self) -> f32 { - self.analog_12_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_12' + /// Returns the raw value of `Analog_12`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_12_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_12_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_12`. + #[inline(always)] + pub fn set_analog_12_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_12' + /// Sets the value of `Analog_12`. #[inline(always)] pub fn set_analog_12(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21154,42 +22099,47 @@ impl RtDl1mk3Analog11 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_11_MIN: f32 = 0_f32; pub const ANALOG_11_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_11' from values + /// Constructs a new `RT_DL1MK3_Analog_11` message from values. pub fn new(analog_11: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_11(analog_11)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_11` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_11' + /// Returns the value of `Analog_11`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_11(&self) -> f32 { - self.analog_11_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_11' + /// Returns the raw value of `Analog_11`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_11_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_11_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_11`. + #[inline(always)] + pub fn set_analog_11_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_11' + /// Sets the value of `Analog_11`. #[inline(always)] pub fn set_analog_11(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21266,42 +22216,47 @@ impl RtDl1mk3Analog10 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_10_MIN: f32 = 0_f32; pub const ANALOG_10_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_10' from values + /// Constructs a new `RT_DL1MK3_Analog_10` message from values. pub fn new(analog_10: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_10(analog_10)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_10` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_10' + /// Returns the value of `Analog_10`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_10(&self) -> f32 { - self.analog_10_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_10' + /// Returns the raw value of `Analog_10`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_10_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_10_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_10' + /// Sets the raw value of `Analog_10`. + #[inline(always)] + pub fn set_analog_10_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_10`. #[inline(always)] pub fn set_analog_10(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21378,42 +22333,47 @@ impl RtDl1mk3Analog9 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_9_MIN: f32 = 0_f32; pub const ANALOG_9_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_9' from values + /// Constructs a new `RT_DL1MK3_Analog_9` message from values. pub fn new(analog_9: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_9(analog_9)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_9` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_9' + /// Returns the value of `Analog_9`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_9(&self) -> f32 { - self.analog_9_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_9' + /// Returns the raw value of `Analog_9`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_9_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_9_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_9`. + #[inline(always)] + pub fn set_analog_9_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_9' + /// Sets the value of `Analog_9`. #[inline(always)] pub fn set_analog_9(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21490,42 +22450,47 @@ impl RtDl1mk3Analog8 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_8_MIN: f32 = 0_f32; pub const ANALOG_8_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_8' from values + /// Constructs a new `RT_DL1MK3_Analog_8` message from values. pub fn new(analog_8: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_8(analog_8)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_8` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_8' + /// Returns the value of `Analog_8`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_8(&self) -> f32 { - self.analog_8_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_8' + /// Returns the raw value of `Analog_8`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_8_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_8_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_8`. + #[inline(always)] + pub fn set_analog_8_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_8' + /// Sets the value of `Analog_8`. #[inline(always)] pub fn set_analog_8(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21602,42 +22567,47 @@ impl RtDl1mk3Analog7 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_7_MIN: f32 = 0_f32; pub const ANALOG_7_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_7' from values + /// Constructs a new `RT_DL1MK3_Analog_7` message from values. pub fn new(analog_7: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_7(analog_7)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_7` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_7' + /// Returns the value of `Analog_7`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_7(&self) -> f32 { - self.analog_7_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_7' + /// Returns the raw value of `Analog_7`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_7_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_7_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_7`. + #[inline(always)] + pub fn set_analog_7_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_7' + /// Sets the value of `Analog_7`. #[inline(always)] pub fn set_analog_7(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21714,42 +22684,47 @@ impl RtDl1mk3Analog6 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_6_MIN: f32 = 0_f32; pub const ANALOG_6_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_6' from values + /// Constructs a new `RT_DL1MK3_Analog_6` message from values. pub fn new(analog_6: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_6(analog_6)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_6` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_6' + /// Returns the value of `Analog_6`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_6(&self) -> f32 { - self.analog_6_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_6' + /// Returns the raw value of `Analog_6`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_6_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_6_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_6' + /// Sets the raw value of `Analog_6`. + #[inline(always)] + pub fn set_analog_6_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_6`. #[inline(always)] pub fn set_analog_6(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21826,42 +22801,47 @@ impl RtDl1mk3Analog5 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_5_MIN: f32 = 0_f32; pub const ANALOG_5_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_5' from values + /// Constructs a new `RT_DL1MK3_Analog_5` message from values. pub fn new(analog_5: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_5(analog_5)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_5` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_5' + /// Returns the value of `Analog_5`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_5(&self) -> f32 { - self.analog_5_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_5' + /// Returns the raw value of `Analog_5`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_5_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_5_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_5`. + #[inline(always)] + pub fn set_analog_5_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_5' + /// Sets the value of `Analog_5`. #[inline(always)] pub fn set_analog_5(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -21938,42 +22918,47 @@ impl RtDl1mk3Analog4 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_4_MIN: f32 = 0_f32; pub const ANALOG_4_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_4' from values + /// Constructs a new `RT_DL1MK3_Analog_4` message from values. pub fn new(analog_4: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_4(analog_4)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_4` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_4' + /// Returns the value of `Analog_4`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_4(&self) -> f32 { - self.analog_4_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_4' + /// Returns the raw value of `Analog_4`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_4_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_4_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_4`. + #[inline(always)] + pub fn set_analog_4_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_4' + /// Sets the value of `Analog_4`. #[inline(always)] pub fn set_analog_4(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -22050,42 +23035,47 @@ impl RtDl1mk3Analog3 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_3_MIN: f32 = 0_f32; pub const ANALOG_3_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_3' from values + /// Constructs a new `RT_DL1MK3_Analog_3` message from values. pub fn new(analog_3: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_3(analog_3)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_3` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_3' + /// Returns the value of `Analog_3`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_3(&self) -> f32 { - self.analog_3_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_3' + /// Returns the raw value of `Analog_3`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_3_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_3_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_3`. + #[inline(always)] + pub fn set_analog_3_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_3' + /// Sets the value of `Analog_3`. #[inline(always)] pub fn set_analog_3(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -22162,42 +23152,47 @@ impl RtDl1mk3Analog2 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_2_MIN: f32 = 0_f32; pub const ANALOG_2_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_2' from values + /// Constructs a new `RT_DL1MK3_Analog_2` message from values. pub fn new(analog_2: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_2(analog_2)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_2` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_2' + /// Returns the value of `Analog_2`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_2(&self) -> f32 { - self.analog_2_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_2' + /// Returns the raw value of `Analog_2`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_2_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() } - /// Set value of 'Analog_2' + /// Sets the raw value of `Analog_2`. + #[inline(always)] + pub fn set_analog_2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); + } + /// Sets the value of `Analog_2`. #[inline(always)] pub fn set_analog_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -22274,42 +23269,47 @@ impl RtDl1mk3Analog1 { pub const MESSAGE_SIZE: usize = 2; pub const ANALOG_1_MIN: f32 = 0_f32; pub const ANALOG_1_MAX: f32 = 0_f32; - /// Construct new 'RT_DL1MK3_Analog_1' from values + /// Constructs a new `RT_DL1MK3_Analog_1` message from values. pub fn new(analog_1: f32) -> Result { let mut res = Self { raw: [0x00; 2] }; res.set_analog_1(analog_1)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Analog_1` message payload. pub fn raw(&self) -> &[u8; 2] { &self.raw } - /// Get value of 'Analog_1' + /// Returns the value of `Analog_1`. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn analog_1(&self) -> f32 { - self.analog_1_raw() + let signal = self.raw.view_bits::()[0..16].load_be::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Analog_1' + /// Returns the raw value of `Analog_1`. /// /// - Start bit: 7 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: BigEndian /// - Value type: Unsigned #[inline(always)] - pub fn analog_1_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_be::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn analog_1_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_be::() + } + /// Sets the raw value of `Analog_1`. + #[inline(always)] + pub fn set_analog_1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_be(value); } - /// Set value of 'Analog_1' + /// Sets the value of `Analog_1`. #[inline(always)] pub fn set_analog_1(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 0_f32 < value { @@ -22392,7 +23392,7 @@ impl RtDl1mk3Accel { pub const ACCEL_LONGITUDINAL_MAX: f32 = 65_f32; pub const ACCURACY_ACCEL_MIN: u8 = 0_u8; pub const ACCURACY_ACCEL_MAX: u8 = 255_u8; - /// Construct new 'RT_DL1MK3_Accel' from values + /// Constructs a new `RT_DL1MK3_Accel` message from values. pub fn new( accel_vertical: f32, accel_lateral: f32, @@ -22412,11 +23412,11 @@ impl RtDl1mk3Accel { res.set_validity_accel_longitudinal(validity_accel_longitudinal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_DL1MK3_Accel` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Accel_Vertical' + /// Returns the value of `Accel_Vertical`. /// /// Vertical acceleration. This is positive when the vehicle accelerates in an upwards direction, e.g. when travelling through a dip. /// @@ -22424,26 +23424,32 @@ impl RtDl1mk3Accel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_vertical(&self) -> f32 { - self.accel_vertical_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Vertical' + /// Returns the raw value of `Accel_Vertical`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_vertical_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_vertical_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Accel_Vertical`. + #[inline(always)] + pub fn set_accel_vertical_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Accel_Vertical' + /// Sets the value of `Accel_Vertical`. #[inline(always)] pub fn set_accel_vertical(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -22458,7 +23464,7 @@ impl RtDl1mk3Accel { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Accel_Lateral' + /// Returns the value of `Accel_Lateral`. /// /// Lateral acceleration. This is positive when the vehicle accelerates towards the right, e.g. when cornering around a right-hand bend. /// @@ -22466,26 +23472,32 @@ impl RtDl1mk3Accel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_lateral(&self) -> f32 { - self.accel_lateral_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Lateral' + /// Returns the raw value of `Accel_Lateral`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_lateral_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_lateral_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Accel_Lateral`. + #[inline(always)] + pub fn set_accel_lateral_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Accel_Lateral' + /// Sets the value of `Accel_Lateral`. #[inline(always)] pub fn set_accel_lateral(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -22500,7 +23512,7 @@ impl RtDl1mk3Accel { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Accel_Longitudinal' + /// Returns the value of `Accel_Longitudinal`. /// /// Longitudinal acceleration. This is positive when the vehicle accelerates in a forwards direction. /// @@ -22508,26 +23520,32 @@ impl RtDl1mk3Accel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_longitudinal(&self) -> f32 { - self.accel_longitudinal_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Longitudinal' + /// Returns the raw value of `Accel_Longitudinal`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_longitudinal_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_longitudinal_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Accel_Longitudinal`. + #[inline(always)] + pub fn set_accel_longitudinal_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Accel_Longitudinal' + /// Sets the value of `Accel_Longitudinal`. #[inline(always)] pub fn set_accel_longitudinal(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -22542,140 +23560,148 @@ impl RtDl1mk3Accel { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Accel' + /// Returns the value of `Accuracy_Accel`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_accel(&self) -> u8 { - self.accuracy_accel_raw() + self.accuracy_accel_raw_val() } - /// Get raw value of 'Accuracy_Accel' + /// Returns the raw value of `Accuracy_Accel`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_accel_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_accel_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_Accel`. + #[inline(always)] + pub fn set_accuracy_accel_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_Accel' + /// Sets the value of `Accuracy_Accel`. #[inline(always)] pub fn set_accuracy_accel(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { return Err(CanError::ParameterOutOfRange { - message_id: RtDl1mk3Accel::MESSAGE_ID, - }); - } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtDl1mk3Accel::MESSAGE_ID, - })?; - let value = (value / factor) as u8; + message_id: RtDl1mk3Accel::MESSAGE_ID, + }); + } self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Vertical' + /// Returns the value of `Validity_Accel_Vertical`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_vertical(&self) -> bool { - self.validity_accel_vertical_raw() + self.validity_accel_vertical_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Vertical' + /// Returns the raw value of `Validity_Accel_Vertical`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_vertical_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_accel_vertical_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() } - /// Set value of 'Validity_Accel_Vertical' + /// Sets the raw value of `Validity_Accel_Vertical`. + #[inline(always)] + pub fn set_validity_accel_vertical_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); + } + /// Sets the value of `Validity_Accel_Vertical`. #[inline(always)] pub fn set_validity_accel_vertical(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Lateral' + /// Returns the value of `Validity_Accel_Lateral`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_lateral(&self) -> bool { - self.validity_accel_lateral_raw() + self.validity_accel_lateral_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Lateral' + /// Returns the raw value of `Validity_Accel_Lateral`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_lateral_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_accel_lateral_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_Accel_Lateral' + /// Sets the raw value of `Validity_Accel_Lateral`. + #[inline(always)] + pub fn set_validity_accel_lateral_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_Accel_Lateral`. #[inline(always)] pub fn set_validity_accel_lateral(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Longitudinal' + /// Returns the value of `Validity_Accel_Longitudinal`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_longitudinal(&self) -> bool { - self.validity_accel_longitudinal_raw() + self.validity_accel_longitudinal_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Longitudinal' + /// Returns the raw value of `Validity_Accel_Longitudinal`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_longitudinal_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_accel_longitudinal_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_Accel_Longitudinal' + /// Sets the raw value of `Validity_Accel_Longitudinal`. + #[inline(always)] + pub fn set_validity_accel_longitudinal_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_Accel_Longitudinal`. #[inline(always)] pub fn set_validity_accel_longitudinal( &mut self, @@ -22752,7 +23778,7 @@ impl RtSbInsVpt4VelNed2 { pub const VIRTUAL_4_HEADING_MAX: f32 = 180_f32; pub const VIRTUAL_4_VEL_NED_D_MIN: f32 = -838_f32; pub const VIRTUAL_4_VEL_NED_D_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_4_Vel_NED_2' from values + /// Constructs a new `RT_SB_INS_Vpt_4_Vel_NED_2` message from values. pub fn new( virtual_4_slip: f32, virtual_4_heading: f32, @@ -22764,11 +23790,11 @@ impl RtSbInsVpt4VelNed2 { res.set_virtual_4_vel_ned_d(virtual_4_vel_ned_d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_4_Vel_NED_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_4_Slip' + /// Returns the value of `Virtual_4_Slip`. /// /// Slip is defined as the difference between yaw and heading. /// @@ -22776,26 +23802,32 @@ impl RtSbInsVpt4VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_slip(&self) -> f32 { - self.virtual_4_slip_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Slip' + /// Returns the raw value of `Virtual_4_Slip`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_slip_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_slip_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Virtual_4_Slip`. + #[inline(always)] + pub fn set_virtual_4_slip_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Virtual_4_Slip' + /// Sets the value of `Virtual_4_Slip`. #[inline(always)] pub fn set_virtual_4_slip(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -22810,7 +23842,7 @@ impl RtSbInsVpt4VelNed2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Virtual_4_Heading' + /// Returns the value of `Virtual_4_Heading`. /// /// This is GPS heading, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -22818,26 +23850,32 @@ impl RtSbInsVpt4VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_heading(&self) -> f32 { - self.virtual_4_heading_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Heading' + /// Returns the raw value of `Virtual_4_Heading`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_heading_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_heading_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_4_Heading`. + #[inline(always)] + pub fn set_virtual_4_heading_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_4_Heading' + /// Sets the value of `Virtual_4_Heading`. #[inline(always)] pub fn set_virtual_4_heading(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -22852,7 +23890,7 @@ impl RtSbInsVpt4VelNed2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_4_Vel_NED_D' + /// Returns the value of `Virtual_4_Vel_NED_D`. /// /// VELNED D velocity. This is the velocity vector directly downwards towards the Earth centre at the current local Earth surface position. /// @@ -22860,26 +23898,32 @@ impl RtSbInsVpt4VelNed2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_vel_ned_d(&self) -> f32 { - self.virtual_4_vel_ned_d_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Vel_NED_D' + /// Returns the raw value of `Virtual_4_Vel_NED_D`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_vel_ned_d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_vel_ned_d_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_4_Vel_NED_D`. + #[inline(always)] + pub fn set_virtual_4_vel_ned_d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_4_Vel_NED_D' + /// Sets the value of `Virtual_4_Vel_NED_D`. #[inline(always)] pub fn set_virtual_4_vel_ned_d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -22959,7 +24003,7 @@ impl RtSbInsVpt4VelNed1 { pub const VIRTUAL_4_VEL_NED_E_MAX: f32 = 838_f32; pub const VIRTUAL_4_VEL_NED_N_MIN: f32 = -838_f32; pub const VIRTUAL_4_VEL_NED_N_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_4_Vel_NED_1' from values + /// Constructs a new `RT_SB_INS_Vpt_4_Vel_NED_1` message from values. pub fn new( virtual_4_vel_ned_e: f32, virtual_4_vel_ned_n: f32, @@ -22969,11 +24013,11 @@ impl RtSbInsVpt4VelNed1 { res.set_virtual_4_vel_ned_n(virtual_4_vel_ned_n)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_4_Vel_NED_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_4_Vel_NED_E' + /// Returns the value of `Virtual_4_Vel_NED_E`. /// /// VELNED E velocity. This is the velocity vector directly East at the current local Earth surface position. /// @@ -22981,26 +24025,32 @@ impl RtSbInsVpt4VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_vel_ned_e(&self) -> f32 { - self.virtual_4_vel_ned_e_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Vel_NED_E' + /// Returns the raw value of `Virtual_4_Vel_NED_E`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_vel_ned_e_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_vel_ned_e_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `Virtual_4_Vel_NED_E`. + #[inline(always)] + pub fn set_virtual_4_vel_ned_e_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'Virtual_4_Vel_NED_E' + /// Sets the value of `Virtual_4_Vel_NED_E`. #[inline(always)] pub fn set_virtual_4_vel_ned_e(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -23015,7 +24065,7 @@ impl RtSbInsVpt4VelNed1 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'Virtual_4_Vel_NED_N' + /// Returns the value of `Virtual_4_Vel_NED_N`. /// /// VELNED N velocity. This is the velocity vector directly North at the current local Earth surface position. /// @@ -23023,26 +24073,32 @@ impl RtSbInsVpt4VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_vel_ned_n(&self) -> f32 { - self.virtual_4_vel_ned_n_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Vel_NED_N' + /// Returns the raw value of `Virtual_4_Vel_NED_N`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_vel_ned_n_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_vel_ned_n_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_4_Vel_NED_N`. + #[inline(always)] + pub fn set_virtual_4_vel_ned_n_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_4_Vel_NED_N' + /// Sets the value of `Virtual_4_Vel_NED_N`. #[inline(always)] pub fn set_virtual_4_vel_ned_n(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -23124,7 +24180,7 @@ impl RtSbInsVpt4Offset { pub const VIRTUAL_4_OFFSET_Y_MAX: f32 = 32.767_f32; pub const VIRTUAL_4_OFFSET_X_MIN: f32 = -32.768_f32; pub const VIRTUAL_4_OFFSET_X_MAX: f32 = 32.767_f32; - /// Construct new 'RT_SB_INS_Vpt_4_Offset' from values + /// Constructs a new `RT_SB_INS_Vpt_4_Offset` message from values. pub fn new( virtual_4_offset_z: f32, virtual_4_offset_y: f32, @@ -23136,11 +24192,11 @@ impl RtSbInsVpt4Offset { res.set_virtual_4_offset_x(virtual_4_offset_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_4_Offset` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_4_Offset_Z' + /// Returns the value of `Virtual_4_Offset_Z`. /// /// Z offset (+ve downwards) of the virtual point in the vehicle body frame. /// @@ -23148,26 +24204,32 @@ impl RtSbInsVpt4Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_offset_z(&self) -> f32 { - self.virtual_4_offset_z_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Offset_Z' + /// Returns the raw value of `Virtual_4_Offset_Z`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_offset_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_offset_z_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_4_Offset_Z`. + #[inline(always)] + pub fn set_virtual_4_offset_z_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_4_Offset_Z' + /// Sets the value of `Virtual_4_Offset_Z`. #[inline(always)] pub fn set_virtual_4_offset_z(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -23182,7 +24244,7 @@ impl RtSbInsVpt4Offset { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_4_Offset_Y' + /// Returns the value of `Virtual_4_Offset_Y`. /// /// Y offset of the virtual point in the vehicle body frame. /// @@ -23190,26 +24252,32 @@ impl RtSbInsVpt4Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_offset_y(&self) -> f32 { - self.virtual_4_offset_y_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Offset_Y' + /// Returns the raw value of `Virtual_4_Offset_Y`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_offset_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_offset_y_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Virtual_4_Offset_Y`. + #[inline(always)] + pub fn set_virtual_4_offset_y_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Virtual_4_Offset_Y' + /// Sets the value of `Virtual_4_Offset_Y`. #[inline(always)] pub fn set_virtual_4_offset_y(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -23224,7 +24292,7 @@ impl RtSbInsVpt4Offset { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Virtual_4_Offset_X' + /// Returns the value of `Virtual_4_Offset_X`. /// /// X offset of the virtual point in the vehicle body frame. /// @@ -23232,26 +24300,32 @@ impl RtSbInsVpt4Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_4_offset_x(&self) -> f32 { - self.virtual_4_offset_x_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_4_Offset_X' + /// Returns the raw value of `Virtual_4_Offset_X`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_4_offset_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_4_offset_x_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Virtual_4_Offset_X`. + #[inline(always)] + pub fn set_virtual_4_offset_x_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Virtual_4_Offset_X' + /// Sets the value of `Virtual_4_Offset_X`. #[inline(always)] pub fn set_virtual_4_offset_x(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -23333,7 +24407,7 @@ impl RtSbInsVpt3VelNed2 { pub const VIRTUAL_3_HEADING_MAX: f32 = 180_f32; pub const VIRTUAL_3_VEL_NED_D_MIN: f32 = -838_f32; pub const VIRTUAL_3_VEL_NED_D_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_3_Vel_NED_2' from values + /// Constructs a new `RT_SB_INS_Vpt_3_Vel_NED_2` message from values. pub fn new( virtual_3_slip: f32, virtual_3_heading: f32, @@ -23345,11 +24419,11 @@ impl RtSbInsVpt3VelNed2 { res.set_virtual_3_vel_ned_d(virtual_3_vel_ned_d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_3_Vel_NED_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_3_Slip' + /// Returns the value of `Virtual_3_Slip`. /// /// Slip is defined as the difference between yaw and heading. /// @@ -23357,26 +24431,32 @@ impl RtSbInsVpt3VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_slip(&self) -> f32 { - self.virtual_3_slip_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Slip' + /// Returns the raw value of `Virtual_3_Slip`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_slip_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_slip_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Virtual_3_Slip`. + #[inline(always)] + pub fn set_virtual_3_slip_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Virtual_3_Slip' + /// Sets the value of `Virtual_3_Slip`. #[inline(always)] pub fn set_virtual_3_slip(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -23391,7 +24471,7 @@ impl RtSbInsVpt3VelNed2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Virtual_3_Heading' + /// Returns the value of `Virtual_3_Heading`. /// /// This is GPS heading, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -23399,26 +24479,32 @@ impl RtSbInsVpt3VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_heading(&self) -> f32 { - self.virtual_3_heading_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Heading' + /// Returns the raw value of `Virtual_3_Heading`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_heading_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_heading_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_3_Heading`. + #[inline(always)] + pub fn set_virtual_3_heading_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_3_Heading' + /// Sets the value of `Virtual_3_Heading`. #[inline(always)] pub fn set_virtual_3_heading(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -23433,7 +24519,7 @@ impl RtSbInsVpt3VelNed2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_3_Vel_NED_D' + /// Returns the value of `Virtual_3_Vel_NED_D`. /// /// VELNED D velocity. This is the velocity vector directly downwards towards the Earth centre at the current local Earth surface position. /// @@ -23441,26 +24527,32 @@ impl RtSbInsVpt3VelNed2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_vel_ned_d(&self) -> f32 { - self.virtual_3_vel_ned_d_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Vel_NED_D' + /// Returns the raw value of `Virtual_3_Vel_NED_D`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_vel_ned_d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_vel_ned_d_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_3_Vel_NED_D`. + #[inline(always)] + pub fn set_virtual_3_vel_ned_d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_3_Vel_NED_D' + /// Sets the value of `Virtual_3_Vel_NED_D`. #[inline(always)] pub fn set_virtual_3_vel_ned_d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -23540,7 +24632,7 @@ impl RtSbInsVpt3VelNed1 { pub const VIRTUAL_3_VEL_NED_E_MAX: f32 = 838_f32; pub const VIRTUAL_3_VEL_NED_N_MIN: f32 = -838_f32; pub const VIRTUAL_3_VEL_NED_N_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_3_Vel_NED_1' from values + /// Constructs a new `RT_SB_INS_Vpt_3_Vel_NED_1` message from values. pub fn new( virtual_3_vel_ned_e: f32, virtual_3_vel_ned_n: f32, @@ -23550,11 +24642,11 @@ impl RtSbInsVpt3VelNed1 { res.set_virtual_3_vel_ned_n(virtual_3_vel_ned_n)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_3_Vel_NED_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_3_Vel_NED_E' + /// Returns the value of `Virtual_3_Vel_NED_E`. /// /// VELNED E velocity. This is the velocity vector directly East at the current local Earth surface position. /// @@ -23562,26 +24654,32 @@ impl RtSbInsVpt3VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_vel_ned_e(&self) -> f32 { - self.virtual_3_vel_ned_e_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Vel_NED_E' + /// Returns the raw value of `Virtual_3_Vel_NED_E`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_vel_ned_e_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_vel_ned_e_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `Virtual_3_Vel_NED_E`. + #[inline(always)] + pub fn set_virtual_3_vel_ned_e_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'Virtual_3_Vel_NED_E' + /// Sets the value of `Virtual_3_Vel_NED_E`. #[inline(always)] pub fn set_virtual_3_vel_ned_e(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -23596,7 +24694,7 @@ impl RtSbInsVpt3VelNed1 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'Virtual_3_Vel_NED_N' + /// Returns the value of `Virtual_3_Vel_NED_N`. /// /// VELNED N velocity. This is the velocity vector directly North at the current local Earth surface position. /// @@ -23604,26 +24702,32 @@ impl RtSbInsVpt3VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_vel_ned_n(&self) -> f32 { - self.virtual_3_vel_ned_n_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Vel_NED_N' + /// Returns the raw value of `Virtual_3_Vel_NED_N`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_vel_ned_n_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_vel_ned_n_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_3_Vel_NED_N`. + #[inline(always)] + pub fn set_virtual_3_vel_ned_n_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_3_Vel_NED_N' + /// Sets the value of `Virtual_3_Vel_NED_N`. #[inline(always)] pub fn set_virtual_3_vel_ned_n(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -23705,7 +24809,7 @@ impl RtSbInsVpt3Offset { pub const VIRTUAL_3_OFFSET_Y_MAX: f32 = 32.767_f32; pub const VIRTUAL_3_OFFSET_X_MIN: f32 = -32.768_f32; pub const VIRTUAL_3_OFFSET_X_MAX: f32 = 32.767_f32; - /// Construct new 'RT_SB_INS_Vpt_3_Offset' from values + /// Constructs a new `RT_SB_INS_Vpt_3_Offset` message from values. pub fn new( virtual_3_offset_z: f32, virtual_3_offset_y: f32, @@ -23717,11 +24821,11 @@ impl RtSbInsVpt3Offset { res.set_virtual_3_offset_x(virtual_3_offset_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_3_Offset` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_3_Offset_Z' + /// Returns the value of `Virtual_3_Offset_Z`. /// /// Z offset (+ve downwards) of the virtual point in the vehicle body frame. /// @@ -23729,26 +24833,32 @@ impl RtSbInsVpt3Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_offset_z(&self) -> f32 { - self.virtual_3_offset_z_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Offset_Z' + /// Returns the raw value of `Virtual_3_Offset_Z`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_offset_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_offset_z_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_3_Offset_Z`. + #[inline(always)] + pub fn set_virtual_3_offset_z_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_3_Offset_Z' + /// Sets the value of `Virtual_3_Offset_Z`. #[inline(always)] pub fn set_virtual_3_offset_z(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -23763,7 +24873,7 @@ impl RtSbInsVpt3Offset { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_3_Offset_Y' + /// Returns the value of `Virtual_3_Offset_Y`. /// /// Y offset of the virtual point in the vehicle body frame. /// @@ -23771,26 +24881,32 @@ impl RtSbInsVpt3Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_offset_y(&self) -> f32 { - self.virtual_3_offset_y_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Offset_Y' + /// Returns the raw value of `Virtual_3_Offset_Y`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_offset_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_offset_y_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Virtual_3_Offset_Y`. + #[inline(always)] + pub fn set_virtual_3_offset_y_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Virtual_3_Offset_Y' + /// Sets the value of `Virtual_3_Offset_Y`. #[inline(always)] pub fn set_virtual_3_offset_y(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -23805,7 +24921,7 @@ impl RtSbInsVpt3Offset { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Virtual_3_Offset_X' + /// Returns the value of `Virtual_3_Offset_X`. /// /// X offset of the virtual point in the vehicle body frame. /// @@ -23813,26 +24929,32 @@ impl RtSbInsVpt3Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_3_offset_x(&self) -> f32 { - self.virtual_3_offset_x_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_3_Offset_X' + /// Returns the raw value of `Virtual_3_Offset_X`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_3_offset_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_3_offset_x_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Virtual_3_Offset_X`. + #[inline(always)] + pub fn set_virtual_3_offset_x_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Virtual_3_Offset_X' + /// Sets the value of `Virtual_3_Offset_X`. #[inline(always)] pub fn set_virtual_3_offset_x(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -23914,7 +25036,7 @@ impl RtSbInsVpt2VelNed2 { pub const VIRTUAL_2_HEADING_MAX: f32 = 180_f32; pub const VIRTUAL_2_VEL_NED_D_MIN: f32 = -838_f32; pub const VIRTUAL_2_VEL_NED_D_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_2_Vel_NED_2' from values + /// Constructs a new `RT_SB_INS_Vpt_2_Vel_NED_2` message from values. pub fn new( virtual_2_slip: f32, virtual_2_heading: f32, @@ -23926,11 +25048,11 @@ impl RtSbInsVpt2VelNed2 { res.set_virtual_2_vel_ned_d(virtual_2_vel_ned_d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_2_Vel_NED_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_2_Slip' + /// Returns the value of `Virtual_2_Slip`. /// /// Slip is defined as the difference between yaw and heading. /// @@ -23938,26 +25060,32 @@ impl RtSbInsVpt2VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_slip(&self) -> f32 { - self.virtual_2_slip_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Slip' + /// Returns the raw value of `Virtual_2_Slip`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_slip_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_slip_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Virtual_2_Slip`. + #[inline(always)] + pub fn set_virtual_2_slip_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Virtual_2_Slip' + /// Sets the value of `Virtual_2_Slip`. #[inline(always)] pub fn set_virtual_2_slip(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -23972,7 +25100,7 @@ impl RtSbInsVpt2VelNed2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Virtual_2_Heading' + /// Returns the value of `Virtual_2_Heading`. /// /// This is GPS heading, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -23980,26 +25108,32 @@ impl RtSbInsVpt2VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_heading(&self) -> f32 { - self.virtual_2_heading_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Heading' + /// Returns the raw value of `Virtual_2_Heading`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_heading_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_heading_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_2_Heading`. + #[inline(always)] + pub fn set_virtual_2_heading_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_2_Heading' + /// Sets the value of `Virtual_2_Heading`. #[inline(always)] pub fn set_virtual_2_heading(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -24014,7 +25148,7 @@ impl RtSbInsVpt2VelNed2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_2_Vel_NED_D' + /// Returns the value of `Virtual_2_Vel_NED_D`. /// /// VELNED D velocity. This is the velocity vector directly downwards towards the Earth centre at the current local Earth surface position. /// @@ -24022,26 +25156,32 @@ impl RtSbInsVpt2VelNed2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_vel_ned_d(&self) -> f32 { - self.virtual_2_vel_ned_d_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Vel_NED_D' + /// Returns the raw value of `Virtual_2_Vel_NED_D`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_vel_ned_d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_vel_ned_d_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_2_Vel_NED_D`. + #[inline(always)] + pub fn set_virtual_2_vel_ned_d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_2_Vel_NED_D' + /// Sets the value of `Virtual_2_Vel_NED_D`. #[inline(always)] pub fn set_virtual_2_vel_ned_d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -24121,7 +25261,7 @@ impl RtSbInsVpt2VelNed1 { pub const VIRTUAL_2_VEL_NED_E_MAX: f32 = 838_f32; pub const VIRTUAL_2_VEL_NED_N_MIN: f32 = -838_f32; pub const VIRTUAL_2_VEL_NED_N_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_2_Vel_NED_1' from values + /// Constructs a new `RT_SB_INS_Vpt_2_Vel_NED_1` message from values. pub fn new( virtual_2_vel_ned_e: f32, virtual_2_vel_ned_n: f32, @@ -24131,11 +25271,11 @@ impl RtSbInsVpt2VelNed1 { res.set_virtual_2_vel_ned_n(virtual_2_vel_ned_n)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_2_Vel_NED_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_2_Vel_NED_E' + /// Returns the value of `Virtual_2_Vel_NED_E`. /// /// VELNED E velocity. This is the velocity vector directly East at the current local Earth surface position. /// @@ -24143,26 +25283,32 @@ impl RtSbInsVpt2VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_vel_ned_e(&self) -> f32 { - self.virtual_2_vel_ned_e_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Vel_NED_E' + /// Returns the raw value of `Virtual_2_Vel_NED_E`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_vel_ned_e_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_vel_ned_e_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `Virtual_2_Vel_NED_E`. + #[inline(always)] + pub fn set_virtual_2_vel_ned_e_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'Virtual_2_Vel_NED_E' + /// Sets the value of `Virtual_2_Vel_NED_E`. #[inline(always)] pub fn set_virtual_2_vel_ned_e(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -24177,7 +25323,7 @@ impl RtSbInsVpt2VelNed1 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'Virtual_2_Vel_NED_N' + /// Returns the value of `Virtual_2_Vel_NED_N`. /// /// VELNED N velocity. This is the velocity vector directly North at the current local Earth surface position. /// @@ -24185,26 +25331,32 @@ impl RtSbInsVpt2VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_vel_ned_n(&self) -> f32 { - self.virtual_2_vel_ned_n_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Vel_NED_N' + /// Returns the raw value of `Virtual_2_Vel_NED_N`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_vel_ned_n_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_vel_ned_n_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_2_Vel_NED_N`. + #[inline(always)] + pub fn set_virtual_2_vel_ned_n_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_2_Vel_NED_N' + /// Sets the value of `Virtual_2_Vel_NED_N`. #[inline(always)] pub fn set_virtual_2_vel_ned_n(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -24286,7 +25438,7 @@ impl RtSbInsVpt2Offset { pub const VIRTUAL_2_OFFSET_Y_MAX: f32 = 32.767_f32; pub const VIRTUAL_2_OFFSET_X_MIN: f32 = -32.768_f32; pub const VIRTUAL_2_OFFSET_X_MAX: f32 = 32.767_f32; - /// Construct new 'RT_SB_INS_Vpt_2_Offset' from values + /// Constructs a new `RT_SB_INS_Vpt_2_Offset` message from values. pub fn new( virtual_2_offset_z: f32, virtual_2_offset_y: f32, @@ -24298,11 +25450,11 @@ impl RtSbInsVpt2Offset { res.set_virtual_2_offset_x(virtual_2_offset_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_2_Offset` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_2_Offset_Z' + /// Returns the value of `Virtual_2_Offset_Z`. /// /// Z offset (+ve downwards) of the virtual point in the vehicle body frame. /// @@ -24310,26 +25462,32 @@ impl RtSbInsVpt2Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_offset_z(&self) -> f32 { - self.virtual_2_offset_z_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Offset_Z' + /// Returns the raw value of `Virtual_2_Offset_Z`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_offset_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_offset_z_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_2_Offset_Z`. + #[inline(always)] + pub fn set_virtual_2_offset_z_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_2_Offset_Z' + /// Sets the value of `Virtual_2_Offset_Z`. #[inline(always)] pub fn set_virtual_2_offset_z(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -24344,7 +25502,7 @@ impl RtSbInsVpt2Offset { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_2_Offset_Y' + /// Returns the value of `Virtual_2_Offset_Y`. /// /// Y offset of the virtual point in the vehicle body frame. /// @@ -24352,26 +25510,32 @@ impl RtSbInsVpt2Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_offset_y(&self) -> f32 { - self.virtual_2_offset_y_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Offset_Y' + /// Returns the raw value of `Virtual_2_Offset_Y`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_offset_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_offset_y_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Virtual_2_Offset_Y`. + #[inline(always)] + pub fn set_virtual_2_offset_y_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Virtual_2_Offset_Y' + /// Sets the value of `Virtual_2_Offset_Y`. #[inline(always)] pub fn set_virtual_2_offset_y(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -24386,7 +25550,7 @@ impl RtSbInsVpt2Offset { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Virtual_2_Offset_X' + /// Returns the value of `Virtual_2_Offset_X`. /// /// X offset of the virtual point in the vehicle body frame. /// @@ -24394,26 +25558,32 @@ impl RtSbInsVpt2Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_2_offset_x(&self) -> f32 { - self.virtual_2_offset_x_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_2_Offset_X' + /// Returns the raw value of `Virtual_2_Offset_X`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_2_offset_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_2_offset_x_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Virtual_2_Offset_X`. + #[inline(always)] + pub fn set_virtual_2_offset_x_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Virtual_2_Offset_X' + /// Sets the value of `Virtual_2_Offset_X`. #[inline(always)] pub fn set_virtual_2_offset_x(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -24495,7 +25665,7 @@ impl RtSbInsVpt1VelNed2 { pub const VIRTUAL_1_HEADING_MAX: f32 = 180_f32; pub const VIRTUAL_1_VEL_NED_D_MIN: f32 = -838_f32; pub const VIRTUAL_1_VEL_NED_D_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_1_Vel_NED_2' from values + /// Constructs a new `RT_SB_INS_Vpt_1_Vel_NED_2` message from values. pub fn new( virtual_1_slip: f32, virtual_1_heading: f32, @@ -24507,11 +25677,11 @@ impl RtSbInsVpt1VelNed2 { res.set_virtual_1_vel_ned_d(virtual_1_vel_ned_d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_1_Vel_NED_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_1_Slip' + /// Returns the value of `Virtual_1_Slip`. /// /// Slip is defined as the difference between yaw and heading. /// @@ -24519,26 +25689,32 @@ impl RtSbInsVpt1VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_slip(&self) -> f32 { - self.virtual_1_slip_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Slip' + /// Returns the raw value of `Virtual_1_Slip`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_slip_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_slip_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Virtual_1_Slip`. + #[inline(always)] + pub fn set_virtual_1_slip_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Virtual_1_Slip' + /// Sets the value of `Virtual_1_Slip`. #[inline(always)] pub fn set_virtual_1_slip(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -24553,7 +25729,7 @@ impl RtSbInsVpt1VelNed2 { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Virtual_1_Heading' + /// Returns the value of `Virtual_1_Heading`. /// /// This is GPS heading, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -24561,26 +25737,32 @@ impl RtSbInsVpt1VelNed2 { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_heading(&self) -> f32 { - self.virtual_1_heading_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Heading' + /// Returns the raw value of `Virtual_1_Heading`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_heading_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_heading_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_1_Heading`. + #[inline(always)] + pub fn set_virtual_1_heading_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_1_Heading' + /// Sets the value of `Virtual_1_Heading`. #[inline(always)] pub fn set_virtual_1_heading(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -24595,7 +25777,7 @@ impl RtSbInsVpt1VelNed2 { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_1_Vel_NED_D' + /// Returns the value of `Virtual_1_Vel_NED_D`. /// /// VELNED D velocity. This is the velocity vector directly downwards towards the Earth centre at the current local Earth surface position. /// @@ -24603,26 +25785,32 @@ impl RtSbInsVpt1VelNed2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_vel_ned_d(&self) -> f32 { - self.virtual_1_vel_ned_d_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Vel_NED_D' + /// Returns the raw value of `Virtual_1_Vel_NED_D`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_vel_ned_d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_vel_ned_d_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_1_Vel_NED_D`. + #[inline(always)] + pub fn set_virtual_1_vel_ned_d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_1_Vel_NED_D' + /// Sets the value of `Virtual_1_Vel_NED_D`. #[inline(always)] pub fn set_virtual_1_vel_ned_d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -24702,7 +25890,7 @@ impl RtSbInsVpt1VelNed1 { pub const VIRTUAL_1_VEL_NED_E_MAX: f32 = 838_f32; pub const VIRTUAL_1_VEL_NED_N_MIN: f32 = -838_f32; pub const VIRTUAL_1_VEL_NED_N_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vpt_1_Vel_NED_1' from values + /// Constructs a new `RT_SB_INS_Vpt_1_Vel_NED_1` message from values. pub fn new( virtual_1_vel_ned_e: f32, virtual_1_vel_ned_n: f32, @@ -24712,11 +25900,11 @@ impl RtSbInsVpt1VelNed1 { res.set_virtual_1_vel_ned_n(virtual_1_vel_ned_n)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_1_Vel_NED_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_1_Vel_NED_E' + /// Returns the value of `Virtual_1_Vel_NED_E`. /// /// VELNED E velocity. This is the velocity vector directly East at the current local Earth surface position. /// @@ -24724,26 +25912,32 @@ impl RtSbInsVpt1VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_vel_ned_e(&self) -> f32 { - self.virtual_1_vel_ned_e_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Vel_NED_E' + /// Returns the raw value of `Virtual_1_Vel_NED_E`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_vel_ned_e_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_vel_ned_e_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `Virtual_1_Vel_NED_E`. + #[inline(always)] + pub fn set_virtual_1_vel_ned_e_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'Virtual_1_Vel_NED_E' + /// Sets the value of `Virtual_1_Vel_NED_E`. #[inline(always)] pub fn set_virtual_1_vel_ned_e(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -24758,7 +25952,7 @@ impl RtSbInsVpt1VelNed1 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'Virtual_1_Vel_NED_N' + /// Returns the value of `Virtual_1_Vel_NED_N`. /// /// VELNED N velocity. This is the velocity vector directly North at the current local Earth surface position. /// @@ -24766,26 +25960,32 @@ impl RtSbInsVpt1VelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_vel_ned_n(&self) -> f32 { - self.virtual_1_vel_ned_n_raw() + let signal = self.raw.view_bits::()[0..24].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Vel_NED_N' + /// Returns the raw value of `Virtual_1_Vel_NED_N`. /// /// - Start bit: 0 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_vel_ned_n_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..24].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_vel_ned_n_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..24].load_le::() + } + /// Sets the raw value of `Virtual_1_Vel_NED_N`. + #[inline(always)] + pub fn set_virtual_1_vel_ned_n_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..24].store_le(value); } - /// Set value of 'Virtual_1_Vel_NED_N' + /// Sets the value of `Virtual_1_Vel_NED_N`. #[inline(always)] pub fn set_virtual_1_vel_ned_n(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -24867,7 +26067,7 @@ impl RtSbInsVpt1Offset { pub const VIRTUAL_1_OFFSET_Y_MAX: f32 = 32.767_f32; pub const VIRTUAL_1_OFFSET_X_MIN: f32 = -32.768_f32; pub const VIRTUAL_1_OFFSET_X_MAX: f32 = 32.767_f32; - /// Construct new 'RT_SB_INS_Vpt_1_Offset' from values + /// Constructs a new `RT_SB_INS_Vpt_1_Offset` message from values. pub fn new( virtual_1_offset_z: f32, virtual_1_offset_y: f32, @@ -24879,11 +26079,11 @@ impl RtSbInsVpt1Offset { res.set_virtual_1_offset_x(virtual_1_offset_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vpt_1_Offset` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Virtual_1_Offset_Z' + /// Returns the value of `Virtual_1_Offset_Z`. /// /// Z offset (+ve downwards) of the virtual point in the vehicle body frame. /// @@ -24891,26 +26091,32 @@ impl RtSbInsVpt1Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_offset_z(&self) -> f32 { - self.virtual_1_offset_z_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Offset_Z' + /// Returns the raw value of `Virtual_1_Offset_Z`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_offset_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_offset_z_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Virtual_1_Offset_Z`. + #[inline(always)] + pub fn set_virtual_1_offset_z_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Virtual_1_Offset_Z' + /// Sets the value of `Virtual_1_Offset_Z`. #[inline(always)] pub fn set_virtual_1_offset_z(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -24925,7 +26131,7 @@ impl RtSbInsVpt1Offset { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Virtual_1_Offset_Y' + /// Returns the value of `Virtual_1_Offset_Y`. /// /// Y offset of the virtual point in the vehicle body frame. /// @@ -24933,26 +26139,32 @@ impl RtSbInsVpt1Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_offset_y(&self) -> f32 { - self.virtual_1_offset_y_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Offset_Y' + /// Returns the raw value of `Virtual_1_Offset_Y`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_offset_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_offset_y_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Virtual_1_Offset_Y`. + #[inline(always)] + pub fn set_virtual_1_offset_y_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Virtual_1_Offset_Y' + /// Sets the value of `Virtual_1_Offset_Y`. #[inline(always)] pub fn set_virtual_1_offset_y(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -24967,7 +26179,7 @@ impl RtSbInsVpt1Offset { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Virtual_1_Offset_X' + /// Returns the value of `Virtual_1_Offset_X`. /// /// X offset of the virtual point in the vehicle body frame. /// @@ -24975,26 +26187,32 @@ impl RtSbInsVpt1Offset { /// - Max: 32.767 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn virtual_1_offset_x(&self) -> f32 { - self.virtual_1_offset_x_raw() + let signal = self.raw.view_bits::()[0..16].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Virtual_1_Offset_X' + /// Returns the raw value of `Virtual_1_Offset_X`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn virtual_1_offset_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn virtual_1_offset_x_raw_val(&self) -> i16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Virtual_1_Offset_X`. + #[inline(always)] + pub fn set_virtual_1_offset_x_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Virtual_1_Offset_X' + /// Sets the value of `Virtual_1_Offset_X`. #[inline(always)] pub fn set_virtual_1_offset_x(&mut self, value: f32) -> Result<(), CanError> { if value < -32.768_f32 || 32.767_f32 < value { @@ -25078,7 +26296,7 @@ impl RtSbInsSlip { pub const INS_SLIP_MAX: f32 = 360_f32; pub const ACCURACY_INS_SLIP_MIN: u8 = 0_u8; pub const ACCURACY_INS_SLIP_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Slip' from values + /// Constructs a new `RT_SB_INS_Slip` message from values. pub fn new( ins_squat: f32, accuracy_ins_squat: u8, @@ -25096,11 +26314,11 @@ impl RtSbInsSlip { res.set_validity_ins_slip(validity_ins_slip)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Slip` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Squat' + /// Returns the value of `INS_Squat`. /// /// Squat is defined as the difference between pitch and gradient /// @@ -25108,26 +26326,32 @@ impl RtSbInsSlip { /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_squat(&self) -> f32 { - self.ins_squat_raw() + let signal = self.raw.view_bits::()[40..56].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Squat' + /// Returns the raw value of `INS_Squat`. /// /// - Start bit: 40 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_squat_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..56].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_squat_raw_val(&self) -> i16 { + self.raw.view_bits::()[40..56].load_le::() + } + /// Sets the raw value of `INS_Squat`. + #[inline(always)] + pub fn set_ins_squat_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..56].store_le(value); } - /// Set value of 'INS_Squat' + /// Sets the value of `INS_Squat`. #[inline(always)] pub fn set_ins_squat(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -25142,33 +26366,36 @@ impl RtSbInsSlip { self.raw.view_bits_mut::()[40..56].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Squat' + /// Returns the value of `Accuracy_INS_Squat`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_squat(&self) -> u8 { - self.accuracy_ins_squat_raw() + self.accuracy_ins_squat_raw_val() } - /// Get raw value of 'Accuracy_INS_Squat' + /// Returns the raw value of `Accuracy_INS_Squat`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_squat_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_squat_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() } - /// Set value of 'Accuracy_INS_Squat' + /// Sets the raw value of `Accuracy_INS_Squat`. + #[inline(always)] + pub fn set_accuracy_ins_squat_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); + } + /// Sets the value of `Accuracy_INS_Squat`. #[inline(always)] pub fn set_accuracy_ins_squat(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -25176,17 +26403,10 @@ impl RtSbInsSlip { message_id: RtSbInsSlip::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsSlip::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'INS_Slip' + /// Returns the value of `INS_Slip`. /// /// Slip is defined as the difference between yaw and heading /// @@ -25194,26 +26414,32 @@ impl RtSbInsSlip { /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_slip(&self) -> f32 { - self.ins_slip_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Slip' + /// Returns the raw value of `INS_Slip`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_slip_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_slip_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `INS_Slip`. + #[inline(always)] + pub fn set_ins_slip_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'INS_Slip' + /// Sets the value of `INS_Slip`. #[inline(always)] pub fn set_ins_slip(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -25228,33 +26454,36 @@ impl RtSbInsSlip { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Slip' + /// Returns the value of `Accuracy_INS_Slip`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_slip(&self) -> u8 { - self.accuracy_ins_slip_raw() + self.accuracy_ins_slip_raw_val() } - /// Get raw value of 'Accuracy_INS_Slip' + /// Returns the raw value of `Accuracy_INS_Slip`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_slip_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_slip_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Slip`. + #[inline(always)] + pub fn set_accuracy_ins_slip_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_INS_Slip' + /// Sets the value of `Accuracy_INS_Slip`. #[inline(always)] pub fn set_accuracy_ins_slip(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -25262,70 +26491,71 @@ impl RtSbInsSlip { message_id: RtSbInsSlip::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsSlip::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Squat' + /// Returns the value of `Validity_INS_Squat`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_squat(&self) -> bool { - self.validity_ins_squat_raw() + self.validity_ins_squat_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Squat' + /// Returns the raw value of `Validity_INS_Squat`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_squat_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_squat_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_INS_Squat`. + #[inline(always)] + pub fn set_validity_ins_squat_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_INS_Squat' + /// Sets the value of `Validity_INS_Squat`. #[inline(always)] pub fn set_validity_ins_squat(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Slip' + /// Returns the value of `Validity_INS_Slip`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_slip(&self) -> bool { - self.validity_ins_slip_raw() + self.validity_ins_slip_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Slip' + /// Returns the raw value of `Validity_INS_Slip`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_slip_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_slip_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_INS_Slip`. + #[inline(always)] + pub fn set_validity_ins_slip_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_INS_Slip' + /// Sets the value of `Validity_INS_Slip`. #[inline(always)] pub fn set_validity_ins_slip(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -25397,7 +26627,7 @@ impl RtSbInsVelEcef2 { pub const INS_VEL_ECEF_Z_MAX: f32 = 838_f32; pub const INS_VEL_ECEF_Y_MIN: f32 = -838_f32; pub const INS_VEL_ECEF_Y_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_INS_Vel_ECEF_2' from values + /// Constructs a new `RT_SB_INS_Vel_ECEF_2` message from values. pub fn new( ins_vel_ecef_z: f32, ins_vel_ecef_y: f32, @@ -25411,11 +26641,11 @@ impl RtSbInsVelEcef2 { res.set_validity_ins_vel_ecef_y(validity_ins_vel_ecef_y)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vel_ECEF_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Vel_ECEF_Z' + /// Returns the value of `INS_Vel_ECEF_Z`. /// /// ECEF Z velocity. The ECEF Z axis originates from the Earth centre, and the positive Z axis intersects the Earth surface at the North Pole. /// @@ -25423,26 +26653,32 @@ impl RtSbInsVelEcef2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_ecef_z(&self) -> f32 { - self.ins_vel_ecef_z_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_ECEF_Z' + /// Returns the raw value of `INS_Vel_ECEF_Z`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_ecef_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_ecef_z_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `INS_Vel_ECEF_Z`. + #[inline(always)] + pub fn set_ins_vel_ecef_z_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'INS_Vel_ECEF_Z' + /// Sets the value of `INS_Vel_ECEF_Z`. #[inline(always)] pub fn set_ins_vel_ecef_z(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -25457,7 +26693,7 @@ impl RtSbInsVelEcef2 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'INS_Vel_ECEF_Y' + /// Returns the value of `INS_Vel_ECEF_Y`. /// /// ECEF Y velocity. The ECEF Y axis originates from the Earth centre, and the positive Y axis intersects the Earth surface at zero degrees latittude and 90 degrees longitude. /// @@ -25465,26 +26701,32 @@ impl RtSbInsVelEcef2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_ecef_y(&self) -> f32 { - self.ins_vel_ecef_y_raw() + let signal = self.raw.view_bits::()[8..32].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_ECEF_Y' + /// Returns the raw value of `INS_Vel_ECEF_Y`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_ecef_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_ecef_y_raw_val(&self) -> i32 { + self.raw.view_bits::()[8..32].load_le::() + } + /// Sets the raw value of `INS_Vel_ECEF_Y`. + #[inline(always)] + pub fn set_ins_vel_ecef_y_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..32].store_le(value); } - /// Set value of 'INS_Vel_ECEF_Y' + /// Sets the value of `INS_Vel_ECEF_Y`. #[inline(always)] pub fn set_ins_vel_ecef_y(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -25499,64 +26741,72 @@ impl RtSbInsVelEcef2 { self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_ECEF_Z' + /// Returns the value of `Validity_INS_Vel_ECEF_Z`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_ecef_z(&self) -> bool { - self.validity_ins_vel_ecef_z_raw() + self.validity_ins_vel_ecef_z_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_ECEF_Z' + /// Returns the raw value of `Validity_INS_Vel_ECEF_Z`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_ecef_z_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_vel_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_INS_Vel_ECEF_Z`. + #[inline(always)] + pub fn set_validity_ins_vel_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_INS_Vel_ECEF_Z' + /// Sets the value of `Validity_INS_Vel_ECEF_Z`. #[inline(always)] pub fn set_validity_ins_vel_ecef_z(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_ECEF_Y' + /// Returns the value of `Validity_INS_Vel_ECEF_Y`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_ecef_y(&self) -> bool { - self.validity_ins_vel_ecef_y_raw() + self.validity_ins_vel_ecef_y_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_ECEF_Y' + /// Returns the raw value of `Validity_INS_Vel_ECEF_Y`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_ecef_y_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_vel_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_INS_Vel_ECEF_Y`. + #[inline(always)] + pub fn set_validity_ins_vel_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_INS_Vel_ECEF_Y' + /// Sets the value of `Validity_INS_Vel_ECEF_Y`. #[inline(always)] pub fn set_validity_ins_vel_ecef_y(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -25632,7 +26882,7 @@ impl RtSbInsVelEcef1 { pub const ACCURACY_INS_VEL_ECEF_Y_MAX: u8 = 255_u8; pub const ACCURACY_INS_VEL_ECEF_X_MIN: u8 = 0_u8; pub const ACCURACY_INS_VEL_ECEF_X_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Vel_ECEF_1' from values + /// Constructs a new `RT_SB_INS_Vel_ECEF_1` message from values. pub fn new( ins_vel_ecef_x: f32, accuracy_ins_vel_ecef_z: u8, @@ -25648,11 +26898,11 @@ impl RtSbInsVelEcef1 { res.set_validity_ins_vel_ecef_x(validity_ins_vel_ecef_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vel_ECEF_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Vel_ECEF_X' + /// Returns the value of `INS_Vel_ECEF_X`. /// /// ECEF X velocity. The ECEF X axis originates from the Earth centre, and the positive X axis intersects the Earth surface at zero degrees latittude and zero degrees longitude (the intersection of the equator and the prime meridian). /// @@ -25660,26 +26910,32 @@ impl RtSbInsVelEcef1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_ecef_x(&self) -> f32 { - self.ins_vel_ecef_x_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_ECEF_X' + /// Returns the raw value of `INS_Vel_ECEF_X`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_ecef_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_ecef_x_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `INS_Vel_ECEF_X`. + #[inline(always)] + pub fn set_ins_vel_ecef_x_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'INS_Vel_ECEF_X' + /// Sets the value of `INS_Vel_ECEF_X`. #[inline(always)] pub fn set_ins_vel_ecef_x(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -25694,31 +26950,34 @@ impl RtSbInsVelEcef1 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Vel_ECEF_Z' + /// Returns the value of `Accuracy_INS_Vel_ECEF_Z`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_vel_ecef_z(&self) -> u8 { - self.accuracy_ins_vel_ecef_z_raw() + self.accuracy_ins_vel_ecef_z_raw_val() } - /// Get raw value of 'Accuracy_INS_Vel_ECEF_Z' + /// Returns the raw value of `Accuracy_INS_Vel_ECEF_Z`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_vel_ecef_z_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_vel_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Vel_ECEF_Z`. + #[inline(always)] + pub fn set_accuracy_ins_vel_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'Accuracy_INS_Vel_ECEF_Z' + /// Sets the value of `Accuracy_INS_Vel_ECEF_Z`. #[inline(always)] pub fn set_accuracy_ins_vel_ecef_z(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -25726,41 +26985,37 @@ impl RtSbInsVelEcef1 { message_id: RtSbInsVelEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsVelEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Vel_ECEF_Y' + /// Returns the value of `Accuracy_INS_Vel_ECEF_Y`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_vel_ecef_y(&self) -> u8 { - self.accuracy_ins_vel_ecef_y_raw() + self.accuracy_ins_vel_ecef_y_raw_val() } - /// Get raw value of 'Accuracy_INS_Vel_ECEF_Y' + /// Returns the raw value of `Accuracy_INS_Vel_ECEF_Y`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_vel_ecef_y_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_vel_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Vel_ECEF_Y`. + #[inline(always)] + pub fn set_accuracy_ins_vel_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Accuracy_INS_Vel_ECEF_Y' + /// Sets the value of `Accuracy_INS_Vel_ECEF_Y`. #[inline(always)] pub fn set_accuracy_ins_vel_ecef_y(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -25768,41 +27023,37 @@ impl RtSbInsVelEcef1 { message_id: RtSbInsVelEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsVelEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Vel_ECEF_X' + /// Returns the value of `Accuracy_INS_Vel_ECEF_X`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_vel_ecef_x(&self) -> u8 { - self.accuracy_ins_vel_ecef_x_raw() + self.accuracy_ins_vel_ecef_x_raw_val() } - /// Get raw value of 'Accuracy_INS_Vel_ECEF_X' + /// Returns the raw value of `Accuracy_INS_Vel_ECEF_X`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_vel_ecef_x_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_vel_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Accuracy_INS_Vel_ECEF_X' + /// Sets the raw value of `Accuracy_INS_Vel_ECEF_X`. + #[inline(always)] + pub fn set_accuracy_ins_vel_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Accuracy_INS_Vel_ECEF_X`. #[inline(always)] pub fn set_accuracy_ins_vel_ecef_x(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -25810,42 +27061,39 @@ impl RtSbInsVelEcef1 { message_id: RtSbInsVelEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsVelEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_ECEF_X' + /// Returns the value of `Validity_INS_Vel_ECEF_X`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_ecef_x(&self) -> bool { - self.validity_ins_vel_ecef_x_raw() + self.validity_ins_vel_ecef_x_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_ECEF_X' + /// Returns the raw value of `Validity_INS_Vel_ECEF_X`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_ecef_x_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_vel_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_INS_Vel_ECEF_X`. + #[inline(always)] + pub fn set_validity_ins_vel_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_INS_Vel_ECEF_X' + /// Sets the value of `Validity_INS_Vel_ECEF_X`. #[inline(always)] pub fn set_validity_ins_vel_ecef_x(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -25917,7 +27165,7 @@ impl RtSbInsVelNed2 { pub const INS_VEL_NED_D_MAX: f32 = 838_f32; pub const ACCURACY_INS_VEL_D_MIN: u8 = 0_u8; pub const ACCURACY_INS_VEL_D_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Vel_NED_2' from values + /// Constructs a new `RT_SB_INS_Vel_NED_2` message from values. pub fn new( ins_vel_ned_d: f32, accuracy_ins_vel_d: u8, @@ -25929,11 +27177,11 @@ impl RtSbInsVelNed2 { res.set_validity_ins_vel_ned_d(validity_ins_vel_ned_d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vel_NED_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Vel_NED_D' + /// Returns the value of `INS_Vel_NED_D`. /// /// VELNED D velocity. This is the velocity vector directly downwards towards the Earth centre at the current local Earth surface position. /// @@ -25941,26 +27189,32 @@ impl RtSbInsVelNed2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_ned_d(&self) -> f32 { - self.ins_vel_ned_d_raw() + let signal = self.raw.view_bits::()[16..40].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_NED_D' + /// Returns the raw value of `INS_Vel_NED_D`. /// /// - Start bit: 16 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_ned_d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..40].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_ned_d_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..40].load_le::() + } + /// Sets the raw value of `INS_Vel_NED_D`. + #[inline(always)] + pub fn set_ins_vel_ned_d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..40].store_le(value); } - /// Set value of 'INS_Vel_NED_D' + /// Sets the value of `INS_Vel_NED_D`. #[inline(always)] pub fn set_ins_vel_ned_d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -25975,74 +27229,74 @@ impl RtSbInsVelNed2 { self.raw.view_bits_mut::()[16..40].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Vel_D' + /// Returns the value of `Accuracy_INS_Vel_D`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_vel_d(&self) -> u8 { - self.accuracy_ins_vel_d_raw() + self.accuracy_ins_vel_d_raw_val() } - /// Get raw value of 'Accuracy_INS_Vel_D' + /// Returns the raw value of `Accuracy_INS_Vel_D`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_vel_d_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_vel_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Vel_D`. + #[inline(always)] + pub fn set_accuracy_ins_vel_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_INS_Vel_D' + /// Sets the value of `Accuracy_INS_Vel_D`. #[inline(always)] pub fn set_accuracy_ins_vel_d(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { return Err(CanError::ParameterOutOfRange { - message_id: RtSbInsVelNed2::MESSAGE_ID, - }); - } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsVelNed2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; + message_id: RtSbInsVelNed2::MESSAGE_ID, + }); + } self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_NED_D' + /// Returns the value of `Validity_INS_Vel_NED_D`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_ned_d(&self) -> bool { - self.validity_ins_vel_ned_d_raw() + self.validity_ins_vel_ned_d_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_NED_D' + /// Returns the raw value of `Validity_INS_Vel_NED_D`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_ned_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_vel_ned_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_INS_Vel_NED_D' + /// Sets the raw value of `Validity_INS_Vel_NED_D`. + #[inline(always)] + pub fn set_validity_ins_vel_ned_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_INS_Vel_NED_D`. #[inline(always)] pub fn set_validity_ins_vel_ned_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -26116,7 +27370,7 @@ impl RtSbInsVelNed1 { pub const INS_VEL_NED_N_MAX: f32 = 838_f32; pub const ACCURACY_INS_VEL_NE_MIN: u8 = 0_u8; pub const ACCURACY_INS_VEL_NE_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Vel_NED_1' from values + /// Constructs a new `RT_SB_INS_Vel_NED_1` message from values. pub fn new( ins_vel_ned_e: f32, ins_vel_ned_n: f32, @@ -26132,11 +27386,11 @@ impl RtSbInsVelNed1 { res.set_validity_ins_vel_ned_n(validity_ins_vel_ned_n)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Vel_NED_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Vel_NED_E' + /// Returns the value of `INS_Vel_NED_E`. /// /// VELNED E velocity. This is the velocity vector directly East at the current local Earth surface position. /// @@ -26144,26 +27398,32 @@ impl RtSbInsVelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_ned_e(&self) -> f32 { - self.ins_vel_ned_e_raw() + let signal = self.raw.view_bits::()[40..64].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_NED_E' + /// Returns the raw value of `INS_Vel_NED_E`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_ned_e_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_ned_e_raw_val(&self) -> i32 { + self.raw.view_bits::()[40..64].load_le::() + } + /// Sets the raw value of `INS_Vel_NED_E`. + #[inline(always)] + pub fn set_ins_vel_ned_e_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..64].store_le(value); } - /// Set value of 'INS_Vel_NED_E' + /// Sets the value of `INS_Vel_NED_E`. #[inline(always)] pub fn set_ins_vel_ned_e(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -26178,7 +27438,7 @@ impl RtSbInsVelNed1 { self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'INS_Vel_NED_N' + /// Returns the value of `INS_Vel_NED_N`. /// /// VELNED N velocity. This is the velocity vector directly North at the current local Earth surface position. /// @@ -26186,26 +27446,32 @@ impl RtSbInsVelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn ins_vel_ned_n(&self) -> f32 { - self.ins_vel_ned_n_raw() + let signal = self.raw.view_bits::()[16..40].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Vel_NED_N' + /// Returns the raw value of `INS_Vel_NED_N`. /// /// - Start bit: 16 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_vel_ned_n_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..40].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_vel_ned_n_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..40].load_le::() + } + /// Sets the raw value of `INS_Vel_NED_N`. + #[inline(always)] + pub fn set_ins_vel_ned_n_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..40].store_le(value); } - /// Set value of 'INS_Vel_NED_N' + /// Sets the value of `INS_Vel_NED_N`. #[inline(always)] pub fn set_ins_vel_ned_n(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -26220,31 +27486,34 @@ impl RtSbInsVelNed1 { self.raw.view_bits_mut::()[16..40].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Vel_NE' + /// Returns the value of `Accuracy_INS_Vel_NE`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_vel_ne(&self) -> u8 { - self.accuracy_ins_vel_ne_raw() + self.accuracy_ins_vel_ne_raw_val() } - /// Get raw value of 'Accuracy_INS_Vel_NE' + /// Returns the raw value of `Accuracy_INS_Vel_NE`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_vel_ne_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_vel_ne_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Accuracy_INS_Vel_NE' + /// Sets the raw value of `Accuracy_INS_Vel_NE`. + #[inline(always)] + pub fn set_accuracy_ins_vel_ne_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Accuracy_INS_Vel_NE`. #[inline(always)] pub fn set_accuracy_ins_vel_ne(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -26252,74 +27521,75 @@ impl RtSbInsVelNed1 { message_id: RtSbInsVelNed1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsVelNed1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_NED_E' + /// Returns the value of `Validity_INS_Vel_NED_E`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_ned_e(&self) -> bool { - self.validity_ins_vel_ned_e_raw() + self.validity_ins_vel_ned_e_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_NED_E' + /// Returns the raw value of `Validity_INS_Vel_NED_E`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_ned_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_vel_ned_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_INS_Vel_NED_E`. + #[inline(always)] + pub fn set_validity_ins_vel_ned_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_INS_Vel_NED_E' + /// Sets the value of `Validity_INS_Vel_NED_E`. #[inline(always)] pub fn set_validity_ins_vel_ned_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Vel_NED_N' + /// Returns the value of `Validity_INS_Vel_NED_N`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_vel_ned_n(&self) -> bool { - self.validity_ins_vel_ned_n_raw() + self.validity_ins_vel_ned_n_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Vel_NED_N' + /// Returns the raw value of `Validity_INS_Vel_NED_N`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_vel_ned_n_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_vel_ned_n_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_INS_Vel_NED_N`. + #[inline(always)] + pub fn set_validity_ins_vel_ned_n_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_INS_Vel_NED_N' + /// Sets the value of `Validity_INS_Vel_NED_N`. #[inline(always)] pub fn set_validity_ins_vel_ned_n(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -26391,18 +27661,18 @@ impl RtSbInsPosEcef2 { pub const INS_POS_ECEF_Z_MAX: f32 = 10000000_f32; pub const INS_POS_ECEF_Y_MIN: f32 = -10000000_f32; pub const INS_POS_ECEF_Y_MAX: f32 = 10000000_f32; - /// Construct new 'RT_SB_INS_Pos_ECEF_2' from values + /// Constructs a new `RT_SB_INS_Pos_ECEF_2` message from values. pub fn new(ins_pos_ecef_z: f32, ins_pos_ecef_y: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_ins_pos_ecef_z(ins_pos_ecef_z)?; res.set_ins_pos_ecef_y(ins_pos_ecef_y)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Pos_ECEF_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Pos_ECEF_Z' + /// Returns the value of `INS_Pos_ECEF_Z`. /// /// ECEF Z position. The ECEF Z axis originates from the Earth centre, and the positive Z axis intersects the Earth surface at the North Pole. /// @@ -26410,26 +27680,32 @@ impl RtSbInsPosEcef2 { /// - Max: 10000000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_pos_ecef_z(&self) -> f32 { - self.ins_pos_ecef_z_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Pos_ECEF_Z' + /// Returns the raw value of `INS_Pos_ECEF_Z`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_pos_ecef_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_pos_ecef_z_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `INS_Pos_ECEF_Z`. + #[inline(always)] + pub fn set_ins_pos_ecef_z_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'INS_Pos_ECEF_Z' + /// Sets the value of `INS_Pos_ECEF_Z`. #[inline(always)] pub fn set_ins_pos_ecef_z(&mut self, value: f32) -> Result<(), CanError> { if value < -10000000_f32 || 10000000_f32 < value { @@ -26444,7 +27720,7 @@ impl RtSbInsPosEcef2 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'INS_Pos_ECEF_Y' + /// Returns the value of `INS_Pos_ECEF_Y`. /// /// ECEF Y position. The ECEF Y axis originates from the Earth centre, and the positive Y axis intersects the Earth surface at zero degrees latittude and 90 degrees longitude. /// @@ -26452,26 +27728,32 @@ impl RtSbInsPosEcef2 { /// - Max: 10000000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_pos_ecef_y(&self) -> f32 { - self.ins_pos_ecef_y_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Pos_ECEF_Y' + /// Returns the raw value of `INS_Pos_ECEF_Y`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_pos_ecef_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_pos_ecef_y_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `INS_Pos_ECEF_Y`. + #[inline(always)] + pub fn set_ins_pos_ecef_y_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'INS_Pos_ECEF_Y' + /// Sets the value of `INS_Pos_ECEF_Y`. #[inline(always)] pub fn set_ins_pos_ecef_y(&mut self, value: f32) -> Result<(), CanError> { if value < -10000000_f32 || 10000000_f32 < value { @@ -26555,7 +27837,7 @@ impl RtSbInsPosEcef1 { pub const ACCURACY_INS_POS_ECEF_Y_MAX: u8 = 255_u8; pub const ACCURACY_INS_POS_ECEF_X_MIN: u8 = 0_u8; pub const ACCURACY_INS_POS_ECEF_X_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Pos_ECEF_1' from values + /// Constructs a new `RT_SB_INS_Pos_ECEF_1` message from values. pub fn new( ins_pos_ecef_x: f32, accuracy_ins_pos_ecef_z: u8, @@ -26575,11 +27857,11 @@ impl RtSbInsPosEcef1 { res.set_validity_ins_pos_ecef_x(validity_ins_pos_ecef_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Pos_ECEF_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Pos_ECEF_X' + /// Returns the value of `INS_Pos_ECEF_X`. /// /// ECEF X position. The ECEF X axis originates from the Earth centre, and the positive X axis intersects the Earth surface at zero degrees latittude and zero degrees longitude (the intersection of the equator and the prime meridian). /// @@ -26587,26 +27869,32 @@ impl RtSbInsPosEcef1 { /// - Max: 10000000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_pos_ecef_x(&self) -> f32 { - self.ins_pos_ecef_x_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Pos_ECEF_X' + /// Returns the raw value of `INS_Pos_ECEF_X`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_pos_ecef_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_pos_ecef_x_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `INS_Pos_ECEF_X`. + #[inline(always)] + pub fn set_ins_pos_ecef_x_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'INS_Pos_ECEF_X' + /// Sets the value of `INS_Pos_ECEF_X`. #[inline(always)] pub fn set_ins_pos_ecef_x(&mut self, value: f32) -> Result<(), CanError> { if value < -10000000_f32 || 10000000_f32 < value { @@ -26621,33 +27909,36 @@ impl RtSbInsPosEcef1 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Pos_ECEF_Z' + /// Returns the value of `Accuracy_INS_Pos_ECEF_Z`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_pos_ecef_z(&self) -> u8 { - self.accuracy_ins_pos_ecef_z_raw() + self.accuracy_ins_pos_ecef_z_raw_val() } - /// Get raw value of 'Accuracy_INS_Pos_ECEF_Z' + /// Returns the raw value of `Accuracy_INS_Pos_ECEF_Z`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_pos_ecef_z_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_pos_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Pos_ECEF_Z`. + #[inline(always)] + pub fn set_accuracy_ins_pos_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'Accuracy_INS_Pos_ECEF_Z' + /// Sets the value of `Accuracy_INS_Pos_ECEF_Z`. #[inline(always)] pub fn set_accuracy_ins_pos_ecef_z(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -26655,43 +27946,39 @@ impl RtSbInsPosEcef1 { message_id: RtSbInsPosEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsPosEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Pos_ECEF_Y' + /// Returns the value of `Accuracy_INS_Pos_ECEF_Y`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_pos_ecef_y(&self) -> u8 { - self.accuracy_ins_pos_ecef_y_raw() + self.accuracy_ins_pos_ecef_y_raw_val() } - /// Get raw value of 'Accuracy_INS_Pos_ECEF_Y' + /// Returns the raw value of `Accuracy_INS_Pos_ECEF_Y`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_pos_ecef_y_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_pos_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Pos_ECEF_Y`. + #[inline(always)] + pub fn set_accuracy_ins_pos_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Accuracy_INS_Pos_ECEF_Y' + /// Sets the value of `Accuracy_INS_Pos_ECEF_Y`. #[inline(always)] pub fn set_accuracy_ins_pos_ecef_y(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -26699,43 +27986,39 @@ impl RtSbInsPosEcef1 { message_id: RtSbInsPosEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsPosEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Pos_ECEF_X' + /// Returns the value of `Accuracy_INS_Pos_ECEF_X`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_pos_ecef_x(&self) -> u8 { - self.accuracy_ins_pos_ecef_x_raw() + self.accuracy_ins_pos_ecef_x_raw_val() } - /// Get raw value of 'Accuracy_INS_Pos_ECEF_X' + /// Returns the raw value of `Accuracy_INS_Pos_ECEF_X`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_pos_ecef_x_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_pos_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Pos_ECEF_X`. + #[inline(always)] + pub fn set_accuracy_ins_pos_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_INS_Pos_ECEF_X' + /// Sets the value of `Accuracy_INS_Pos_ECEF_X`. #[inline(always)] pub fn set_accuracy_ins_pos_ecef_x(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -26743,106 +28026,111 @@ impl RtSbInsPosEcef1 { message_id: RtSbInsPosEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsPosEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Pos_ECEF_Z' + /// Returns the value of `Validity_INS_Pos_ECEF_Z`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_pos_ecef_z(&self) -> bool { - self.validity_ins_pos_ecef_z_raw() + self.validity_ins_pos_ecef_z_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Pos_ECEF_Z' + /// Returns the raw value of `Validity_INS_Pos_ECEF_Z`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_pos_ecef_z_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_ins_pos_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() } - /// Set value of 'Validity_INS_Pos_ECEF_Z' + /// Sets the raw value of `Validity_INS_Pos_ECEF_Z`. + #[inline(always)] + pub fn set_validity_ins_pos_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); + } + /// Sets the value of `Validity_INS_Pos_ECEF_Z`. #[inline(always)] pub fn set_validity_ins_pos_ecef_z(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Pos_ECEF_Y' + /// Returns the value of `Validity_INS_Pos_ECEF_Y`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_pos_ecef_y(&self) -> bool { - self.validity_ins_pos_ecef_y_raw() + self.validity_ins_pos_ecef_y_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Pos_ECEF_Y' + /// Returns the raw value of `Validity_INS_Pos_ECEF_Y`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_pos_ecef_y_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_pos_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_INS_Pos_ECEF_Y' + /// Sets the raw value of `Validity_INS_Pos_ECEF_Y`. + #[inline(always)] + pub fn set_validity_ins_pos_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_INS_Pos_ECEF_Y`. #[inline(always)] pub fn set_validity_ins_pos_ecef_y(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Pos_ECEF_X' + /// Returns the value of `Validity_INS_Pos_ECEF_X`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_pos_ecef_x(&self) -> bool { - self.validity_ins_pos_ecef_x_raw() + self.validity_ins_pos_ecef_x_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Pos_ECEF_X' + /// Returns the raw value of `Validity_INS_Pos_ECEF_X`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_pos_ecef_x_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_pos_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_INS_Pos_ECEF_X' + /// Sets the raw value of `Validity_INS_Pos_ECEF_X`. + #[inline(always)] + pub fn set_validity_ins_pos_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_INS_Pos_ECEF_X`. #[inline(always)] pub fn set_validity_ins_pos_ecef_x(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -26914,7 +28202,7 @@ impl RtSbInsPosLlh2 { pub const INS_POS_LLH_ALTITUDE_MAX: f32 = 100000_f32; pub const INS_POS_LLH_LONGITUDE_MIN: f32 = -180_f32; pub const INS_POS_LLH_LONGITUDE_MAX: f32 = 180_f32; - /// Construct new 'RT_SB_INS_Pos_LLH_2' from values + /// Constructs a new `RT_SB_INS_Pos_LLH_2` message from values. pub fn new( ins_pos_llh_altitude: f32, ins_pos_llh_longitude: f32, @@ -26924,36 +28212,42 @@ impl RtSbInsPosLlh2 { res.set_ins_pos_llh_longitude(ins_pos_llh_longitude)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Pos_LLH_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Pos_LLH_Altitude' + /// Returns the value of `INS_Pos_LLH_Altitude`. /// /// - Min: -1000 /// - Max: 100000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn ins_pos_llh_altitude(&self) -> f32 { - self.ins_pos_llh_altitude_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Pos_LLH_Altitude' + /// Returns the raw value of `INS_Pos_LLH_Altitude`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_pos_llh_altitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_pos_llh_altitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `INS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_ins_pos_llh_altitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'INS_Pos_LLH_Altitude' + /// Sets the value of `INS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_ins_pos_llh_altitude(&mut self, value: f32) -> Result<(), CanError> { if value < -1000_f32 || 100000_f32 < value { @@ -26968,32 +28262,38 @@ impl RtSbInsPosLlh2 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'INS_Pos_LLH_Longitude' + /// Returns the value of `INS_Pos_LLH_Longitude`. /// /// - Min: -180 /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.0000001 + /// - Offset: 0 #[inline(always)] pub fn ins_pos_llh_longitude(&self) -> f32 { - self.ins_pos_llh_longitude_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.0000001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Pos_LLH_Longitude' + /// Returns the raw value of `INS_Pos_LLH_Longitude`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.0000001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_pos_llh_longitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.0000001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_pos_llh_longitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `INS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_ins_pos_llh_longitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'INS_Pos_LLH_Longitude' + /// Sets the value of `INS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_ins_pos_llh_longitude(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -27077,7 +28377,7 @@ impl RtSbInsPosLlh1 { pub const ACCURACY_INS_POS_LLH_LONGITUDE_MAX: u8 = 255_u8; pub const ACCURACY_INS_POS_LLH_LATITUDE_MIN: u8 = 0_u8; pub const ACCURACY_INS_POS_LLH_LATITUDE_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Pos_LLH_1' from values + /// Constructs a new `RT_SB_INS_Pos_LLH_1` message from values. pub fn new( ins_pos_llh_latitude: f32, accuracy_ins_pos_llh_altitude: u8, @@ -27097,36 +28397,42 @@ impl RtSbInsPosLlh1 { res.set_validity_ins_pos_llh_latitude(validity_ins_pos_llh_latitude)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Pos_LLH_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Pos_LLH_Latitude' + /// Returns the value of `INS_Pos_LLH_Latitude`. /// /// - Min: -90 /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.0000001 + /// - Offset: 0 #[inline(always)] pub fn ins_pos_llh_latitude(&self) -> f32 { - self.ins_pos_llh_latitude_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.0000001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Pos_LLH_Latitude' + /// Returns the raw value of `INS_Pos_LLH_Latitude`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.0000001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_pos_llh_latitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.0000001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_pos_llh_latitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `INS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_ins_pos_llh_latitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'INS_Pos_LLH_Latitude' + /// Sets the value of `INS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_ins_pos_llh_latitude(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -27141,33 +28447,36 @@ impl RtSbInsPosLlh1 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Pos_LLH_Altitude' + /// Returns the value of `Accuracy_INS_Pos_LLH_Altitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_pos_llh_altitude(&self) -> u8 { - self.accuracy_ins_pos_llh_altitude_raw() + self.accuracy_ins_pos_llh_altitude_raw_val() } - /// Get raw value of 'Accuracy_INS_Pos_LLH_Altitude' + /// Returns the raw value of `Accuracy_INS_Pos_LLH_Altitude`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_pos_llh_altitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_pos_llh_altitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'Accuracy_INS_Pos_LLH_Altitude' + /// Sets the raw value of `Accuracy_INS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_accuracy_ins_pos_llh_altitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `Accuracy_INS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_accuracy_ins_pos_llh_altitude( &mut self, @@ -27176,45 +28485,41 @@ impl RtSbInsPosLlh1 { if value < 0_u8 || 255_u8 < value { return Err(CanError::ParameterOutOfRange { message_id: RtSbInsPosLlh1::MESSAGE_ID, - }); - } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; + }); + } self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Pos_LLH_Longitude' + /// Returns the value of `Accuracy_INS_Pos_LLH_Longitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_pos_llh_longitude(&self) -> u8 { - self.accuracy_ins_pos_llh_longitude_raw() + self.accuracy_ins_pos_llh_longitude_raw_val() } - /// Get raw value of 'Accuracy_INS_Pos_LLH_Longitude' + /// Returns the raw value of `Accuracy_INS_Pos_LLH_Longitude`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_pos_llh_longitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_pos_llh_longitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_accuracy_ins_pos_llh_longitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Accuracy_INS_Pos_LLH_Longitude' + /// Sets the value of `Accuracy_INS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_accuracy_ins_pos_llh_longitude( &mut self, @@ -27225,43 +28530,39 @@ impl RtSbInsPosLlh1 { message_id: RtSbInsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Pos_LLH_Latitude' + /// Returns the value of `Accuracy_INS_Pos_LLH_Latitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_pos_llh_latitude(&self) -> u8 { - self.accuracy_ins_pos_llh_latitude_raw() + self.accuracy_ins_pos_llh_latitude_raw_val() } - /// Get raw value of 'Accuracy_INS_Pos_LLH_Latitude' + /// Returns the raw value of `Accuracy_INS_Pos_LLH_Latitude`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_pos_llh_latitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_pos_llh_latitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_accuracy_ins_pos_llh_latitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_INS_Pos_LLH_Latitude' + /// Sets the value of `Accuracy_INS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_accuracy_ins_pos_llh_latitude( &mut self, @@ -27272,42 +28573,39 @@ impl RtSbInsPosLlh1 { message_id: RtSbInsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Pos_LLH_Altitude' + /// Returns the value of `Validity_INS_Pos_LLH_Altitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_pos_llh_altitude(&self) -> bool { - self.validity_ins_pos_llh_altitude_raw() + self.validity_ins_pos_llh_altitude_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Pos_LLH_Altitude' + /// Returns the raw value of `Validity_INS_Pos_LLH_Altitude`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_pos_llh_altitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_ins_pos_llh_altitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_INS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_validity_ins_pos_llh_altitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_INS_Pos_LLH_Altitude' + /// Sets the value of `Validity_INS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_validity_ins_pos_llh_altitude( &mut self, @@ -27317,32 +28615,36 @@ impl RtSbInsPosLlh1 { self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Pos_LLH_Longitude' + /// Returns the value of `Validity_INS_Pos_LLH_Longitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_pos_llh_longitude(&self) -> bool { - self.validity_ins_pos_llh_longitude_raw() + self.validity_ins_pos_llh_longitude_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Pos_LLH_Longitude' + /// Returns the raw value of `Validity_INS_Pos_LLH_Longitude`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_pos_llh_longitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_pos_llh_longitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_INS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_validity_ins_pos_llh_longitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_INS_Pos_LLH_Longitude' + /// Sets the value of `Validity_INS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_validity_ins_pos_llh_longitude( &mut self, @@ -27352,32 +28654,36 @@ impl RtSbInsPosLlh1 { self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Pos_LLH_Latitude' + /// Returns the value of `Validity_INS_Pos_LLH_Latitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_pos_llh_latitude(&self) -> bool { - self.validity_ins_pos_llh_latitude_raw() + self.validity_ins_pos_llh_latitude_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Pos_LLH_Latitude' + /// Returns the raw value of `Validity_INS_Pos_LLH_Latitude`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_pos_llh_latitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_pos_llh_latitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_INS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_validity_ins_pos_llh_latitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_INS_Pos_LLH_Latitude' + /// Sets the value of `Validity_INS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_validity_ins_pos_llh_latitude( &mut self, @@ -27456,7 +28762,7 @@ impl RtSbInsHeadingGradient2 { pub const INS_HEADING_2_MAX: f32 = 360_f32; pub const ACCURACY_INS_HEADING_MIN: u8 = 0_u8; pub const ACCURACY_INS_HEADING_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Heading_Gradient_2' from values + /// Constructs a new `RT_SB_INS_Heading_Gradient_2` message from values. pub fn new( ins_gradient: f32, accuracy_ins_gradient: u8, @@ -27474,11 +28780,11 @@ impl RtSbInsHeadingGradient2 { res.set_validity_ins_heading(validity_ins_heading)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Heading_Gradient_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Gradient' + /// Returns the value of `INS_Gradient`. /// /// This is GPS gradient, i.e. the vertical direction that the vehicle is travelling, NOT pointing (pitch). /// @@ -27486,26 +28792,32 @@ impl RtSbInsHeadingGradient2 { /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_gradient(&self) -> f32 { - self.ins_gradient_raw() + let signal = self.raw.view_bits::()[40..56].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Gradient' + /// Returns the raw value of `INS_Gradient`. /// /// - Start bit: 40 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_gradient_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..56].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_gradient_raw_val(&self) -> i16 { + self.raw.view_bits::()[40..56].load_le::() + } + /// Sets the raw value of `INS_Gradient`. + #[inline(always)] + pub fn set_ins_gradient_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..56].store_le(value); } - /// Set value of 'INS_Gradient' + /// Sets the value of `INS_Gradient`. #[inline(always)] pub fn set_ins_gradient(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -27520,33 +28832,36 @@ impl RtSbInsHeadingGradient2 { self.raw.view_bits_mut::()[40..56].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Gradient' + /// Returns the value of `Accuracy_INS_Gradient`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_gradient(&self) -> u8 { - self.accuracy_ins_gradient_raw() + self.accuracy_ins_gradient_raw_val() } - /// Get raw value of 'Accuracy_INS_Gradient' + /// Returns the raw value of `Accuracy_INS_Gradient`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_gradient_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Gradient`. + #[inline(always)] + pub fn set_accuracy_ins_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'Accuracy_INS_Gradient' + /// Sets the value of `Accuracy_INS_Gradient`. #[inline(always)] pub fn set_accuracy_ins_gradient(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -27554,17 +28869,10 @@ impl RtSbInsHeadingGradient2 { message_id: RtSbInsHeadingGradient2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsHeadingGradient2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'INS_Heading_2' + /// Returns the value of `INS_Heading_2`. /// /// This is GPS heading in the range 0 - 360°, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -27572,26 +28880,31 @@ impl RtSbInsHeadingGradient2 { /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_heading_2(&self) -> f32 { - self.ins_heading_2_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Heading_2' + /// Returns the raw value of `INS_Heading_2`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ins_heading_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_heading_2_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `INS_Heading_2`. + #[inline(always)] + pub fn set_ins_heading_2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'INS_Heading_2' + /// Sets the value of `INS_Heading_2`. #[inline(always)] pub fn set_ins_heading_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 360_f32 < value { @@ -27605,33 +28918,36 @@ impl RtSbInsHeadingGradient2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Heading' + /// Returns the value of `Accuracy_INS_Heading`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_heading(&self) -> u8 { - self.accuracy_ins_heading_raw() + self.accuracy_ins_heading_raw_val() } - /// Get raw value of 'Accuracy_INS_Heading' + /// Returns the raw value of `Accuracy_INS_Heading`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_heading_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Heading`. + #[inline(always)] + pub fn set_accuracy_ins_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_INS_Heading' + /// Sets the value of `Accuracy_INS_Heading`. #[inline(always)] pub fn set_accuracy_ins_heading(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -27639,74 +28955,75 @@ impl RtSbInsHeadingGradient2 { message_id: RtSbInsHeadingGradient2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsHeadingGradient2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Gradient' + /// Returns the value of `Validity_INS_Gradient`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_gradient(&self) -> bool { - self.validity_ins_gradient_raw() + self.validity_ins_gradient_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Gradient' + /// Returns the raw value of `Validity_INS_Gradient`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_gradient_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_INS_Gradient`. + #[inline(always)] + pub fn set_validity_ins_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_INS_Gradient' + /// Sets the value of `Validity_INS_Gradient`. #[inline(always)] pub fn set_validity_ins_gradient(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Heading' + /// Returns the value of `Validity_INS_Heading`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_heading(&self) -> bool { - self.validity_ins_heading_raw() + self.validity_ins_heading_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Heading' + /// Returns the raw value of `Validity_INS_Heading`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_heading_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_INS_Heading`. + #[inline(always)] + pub fn set_validity_ins_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_INS_Heading' + /// Sets the value of `Validity_INS_Heading`. #[inline(always)] pub fn set_validity_ins_heading(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -27782,7 +29099,7 @@ impl RtSbInsHeadingGradient { pub const INS_HEADING_MAX: f32 = 180_f32; pub const ACCURACY_INS_HEADING_MIN: u8 = 0_u8; pub const ACCURACY_INS_HEADING_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Heading_Gradient' from values + /// Constructs a new `RT_SB_INS_Heading_Gradient` message from values. pub fn new( ins_gradient: f32, accuracy_ins_gradient: u8, @@ -27800,11 +29117,11 @@ impl RtSbInsHeadingGradient { res.set_validity_ins_heading(validity_ins_heading)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Heading_Gradient` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Gradient' + /// Returns the value of `INS_Gradient`. /// /// This is GPS gradient, i.e. the vertical direction that the vehicle is travelling, NOT pointing (pitch). /// @@ -27812,26 +29129,32 @@ impl RtSbInsHeadingGradient { /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_gradient(&self) -> f32 { - self.ins_gradient_raw() + let signal = self.raw.view_bits::()[40..56].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Gradient' + /// Returns the raw value of `INS_Gradient`. /// /// - Start bit: 40 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_gradient_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..56].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_gradient_raw_val(&self) -> i16 { + self.raw.view_bits::()[40..56].load_le::() + } + /// Sets the raw value of `INS_Gradient`. + #[inline(always)] + pub fn set_ins_gradient_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..56].store_le(value); } - /// Set value of 'INS_Gradient' + /// Sets the value of `INS_Gradient`. #[inline(always)] pub fn set_ins_gradient(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -27846,33 +29169,36 @@ impl RtSbInsHeadingGradient { self.raw.view_bits_mut::()[40..56].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Gradient' + /// Returns the value of `Accuracy_INS_Gradient`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_gradient(&self) -> u8 { - self.accuracy_ins_gradient_raw() + self.accuracy_ins_gradient_raw_val() } - /// Get raw value of 'Accuracy_INS_Gradient' + /// Returns the raw value of `Accuracy_INS_Gradient`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_gradient_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Gradient`. + #[inline(always)] + pub fn set_accuracy_ins_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'Accuracy_INS_Gradient' + /// Sets the value of `Accuracy_INS_Gradient`. #[inline(always)] pub fn set_accuracy_ins_gradient(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -27880,17 +29206,10 @@ impl RtSbInsHeadingGradient { message_id: RtSbInsHeadingGradient::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsHeadingGradient::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'INS_Heading' + /// Returns the value of `INS_Heading`. /// /// This is GPS heading, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -27898,26 +29217,32 @@ impl RtSbInsHeadingGradient { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn ins_heading(&self) -> f32 { - self.ins_heading_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'INS_Heading' + /// Returns the raw value of `INS_Heading`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn ins_heading_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn ins_heading_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'INS_Heading' + /// Sets the raw value of `INS_Heading`. + #[inline(always)] + pub fn set_ins_heading_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `INS_Heading`. #[inline(always)] pub fn set_ins_heading(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -27932,33 +29257,36 @@ impl RtSbInsHeadingGradient { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_INS_Heading' + /// Returns the value of `Accuracy_INS_Heading`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_ins_heading(&self) -> u8 { - self.accuracy_ins_heading_raw() + self.accuracy_ins_heading_raw_val() } - /// Get raw value of 'Accuracy_INS_Heading' + /// Returns the raw value of `Accuracy_INS_Heading`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_ins_heading_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_ins_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_INS_Heading`. + #[inline(always)] + pub fn set_accuracy_ins_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_INS_Heading' + /// Sets the value of `Accuracy_INS_Heading`. #[inline(always)] pub fn set_accuracy_ins_heading(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -27966,74 +29294,75 @@ impl RtSbInsHeadingGradient { message_id: RtSbInsHeadingGradient::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsHeadingGradient::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Gradient' + /// Returns the value of `Validity_INS_Gradient`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_gradient(&self) -> bool { - self.validity_ins_gradient_raw() + self.validity_ins_gradient_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Gradient' + /// Returns the raw value of `Validity_INS_Gradient`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_gradient_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_ins_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_INS_Gradient' + /// Sets the raw value of `Validity_INS_Gradient`. + #[inline(always)] + pub fn set_validity_ins_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_INS_Gradient`. #[inline(always)] pub fn set_validity_ins_gradient(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_INS_Heading' + /// Returns the value of `Validity_INS_Heading`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_ins_heading(&self) -> bool { - self.validity_ins_heading_raw() + self.validity_ins_heading_raw_val() == 1 } - /// Get raw value of 'Validity_INS_Heading' + /// Returns the raw value of `Validity_INS_Heading`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_ins_heading_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_ins_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_INS_Heading' + /// Sets the raw value of `Validity_INS_Heading`. + #[inline(always)] + pub fn set_validity_ins_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_INS_Heading`. #[inline(always)] pub fn set_validity_ins_heading(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -28103,21 +29432,21 @@ impl RtSbInsStatus { pub const MESSAGE_SIZE: usize = 8; pub const INS_STATUS_MIN: u8 = 0_u8; pub const INS_STATUS_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Status' from values + /// Constructs a new `RT_SB_INS_Status` message from values. pub fn new(ins_status: RtSbInsStatusInsStatus) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_ins_status(ins_status)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Status` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'INS_Status' + /// Returns the value of `INS_Status`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn ins_status(&self) -> RtSbInsStatusInsStatus { @@ -28126,24 +29455,29 @@ impl RtSbInsStatus { 2 => RtSbInsStatusInsStatus::Converged, 1 => RtSbInsStatusInsStatus::Initialised, 0 => RtSbInsStatusInsStatus::Uninitialised, - _ => RtSbInsStatusInsStatus::_Other(self.ins_status_raw()), + _ => RtSbInsStatusInsStatus::_Other(self.ins_status_phys_val()), } } - /// Get raw value of 'INS_Status' + #[inline(always)] + fn ins_status_phys_val(&self) -> u8 { + self.ins_status_raw_val() + } + /// Returns the raw value of `INS_Status`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn ins_status_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn ins_status_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `INS_Status`. + #[inline(always)] + pub fn set_ins_status_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'INS_Status' + /// Sets the value of `INS_Status`. #[inline(always)] pub fn set_ins_status( &mut self, @@ -28155,13 +29489,6 @@ impl RtSbInsStatus { message_id: RtSbInsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -28261,7 +29588,7 @@ impl RtSbInsAttitude { pub const ATTITUDE_YAW_MAX: f32 = 360_f32; pub const ACCURACY_ATTITUDE_MIN: u8 = 0_u8; pub const ACCURACY_ATTITUDE_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_INS_Attitude' from values + /// Constructs a new `RT_SB_INS_Attitude` message from values. pub fn new( attitude_roll: f32, attitude_pitch: f32, @@ -28281,36 +29608,42 @@ impl RtSbInsAttitude { res.set_validity_yaw(validity_yaw)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_INS_Attitude` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Attitude_Roll' + /// Returns the value of `Attitude_Roll`. /// /// - Min: -360 /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn attitude_roll(&self) -> f32 { - self.attitude_roll_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Attitude_Roll' + /// Returns the raw value of `Attitude_Roll`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn attitude_roll_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn attitude_roll_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Attitude_Roll`. + #[inline(always)] + pub fn set_attitude_roll_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Attitude_Roll' + /// Sets the value of `Attitude_Roll`. #[inline(always)] pub fn set_attitude_roll(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -28325,32 +29658,38 @@ impl RtSbInsAttitude { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Attitude_Pitch' + /// Returns the value of `Attitude_Pitch`. /// /// - Min: -360 /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn attitude_pitch(&self) -> f32 { - self.attitude_pitch_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Attitude_Pitch' + /// Returns the raw value of `Attitude_Pitch`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed - #[inline(always)] - pub fn attitude_pitch_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + #[inline(always)] + pub fn attitude_pitch_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Attitude_Pitch`. + #[inline(always)] + pub fn set_attitude_pitch_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Attitude_Pitch' + /// Sets the value of `Attitude_Pitch`. #[inline(always)] pub fn set_attitude_pitch(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -28365,32 +29704,38 @@ impl RtSbInsAttitude { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Attitude_Yaw' + /// Returns the value of `Attitude_Yaw`. /// /// - Min: -360 /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn attitude_yaw(&self) -> f32 { - self.attitude_yaw_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Attitude_Yaw' + /// Returns the raw value of `Attitude_Yaw`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn attitude_yaw_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn attitude_yaw_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Attitude_Yaw`. + #[inline(always)] + pub fn set_attitude_yaw_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Attitude_Yaw' + /// Sets the value of `Attitude_Yaw`. #[inline(always)] pub fn set_attitude_yaw(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -28405,31 +29750,34 @@ impl RtSbInsAttitude { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Attitude' + /// Returns the value of `Accuracy_Attitude`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_attitude(&self) -> u8 { - self.accuracy_attitude_raw() + self.accuracy_attitude_raw_val() } - /// Get raw value of 'Accuracy_Attitude' + /// Returns the raw value of `Accuracy_Attitude`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_attitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_attitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_Attitude`. + #[inline(always)] + pub fn set_accuracy_attitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_Attitude' + /// Sets the value of `Accuracy_Attitude`. #[inline(always)] pub fn set_accuracy_attitude(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -28437,21 +29785,14 @@ impl RtSbInsAttitude { message_id: RtSbInsAttitude::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbInsAttitude::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Roll' + /// Returns the value of `Validity_Roll`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn validity_roll(&self) -> RtSbInsAttitudeValidityRoll { @@ -28459,23 +29800,29 @@ impl RtSbInsAttitude { match signal { 1 => RtSbInsAttitudeValidityRoll::Valid, 0 => RtSbInsAttitudeValidityRoll::Invalid, - _ => RtSbInsAttitudeValidityRoll::_Other(self.validity_roll_raw()), + _ => RtSbInsAttitudeValidityRoll::_Other(self.validity_roll_phys_val()), } } - /// Get raw value of 'Validity_Roll' + #[inline(always)] + fn validity_roll_phys_val(&self) -> bool { + self.validity_roll_raw_val() == 1 + } + /// Returns the raw value of `Validity_Roll`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_roll_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_roll_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_Roll`. + #[inline(always)] + pub fn set_validity_roll_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_Roll' + /// Sets the value of `Validity_Roll`. #[inline(always)] pub fn set_validity_roll( &mut self, @@ -28486,11 +29833,11 @@ impl RtSbInsAttitude { self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_Pitch' + /// Returns the value of `Validity_Pitch`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn validity_pitch(&self) -> RtSbInsAttitudeValidityPitch { @@ -28498,23 +29845,29 @@ impl RtSbInsAttitude { match signal { 1 => RtSbInsAttitudeValidityPitch::Valid, 0 => RtSbInsAttitudeValidityPitch::Invalid, - _ => RtSbInsAttitudeValidityPitch::_Other(self.validity_pitch_raw()), + _ => RtSbInsAttitudeValidityPitch::_Other(self.validity_pitch_phys_val()), } } - /// Get raw value of 'Validity_Pitch' + #[inline(always)] + fn validity_pitch_phys_val(&self) -> bool { + self.validity_pitch_raw_val() == 1 + } + /// Returns the raw value of `Validity_Pitch`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_pitch_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_pitch_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_Pitch`. + #[inline(always)] + pub fn set_validity_pitch_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_Pitch' + /// Sets the value of `Validity_Pitch`. #[inline(always)] pub fn set_validity_pitch( &mut self, @@ -28525,11 +29878,11 @@ impl RtSbInsAttitude { self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Yaw' + /// Returns the value of `Validity_Yaw`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn validity_yaw(&self) -> RtSbInsAttitudeValidityYaw { @@ -28537,23 +29890,29 @@ impl RtSbInsAttitude { match signal { 1 => RtSbInsAttitudeValidityYaw::Valid, 0 => RtSbInsAttitudeValidityYaw::Invalid, - _ => RtSbInsAttitudeValidityYaw::_Other(self.validity_yaw_raw()), + _ => RtSbInsAttitudeValidityYaw::_Other(self.validity_yaw_phys_val()), } } - /// Get raw value of 'Validity_Yaw' + #[inline(always)] + fn validity_yaw_phys_val(&self) -> bool { + self.validity_yaw_raw_val() == 1 + } + /// Returns the raw value of `Validity_Yaw`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_yaw_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_yaw_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Yaw`. + #[inline(always)] + pub fn set_validity_yaw_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Yaw' + /// Sets the value of `Validity_Yaw`. #[inline(always)] pub fn set_validity_yaw( &mut self, @@ -28702,7 +30061,7 @@ impl RtSbOutputStatus { pub const MESSAGE_SIZE: usize = 8; pub const GPS_TIME_MIN: f32 = 0_f32; pub const GPS_TIME_MAX: f32 = 604800_f32; - /// Construct new 'RT_SB_Output_Status' from values + /// Constructs a new `RT_SB_Output_Status` message from values. pub fn new( gps_time: f32, status_trigger: RtSbOutputStatusStatusTrigger, @@ -28728,11 +30087,11 @@ impl RtSbOutputStatus { res.set_validity_status_timestamp(validity_status_timestamp)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Output_Status` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Time' + /// Returns the value of `GPS_Time`. /// /// GPS time is the time in seconds since midnight GMT on Saturday night. /// @@ -28740,26 +30099,31 @@ impl RtSbOutputStatus { /// - Max: 604800 /// - Unit: "s" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn gps_time(&self) -> f32 { - self.gps_time_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Time' + /// Returns the raw value of `GPS_Time`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_time_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_time_raw_val(&self) -> u32 { + self.raw.view_bits::()[32..64].load_le::() } - /// Set value of 'GPS_Time' + /// Sets the raw value of `GPS_Time`. + #[inline(always)] + pub fn set_gps_time_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[32..64].store_le(value); + } + /// Sets the value of `GPS_Time`. #[inline(always)] pub fn set_gps_time(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 604800_f32 < value { @@ -28773,13 +30137,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Status_Trigger' + /// Returns the value of `Status_Trigger`. /// /// Status of the trigger input /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_trigger(&self) -> RtSbOutputStatusStatusTrigger { @@ -28787,23 +30151,29 @@ impl RtSbOutputStatus { match signal { 1 => RtSbOutputStatusStatusTrigger::Active, 0 => RtSbOutputStatusStatusTrigger::Inactive, - _ => RtSbOutputStatusStatusTrigger::_Other(self.status_trigger_raw()), + _ => RtSbOutputStatusStatusTrigger::_Other(self.status_trigger_phys_val()), } } - /// Get raw value of 'Status_Trigger' + #[inline(always)] + fn status_trigger_phys_val(&self) -> bool { + self.status_trigger_raw_val() == 1 + } + /// Returns the raw value of `Status_Trigger`. /// /// - Start bit: 15 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_trigger_raw(&self) -> bool { - let signal = self.raw.view_bits::()[15..16].load_le::(); - signal == 1 + pub fn status_trigger_raw_val(&self) -> u8 { + self.raw.view_bits::()[15..16].load_le::() } - /// Set value of 'Status_Trigger' + /// Sets the raw value of `Status_Trigger`. + #[inline(always)] + pub fn set_status_trigger_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[15..16].store_le(value); + } + /// Sets the value of `Status_Trigger`. #[inline(always)] pub fn set_status_trigger( &mut self, @@ -28814,13 +30184,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[15..16].store_le(value); Ok(()) } - /// Get value of 'Status_Serial_Output_2' + /// Returns the value of `Status_Serial_Output_2`. /// /// Status output of serial port 1 /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_serial_output_2(&self) -> RtSbOutputStatusStatusSerialOutput2 { @@ -28830,25 +30200,31 @@ impl RtSbOutputStatus { 0 => RtSbOutputStatusStatusSerialOutput2::Inactive, _ => { RtSbOutputStatusStatusSerialOutput2::_Other( - self.status_serial_output_2_raw(), + self.status_serial_output_2_phys_val(), ) } } } - /// Get raw value of 'Status_Serial_Output_2' + #[inline(always)] + fn status_serial_output_2_phys_val(&self) -> bool { + self.status_serial_output_2_raw_val() == 1 + } + /// Returns the raw value of `Status_Serial_Output_2`. /// /// - Start bit: 14 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_serial_output_2_raw(&self) -> bool { - let signal = self.raw.view_bits::()[14..15].load_le::(); - signal == 1 + pub fn status_serial_output_2_raw_val(&self) -> u8 { + self.raw.view_bits::()[14..15].load_le::() } - /// Set value of 'Status_Serial_Output_2' + /// Sets the raw value of `Status_Serial_Output_2`. + #[inline(always)] + pub fn set_status_serial_output_2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[14..15].store_le(value); + } + /// Sets the value of `Status_Serial_Output_2`. #[inline(always)] pub fn set_status_serial_output_2( &mut self, @@ -28859,13 +30235,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[14..15].store_le(value); Ok(()) } - /// Get value of 'Status_Serial_Output_1' + /// Returns the value of `Status_Serial_Output_1`. /// /// Status output of serial port 1 /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_serial_output_1(&self) -> RtSbOutputStatusStatusSerialOutput1 { @@ -28875,25 +30251,31 @@ impl RtSbOutputStatus { 0 => RtSbOutputStatusStatusSerialOutput1::Inactive, _ => { RtSbOutputStatusStatusSerialOutput1::_Other( - self.status_serial_output_1_raw(), + self.status_serial_output_1_phys_val(), ) } } } - /// Get raw value of 'Status_Serial_Output_1' + #[inline(always)] + fn status_serial_output_1_phys_val(&self) -> bool { + self.status_serial_output_1_raw_val() == 1 + } + /// Returns the raw value of `Status_Serial_Output_1`. /// /// - Start bit: 13 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_serial_output_1_raw(&self) -> bool { - let signal = self.raw.view_bits::()[13..14].load_le::(); - signal == 1 + pub fn status_serial_output_1_raw_val(&self) -> u8 { + self.raw.view_bits::()[13..14].load_le::() } - /// Set value of 'Status_Serial_Output_1' + /// Sets the raw value of `Status_Serial_Output_1`. + #[inline(always)] + pub fn set_status_serial_output_1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[13..14].store_le(value); + } + /// Sets the value of `Status_Serial_Output_1`. #[inline(always)] pub fn set_status_serial_output_1( &mut self, @@ -28904,13 +30286,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[13..14].store_le(value); Ok(()) } - /// Get value of 'Status_Pulse_Output' + /// Returns the value of `Status_Pulse_Output`. /// /// Pulse output activity status /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_pulse_output(&self) -> RtSbOutputStatusStatusPulseOutput { @@ -28919,24 +30301,32 @@ impl RtSbOutputStatus { 1 => RtSbOutputStatusStatusPulseOutput::Active, 0 => RtSbOutputStatusStatusPulseOutput::Inactive, _ => { - RtSbOutputStatusStatusPulseOutput::_Other(self.status_pulse_output_raw()) + RtSbOutputStatusStatusPulseOutput::_Other( + self.status_pulse_output_phys_val(), + ) } } } - /// Get raw value of 'Status_Pulse_Output' + #[inline(always)] + fn status_pulse_output_phys_val(&self) -> bool { + self.status_pulse_output_raw_val() == 1 + } + /// Returns the raw value of `Status_Pulse_Output`. /// /// - Start bit: 12 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_pulse_output_raw(&self) -> bool { - let signal = self.raw.view_bits::()[12..13].load_le::(); - signal == 1 + pub fn status_pulse_output_raw_val(&self) -> u8 { + self.raw.view_bits::()[12..13].load_le::() + } + /// Sets the raw value of `Status_Pulse_Output`. + #[inline(always)] + pub fn set_status_pulse_output_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[12..13].store_le(value); } - /// Set value of 'Status_Pulse_Output' + /// Sets the value of `Status_Pulse_Output`. #[inline(always)] pub fn set_status_pulse_output( &mut self, @@ -28947,13 +30337,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[12..13].store_le(value); Ok(()) } - /// Get value of 'Status_Analogue_4' + /// Returns the value of `Status_Analogue_4`. /// /// Analogue output status for channel 4. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_analogue_4(&self) -> RtSbOutputStatusStatusAnalogue4 { @@ -28961,23 +30351,33 @@ impl RtSbOutputStatus { match signal { 1 => RtSbOutputStatusStatusAnalogue4::Active, 0 => RtSbOutputStatusStatusAnalogue4::Inactive, - _ => RtSbOutputStatusStatusAnalogue4::_Other(self.status_analogue_4_raw()), + _ => { + RtSbOutputStatusStatusAnalogue4::_Other( + self.status_analogue_4_phys_val(), + ) + } } } - /// Get raw value of 'Status_Analogue_4' + #[inline(always)] + fn status_analogue_4_phys_val(&self) -> bool { + self.status_analogue_4_raw_val() == 1 + } + /// Returns the raw value of `Status_Analogue_4`. /// /// - Start bit: 11 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_analogue_4_raw(&self) -> bool { - let signal = self.raw.view_bits::()[11..12].load_le::(); - signal == 1 + pub fn status_analogue_4_raw_val(&self) -> u8 { + self.raw.view_bits::()[11..12].load_le::() } - /// Set value of 'Status_Analogue_4' + /// Sets the raw value of `Status_Analogue_4`. + #[inline(always)] + pub fn set_status_analogue_4_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[11..12].store_le(value); + } + /// Sets the value of `Status_Analogue_4`. #[inline(always)] pub fn set_status_analogue_4( &mut self, @@ -28988,13 +30388,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[11..12].store_le(value); Ok(()) } - /// Get value of 'Status_Analogue_3' + /// Returns the value of `Status_Analogue_3`. /// /// Analogue output status for channel 3. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_analogue_3(&self) -> RtSbOutputStatusStatusAnalogue3 { @@ -29002,23 +30402,33 @@ impl RtSbOutputStatus { match signal { 1 => RtSbOutputStatusStatusAnalogue3::Active, 0 => RtSbOutputStatusStatusAnalogue3::Inactive, - _ => RtSbOutputStatusStatusAnalogue3::_Other(self.status_analogue_3_raw()), + _ => { + RtSbOutputStatusStatusAnalogue3::_Other( + self.status_analogue_3_phys_val(), + ) + } } } - /// Get raw value of 'Status_Analogue_3' + #[inline(always)] + fn status_analogue_3_phys_val(&self) -> bool { + self.status_analogue_3_raw_val() == 1 + } + /// Returns the raw value of `Status_Analogue_3`. /// /// - Start bit: 10 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_analogue_3_raw(&self) -> bool { - let signal = self.raw.view_bits::()[10..11].load_le::(); - signal == 1 + pub fn status_analogue_3_raw_val(&self) -> u8 { + self.raw.view_bits::()[10..11].load_le::() + } + /// Sets the raw value of `Status_Analogue_3`. + #[inline(always)] + pub fn set_status_analogue_3_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[10..11].store_le(value); } - /// Set value of 'Status_Analogue_3' + /// Sets the value of `Status_Analogue_3`. #[inline(always)] pub fn set_status_analogue_3( &mut self, @@ -29029,13 +30439,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[10..11].store_le(value); Ok(()) } - /// Get value of 'Status_Analogue_2' + /// Returns the value of `Status_Analogue_2`. /// /// Analogue output status for channel 1. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_analogue_2(&self) -> RtSbOutputStatusStatusAnalogue2 { @@ -29043,23 +30453,33 @@ impl RtSbOutputStatus { match signal { 1 => RtSbOutputStatusStatusAnalogue2::Active, 0 => RtSbOutputStatusStatusAnalogue2::Inactive, - _ => RtSbOutputStatusStatusAnalogue2::_Other(self.status_analogue_2_raw()), + _ => { + RtSbOutputStatusStatusAnalogue2::_Other( + self.status_analogue_2_phys_val(), + ) + } } } - /// Get raw value of 'Status_Analogue_2' + #[inline(always)] + fn status_analogue_2_phys_val(&self) -> bool { + self.status_analogue_2_raw_val() == 1 + } + /// Returns the raw value of `Status_Analogue_2`. /// /// - Start bit: 9 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_analogue_2_raw(&self) -> bool { - let signal = self.raw.view_bits::()[9..10].load_le::(); - signal == 1 + pub fn status_analogue_2_raw_val(&self) -> u8 { + self.raw.view_bits::()[9..10].load_le::() + } + /// Sets the raw value of `Status_Analogue_2`. + #[inline(always)] + pub fn set_status_analogue_2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[9..10].store_le(value); } - /// Set value of 'Status_Analogue_2' + /// Sets the value of `Status_Analogue_2`. #[inline(always)] pub fn set_status_analogue_2( &mut self, @@ -29070,13 +30490,13 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[9..10].store_le(value); Ok(()) } - /// Get value of 'Status_Analogue_1' + /// Returns the value of `Status_Analogue_1`. /// /// Analogue output status for channel 1. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn status_analogue_1(&self) -> RtSbOutputStatusStatusAnalogue1 { @@ -29084,23 +30504,33 @@ impl RtSbOutputStatus { match signal { 1 => RtSbOutputStatusStatusAnalogue1::Active, 0 => RtSbOutputStatusStatusAnalogue1::Inactive, - _ => RtSbOutputStatusStatusAnalogue1::_Other(self.status_analogue_1_raw()), + _ => { + RtSbOutputStatusStatusAnalogue1::_Other( + self.status_analogue_1_phys_val(), + ) + } } } - /// Get raw value of 'Status_Analogue_1' + #[inline(always)] + fn status_analogue_1_phys_val(&self) -> bool { + self.status_analogue_1_raw_val() == 1 + } + /// Returns the raw value of `Status_Analogue_1`. /// /// - Start bit: 8 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn status_analogue_1_raw(&self) -> bool { - let signal = self.raw.view_bits::()[8..9].load_le::(); - signal == 1 + pub fn status_analogue_1_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..9].load_le::() + } + /// Sets the raw value of `Status_Analogue_1`. + #[inline(always)] + pub fn set_status_analogue_1_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..9].store_le(value); } - /// Set value of 'Status_Analogue_1' + /// Sets the value of `Status_Analogue_1`. #[inline(always)] pub fn set_status_analogue_1( &mut self, @@ -29111,32 +30541,36 @@ impl RtSbOutputStatus { self.raw.view_bits_mut::()[8..9].store_le(value); Ok(()) } - /// Get value of 'Validity_Status_Timestamp' + /// Returns the value of `Validity_Status_Timestamp`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_status_timestamp(&self) -> bool { - self.validity_status_timestamp_raw() + self.validity_status_timestamp_raw_val() == 1 } - /// Get raw value of 'Validity_Status_Timestamp' + /// Returns the raw value of `Validity_Status_Timestamp`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_status_timestamp_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_status_timestamp_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Status_Timestamp`. + #[inline(always)] + pub fn set_validity_status_timestamp_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Status_Timestamp' + /// Sets the value of `Validity_Status_Timestamp`. #[inline(always)] pub fn set_validity_status_timestamp( &mut self, @@ -29415,7 +30849,7 @@ impl RtSbGpsHeadingGradient2 { pub const GPS_HEADING_2_MAX: f32 = 360_f32; pub const ACCURACY_GPS_HEADING_MIN: u8 = 0_u8; pub const ACCURACY_GPS_HEADING_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Heading_Gradient_2' from values + /// Constructs a new `RT_SB_GPS_Heading_Gradient_2` message from values. pub fn new( gps_gradient: f32, accuracy_gps_gradient: u8, @@ -29433,11 +30867,11 @@ impl RtSbGpsHeadingGradient2 { res.set_validity_gps_heading(validity_gps_heading)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Heading_Gradient_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Gradient' + /// Returns the value of `GPS_Gradient`. /// /// This is GPS gradient, i.e. the vertical direction that the vehicle is travelling, NOT pointing (pitch). /// @@ -29445,26 +30879,32 @@ impl RtSbGpsHeadingGradient2 { /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_gradient(&self) -> f32 { - self.gps_gradient_raw() + let signal = self.raw.view_bits::()[40..56].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Gradient' + /// Returns the raw value of `GPS_Gradient`. /// /// - Start bit: 40 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_gradient_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..56].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_gradient_raw_val(&self) -> i16 { + self.raw.view_bits::()[40..56].load_le::() + } + /// Sets the raw value of `GPS_Gradient`. + #[inline(always)] + pub fn set_gps_gradient_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..56].store_le(value); } - /// Set value of 'GPS_Gradient' + /// Sets the value of `GPS_Gradient`. #[inline(always)] pub fn set_gps_gradient(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -29479,33 +30919,36 @@ impl RtSbGpsHeadingGradient2 { self.raw.view_bits_mut::()[40..56].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Gradient' + /// Returns the value of `Accuracy_GPS_Gradient`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_gradient(&self) -> u8 { - self.accuracy_gps_gradient_raw() + self.accuracy_gps_gradient_raw_val() } - /// Get raw value of 'Accuracy_GPS_Gradient' + /// Returns the raw value of `Accuracy_GPS_Gradient`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_gradient_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Gradient`. + #[inline(always)] + pub fn set_accuracy_gps_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'Accuracy_GPS_Gradient' + /// Sets the value of `Accuracy_GPS_Gradient`. #[inline(always)] pub fn set_accuracy_gps_gradient(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -29513,17 +30956,10 @@ impl RtSbGpsHeadingGradient2 { message_id: RtSbGpsHeadingGradient2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsHeadingGradient2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'GPS_Heading_2' + /// Returns the value of `GPS_Heading_2`. /// /// This is GPS heading in the range 0 - 360°, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -29531,26 +30967,31 @@ impl RtSbGpsHeadingGradient2 { /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_heading_2(&self) -> f32 { - self.gps_heading_2_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Heading_2' + /// Returns the raw value of `GPS_Heading_2`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_heading_2_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_heading_2_raw_val(&self) -> u16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `GPS_Heading_2`. + #[inline(always)] + pub fn set_gps_heading_2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'GPS_Heading_2' + /// Sets the value of `GPS_Heading_2`. #[inline(always)] pub fn set_gps_heading_2(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 360_f32 < value { @@ -29564,33 +31005,36 @@ impl RtSbGpsHeadingGradient2 { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Heading' + /// Returns the value of `Accuracy_GPS_Heading`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_heading(&self) -> u8 { - self.accuracy_gps_heading_raw() + self.accuracy_gps_heading_raw_val() } - /// Get raw value of 'Accuracy_GPS_Heading' + /// Returns the raw value of `Accuracy_GPS_Heading`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_heading_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Heading`. + #[inline(always)] + pub fn set_accuracy_gps_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Heading' + /// Sets the value of `Accuracy_GPS_Heading`. #[inline(always)] pub fn set_accuracy_gps_heading(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -29598,74 +31042,75 @@ impl RtSbGpsHeadingGradient2 { message_id: RtSbGpsHeadingGradient2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsHeadingGradient2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Gradient' + /// Returns the value of `Validity_GPS_Gradient`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_gradient(&self) -> bool { - self.validity_gps_gradient_raw() + self.validity_gps_gradient_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Gradient' + /// Returns the raw value of `Validity_GPS_Gradient`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_gradient_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Gradient`. + #[inline(always)] + pub fn set_validity_gps_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Gradient' + /// Sets the value of `Validity_GPS_Gradient`. #[inline(always)] pub fn set_validity_gps_gradient(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Heading' + /// Returns the value of `Validity_GPS_Heading`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_heading(&self) -> bool { - self.validity_gps_heading_raw() + self.validity_gps_heading_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Heading' + /// Returns the raw value of `Validity_GPS_Heading`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_heading_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Heading`. + #[inline(always)] + pub fn set_validity_gps_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Heading' + /// Sets the value of `Validity_GPS_Heading`. #[inline(always)] pub fn set_validity_gps_heading(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -29739,7 +31184,7 @@ impl RtSbCumulativeDistance2 { pub const CUMULATIVE_DISTANCE_MAX: f32 = 4294967_f32; pub const CUMULATIVE_TIME_MIN: f32 = 0_f32; pub const CUMULATIVE_TIME_MAX: f32 = 167772_f32; - /// Construct new 'RT_SB_Cumulative_Distance_2' from values + /// Constructs a new `RT_SB_Cumulative_Distance_2` message from values. pub fn new( cumulative_distance: f32, cumulative_time: f32, @@ -29753,36 +31198,41 @@ impl RtSbCumulativeDistance2 { res.set_validity_cumulative_time(validity_cumulative_time)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Cumulative_Distance_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Cumulative_Distance' + /// Returns the value of `Cumulative_Distance`. /// /// - Min: 0 /// - Max: 4294967 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn cumulative_distance(&self) -> f32 { - self.cumulative_distance_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Cumulative_Distance' + /// Returns the raw value of `Cumulative_Distance`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn cumulative_distance_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn cumulative_distance_raw_val(&self) -> u32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `Cumulative_Distance`. + #[inline(always)] + pub fn set_cumulative_distance_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'Cumulative_Distance' + /// Sets the value of `Cumulative_Distance`. #[inline(always)] pub fn set_cumulative_distance(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 4294967_f32 < value { @@ -29796,32 +31246,37 @@ impl RtSbCumulativeDistance2 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Cumulative_Time' + /// Returns the value of `Cumulative_Time`. /// /// - Min: 0 /// - Max: 167772 /// - Unit: "s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn cumulative_time(&self) -> f32 { - self.cumulative_time_raw() + let signal = self.raw.view_bits::()[8..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Cumulative_Time' + /// Returns the raw value of `Cumulative_Time`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn cumulative_time_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn cumulative_time_raw_val(&self) -> u32 { + self.raw.view_bits::()[8..32].load_le::() } - /// Set value of 'Cumulative_Time' + /// Sets the raw value of `Cumulative_Time`. + #[inline(always)] + pub fn set_cumulative_time_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[8..32].store_le(value); + } + /// Sets the value of `Cumulative_Time`. #[inline(always)] pub fn set_cumulative_time(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 167772_f32 < value { @@ -29835,32 +31290,36 @@ impl RtSbCumulativeDistance2 { self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) } - /// Get value of 'Validity_Cumulative_Distance' + /// Returns the value of `Validity_Cumulative_Distance`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_cumulative_distance(&self) -> bool { - self.validity_cumulative_distance_raw() + self.validity_cumulative_distance_raw_val() == 1 } - /// Get raw value of 'Validity_Cumulative_Distance' + /// Returns the raw value of `Validity_Cumulative_Distance`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_cumulative_distance_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_cumulative_distance_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_Cumulative_Distance' + /// Sets the raw value of `Validity_Cumulative_Distance`. + #[inline(always)] + pub fn set_validity_cumulative_distance_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_Cumulative_Distance`. #[inline(always)] pub fn set_validity_cumulative_distance( &mut self, @@ -29870,32 +31329,36 @@ impl RtSbCumulativeDistance2 { self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Cumulative_Time' + /// Returns the value of `Validity_Cumulative_Time`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_cumulative_time(&self) -> bool { - self.validity_cumulative_time_raw() + self.validity_cumulative_time_raw_val() == 1 } - /// Get raw value of 'Validity_Cumulative_Time' + /// Returns the raw value of `Validity_Cumulative_Time`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_cumulative_time_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_cumulative_time_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_Cumulative_Time' + /// Sets the raw value of `Validity_Cumulative_Time`. + #[inline(always)] + pub fn set_validity_cumulative_time_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_Cumulative_Time`. #[inline(always)] pub fn set_validity_cumulative_time(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -29969,7 +31432,7 @@ impl RtSbCumulativeDistance1 { pub const CUMULATIVE_DISTANCE_MAX: f32 = 4294967_f32; pub const CUMULATIVE_TIME_MIN: f32 = 0_f32; pub const CUMULATIVE_TIME_MAX: f32 = 167772_f32; - /// Construct new 'RT_SB_Cumulative_Distance_1' from values + /// Constructs a new `RT_SB_Cumulative_Distance_1` message from values. pub fn new( cumulative_distance: f32, cumulative_time: f32, @@ -29983,36 +31446,41 @@ impl RtSbCumulativeDistance1 { res.set_validity_cumulative_time(validity_cumulative_time)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Cumulative_Distance_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Cumulative_Distance' + /// Returns the value of `Cumulative_Distance`. /// /// - Min: 0 /// - Max: 4294967 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn cumulative_distance(&self) -> f32 { - self.cumulative_distance_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Cumulative_Distance' + /// Returns the raw value of `Cumulative_Distance`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn cumulative_distance_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn cumulative_distance_raw_val(&self) -> u32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `Cumulative_Distance`. + #[inline(always)] + pub fn set_cumulative_distance_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'Cumulative_Distance' + /// Sets the value of `Cumulative_Distance`. #[inline(always)] pub fn set_cumulative_distance(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 4294967_f32 < value { @@ -30026,32 +31494,37 @@ impl RtSbCumulativeDistance1 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Cumulative_Time' + /// Returns the value of `Cumulative_Time`. /// /// - Min: 0 /// - Max: 167772 /// - Unit: "s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn cumulative_time(&self) -> f32 { - self.cumulative_time_raw() + let signal = self.raw.view_bits::()[8..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Cumulative_Time' + /// Returns the raw value of `Cumulative_Time`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn cumulative_time_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn cumulative_time_raw_val(&self) -> u32 { + self.raw.view_bits::()[8..32].load_le::() + } + /// Sets the raw value of `Cumulative_Time`. + #[inline(always)] + pub fn set_cumulative_time_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[8..32].store_le(value); } - /// Set value of 'Cumulative_Time' + /// Sets the value of `Cumulative_Time`. #[inline(always)] pub fn set_cumulative_time(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 167772_f32 < value { @@ -30065,32 +31538,36 @@ impl RtSbCumulativeDistance1 { self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) } - /// Get value of 'Validity_Cumulative_Distance' + /// Returns the value of `Validity_Cumulative_Distance`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_cumulative_distance(&self) -> bool { - self.validity_cumulative_distance_raw() + self.validity_cumulative_distance_raw_val() == 1 } - /// Get raw value of 'Validity_Cumulative_Distance' + /// Returns the raw value of `Validity_Cumulative_Distance`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_cumulative_distance_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_cumulative_distance_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_Cumulative_Distance`. + #[inline(always)] + pub fn set_validity_cumulative_distance_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_Cumulative_Distance' + /// Sets the value of `Validity_Cumulative_Distance`. #[inline(always)] pub fn set_validity_cumulative_distance( &mut self, @@ -30100,32 +31577,36 @@ impl RtSbCumulativeDistance1 { self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Cumulative_Time' + /// Returns the value of `Validity_Cumulative_Time`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_cumulative_time(&self) -> bool { - self.validity_cumulative_time_raw() + self.validity_cumulative_time_raw_val() == 1 } - /// Get raw value of 'Validity_Cumulative_Time' + /// Returns the raw value of `Validity_Cumulative_Time`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_cumulative_time_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_cumulative_time_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Cumulative_Time`. + #[inline(always)] + pub fn set_validity_cumulative_time_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Cumulative_Time' + /// Sets the value of `Validity_Cumulative_Time`. #[inline(always)] pub fn set_validity_cumulative_time(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -30199,7 +31680,7 @@ impl RtSbTriggerTimestamp { pub const TRIGGER_NUMBER_MAX: u8 = 128_u8; pub const ACCURACY_TRIGGER_TIMESTAMP_MIN: u8 = 0_u8; pub const ACCURACY_TRIGGER_TIMESTAMP_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_Trigger_Timestamp' from values + /// Constructs a new `RT_SB_Trigger_Timestamp` message from values. pub fn new( gps_high_resolution_time: f32, trigger_timestamp_type: RtSbTriggerTimestampTriggerTimestampType, @@ -30215,11 +31696,11 @@ impl RtSbTriggerTimestamp { res.set_validity_trigger_timestamp(validity_trigger_timestamp)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Trigger_Timestamp` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_High_Resolution_Time' + /// Returns the value of `GPS_High_Resolution_Time`. /// /// GPS time of week to micro-second resolution. /// @@ -30227,26 +31708,31 @@ impl RtSbTriggerTimestamp { /// - Max: 604800 /// - Unit: "s" /// - Receivers: Vector__XXX + /// - Factor: 0.000001 + /// - Offset: 0 #[inline(always)] pub fn gps_high_resolution_time(&self) -> f32 { - self.gps_high_resolution_time_raw() + let signal = self.raw.view_bits::()[24..64].load_le::(); + let factor = 0.000001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_High_Resolution_Time' + /// Returns the raw value of `GPS_High_Resolution_Time`. /// /// - Start bit: 24 /// - Signal size: 40 bits - /// - Factor: 0.000001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_high_resolution_time_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[24..64].load_le::(); - let factor = 0.000001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_high_resolution_time_raw_val(&self) -> u64 { + self.raw.view_bits::()[24..64].load_le::() + } + /// Sets the raw value of `GPS_High_Resolution_Time`. + #[inline(always)] + pub fn set_gps_high_resolution_time_raw_val(&mut self, value: u64) { + self.raw.view_bits_mut::()[24..64].store_le(value); } - /// Set value of 'GPS_High_Resolution_Time' + /// Sets the value of `GPS_High_Resolution_Time`. #[inline(always)] pub fn set_gps_high_resolution_time(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 604800_f32 < value { @@ -30260,11 +31746,11 @@ impl RtSbTriggerTimestamp { self.raw.view_bits_mut::()[24..64].store_le(value); Ok(()) } - /// Get value of 'Trigger_Timestamp_Type' + /// Returns the value of `Trigger_Timestamp_Type`. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn trigger_timestamp_type(&self) -> RtSbTriggerTimestampTriggerTimestampType { @@ -30274,25 +31760,31 @@ impl RtSbTriggerTimestamp { 0 => RtSbTriggerTimestampTriggerTimestampType::FallingEdge, _ => { RtSbTriggerTimestampTriggerTimestampType::_Other( - self.trigger_timestamp_type_raw(), + self.trigger_timestamp_type_phys_val(), ) } } } - /// Get raw value of 'Trigger_Timestamp_Type' + #[inline(always)] + fn trigger_timestamp_type_phys_val(&self) -> bool { + self.trigger_timestamp_type_raw_val() == 1 + } + /// Returns the raw value of `Trigger_Timestamp_Type`. /// /// - Start bit: 23 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn trigger_timestamp_type_raw(&self) -> bool { - let signal = self.raw.view_bits::()[23..24].load_le::(); - signal == 1 + pub fn trigger_timestamp_type_raw_val(&self) -> u8 { + self.raw.view_bits::()[23..24].load_le::() + } + /// Sets the raw value of `Trigger_Timestamp_Type`. + #[inline(always)] + pub fn set_trigger_timestamp_type_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[23..24].store_le(value); } - /// Set value of 'Trigger_Timestamp_Type' + /// Sets the value of `Trigger_Timestamp_Type`. #[inline(always)] pub fn set_trigger_timestamp_type( &mut self, @@ -30303,33 +31795,38 @@ impl RtSbTriggerTimestamp { self.raw.view_bits_mut::()[23..24].store_le(value); Ok(()) } - /// Get value of 'Trigger_Number' + /// Returns the value of `Trigger_Number`. /// /// This is the ID of the trigger that generated the event, as marked on the case of the logger /// /// - Min: 0 /// - Max: 128 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 1 #[inline(always)] pub fn trigger_number(&self) -> u8 { - self.trigger_number_raw() + let signal = self.raw.view_bits::()[16..23].load_le::(); + let factor = 1; + u8::from(signal).saturating_mul(factor).saturating_add(1) } - /// Get raw value of 'Trigger_Number' + /// Returns the raw value of `Trigger_Number`. /// /// - Start bit: 16 /// - Signal size: 7 bits - /// - Factor: 1 - /// - Offset: 1 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn trigger_number_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..23].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(1) + pub fn trigger_number_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..23].load_le::() + } + /// Sets the raw value of `Trigger_Number`. + #[inline(always)] + pub fn set_trigger_number_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..23].store_le(value); } - /// Set value of 'Trigger_Number' + /// Sets the value of `Trigger_Number`. #[inline(always)] pub fn set_trigger_number(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 128_u8 < value { @@ -30347,33 +31844,36 @@ impl RtSbTriggerTimestamp { self.raw.view_bits_mut::()[16..23].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Trigger_Timestamp' + /// Returns the value of `Accuracy_Trigger_Timestamp`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_trigger_timestamp(&self) -> u8 { - self.accuracy_trigger_timestamp_raw() + self.accuracy_trigger_timestamp_raw_val() } - /// Get raw value of 'Accuracy_Trigger_Timestamp' + /// Returns the raw value of `Accuracy_Trigger_Timestamp`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_trigger_timestamp_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_trigger_timestamp_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_Trigger_Timestamp`. + #[inline(always)] + pub fn set_accuracy_trigger_timestamp_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_Trigger_Timestamp' + /// Sets the value of `Accuracy_Trigger_Timestamp`. #[inline(always)] pub fn set_accuracy_trigger_timestamp(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -30381,42 +31881,39 @@ impl RtSbTriggerTimestamp { message_id: RtSbTriggerTimestamp::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbTriggerTimestamp::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Trigger_Timestamp' + /// Returns the value of `Validity_Trigger_Timestamp`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_trigger_timestamp(&self) -> bool { - self.validity_trigger_timestamp_raw() + self.validity_trigger_timestamp_raw_val() == 1 } - /// Get raw value of 'Validity_Trigger_Timestamp' + /// Returns the raw value of `Validity_Trigger_Timestamp`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_trigger_timestamp_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_trigger_timestamp_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Trigger_Timestamp`. + #[inline(always)] + pub fn set_validity_trigger_timestamp_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Trigger_Timestamp' + /// Sets the value of `Validity_Trigger_Timestamp`. #[inline(always)] pub fn set_validity_trigger_timestamp( &mut self, @@ -30520,7 +32017,7 @@ impl RtImu06GyroRates { pub const GYRO_RATE_YAW_MAX: f32 = 327_f32; pub const ACCURACY_GYRO_RATES_MIN: u8 = 0_u8; pub const ACCURACY_GYRO_RATES_MAX: u8 = 0_u8; - /// Construct new 'RT_IMU06_Gyro_Rates' from values + /// Constructs a new `RT_IMU06_Gyro_Rates` message from values. pub fn new( gyro_rate_roll: f32, gyro_rate_pitch: f32, @@ -30540,11 +32037,11 @@ impl RtImu06GyroRates { res.set_validity_gyro_rate_yaw(validity_gyro_rate_yaw)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IMU06_Gyro_Rates` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Gyro_Rate_Roll' + /// Returns the value of `Gyro_Rate_Roll`. /// /// Roll rate is positive for clockwise rotation when looking at the rear of the vehicle from behind the vehicle. /// @@ -30552,26 +32049,32 @@ impl RtImu06GyroRates { /// - Max: 327 /// - Unit: "degrees/s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gyro_rate_roll(&self) -> f32 { - self.gyro_rate_roll_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Gyro_Rate_Roll' + /// Returns the raw value of `Gyro_Rate_Roll`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gyro_rate_roll_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gyro_rate_roll_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() } - /// Set value of 'Gyro_Rate_Roll' + /// Sets the raw value of `Gyro_Rate_Roll`. + #[inline(always)] + pub fn set_gyro_rate_roll_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); + } + /// Sets the value of `Gyro_Rate_Roll`. #[inline(always)] pub fn set_gyro_rate_roll(&mut self, value: f32) -> Result<(), CanError> { if value < -327_f32 || 327_f32 < value { @@ -30586,7 +32089,7 @@ impl RtImu06GyroRates { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Gyro_Rate_Pitch' + /// Returns the value of `Gyro_Rate_Pitch`. /// /// Pitch rate is positive for clockwise rotation when looking at the left hand side of the vehicle from the left of the vehicle. /// @@ -30594,26 +32097,32 @@ impl RtImu06GyroRates { /// - Max: 327 /// - Unit: "degrees/s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gyro_rate_pitch(&self) -> f32 { - self.gyro_rate_pitch_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Gyro_Rate_Pitch' + /// Returns the raw value of `Gyro_Rate_Pitch`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gyro_rate_pitch_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gyro_rate_pitch_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() } - /// Set value of 'Gyro_Rate_Pitch' + /// Sets the raw value of `Gyro_Rate_Pitch`. + #[inline(always)] + pub fn set_gyro_rate_pitch_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); + } + /// Sets the value of `Gyro_Rate_Pitch`. #[inline(always)] pub fn set_gyro_rate_pitch(&mut self, value: f32) -> Result<(), CanError> { if value < -327_f32 || 327_f32 < value { @@ -30628,7 +32137,7 @@ impl RtImu06GyroRates { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Gyro_Rate_Yaw' + /// Returns the value of `Gyro_Rate_Yaw`. /// /// Yaw rate is positive for clockwise rotation when looking down on the vehicle from above. /// @@ -30636,26 +32145,32 @@ impl RtImu06GyroRates { /// - Max: 327 /// - Unit: "degrees/s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gyro_rate_yaw(&self) -> f32 { - self.gyro_rate_yaw_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Gyro_Rate_Yaw' + /// Returns the raw value of `Gyro_Rate_Yaw`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gyro_rate_yaw_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gyro_rate_yaw_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() } - /// Set value of 'Gyro_Rate_Yaw' + /// Sets the raw value of `Gyro_Rate_Yaw`. + #[inline(always)] + pub fn set_gyro_rate_yaw_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); + } + /// Sets the value of `Gyro_Rate_Yaw`. #[inline(always)] pub fn set_gyro_rate_yaw(&mut self, value: f32) -> Result<(), CanError> { if value < -327_f32 || 327_f32 < value { @@ -30670,33 +32185,36 @@ impl RtImu06GyroRates { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Gyro_Rates' + /// Returns the value of `Accuracy_Gyro_Rates`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gyro_rates(&self) -> u8 { - self.accuracy_gyro_rates_raw() + self.accuracy_gyro_rates_raw_val() } - /// Get raw value of 'Accuracy_Gyro_Rates' + /// Returns the raw value of `Accuracy_Gyro_Rates`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gyro_rates_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gyro_rates_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_Gyro_Rates`. + #[inline(always)] + pub fn set_accuracy_gyro_rates_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_Gyro_Rates' + /// Sets the value of `Accuracy_Gyro_Rates`. #[inline(always)] pub fn set_accuracy_gyro_rates(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -30704,106 +32222,111 @@ impl RtImu06GyroRates { message_id: RtImu06GyroRates::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtImu06GyroRates::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Gyro_Rate_Roll' + /// Returns the value of `Validity_Gyro_Rate_Roll`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gyro_rate_roll(&self) -> bool { - self.validity_gyro_rate_roll_raw() + self.validity_gyro_rate_roll_raw_val() == 1 } - /// Get raw value of 'Validity_Gyro_Rate_Roll' + /// Returns the raw value of `Validity_Gyro_Rate_Roll`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gyro_rate_roll_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_gyro_rate_roll_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() } - /// Set value of 'Validity_Gyro_Rate_Roll' + /// Sets the raw value of `Validity_Gyro_Rate_Roll`. + #[inline(always)] + pub fn set_validity_gyro_rate_roll_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); + } + /// Sets the value of `Validity_Gyro_Rate_Roll`. #[inline(always)] pub fn set_validity_gyro_rate_roll(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_Gyro_Rate_Pitch' + /// Returns the value of `Validity_Gyro_Rate_Pitch`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gyro_rate_pitch(&self) -> bool { - self.validity_gyro_rate_pitch_raw() + self.validity_gyro_rate_pitch_raw_val() == 1 } - /// Get raw value of 'Validity_Gyro_Rate_Pitch' + /// Returns the raw value of `Validity_Gyro_Rate_Pitch`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gyro_rate_pitch_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gyro_rate_pitch_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_Gyro_Rate_Pitch' + /// Sets the raw value of `Validity_Gyro_Rate_Pitch`. + #[inline(always)] + pub fn set_validity_gyro_rate_pitch_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_Gyro_Rate_Pitch`. #[inline(always)] pub fn set_validity_gyro_rate_pitch(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Gyro_Rate_Yaw' + /// Returns the value of `Validity_Gyro_Rate_Yaw`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gyro_rate_yaw(&self) -> bool { - self.validity_gyro_rate_yaw_raw() + self.validity_gyro_rate_yaw_raw_val() == 1 } - /// Get raw value of 'Validity_Gyro_Rate_Yaw' + /// Returns the raw value of `Validity_Gyro_Rate_Yaw`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gyro_rate_yaw_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gyro_rate_yaw_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_Gyro_Rate_Yaw' + /// Sets the raw value of `Validity_Gyro_Rate_Yaw`. + #[inline(always)] + pub fn set_validity_gyro_rate_yaw_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_Gyro_Rate_Yaw`. #[inline(always)] pub fn set_validity_gyro_rate_yaw(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -30879,7 +32402,7 @@ impl RtImu06Accel { pub const ACCEL_LONGITUDINAL_MAX: f32 = 65_f32; pub const ACCURACY_ACCEL_MIN: u8 = 0_u8; pub const ACCURACY_ACCEL_MAX: u8 = 255_u8; - /// Construct new 'RT_IMU06_Accel' from values + /// Constructs a new `RT_IMU06_Accel` message from values. pub fn new( accel_vertical: f32, accel_lateral: f32, @@ -30899,11 +32422,11 @@ impl RtImu06Accel { res.set_validity_accel_longitudinal(validity_accel_longitudinal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_IMU06_Accel` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Accel_Vertical' + /// Returns the value of `Accel_Vertical`. /// /// Vertical acceleration. This is positive when the vehicle accelerates in an upwards direction, e.g. when travelling through a dip. /// @@ -30911,26 +32434,32 @@ impl RtImu06Accel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_vertical(&self) -> f32 { - self.accel_vertical_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Vertical' + /// Returns the raw value of `Accel_Vertical`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_vertical_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_vertical_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Accel_Vertical`. + #[inline(always)] + pub fn set_accel_vertical_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Accel_Vertical' + /// Sets the value of `Accel_Vertical`. #[inline(always)] pub fn set_accel_vertical(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -30945,7 +32474,7 @@ impl RtImu06Accel { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Accel_Lateral' + /// Returns the value of `Accel_Lateral`. /// /// Lateral acceleration. This is positive when the vehicle accelerates towards the right, e.g. when cornering around a right-hand bend. /// @@ -30953,26 +32482,32 @@ impl RtImu06Accel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_lateral(&self) -> f32 { - self.accel_lateral_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Lateral' + /// Returns the raw value of `Accel_Lateral`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_lateral_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_lateral_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Accel_Lateral`. + #[inline(always)] + pub fn set_accel_lateral_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Accel_Lateral' + /// Sets the value of `Accel_Lateral`. #[inline(always)] pub fn set_accel_lateral(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -30987,7 +32522,7 @@ impl RtImu06Accel { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Accel_Longitudinal' + /// Returns the value of `Accel_Longitudinal`. /// /// Longitudinal acceleration. This is positive when the vehicle accelerates in a forwards direction. /// @@ -30995,26 +32530,32 @@ impl RtImu06Accel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_longitudinal(&self) -> f32 { - self.accel_longitudinal_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Longitudinal' + /// Returns the raw value of `Accel_Longitudinal`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_longitudinal_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_longitudinal_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Accel_Longitudinal`. + #[inline(always)] + pub fn set_accel_longitudinal_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Accel_Longitudinal' + /// Sets the value of `Accel_Longitudinal`. #[inline(always)] pub fn set_accel_longitudinal(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -31029,33 +32570,36 @@ impl RtImu06Accel { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Accel' + /// Returns the value of `Accuracy_Accel`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_accel(&self) -> u8 { - self.accuracy_accel_raw() + self.accuracy_accel_raw_val() } - /// Get raw value of 'Accuracy_Accel' + /// Returns the raw value of `Accuracy_Accel`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_accel_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_accel_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Accuracy_Accel' + /// Sets the raw value of `Accuracy_Accel`. + #[inline(always)] + pub fn set_accuracy_accel_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Accuracy_Accel`. #[inline(always)] pub fn set_accuracy_accel(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -31063,106 +32607,111 @@ impl RtImu06Accel { message_id: RtImu06Accel::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtImu06Accel::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Vertical' + /// Returns the value of `Validity_Accel_Vertical`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_vertical(&self) -> bool { - self.validity_accel_vertical_raw() + self.validity_accel_vertical_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Vertical' + /// Returns the raw value of `Validity_Accel_Vertical`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_vertical_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_accel_vertical_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_Accel_Vertical`. + #[inline(always)] + pub fn set_validity_accel_vertical_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_Accel_Vertical' + /// Sets the value of `Validity_Accel_Vertical`. #[inline(always)] pub fn set_validity_accel_vertical(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Lateral' + /// Returns the value of `Validity_Accel_Lateral`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_lateral(&self) -> bool { - self.validity_accel_lateral_raw() + self.validity_accel_lateral_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Lateral' + /// Returns the raw value of `Validity_Accel_Lateral`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_lateral_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_accel_lateral_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_Accel_Lateral`. + #[inline(always)] + pub fn set_validity_accel_lateral_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_Accel_Lateral' + /// Sets the value of `Validity_Accel_Lateral`. #[inline(always)] pub fn set_validity_accel_lateral(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Longitudinal' + /// Returns the value of `Validity_Accel_Longitudinal`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_longitudinal(&self) -> bool { - self.validity_accel_longitudinal_raw() + self.validity_accel_longitudinal_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Longitudinal' + /// Returns the raw value of `Validity_Accel_Longitudinal`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_longitudinal_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_accel_longitudinal_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Accel_Longitudinal`. + #[inline(always)] + pub fn set_validity_accel_longitudinal_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Accel_Longitudinal' + /// Sets the value of `Validity_Accel_Longitudinal`. #[inline(always)] pub fn set_validity_accel_longitudinal( &mut self, @@ -31237,7 +32786,7 @@ impl RtSbSpeed { pub const SPEED_MAX: f32 = 20000_f32; pub const ACCURACY_SPEED_MIN: u8 = 0_u8; pub const ACCURACY_SPEED_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_Speed' from values + /// Constructs a new `RT_SB_Speed` message from values. pub fn new( speed: f32, accuracy_speed: u8, @@ -31249,36 +32798,42 @@ impl RtSbSpeed { res.set_validity_speed(validity_speed)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Speed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Speed' + /// Returns the value of `Speed`. /// /// - Min: -20000 /// - Max: 20000 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.00001 + /// - Offset: 0 #[inline(always)] pub fn speed(&self) -> f32 { - self.speed_raw() + let signal = self.raw.view_bits::()[16..48].load_le::(); + let factor = 0.00001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Speed' + /// Returns the raw value of `Speed`. /// /// - Start bit: 16 /// - Signal size: 32 bits - /// - Factor: 0.00001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn speed_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..48].load_le::(); - let factor = 0.00001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn speed_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..48].load_le::() + } + /// Sets the raw value of `Speed`. + #[inline(always)] + pub fn set_speed_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..48].store_le(value); } - /// Set value of 'Speed' + /// Sets the value of `Speed`. #[inline(always)] pub fn set_speed(&mut self, value: f32) -> Result<(), CanError> { if value < -20000_f32 || 20000_f32 < value { @@ -31293,33 +32848,36 @@ impl RtSbSpeed { self.raw.view_bits_mut::()[16..48].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Speed' + /// Returns the value of `Accuracy_Speed`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_speed(&self) -> u8 { - self.accuracy_speed_raw() + self.accuracy_speed_raw_val() } - /// Get raw value of 'Accuracy_Speed' + /// Returns the raw value of `Accuracy_Speed`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_speed_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_Speed`. + #[inline(always)] + pub fn set_accuracy_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_Speed' + /// Sets the value of `Accuracy_Speed`. #[inline(always)] pub fn set_accuracy_speed(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -31327,42 +32885,39 @@ impl RtSbSpeed { message_id: RtSbSpeed::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbSpeed::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Speed' + /// Returns the value of `Validity_Speed`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_speed(&self) -> bool { - self.validity_speed_raw() + self.validity_speed_raw_val() == 1 } - /// Get raw value of 'Validity_Speed' + /// Returns the raw value of `Validity_Speed`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_speed_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Speed`. + #[inline(always)] + pub fn set_validity_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Speed' + /// Sets the value of `Validity_Speed`. #[inline(always)] pub fn set_validity_speed(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -31438,7 +32993,7 @@ impl RtSbRtkSlip { pub const RTK_SLIP_MAX: f32 = 360_f32; pub const ACCURACY_RTK_BASELINE_MIN: u8 = 0_u8; pub const ACCURACY_RTK_BASELINE_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_RTK_Slip' from values + /// Constructs a new `RT_SB_RTK_Slip` message from values. pub fn new( rtk_baseline: u16, rtk_squat: f32, @@ -31458,11 +33013,11 @@ impl RtSbRtkSlip { res.set_validity_rtk_slip(validity_rtk_slip)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_RTK_Slip` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'RTK_Baseline' + /// Returns the value of `RTK_Baseline`. /// /// This is the estimated baseline length calculated by the RTK solution. /// @@ -31470,25 +33025,28 @@ impl RtSbRtkSlip { /// - Max: 65535 /// - Unit: "mm" /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn rtk_baseline(&self) -> u16 { - self.rtk_baseline_raw() + self.rtk_baseline_raw_val() } - /// Get raw value of 'RTK_Baseline' + /// Returns the raw value of `RTK_Baseline`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn rtk_baseline_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rtk_baseline_raw_val(&self) -> u16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `RTK_Baseline`. + #[inline(always)] + pub fn set_rtk_baseline_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'RTK_Baseline' + /// Sets the value of `RTK_Baseline`. #[inline(always)] pub fn set_rtk_baseline(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -31496,17 +33054,10 @@ impl RtSbRtkSlip { message_id: RtSbRtkSlip::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbRtkSlip::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'RTK_Squat' + /// Returns the value of `RTK_Squat`. /// /// Squat is defined as the difference between pitch and gradient. /// @@ -31514,26 +33065,32 @@ impl RtSbRtkSlip { /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn rtk_squat(&self) -> f32 { - self.rtk_squat_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'RTK_Squat' + /// Returns the raw value of `RTK_Squat`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rtk_squat_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn rtk_squat_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `RTK_Squat`. + #[inline(always)] + pub fn set_rtk_squat_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'RTK_Squat' + /// Sets the value of `RTK_Squat`. #[inline(always)] pub fn set_rtk_squat(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -31548,7 +33105,7 @@ impl RtSbRtkSlip { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'RTK_Slip' + /// Returns the value of `RTK_Slip`. /// /// Slip is defined as the difference between yaw and heading. /// @@ -31556,26 +33113,32 @@ impl RtSbRtkSlip { /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn rtk_slip(&self) -> f32 { - self.rtk_slip_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'RTK_Slip' + /// Returns the raw value of `RTK_Slip`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rtk_slip_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn rtk_slip_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `RTK_Slip`. + #[inline(always)] + pub fn set_rtk_slip_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'RTK_Slip' + /// Sets the value of `RTK_Slip`. #[inline(always)] pub fn set_rtk_slip(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -31590,31 +33153,34 @@ impl RtSbRtkSlip { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_RTK_Baseline' + /// Returns the value of `Accuracy_RTK_Baseline`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_rtk_baseline(&self) -> u8 { - self.accuracy_rtk_baseline_raw() + self.accuracy_rtk_baseline_raw_val() } - /// Get raw value of 'Accuracy_RTK_Baseline' + /// Returns the raw value of `Accuracy_RTK_Baseline`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_rtk_baseline_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_rtk_baseline_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_RTK_Baseline`. + #[inline(always)] + pub fn set_accuracy_rtk_baseline_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_RTK_Baseline' + /// Sets the value of `Accuracy_RTK_Baseline`. #[inline(always)] pub fn set_accuracy_rtk_baseline(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -31622,106 +33188,111 @@ impl RtSbRtkSlip { message_id: RtSbRtkSlip::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbRtkSlip::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_RTK_Baseline' + /// Returns the value of `Validity_RTK_Baseline`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_rtk_baseline(&self) -> bool { - self.validity_rtk_baseline_raw() + self.validity_rtk_baseline_raw_val() == 1 } - /// Get raw value of 'Validity_RTK_Baseline' + /// Returns the raw value of `Validity_RTK_Baseline`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_rtk_baseline_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_rtk_baseline_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() } - /// Set value of 'Validity_RTK_Baseline' + /// Sets the raw value of `Validity_RTK_Baseline`. + #[inline(always)] + pub fn set_validity_rtk_baseline_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); + } + /// Sets the value of `Validity_RTK_Baseline`. #[inline(always)] pub fn set_validity_rtk_baseline(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_RTK_Squat' + /// Returns the value of `Validity_RTK_Squat`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_rtk_squat(&self) -> bool { - self.validity_rtk_squat_raw() + self.validity_rtk_squat_raw_val() == 1 } - /// Get raw value of 'Validity_RTK_Squat' + /// Returns the raw value of `Validity_RTK_Squat`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_rtk_squat_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_rtk_squat_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_RTK_Squat' + /// Sets the raw value of `Validity_RTK_Squat`. + #[inline(always)] + pub fn set_validity_rtk_squat_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_RTK_Squat`. #[inline(always)] pub fn set_validity_rtk_squat(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_RTK_Slip' + /// Returns the value of `Validity_RTK_Slip`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_rtk_slip(&self) -> bool { - self.validity_rtk_slip_raw() + self.validity_rtk_slip_raw_val() == 1 } - /// Get raw value of 'Validity_RTK_Slip' + /// Returns the raw value of `Validity_RTK_Slip`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_rtk_slip_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_rtk_slip_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_RTK_Slip' + /// Sets the raw value of `Validity_RTK_Slip`. + #[inline(always)] + pub fn set_validity_rtk_slip_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_RTK_Slip`. #[inline(always)] pub fn set_validity_rtk_slip(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -31797,7 +33368,7 @@ impl RtSbRtkAttitude { pub const RTK_ATTITUDE_YAW_MAX: f32 = 360_f32; pub const ACCURACY_RTK_ATTITUDE_MIN: u8 = 0_u8; pub const ACCURACY_RTK_ATTITUDE_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_RTK_Attitude' from values + /// Constructs a new `RT_SB_RTK_Attitude` message from values. pub fn new( rtk_attitude_roll: f32, rtk_attitude_pitch: f32, @@ -31817,11 +33388,11 @@ impl RtSbRtkAttitude { res.set_validity_rtk_yaw(validity_rtk_yaw)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_RTK_Attitude` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'RTK_Attitude_Roll' + /// Returns the value of `RTK_Attitude_Roll`. /// /// RTK attitude is determined from the MB-RTK solution only. Roll is positive for a clockwise rotational displacement relative to the local horizontal plane when looking at the vehicle from the rear of it. /// @@ -31829,26 +33400,32 @@ impl RtSbRtkAttitude { /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn rtk_attitude_roll(&self) -> f32 { - self.rtk_attitude_roll_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'RTK_Attitude_Roll' + /// Returns the raw value of `RTK_Attitude_Roll`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rtk_attitude_roll_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn rtk_attitude_roll_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `RTK_Attitude_Roll`. + #[inline(always)] + pub fn set_rtk_attitude_roll_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'RTK_Attitude_Roll' + /// Sets the value of `RTK_Attitude_Roll`. #[inline(always)] pub fn set_rtk_attitude_roll(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -31863,7 +33440,7 @@ impl RtSbRtkAttitude { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'RTK_Attitude_Pitch' + /// Returns the value of `RTK_Attitude_Pitch`. /// /// RTK attitude is determined from the MB-RTK solution only. Pitch is positive for a clockwise rotational displacement from the local horizontal plane when looking at the vehicle from the left hand side of it. /// @@ -31871,26 +33448,32 @@ impl RtSbRtkAttitude { /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn rtk_attitude_pitch(&self) -> f32 { - self.rtk_attitude_pitch_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'RTK_Attitude_Pitch' + /// Returns the raw value of `RTK_Attitude_Pitch`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rtk_attitude_pitch_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn rtk_attitude_pitch_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `RTK_Attitude_Pitch`. + #[inline(always)] + pub fn set_rtk_attitude_pitch_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'RTK_Attitude_Pitch' + /// Sets the value of `RTK_Attitude_Pitch`. #[inline(always)] pub fn set_rtk_attitude_pitch(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -31905,7 +33488,7 @@ impl RtSbRtkAttitude { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'RTK_Attitude_Yaw' + /// Returns the value of `RTK_Attitude_Yaw`. /// /// RTK attitude is determined from the MB-RTK solution only. Yaw is positive for a clockwise rotational displacement from due North, looking down on the vehicle from above. /// @@ -31913,26 +33496,32 @@ impl RtSbRtkAttitude { /// - Max: 360 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn rtk_attitude_yaw(&self) -> f32 { - self.rtk_attitude_yaw_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'RTK_Attitude_Yaw' + /// Returns the raw value of `RTK_Attitude_Yaw`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn rtk_attitude_yaw_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn rtk_attitude_yaw_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `RTK_Attitude_Yaw`. + #[inline(always)] + pub fn set_rtk_attitude_yaw_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'RTK_Attitude_Yaw' + /// Sets the value of `RTK_Attitude_Yaw`. #[inline(always)] pub fn set_rtk_attitude_yaw(&mut self, value: f32) -> Result<(), CanError> { if value < -360_f32 || 360_f32 < value { @@ -31947,33 +33536,36 @@ impl RtSbRtkAttitude { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_RTK_Attitude' + /// Returns the value of `Accuracy_RTK_Attitude`. /// /// Note that RTK yaw is typically up to about 4 times more accurate than RTK pitch or roll. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_rtk_attitude(&self) -> u8 { - self.accuracy_rtk_attitude_raw() + self.accuracy_rtk_attitude_raw_val() } - /// Get raw value of 'Accuracy_RTK_Attitude' + /// Returns the raw value of `Accuracy_RTK_Attitude`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_rtk_attitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_rtk_attitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Accuracy_RTK_Attitude' + /// Sets the raw value of `Accuracy_RTK_Attitude`. + #[inline(always)] + pub fn set_accuracy_rtk_attitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Accuracy_RTK_Attitude`. #[inline(always)] pub fn set_accuracy_rtk_attitude(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -31981,106 +33573,111 @@ impl RtSbRtkAttitude { message_id: RtSbRtkAttitude::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbRtkAttitude::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_RTK_Roll' + /// Returns the value of `Validity_RTK_Roll`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_rtk_roll(&self) -> bool { - self.validity_rtk_roll_raw() + self.validity_rtk_roll_raw_val() == 1 } - /// Get raw value of 'Validity_RTK_Roll' + /// Returns the raw value of `Validity_RTK_Roll`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_rtk_roll_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_rtk_roll_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_RTK_Roll`. + #[inline(always)] + pub fn set_validity_rtk_roll_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_RTK_Roll' + /// Sets the value of `Validity_RTK_Roll`. #[inline(always)] pub fn set_validity_rtk_roll(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_RTK_Pitch' + /// Returns the value of `Validity_RTK_Pitch`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_rtk_pitch(&self) -> bool { - self.validity_rtk_pitch_raw() + self.validity_rtk_pitch_raw_val() == 1 } - /// Get raw value of 'Validity_RTK_Pitch' + /// Returns the raw value of `Validity_RTK_Pitch`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_rtk_pitch_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_rtk_pitch_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_RTK_Pitch`. + #[inline(always)] + pub fn set_validity_rtk_pitch_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_RTK_Pitch' + /// Sets the value of `Validity_RTK_Pitch`. #[inline(always)] pub fn set_validity_rtk_pitch(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_RTK_Yaw' + /// Returns the value of `Validity_RTK_Yaw`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_rtk_yaw(&self) -> bool { - self.validity_rtk_yaw_raw() + self.validity_rtk_yaw_raw_val() == 1 } - /// Get raw value of 'Validity_RTK_Yaw' + /// Returns the raw value of `Validity_RTK_Yaw`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_rtk_yaw_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_rtk_yaw_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_RTK_Yaw`. + #[inline(always)] + pub fn set_validity_rtk_yaw_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_RTK_Yaw' + /// Sets the value of `Validity_RTK_Yaw`. #[inline(always)] pub fn set_validity_rtk_yaw(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -32154,7 +33751,7 @@ impl RtSbGpsMcycleLean { pub const GPS_LATERAL_ACCEL_MAX: f32 = 65_f32; pub const ACCURACY_GPS_LATERAL_ACCEL_MIN: u8 = 0_u8; pub const ACCURACY_GPS_LATERAL_ACCEL_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Mcycle_Lean' from values + /// Constructs a new `RT_SB_GPS_Mcycle_Lean` message from values. pub fn new( gps_mcycle_lean_angle: f32, gps_lateral_accel: f32, @@ -32170,11 +33767,11 @@ impl RtSbGpsMcycleLean { res.set_validity_gps_lateral_accel(validity_gps_lateral_accel)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Mcycle_Lean` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Mcycle_Lean_Angle' + /// Returns the value of `GPS_Mcycle_Lean_Angle`. /// /// Motorcycle lean angle, derived from rate of change of heading from GPS. This is the lean angle of the centre of mass of the combined bike + rider. /// @@ -32182,26 +33779,32 @@ impl RtSbGpsMcycleLean { /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_mcycle_lean_angle(&self) -> f32 { - self.gps_mcycle_lean_angle_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Mcycle_Lean_Angle' + /// Returns the raw value of `GPS_Mcycle_Lean_Angle`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_mcycle_lean_angle_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_mcycle_lean_angle_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `GPS_Mcycle_Lean_Angle`. + #[inline(always)] + pub fn set_gps_mcycle_lean_angle_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'GPS_Mcycle_Lean_Angle' + /// Sets the value of `GPS_Mcycle_Lean_Angle`. #[inline(always)] pub fn set_gps_mcycle_lean_angle(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -32216,7 +33819,7 @@ impl RtSbGpsMcycleLean { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'GPS_Lateral_Accel' + /// Returns the value of `GPS_Lateral_Accel`. /// /// GPS-derived lateral acceleration. This is derived by differentiating GPS heading - it is much more noisy than lateral accel from the accelerometers, but useful for m/cycle applications. /// @@ -32224,26 +33827,32 @@ impl RtSbGpsMcycleLean { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn gps_lateral_accel(&self) -> f32 { - self.gps_lateral_accel_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Lateral_Accel' + /// Returns the raw value of `GPS_Lateral_Accel`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_lateral_accel_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_lateral_accel_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `GPS_Lateral_Accel`. + #[inline(always)] + pub fn set_gps_lateral_accel_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'GPS_Lateral_Accel' + /// Sets the value of `GPS_Lateral_Accel`. #[inline(always)] pub fn set_gps_lateral_accel(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -32258,33 +33867,36 @@ impl RtSbGpsMcycleLean { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Lateral_Accel' + /// Returns the value of `Accuracy_GPS_Lateral_Accel`. /// /// This accuracy value applies to both GPS-derived lateral acceleration and motorcycle lean angle, since both are derived from the rate of change of GPS heading. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_lateral_accel(&self) -> u8 { - self.accuracy_gps_lateral_accel_raw() + self.accuracy_gps_lateral_accel_raw_val() } - /// Get raw value of 'Accuracy_GPS_Lateral_Accel' + /// Returns the raw value of `Accuracy_GPS_Lateral_Accel`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_lateral_accel_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_lateral_accel_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Lateral_Accel`. + #[inline(always)] + pub fn set_accuracy_gps_lateral_accel_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Lateral_Accel' + /// Sets the value of `Accuracy_GPS_Lateral_Accel`. #[inline(always)] pub fn set_accuracy_gps_lateral_accel(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -32292,74 +33904,75 @@ impl RtSbGpsMcycleLean { message_id: RtSbGpsMcycleLean::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsMcycleLean::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Mcycle_Lean' + /// Returns the value of `Validity_GPS_Mcycle_Lean`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_mcycle_lean(&self) -> bool { - self.validity_gps_mcycle_lean_raw() + self.validity_gps_mcycle_lean_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Mcycle_Lean' + /// Returns the raw value of `Validity_GPS_Mcycle_Lean`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_mcycle_lean_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_mcycle_lean_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Mcycle_Lean`. + #[inline(always)] + pub fn set_validity_gps_mcycle_lean_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Mcycle_Lean' + /// Sets the value of `Validity_GPS_Mcycle_Lean`. #[inline(always)] pub fn set_validity_gps_mcycle_lean(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Lateral_Accel' + /// Returns the value of `Validity_GPS_Lateral_Accel`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_lateral_accel(&self) -> bool { - self.validity_gps_lateral_accel_raw() + self.validity_gps_lateral_accel_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Lateral_Accel' + /// Returns the raw value of `Validity_GPS_Lateral_Accel`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_lateral_accel_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_lateral_accel_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Lateral_Accel`. + #[inline(always)] + pub fn set_validity_gps_lateral_accel_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Lateral_Accel' + /// Sets the value of `Validity_GPS_Lateral_Accel`. #[inline(always)] pub fn set_validity_gps_lateral_accel( &mut self, @@ -32446,7 +34059,7 @@ impl RtSbGpsStatus { pub const FIRMWARE_VERSION_MAJOR_MAX: u8 = 255_u8; pub const GPS_STATUS_MIN: u8 = 0_u8; pub const GPS_STATUS_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Status' from values + /// Constructs a new `RT_SB_GPS_Status` message from values. pub fn new( rtk_status: RtSbGpsStatusRtkStatus, gps_n_sv_rtk: u8, @@ -32468,15 +34081,15 @@ impl RtSbGpsStatus { res.set_gps_status(gps_status)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Status` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'RTK_Status' + /// Returns the value of `RTK_Status`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn rtk_status(&self) -> RtSbGpsStatusRtkStatus { @@ -32487,24 +34100,29 @@ impl RtSbGpsStatus { 2 => RtSbGpsStatusRtkStatus::RtkSolutionFailed, 1 => RtSbGpsStatusRtkStatus::NotEnoughCommonSatellites, 0 => RtSbGpsStatusRtkStatus::NotAttemptingRtkSolution, - _ => RtSbGpsStatusRtkStatus::_Other(self.rtk_status_raw()), + _ => RtSbGpsStatusRtkStatus::_Other(self.rtk_status_phys_val()), } } - /// Get raw value of 'RTK_Status' + #[inline(always)] + fn rtk_status_phys_val(&self) -> u8 { + self.rtk_status_raw_val() + } + /// Returns the raw value of `RTK_Status`. /// /// - Start bit: 56 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn rtk_status_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..64].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn rtk_status_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..64].load_le::() + } + /// Sets the raw value of `RTK_Status`. + #[inline(always)] + pub fn set_rtk_status_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..64].store_le(value); } - /// Set value of 'RTK_Status' + /// Sets the value of `RTK_Status`. #[inline(always)] pub fn set_rtk_status( &mut self, @@ -32516,43 +34134,39 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..64].store_le(value); Ok(()) } - /// Get value of 'GPS_nSv_RTK' + /// Returns the value of `GPS_nSv_RTK`. /// /// Number of common satellites available to RTK solution /// /// - Min: 0 /// - Max: 16 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gps_n_sv_rtk(&self) -> u8 { - self.gps_n_sv_rtk_raw() + self.gps_n_sv_rtk_raw_val() } - /// Get raw value of 'GPS_nSv_RTK' + /// Returns the raw value of `GPS_nSv_RTK`. /// /// - Start bit: 48 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_n_sv_rtk_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[48..56].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gps_n_sv_rtk_raw_val(&self) -> u8 { + self.raw.view_bits::()[48..56].load_le::() + } + /// Sets the raw value of `GPS_nSv_RTK`. + #[inline(always)] + pub fn set_gps_n_sv_rtk_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[48..56].store_le(value); } - /// Set value of 'GPS_nSv_RTK' + /// Sets the value of `GPS_nSv_RTK`. #[inline(always)] pub fn set_gps_n_sv_rtk(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 16_u8 < value { @@ -32560,43 +34174,39 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[48..56].store_le(value); Ok(()) } - /// Get value of 'GPS_nSv_2' + /// Returns the value of `GPS_nSv_2`. /// /// Number of satellites used in GPS solution by module 2 on RTK units. /// /// - Min: 0 /// - Max: 16 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gps_n_sv_2(&self) -> u8 { - self.gps_n_sv_2_raw() + self.gps_n_sv_2_raw_val() } - /// Get raw value of 'GPS_nSv_2' + /// Returns the raw value of `GPS_nSv_2`. /// /// - Start bit: 40 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_n_sv_2_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[40..48].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gps_n_sv_2_raw_val(&self) -> u8 { + self.raw.view_bits::()[40..48].load_le::() + } + /// Sets the raw value of `GPS_nSv_2`. + #[inline(always)] + pub fn set_gps_n_sv_2_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[40..48].store_le(value); } - /// Set value of 'GPS_nSv_2' + /// Sets the value of `GPS_nSv_2`. #[inline(always)] pub fn set_gps_n_sv_2(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 16_u8 < value { @@ -32604,43 +34214,39 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[40..48].store_le(value); Ok(()) } - /// Get value of 'GPS_nSv' + /// Returns the value of `GPS_nSv`. /// /// Number of satellites used in GPS solution /// /// - Min: 0 /// - Max: 16 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gps_n_sv(&self) -> u8 { - self.gps_n_sv_raw() + self.gps_n_sv_raw_val() } - /// Get raw value of 'GPS_nSv' + /// Returns the raw value of `GPS_nSv`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_n_sv_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gps_n_sv_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() } - /// Set value of 'GPS_nSv' + /// Sets the raw value of `GPS_nSv`. + #[inline(always)] + pub fn set_gps_n_sv_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); + } + /// Sets the value of `GPS_nSv`. #[inline(always)] pub fn set_gps_n_sv(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 16_u8 < value { @@ -32648,41 +34254,37 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'Firmware_Version_Minor' + /// Returns the value of `Firmware_Version_Minor`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn firmware_version_minor(&self) -> u8 { - self.firmware_version_minor_raw() + self.firmware_version_minor_raw_val() } - /// Get raw value of 'Firmware_Version_Minor' + /// Returns the raw value of `Firmware_Version_Minor`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn firmware_version_minor_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn firmware_version_minor_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `Firmware_Version_Minor`. + #[inline(always)] + pub fn set_firmware_version_minor_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'Firmware_Version_Minor' + /// Sets the value of `Firmware_Version_Minor`. #[inline(always)] pub fn set_firmware_version_minor(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -32690,41 +34292,37 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Firmware_Version_Intermediate' + /// Returns the value of `Firmware_Version_Intermediate`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn firmware_version_intermediate(&self) -> u8 { - self.firmware_version_intermediate_raw() + self.firmware_version_intermediate_raw_val() } - /// Get raw value of 'Firmware_Version_Intermediate' + /// Returns the raw value of `Firmware_Version_Intermediate`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn firmware_version_intermediate_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn firmware_version_intermediate_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Firmware_Version_Intermediate`. + #[inline(always)] + pub fn set_firmware_version_intermediate_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Firmware_Version_Intermediate' + /// Sets the value of `Firmware_Version_Intermediate`. #[inline(always)] pub fn set_firmware_version_intermediate( &mut self, @@ -32735,41 +34333,37 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Firmware_Version_Major' + /// Returns the value of `Firmware_Version_Major`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn firmware_version_major(&self) -> u8 { - self.firmware_version_major_raw() + self.firmware_version_major_raw_val() } - /// Get raw value of 'Firmware_Version_Major' + /// Returns the raw value of `Firmware_Version_Major`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn firmware_version_major_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn firmware_version_major_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Firmware_Version_Major`. + #[inline(always)] + pub fn set_firmware_version_major_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Firmware_Version_Major' + /// Sets the value of `Firmware_Version_Major`. #[inline(always)] pub fn set_firmware_version_major(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -32777,21 +34371,14 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'GPS_Status' + /// Returns the value of `GPS_Status`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX #[inline(always)] pub fn gps_status(&self) -> RtSbGpsStatusGpsStatus { @@ -32810,24 +34397,29 @@ impl RtSbGpsStatus { 2 => RtSbGpsStatusGpsStatus::InsufficientSatellites, 1 => RtSbGpsStatusGpsStatus::SearchingForSatellites, 0 => RtSbGpsStatusGpsStatus::GpsModuleNotDetected, - _ => RtSbGpsStatusGpsStatus::_Other(self.gps_status_raw()), + _ => RtSbGpsStatusGpsStatus::_Other(self.gps_status_phys_val()), } } - /// Get raw value of 'GPS_Status' + #[inline(always)] + fn gps_status_phys_val(&self) -> u8 { + self.gps_status_raw_val() + } + /// Returns the raw value of `GPS_Status`. /// /// - Start bit: 0 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_status_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[0..8].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gps_status_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..8].load_le::() + } + /// Sets the raw value of `GPS_Status`. + #[inline(always)] + pub fn set_gps_status_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..8].store_le(value); } - /// Set value of 'GPS_Status' + /// Sets the value of `GPS_Status`. #[inline(always)] pub fn set_gps_status( &mut self, @@ -32839,13 +34431,6 @@ impl RtSbGpsStatus { message_id: RtSbGpsStatus::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsStatus::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[0..8].store_le(value); Ok(()) } @@ -32986,18 +34571,18 @@ impl RtSbGpsPosEcef2 { pub const GPS_POS_ECEF_Z_MAX: f32 = 10000000_f32; pub const GPS_POS_ECEF_Y_MIN: f32 = -10000000_f32; pub const GPS_POS_ECEF_Y_MAX: f32 = 10000000_f32; - /// Construct new 'RT_SB_GPS_Pos_ECEF_2' from values + /// Constructs a new `RT_SB_GPS_Pos_ECEF_2` message from values. pub fn new(gps_pos_ecef_z: f32, gps_pos_ecef_y: f32) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_gps_pos_ecef_z(gps_pos_ecef_z)?; res.set_gps_pos_ecef_y(gps_pos_ecef_y)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Pos_ECEF_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Pos_ECEF_Z' + /// Returns the value of `GPS_Pos_ECEF_Z`. /// /// ECEF Z position. The ECEF Z axis originates from the Earth centre, and the positive Z axis intersects the Earth surface at the North Pole. /// @@ -33005,26 +34590,32 @@ impl RtSbGpsPosEcef2 { /// - Max: 10000000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_ecef_z(&self) -> f32 { - self.gps_pos_ecef_z_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_ECEF_Z' + /// Returns the raw value of `GPS_Pos_ECEF_Z`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_ecef_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_ecef_z_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `GPS_Pos_ECEF_Z`. + #[inline(always)] + pub fn set_gps_pos_ecef_z_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'GPS_Pos_ECEF_Z' + /// Sets the value of `GPS_Pos_ECEF_Z`. #[inline(always)] pub fn set_gps_pos_ecef_z(&mut self, value: f32) -> Result<(), CanError> { if value < -10000000_f32 || 10000000_f32 < value { @@ -33039,7 +34630,7 @@ impl RtSbGpsPosEcef2 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Pos_ECEF_Y' + /// Returns the value of `GPS_Pos_ECEF_Y`. /// /// ECEF Y position. The ECEF Y axis originates from the Earth centre, and the positive Y axis intersects the Earth surface at zero degrees latittude and 90 degrees longitude. /// @@ -33047,26 +34638,32 @@ impl RtSbGpsPosEcef2 { /// - Max: 10000000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_ecef_y(&self) -> f32 { - self.gps_pos_ecef_y_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_ECEF_Y' + /// Returns the raw value of `GPS_Pos_ECEF_Y`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_ecef_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_ecef_y_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() + } + /// Sets the raw value of `GPS_Pos_ECEF_Y`. + #[inline(always)] + pub fn set_gps_pos_ecef_y_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); } - /// Set value of 'GPS_Pos_ECEF_Y' + /// Sets the value of `GPS_Pos_ECEF_Y`. #[inline(always)] pub fn set_gps_pos_ecef_y(&mut self, value: f32) -> Result<(), CanError> { if value < -10000000_f32 || 10000000_f32 < value { @@ -33150,7 +34747,7 @@ impl RtSbGpsPosEcef1 { pub const ACCURACY_GPS_POS_ECEF_Y_MAX: u8 = 255_u8; pub const ACCURACY_GPS_POS_ECEF_X_MIN: u8 = 0_u8; pub const ACCURACY_GPS_POS_ECEF_X_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Pos_ECEF_1' from values + /// Constructs a new `RT_SB_GPS_Pos_ECEF_1` message from values. pub fn new( gps_pos_ecef_x: f32, accuracy_gps_pos_ecef_z: u8, @@ -33170,11 +34767,11 @@ impl RtSbGpsPosEcef1 { res.set_validity_gps_pos_ecef_x(validity_gps_pos_ecef_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Pos_ECEF_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Pos_ECEF_X' + /// Returns the value of `GPS_Pos_ECEF_X`. /// /// ECEF X position. The ECEF X axis originates from the Earth centre, and the positive X axis intersects the Earth surface at zero degrees latittude and zero degrees longitude (the intersection of the equator and the prime meridian). /// @@ -33182,26 +34779,32 @@ impl RtSbGpsPosEcef1 { /// - Max: 10000000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_ecef_x(&self) -> f32 { - self.gps_pos_ecef_x_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_ECEF_X' + /// Returns the raw value of `GPS_Pos_ECEF_X`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_ecef_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_ecef_x_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() + } + /// Sets the raw value of `GPS_Pos_ECEF_X`. + #[inline(always)] + pub fn set_gps_pos_ecef_x_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); } - /// Set value of 'GPS_Pos_ECEF_X' + /// Sets the value of `GPS_Pos_ECEF_X`. #[inline(always)] pub fn set_gps_pos_ecef_x(&mut self, value: f32) -> Result<(), CanError> { if value < -10000000_f32 || 10000000_f32 < value { @@ -33216,33 +34819,36 @@ impl RtSbGpsPosEcef1 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_ECEF_Z' + /// Returns the value of `Accuracy_GPS_Pos_ECEF_Z`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_ecef_z(&self) -> u8 { - self.accuracy_gps_pos_ecef_z_raw() + self.accuracy_gps_pos_ecef_z_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_ECEF_Z' + /// Returns the raw value of `Accuracy_GPS_Pos_ECEF_Z`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_ecef_z_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'Accuracy_GPS_Pos_ECEF_Z' + /// Sets the raw value of `Accuracy_GPS_Pos_ECEF_Z`. + #[inline(always)] + pub fn set_accuracy_gps_pos_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `Accuracy_GPS_Pos_ECEF_Z`. #[inline(always)] pub fn set_accuracy_gps_pos_ecef_z(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -33250,43 +34856,39 @@ impl RtSbGpsPosEcef1 { message_id: RtSbGpsPosEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsPosEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_ECEF_Y' + /// Returns the value of `Accuracy_GPS_Pos_ECEF_Y`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_ecef_y(&self) -> u8 { - self.accuracy_gps_pos_ecef_y_raw() + self.accuracy_gps_pos_ecef_y_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_ECEF_Y' + /// Returns the raw value of `Accuracy_GPS_Pos_ECEF_Y`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_ecef_y_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Pos_ECEF_Y`. + #[inline(always)] + pub fn set_accuracy_gps_pos_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Accuracy_GPS_Pos_ECEF_Y' + /// Sets the value of `Accuracy_GPS_Pos_ECEF_Y`. #[inline(always)] pub fn set_accuracy_gps_pos_ecef_y(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -33294,43 +34896,39 @@ impl RtSbGpsPosEcef1 { message_id: RtSbGpsPosEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsPosEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_ECEF_X' + /// Returns the value of `Accuracy_GPS_Pos_ECEF_X`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_ecef_x(&self) -> u8 { - self.accuracy_gps_pos_ecef_x_raw() + self.accuracy_gps_pos_ecef_x_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_ECEF_X' + /// Returns the raw value of `Accuracy_GPS_Pos_ECEF_X`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_ecef_x_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Pos_ECEF_X`. + #[inline(always)] + pub fn set_accuracy_gps_pos_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Pos_ECEF_X' + /// Sets the value of `Accuracy_GPS_Pos_ECEF_X`. #[inline(always)] pub fn set_accuracy_gps_pos_ecef_x(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -33338,106 +34936,111 @@ impl RtSbGpsPosEcef1 { message_id: RtSbGpsPosEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsPosEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_ECEF_Z' + /// Returns the value of `Validity_GPS_Pos_ECEF_Z`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_ecef_z(&self) -> bool { - self.validity_gps_pos_ecef_z_raw() + self.validity_gps_pos_ecef_z_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_ECEF_Z' + /// Returns the raw value of `Validity_GPS_Pos_ECEF_Z`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_ecef_z_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_gps_pos_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_ECEF_Z`. + #[inline(always)] + pub fn set_validity_gps_pos_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_GPS_Pos_ECEF_Z' + /// Sets the value of `Validity_GPS_Pos_ECEF_Z`. #[inline(always)] pub fn set_validity_gps_pos_ecef_z(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_ECEF_Y' + /// Returns the value of `Validity_GPS_Pos_ECEF_Y`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_ecef_y(&self) -> bool { - self.validity_gps_pos_ecef_y_raw() + self.validity_gps_pos_ecef_y_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_ECEF_Y' + /// Returns the raw value of `Validity_GPS_Pos_ECEF_Y`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_ecef_y_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_pos_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_ECEF_Y`. + #[inline(always)] + pub fn set_validity_gps_pos_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Pos_ECEF_Y' + /// Sets the value of `Validity_GPS_Pos_ECEF_Y`. #[inline(always)] pub fn set_validity_gps_pos_ecef_y(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_ECEF_X' + /// Returns the value of `Validity_GPS_Pos_ECEF_X`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_ecef_x(&self) -> bool { - self.validity_gps_pos_ecef_x_raw() + self.validity_gps_pos_ecef_x_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_ECEF_X' + /// Returns the raw value of `Validity_GPS_Pos_ECEF_X`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_ecef_x_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_pos_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_ECEF_X`. + #[inline(always)] + pub fn set_validity_gps_pos_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Pos_ECEF_X' + /// Sets the value of `Validity_GPS_Pos_ECEF_X`. #[inline(always)] pub fn set_validity_gps_pos_ecef_x(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -33509,7 +35112,7 @@ impl RtSbGpsPosLlh2 { pub const GPS_POS_LLH_ALTITUDE_MAX: f32 = 100000_f32; pub const GPS_POS_LLH_LONGITUDE_MIN: f32 = -180_f32; pub const GPS_POS_LLH_LONGITUDE_MAX: f32 = 180_f32; - /// Construct new 'RT_SB_GPS_Pos_LLH_2' from values + /// Constructs a new `RT_SB_GPS_Pos_LLH_2` message from values. pub fn new( gps_pos_llh_altitude: f32, gps_pos_llh_longitude: f32, @@ -33519,36 +35122,42 @@ impl RtSbGpsPosLlh2 { res.set_gps_pos_llh_longitude(gps_pos_llh_longitude)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Pos_LLH_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Pos_LLH_Altitude' + /// Returns the value of `GPS_Pos_LLH_Altitude`. /// /// - Min: -1000 /// - Max: 100000 /// - Unit: "m" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_llh_altitude(&self) -> f32 { - self.gps_pos_llh_altitude_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_LLH_Altitude' + /// Returns the raw value of `GPS_Pos_LLH_Altitude`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_llh_altitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_llh_altitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() } - /// Set value of 'GPS_Pos_LLH_Altitude' + /// Sets the raw value of `GPS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_gps_pos_llh_altitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); + } + /// Sets the value of `GPS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_gps_pos_llh_altitude(&mut self, value: f32) -> Result<(), CanError> { if value < -1000_f32 || 100000_f32 < value { @@ -33563,32 +35172,38 @@ impl RtSbGpsPosLlh2 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Pos_LLH_Longitude' + /// Returns the value of `GPS_Pos_LLH_Longitude`. /// /// - Min: -180 /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.0000001 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_llh_longitude(&self) -> f32 { - self.gps_pos_llh_longitude_raw() + let signal = self.raw.view_bits::()[0..32].load_le::(); + let factor = 0.0000001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_LLH_Longitude' + /// Returns the raw value of `GPS_Pos_LLH_Longitude`. /// /// - Start bit: 0 /// - Signal size: 32 bits - /// - Factor: 0.0000001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_llh_longitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[0..32].load_le::(); - let factor = 0.0000001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_llh_longitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[0..32].load_le::() } - /// Set value of 'GPS_Pos_LLH_Longitude' + /// Sets the raw value of `GPS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_gps_pos_llh_longitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[0..32].store_le(value); + } + /// Sets the value of `GPS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_gps_pos_llh_longitude(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -33672,7 +35287,7 @@ impl RtSbGpsPosLlh1 { pub const ACCURACY_GPS_POS_LLH_LONGITUDE_MAX: u8 = 255_u8; pub const ACCURACY_GPS_POS_LLH_LATITUDE_MIN: u8 = 0_u8; pub const ACCURACY_GPS_POS_LLH_LATITUDE_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Pos_LLH_1' from values + /// Constructs a new `RT_SB_GPS_Pos_LLH_1` message from values. pub fn new( gps_pos_llh_latitude: f32, accuracy_gps_pos_llh_altitude: u8, @@ -33692,36 +35307,42 @@ impl RtSbGpsPosLlh1 { res.set_validity_gps_pos_llh_latitude(validity_gps_pos_llh_latitude)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Pos_LLH_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Pos_LLH_Latitude' + /// Returns the value of `GPS_Pos_LLH_Latitude`. /// /// - Min: -90 /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.0000001 + /// - Offset: 0 #[inline(always)] pub fn gps_pos_llh_latitude(&self) -> f32 { - self.gps_pos_llh_latitude_raw() + let signal = self.raw.view_bits::()[32..64].load_le::(); + let factor = 0.0000001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Pos_LLH_Latitude' + /// Returns the raw value of `GPS_Pos_LLH_Latitude`. /// /// - Start bit: 32 /// - Signal size: 32 bits - /// - Factor: 0.0000001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_pos_llh_latitude_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..64].load_le::(); - let factor = 0.0000001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_pos_llh_latitude_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..64].load_le::() } - /// Set value of 'GPS_Pos_LLH_Latitude' + /// Sets the raw value of `GPS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_gps_pos_llh_latitude_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..64].store_le(value); + } + /// Sets the value of `GPS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_gps_pos_llh_latitude(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -33736,33 +35357,36 @@ impl RtSbGpsPosLlh1 { self.raw.view_bits_mut::()[32..64].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_LLH_Altitude' + /// Returns the value of `Accuracy_GPS_Pos_LLH_Altitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_llh_altitude(&self) -> u8 { - self.accuracy_gps_pos_llh_altitude_raw() + self.accuracy_gps_pos_llh_altitude_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_LLH_Altitude' + /// Returns the raw value of `Accuracy_GPS_Pos_LLH_Altitude`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_llh_altitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_llh_altitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_accuracy_gps_pos_llh_altitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); } - /// Set value of 'Accuracy_GPS_Pos_LLH_Altitude' + /// Sets the value of `Accuracy_GPS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_accuracy_gps_pos_llh_altitude( &mut self, @@ -33773,43 +35397,39 @@ impl RtSbGpsPosLlh1 { message_id: RtSbGpsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_LLH_Longitude' + /// Returns the value of `Accuracy_GPS_Pos_LLH_Longitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_llh_longitude(&self) -> u8 { - self.accuracy_gps_pos_llh_longitude_raw() + self.accuracy_gps_pos_llh_longitude_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_LLH_Longitude' + /// Returns the raw value of `Accuracy_GPS_Pos_LLH_Longitude`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_llh_longitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_llh_longitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() } - /// Set value of 'Accuracy_GPS_Pos_LLH_Longitude' + /// Sets the raw value of `Accuracy_GPS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_accuracy_gps_pos_llh_longitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); + } + /// Sets the value of `Accuracy_GPS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_accuracy_gps_pos_llh_longitude( &mut self, @@ -33820,43 +35440,39 @@ impl RtSbGpsPosLlh1 { message_id: RtSbGpsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Pos_LLH_Latitude' + /// Returns the value of `Accuracy_GPS_Pos_LLH_Latitude`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_pos_llh_latitude(&self) -> u8 { - self.accuracy_gps_pos_llh_latitude_raw() + self.accuracy_gps_pos_llh_latitude_raw_val() } - /// Get raw value of 'Accuracy_GPS_Pos_LLH_Latitude' + /// Returns the raw value of `Accuracy_GPS_Pos_LLH_Latitude`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_pos_llh_latitude_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_pos_llh_latitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_accuracy_gps_pos_llh_latitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Pos_LLH_Latitude' + /// Sets the value of `Accuracy_GPS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_accuracy_gps_pos_llh_latitude( &mut self, @@ -33867,42 +35483,39 @@ impl RtSbGpsPosLlh1 { message_id: RtSbGpsPosLlh1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsPosLlh1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_LLH_Altitude' + /// Returns the value of `Validity_GPS_Pos_LLH_Altitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_llh_altitude(&self) -> bool { - self.validity_gps_pos_llh_altitude_raw() + self.validity_gps_pos_llh_altitude_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_LLH_Altitude' + /// Returns the raw value of `Validity_GPS_Pos_LLH_Altitude`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_llh_altitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_gps_pos_llh_altitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_LLH_Altitude`. + #[inline(always)] + pub fn set_validity_gps_pos_llh_altitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_GPS_Pos_LLH_Altitude' + /// Sets the value of `Validity_GPS_Pos_LLH_Altitude`. #[inline(always)] pub fn set_validity_gps_pos_llh_altitude( &mut self, @@ -33912,32 +35525,36 @@ impl RtSbGpsPosLlh1 { self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_LLH_Longitude' + /// Returns the value of `Validity_GPS_Pos_LLH_Longitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_llh_longitude(&self) -> bool { - self.validity_gps_pos_llh_longitude_raw() + self.validity_gps_pos_llh_longitude_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_LLH_Longitude' + /// Returns the raw value of `Validity_GPS_Pos_LLH_Longitude`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_llh_longitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_pos_llh_longitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_LLH_Longitude`. + #[inline(always)] + pub fn set_validity_gps_pos_llh_longitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Pos_LLH_Longitude' + /// Sets the value of `Validity_GPS_Pos_LLH_Longitude`. #[inline(always)] pub fn set_validity_gps_pos_llh_longitude( &mut self, @@ -33947,32 +35564,36 @@ impl RtSbGpsPosLlh1 { self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Pos_LLH_Latitude' + /// Returns the value of `Validity_GPS_Pos_LLH_Latitude`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_pos_llh_latitude(&self) -> bool { - self.validity_gps_pos_llh_latitude_raw() + self.validity_gps_pos_llh_latitude_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Pos_LLH_Latitude' + /// Returns the raw value of `Validity_GPS_Pos_LLH_Latitude`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_pos_llh_latitude_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_pos_llh_latitude_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Pos_LLH_Latitude`. + #[inline(always)] + pub fn set_validity_gps_pos_llh_latitude_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Pos_LLH_Latitude' + /// Sets the value of `Validity_GPS_Pos_LLH_Latitude`. #[inline(always)] pub fn set_validity_gps_pos_llh_latitude( &mut self, @@ -34051,7 +35672,7 @@ impl RtSbGpsHeadingGradient { pub const GPS_HEADING_MAX: f32 = 180_f32; pub const ACCURACY_GPS_HEADING_MIN: u8 = 0_u8; pub const ACCURACY_GPS_HEADING_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Heading_Gradient' from values + /// Constructs a new `RT_SB_GPS_Heading_Gradient` message from values. pub fn new( gps_gradient: f32, accuracy_gps_gradient: u8, @@ -34069,11 +35690,11 @@ impl RtSbGpsHeadingGradient { res.set_validity_gps_heading(validity_gps_heading)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Heading_Gradient` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Gradient' + /// Returns the value of `GPS_Gradient`. /// /// This is GPS gradient, i.e. the vertical direction that the vehicle is travelling, NOT pointing (pitch). /// @@ -34081,26 +35702,32 @@ impl RtSbGpsHeadingGradient { /// - Max: 90 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_gradient(&self) -> f32 { - self.gps_gradient_raw() + let signal = self.raw.view_bits::()[40..56].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Gradient' + /// Returns the raw value of `GPS_Gradient`. /// /// - Start bit: 40 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_gradient_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..56].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_gradient_raw_val(&self) -> i16 { + self.raw.view_bits::()[40..56].load_le::() + } + /// Sets the raw value of `GPS_Gradient`. + #[inline(always)] + pub fn set_gps_gradient_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..56].store_le(value); } - /// Set value of 'GPS_Gradient' + /// Sets the value of `GPS_Gradient`. #[inline(always)] pub fn set_gps_gradient(&mut self, value: f32) -> Result<(), CanError> { if value < -90_f32 || 90_f32 < value { @@ -34115,33 +35742,36 @@ impl RtSbGpsHeadingGradient { self.raw.view_bits_mut::()[40..56].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Gradient' + /// Returns the value of `Accuracy_GPS_Gradient`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_gradient(&self) -> u8 { - self.accuracy_gps_gradient_raw() + self.accuracy_gps_gradient_raw_val() } - /// Get raw value of 'Accuracy_GPS_Gradient' + /// Returns the raw value of `Accuracy_GPS_Gradient`. /// /// - Start bit: 32 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_gradient_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[32..40].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[32..40].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Gradient`. + #[inline(always)] + pub fn set_accuracy_gps_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[32..40].store_le(value); } - /// Set value of 'Accuracy_GPS_Gradient' + /// Sets the value of `Accuracy_GPS_Gradient`. #[inline(always)] pub fn set_accuracy_gps_gradient(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -34149,17 +35779,10 @@ impl RtSbGpsHeadingGradient { message_id: RtSbGpsHeadingGradient::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsHeadingGradient::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[32..40].store_le(value); Ok(()) } - /// Get value of 'GPS_Heading' + /// Returns the value of `GPS_Heading`. /// /// This is GPS heading, the direction that the vehicle is travelling in the local horizontal plane. /// @@ -34167,26 +35790,32 @@ impl RtSbGpsHeadingGradient { /// - Max: 180 /// - Unit: "degrees" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gps_heading(&self) -> f32 { - self.gps_heading_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Heading' + /// Returns the raw value of `GPS_Heading`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_heading_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_heading_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `GPS_Heading`. + #[inline(always)] + pub fn set_gps_heading_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'GPS_Heading' + /// Sets the value of `GPS_Heading`. #[inline(always)] pub fn set_gps_heading(&mut self, value: f32) -> Result<(), CanError> { if value < -180_f32 || 180_f32 < value { @@ -34201,33 +35830,36 @@ impl RtSbGpsHeadingGradient { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Heading' + /// Returns the value of `Accuracy_GPS_Heading`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_heading(&self) -> u8 { - self.accuracy_gps_heading_raw() + self.accuracy_gps_heading_raw_val() } - /// Get raw value of 'Accuracy_GPS_Heading' + /// Returns the raw value of `Accuracy_GPS_Heading`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_heading_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Heading`. + #[inline(always)] + pub fn set_accuracy_gps_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Heading' + /// Sets the value of `Accuracy_GPS_Heading`. #[inline(always)] pub fn set_accuracy_gps_heading(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -34235,74 +35867,75 @@ impl RtSbGpsHeadingGradient { message_id: RtSbGpsHeadingGradient::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsHeadingGradient::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Gradient' + /// Returns the value of `Validity_GPS_Gradient`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_gradient(&self) -> bool { - self.validity_gps_gradient_raw() + self.validity_gps_gradient_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Gradient' + /// Returns the raw value of `Validity_GPS_Gradient`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_gradient_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_gradient_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_GPS_Gradient' + /// Sets the raw value of `Validity_GPS_Gradient`. + #[inline(always)] + pub fn set_validity_gps_gradient_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_GPS_Gradient`. #[inline(always)] pub fn set_validity_gps_gradient(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Heading' + /// Returns the value of `Validity_GPS_Heading`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_heading(&self) -> bool { - self.validity_gps_heading_raw() + self.validity_gps_heading_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Heading' + /// Returns the raw value of `Validity_GPS_Heading`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_heading_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_heading_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_GPS_Heading' + /// Sets the raw value of `Validity_GPS_Heading`. + #[inline(always)] + pub fn set_validity_gps_heading_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_GPS_Heading`. #[inline(always)] pub fn set_validity_gps_heading(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -34374,7 +36007,7 @@ impl RtSbGpsVelEcef2 { pub const GPS_VEL_ECEF_Z_MAX: f32 = 838_f32; pub const GPS_VEL_ECEF_Y_MIN: f32 = -838_f32; pub const GPS_VEL_ECEF_Y_MAX: f32 = 838_f32; - /// Construct new 'RT_SB_GPS_Vel_ECEF_2' from values + /// Constructs a new `RT_SB_GPS_Vel_ECEF_2` message from values. pub fn new( gps_vel_ecef_z: f32, gps_vel_ecef_y: f32, @@ -34388,11 +36021,11 @@ impl RtSbGpsVelEcef2 { res.set_validity_gps_vel_ecef_y(validity_gps_vel_ecef_y)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Vel_ECEF_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Vel_ECEF_Z' + /// Returns the value of `GPS_Vel_ECEF_Z`. /// /// ECEF Z velocity. The ECEF Z axis originates from the Earth centre, and the positive Z axis intersects the Earth surface at the North Pole. /// @@ -34400,26 +36033,32 @@ impl RtSbGpsVelEcef2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_vel_ecef_z(&self) -> f32 { - self.gps_vel_ecef_z_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Vel_ECEF_Z' + /// Returns the raw value of `GPS_Vel_ECEF_Z`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_vel_ecef_z_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_vel_ecef_z_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `GPS_Vel_ECEF_Z`. + #[inline(always)] + pub fn set_gps_vel_ecef_z_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'GPS_Vel_ECEF_Z' + /// Sets the value of `GPS_Vel_ECEF_Z`. #[inline(always)] pub fn set_gps_vel_ecef_z(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -34434,7 +36073,7 @@ impl RtSbGpsVelEcef2 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'GPS_Vel_ECEF_Y' + /// Returns the value of `GPS_Vel_ECEF_Y`. /// /// ECEF Y velocity. The ECEF Y axis originates from the Earth centre, and the positive Y axis intersects the Earth surface at zero degrees latittude and 90 degrees longitude. /// @@ -34442,26 +36081,32 @@ impl RtSbGpsVelEcef2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_vel_ecef_y(&self) -> f32 { - self.gps_vel_ecef_y_raw() + let signal = self.raw.view_bits::()[8..32].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Vel_ECEF_Y' + /// Returns the raw value of `GPS_Vel_ECEF_Y`. /// /// - Start bit: 8 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_vel_ecef_y_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[8..32].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_vel_ecef_y_raw_val(&self) -> i32 { + self.raw.view_bits::()[8..32].load_le::() + } + /// Sets the raw value of `GPS_Vel_ECEF_Y`. + #[inline(always)] + pub fn set_gps_vel_ecef_y_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[8..32].store_le(value); } - /// Set value of 'GPS_Vel_ECEF_Y' + /// Sets the value of `GPS_Vel_ECEF_Y`. #[inline(always)] pub fn set_gps_vel_ecef_y(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -34476,64 +36121,72 @@ impl RtSbGpsVelEcef2 { self.raw.view_bits_mut::()[8..32].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Vel_ECEF_Z' + /// Returns the value of `Validity_GPS_Vel_ECEF_Z`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_vel_ecef_z(&self) -> bool { - self.validity_gps_vel_ecef_z_raw() + self.validity_gps_vel_ecef_z_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Vel_ECEF_Z' + /// Returns the raw value of `Validity_GPS_Vel_ECEF_Z`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_vel_ecef_z_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_vel_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() } - /// Set value of 'Validity_GPS_Vel_ECEF_Z' + /// Sets the raw value of `Validity_GPS_Vel_ECEF_Z`. + #[inline(always)] + pub fn set_validity_gps_vel_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); + } + /// Sets the value of `Validity_GPS_Vel_ECEF_Z`. #[inline(always)] pub fn set_validity_gps_vel_ecef_z(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Vel_ECEF_Y' + /// Returns the value of `Validity_GPS_Vel_ECEF_Y`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_vel_ecef_y(&self) -> bool { - self.validity_gps_vel_ecef_y_raw() + self.validity_gps_vel_ecef_y_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Vel_ECEF_Y' + /// Returns the raw value of `Validity_GPS_Vel_ECEF_Y`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_vel_ecef_y_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_vel_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_GPS_Vel_ECEF_Y' + /// Sets the raw value of `Validity_GPS_Vel_ECEF_Y`. + #[inline(always)] + pub fn set_validity_gps_vel_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_GPS_Vel_ECEF_Y`. #[inline(always)] pub fn set_validity_gps_vel_ecef_y(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -34609,7 +36262,7 @@ impl RtSbGpsVelEcef1 { pub const ACCURACY_GPS_VEL_ECEF_Y_MAX: u8 = 255_u8; pub const ACCURACY_GPS_VEL_ECEF_X_MIN: u8 = 0_u8; pub const ACCURACY_GPS_VEL_ECEF_X_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Vel_ECEF_1' from values + /// Constructs a new `RT_SB_GPS_Vel_ECEF_1` message from values. pub fn new( gps_vel_ecef_x: f32, accuracy_gps_vel_ecef_z: u8, @@ -34625,11 +36278,11 @@ impl RtSbGpsVelEcef1 { res.set_validity_gps_vel_ecef_x(validity_gps_vel_ecef_x)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Vel_ECEF_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Vel_ECEF_X' + /// Returns the value of `GPS_Vel_ECEF_X`. /// /// ECEF X velocity. The ECEF X axis originates from the Earth centre, and the positive X axis intersects the Earth surface at zero degrees latittude and zero degrees longitude (the intersection of the equator and the prime meridian). /// @@ -34637,26 +36290,32 @@ impl RtSbGpsVelEcef1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_vel_ecef_x(&self) -> f32 { - self.gps_vel_ecef_x_raw() + let signal = self.raw.view_bits::()[32..56].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Vel_ECEF_X' + /// Returns the raw value of `GPS_Vel_ECEF_X`. /// /// - Start bit: 32 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_vel_ecef_x_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..56].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_vel_ecef_x_raw_val(&self) -> i32 { + self.raw.view_bits::()[32..56].load_le::() + } + /// Sets the raw value of `GPS_Vel_ECEF_X`. + #[inline(always)] + pub fn set_gps_vel_ecef_x_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..56].store_le(value); } - /// Set value of 'GPS_Vel_ECEF_X' + /// Sets the value of `GPS_Vel_ECEF_X`. #[inline(always)] pub fn set_gps_vel_ecef_x(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -34671,31 +36330,34 @@ impl RtSbGpsVelEcef1 { self.raw.view_bits_mut::()[32..56].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Vel_ECEF_Z' + /// Returns the value of `Accuracy_GPS_Vel_ECEF_Z`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_vel_ecef_z(&self) -> u8 { - self.accuracy_gps_vel_ecef_z_raw() + self.accuracy_gps_vel_ecef_z_raw_val() } - /// Get raw value of 'Accuracy_GPS_Vel_ECEF_Z' + /// Returns the raw value of `Accuracy_GPS_Vel_ECEF_Z`. /// /// - Start bit: 24 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_vel_ecef_z_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[24..32].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_vel_ecef_z_raw_val(&self) -> u8 { + self.raw.view_bits::()[24..32].load_le::() } - /// Set value of 'Accuracy_GPS_Vel_ECEF_Z' + /// Sets the raw value of `Accuracy_GPS_Vel_ECEF_Z`. + #[inline(always)] + pub fn set_accuracy_gps_vel_ecef_z_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[24..32].store_le(value); + } + /// Sets the value of `Accuracy_GPS_Vel_ECEF_Z`. #[inline(always)] pub fn set_accuracy_gps_vel_ecef_z(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -34703,41 +36365,37 @@ impl RtSbGpsVelEcef1 { message_id: RtSbGpsVelEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsVelEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[24..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Vel_ECEF_Y' + /// Returns the value of `Accuracy_GPS_Vel_ECEF_Y`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_vel_ecef_y(&self) -> u8 { - self.accuracy_gps_vel_ecef_y_raw() + self.accuracy_gps_vel_ecef_y_raw_val() } - /// Get raw value of 'Accuracy_GPS_Vel_ECEF_Y' + /// Returns the raw value of `Accuracy_GPS_Vel_ECEF_Y`. /// /// - Start bit: 16 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_vel_ecef_y_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[16..24].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_vel_ecef_y_raw_val(&self) -> u8 { + self.raw.view_bits::()[16..24].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Vel_ECEF_Y`. + #[inline(always)] + pub fn set_accuracy_gps_vel_ecef_y_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[16..24].store_le(value); } - /// Set value of 'Accuracy_GPS_Vel_ECEF_Y' + /// Sets the value of `Accuracy_GPS_Vel_ECEF_Y`. #[inline(always)] pub fn set_accuracy_gps_vel_ecef_y(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -34745,41 +36403,37 @@ impl RtSbGpsVelEcef1 { message_id: RtSbGpsVelEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsVelEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[16..24].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Vel_ECEF_X' + /// Returns the value of `Accuracy_GPS_Vel_ECEF_X`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_vel_ecef_x(&self) -> u8 { - self.accuracy_gps_vel_ecef_x_raw() + self.accuracy_gps_vel_ecef_x_raw_val() } - /// Get raw value of 'Accuracy_GPS_Vel_ECEF_X' + /// Returns the raw value of `Accuracy_GPS_Vel_ECEF_X`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_vel_ecef_x_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_vel_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Vel_ECEF_X`. + #[inline(always)] + pub fn set_accuracy_gps_vel_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Vel_ECEF_X' + /// Sets the value of `Accuracy_GPS_Vel_ECEF_X`. #[inline(always)] pub fn set_accuracy_gps_vel_ecef_x(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -34787,42 +36441,39 @@ impl RtSbGpsVelEcef1 { message_id: RtSbGpsVelEcef1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsVelEcef1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Vel_ECEF_X' + /// Returns the value of `Validity_GPS_Vel_ECEF_X`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_vel_ecef_x(&self) -> bool { - self.validity_gps_vel_ecef_x_raw() + self.validity_gps_vel_ecef_x_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Vel_ECEF_X' + /// Returns the raw value of `Validity_GPS_Vel_ECEF_X`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_vel_ecef_x_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_vel_ecef_x_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Vel_ECEF_X`. + #[inline(always)] + pub fn set_validity_gps_vel_ecef_x_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Vel_ECEF_X' + /// Sets the value of `Validity_GPS_Vel_ECEF_X`. #[inline(always)] pub fn set_validity_gps_vel_ecef_x(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -34894,7 +36545,7 @@ impl RtSbGpsVelNed2 { pub const GPS_VEL_NED_D_MAX: f32 = 838_f32; pub const ACCURACY_GPS_VEL_D_MIN: u8 = 0_u8; pub const ACCURACY_GPS_VEL_D_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Vel_NED_2' from values + /// Constructs a new `RT_SB_GPS_Vel_NED_2` message from values. pub fn new( gps_vel_ned_d: f32, accuracy_gps_vel_d: u8, @@ -34906,11 +36557,11 @@ impl RtSbGpsVelNed2 { res.set_validity_gps_vel_ned_d(validity_gps_vel_ned_d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Vel_NED_2` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Vel_NED_D' + /// Returns the value of `GPS_Vel_NED_D`. /// /// VELNED D velocity. This is the velocity vector directly downwards towards the Earth centre at the current local Earth surface position. /// @@ -34918,26 +36569,32 @@ impl RtSbGpsVelNed2 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_vel_ned_d(&self) -> f32 { - self.gps_vel_ned_d_raw() + let signal = self.raw.view_bits::()[16..40].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Vel_NED_D' + /// Returns the raw value of `GPS_Vel_NED_D`. /// /// - Start bit: 16 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_vel_ned_d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..40].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_vel_ned_d_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..40].load_le::() } - /// Set value of 'GPS_Vel_NED_D' + /// Sets the raw value of `GPS_Vel_NED_D`. + #[inline(always)] + pub fn set_gps_vel_ned_d_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..40].store_le(value); + } + /// Sets the value of `GPS_Vel_NED_D`. #[inline(always)] pub fn set_gps_vel_ned_d(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -34952,31 +36609,34 @@ impl RtSbGpsVelNed2 { self.raw.view_bits_mut::()[16..40].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Vel_D' + /// Returns the value of `Accuracy_GPS_Vel_D`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_vel_d(&self) -> u8 { - self.accuracy_gps_vel_d_raw() + self.accuracy_gps_vel_d_raw_val() } - /// Get raw value of 'Accuracy_GPS_Vel_D' + /// Returns the raw value of `Accuracy_GPS_Vel_D`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_vel_d_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_vel_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Vel_D`. + #[inline(always)] + pub fn set_accuracy_gps_vel_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Vel_D' + /// Sets the value of `Accuracy_GPS_Vel_D`. #[inline(always)] pub fn set_accuracy_gps_vel_d(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -34984,42 +36644,39 @@ impl RtSbGpsVelNed2 { message_id: RtSbGpsVelNed2::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsVelNed2::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Vel_NED_D' + /// Returns the value of `Validity_GPS_Vel_NED_D`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_vel_ned_d(&self) -> bool { - self.validity_gps_vel_ned_d_raw() + self.validity_gps_vel_ned_d_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Vel_NED_D' + /// Returns the raw value of `Validity_GPS_Vel_NED_D`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_vel_ned_d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_vel_ned_d_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() } - /// Set value of 'Validity_GPS_Vel_NED_D' + /// Sets the raw value of `Validity_GPS_Vel_NED_D`. + #[inline(always)] + pub fn set_validity_gps_vel_ned_d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); + } + /// Sets the value of `Validity_GPS_Vel_NED_D`. #[inline(always)] pub fn set_validity_gps_vel_ned_d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -35093,7 +36750,7 @@ impl RtSbGpsVelNed1 { pub const GPS_VEL_NED_N_MAX: f32 = 838_f32; pub const ACCURACY_GPS_VEL_NE_MIN: u8 = 0_u8; pub const ACCURACY_GPS_VEL_NE_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Vel_NED_1' from values + /// Constructs a new `RT_SB_GPS_Vel_NED_1` message from values. pub fn new( gps_vel_ned_e: f32, gps_vel_ned_n: f32, @@ -35109,11 +36766,11 @@ impl RtSbGpsVelNed1 { res.set_validity_gps_vel_ned_n(validity_gps_vel_ned_n)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Vel_NED_1` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Vel_NED_E' + /// Returns the value of `GPS_Vel_NED_E`. /// /// VELNED E velocity. This is the velocity vector directly East at the current local Earth surface position. /// @@ -35121,26 +36778,32 @@ impl RtSbGpsVelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_vel_ned_e(&self) -> f32 { - self.gps_vel_ned_e_raw() + let signal = self.raw.view_bits::()[40..64].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Vel_NED_E' + /// Returns the raw value of `GPS_Vel_NED_E`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_vel_ned_e_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_vel_ned_e_raw_val(&self) -> i32 { + self.raw.view_bits::()[40..64].load_le::() + } + /// Sets the raw value of `GPS_Vel_NED_E`. + #[inline(always)] + pub fn set_gps_vel_ned_e_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[40..64].store_le(value); } - /// Set value of 'GPS_Vel_NED_E' + /// Sets the value of `GPS_Vel_NED_E`. #[inline(always)] pub fn set_gps_vel_ned_e(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -35155,7 +36818,7 @@ impl RtSbGpsVelNed1 { self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Vel_NED_N' + /// Returns the value of `GPS_Vel_NED_N`. /// /// VELNED N velocity. This is the velocity vector directly North at the current local Earth surface position. /// @@ -35163,26 +36826,32 @@ impl RtSbGpsVelNed1 { /// - Max: 838 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_vel_ned_n(&self) -> f32 { - self.gps_vel_ned_n_raw() + let signal = self.raw.view_bits::()[16..40].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Vel_NED_N' + /// Returns the raw value of `GPS_Vel_NED_N`. /// /// - Start bit: 16 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gps_vel_ned_n_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..40].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_vel_ned_n_raw_val(&self) -> i32 { + self.raw.view_bits::()[16..40].load_le::() + } + /// Sets the raw value of `GPS_Vel_NED_N`. + #[inline(always)] + pub fn set_gps_vel_ned_n_raw_val(&mut self, value: i32) { + let value = u32::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..40].store_le(value); } - /// Set value of 'GPS_Vel_NED_N' + /// Sets the value of `GPS_Vel_NED_N`. #[inline(always)] pub fn set_gps_vel_ned_n(&mut self, value: f32) -> Result<(), CanError> { if value < -838_f32 || 838_f32 < value { @@ -35197,31 +36866,34 @@ impl RtSbGpsVelNed1 { self.raw.view_bits_mut::()[16..40].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Vel_NE' + /// Returns the value of `Accuracy_GPS_Vel_NE`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_vel_ne(&self) -> u8 { - self.accuracy_gps_vel_ne_raw() + self.accuracy_gps_vel_ne_raw_val() } - /// Get raw value of 'Accuracy_GPS_Vel_NE' + /// Returns the raw value of `Accuracy_GPS_Vel_NE`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_vel_ne_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_vel_ne_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Accuracy_GPS_Vel_NE' + /// Sets the raw value of `Accuracy_GPS_Vel_NE`. + #[inline(always)] + pub fn set_accuracy_gps_vel_ne_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Accuracy_GPS_Vel_NE`. #[inline(always)] pub fn set_accuracy_gps_vel_ne(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -35229,74 +36901,75 @@ impl RtSbGpsVelNed1 { message_id: RtSbGpsVelNed1::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsVelNed1::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Vel_NED_E' + /// Returns the value of `Validity_GPS_Vel_NED_E`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_vel_ned_e(&self) -> bool { - self.validity_gps_vel_ned_e_raw() + self.validity_gps_vel_ned_e_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Vel_NED_E' + /// Returns the raw value of `Validity_GPS_Vel_NED_E`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_vel_ned_e_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_vel_ned_e_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Vel_NED_E`. + #[inline(always)] + pub fn set_validity_gps_vel_ned_e_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Vel_NED_E' + /// Sets the value of `Validity_GPS_Vel_NED_E`. #[inline(always)] pub fn set_validity_gps_vel_ned_e(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Vel_NED_N' + /// Returns the value of `Validity_GPS_Vel_NED_N`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_vel_ned_n(&self) -> bool { - self.validity_gps_vel_ned_n_raw() + self.validity_gps_vel_ned_n_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Vel_NED_N' + /// Returns the raw value of `Validity_GPS_Vel_NED_N`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_vel_ned_n_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_vel_ned_n_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Vel_NED_N`. + #[inline(always)] + pub fn set_validity_gps_vel_ned_n_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Vel_NED_N' + /// Sets the value of `Validity_GPS_Vel_NED_N`. #[inline(always)] pub fn set_validity_gps_vel_ned_n(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -35370,7 +37043,7 @@ impl RtSbGpsSpeed { pub const GPS_SPEED_2D_MAX: f32 = 1675_f32; pub const ACCURACY_GPS_SPEED_MIN: u8 = 0_u8; pub const ACCURACY_GPS_SPEED_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Speed' from values + /// Constructs a new `RT_SB_GPS_Speed` message from values. pub fn new( gps_speed_3d: f32, gps_speed_2d: f32, @@ -35386,11 +37059,11 @@ impl RtSbGpsSpeed { res.set_validity_gps_speed_2d(validity_gps_speed_2d)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Speed` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Speed_3D' + /// Returns the value of `GPS_Speed_3D`. /// /// This is GPS scalar 3D speed - scalar speed with the local Z axis component included. /// @@ -35398,26 +37071,31 @@ impl RtSbGpsSpeed { /// - Max: 1675 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_speed_3d(&self) -> f32 { - self.gps_speed_3d_raw() + let signal = self.raw.view_bits::()[40..64].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Speed_3D' + /// Returns the raw value of `GPS_Speed_3D`. /// /// - Start bit: 40 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_speed_3d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[40..64].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_speed_3d_raw_val(&self) -> u32 { + self.raw.view_bits::()[40..64].load_le::() + } + /// Sets the raw value of `GPS_Speed_3D`. + #[inline(always)] + pub fn set_gps_speed_3d_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[40..64].store_le(value); } - /// Set value of 'GPS_Speed_3D' + /// Sets the value of `GPS_Speed_3D`. #[inline(always)] pub fn set_gps_speed_3d(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 1675_f32 < value { @@ -35431,7 +37109,7 @@ impl RtSbGpsSpeed { self.raw.view_bits_mut::()[40..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Speed_2D' + /// Returns the value of `GPS_Speed_2D`. /// /// This is GPS scalar 2D speed - scalar speed with no local Z axis component included. /// @@ -35439,26 +37117,31 @@ impl RtSbGpsSpeed { /// - Max: 1675 /// - Unit: "m/s" /// - Receivers: Vector__XXX + /// - Factor: 0.0001 + /// - Offset: 0 #[inline(always)] pub fn gps_speed_2d(&self) -> f32 { - self.gps_speed_2d_raw() + let signal = self.raw.view_bits::()[16..40].load_le::(); + let factor = 0.0001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Speed_2D' + /// Returns the raw value of `GPS_Speed_2D`. /// /// - Start bit: 16 /// - Signal size: 24 bits - /// - Factor: 0.0001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_speed_2d_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..40].load_le::(); - let factor = 0.0001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_speed_2d_raw_val(&self) -> u32 { + self.raw.view_bits::()[16..40].load_le::() + } + /// Sets the raw value of `GPS_Speed_2D`. + #[inline(always)] + pub fn set_gps_speed_2d_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[16..40].store_le(value); } - /// Set value of 'GPS_Speed_2D' + /// Sets the value of `GPS_Speed_2D`. #[inline(always)] pub fn set_gps_speed_2d(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 1675_f32 < value { @@ -35472,108 +37155,112 @@ impl RtSbGpsSpeed { self.raw.view_bits_mut::()[16..40].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Speed' + /// Returns the value of `Accuracy_GPS_Speed`. /// /// This accuracy value applies to both 2D and 3D GPS speed. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_speed(&self) -> u8 { - self.accuracy_gps_speed_raw() + self.accuracy_gps_speed_raw_val() } - /// Get raw value of 'Accuracy_GPS_Speed' + /// Returns the raw value of `Accuracy_GPS_Speed`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_speed_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_speed_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_GPS_Speed`. + #[inline(always)] + pub fn set_accuracy_gps_speed_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_GPS_Speed' + /// Sets the value of `Accuracy_GPS_Speed`. #[inline(always)] pub fn set_accuracy_gps_speed(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { - return Err(CanError::ParameterOutOfRange { - message_id: RtSbGpsSpeed::MESSAGE_ID, - }); - } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { + return Err(CanError::ParameterOutOfRange { message_id: RtSbGpsSpeed::MESSAGE_ID, - })?; - let value = (value / factor) as u8; + }); + } self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Speed_3D' + /// Returns the value of `Validity_GPS_Speed_3D`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_speed_3d(&self) -> bool { - self.validity_gps_speed_3d_raw() + self.validity_gps_speed_3d_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Speed_3D' + /// Returns the raw value of `Validity_GPS_Speed_3D`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_speed_3d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_speed_3d_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Speed_3D`. + #[inline(always)] + pub fn set_validity_gps_speed_3d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Speed_3D' + /// Sets the value of `Validity_GPS_Speed_3D`. #[inline(always)] pub fn set_validity_gps_speed_3d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Speed_2D' + /// Returns the value of `Validity_GPS_Speed_2D`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_speed_2d(&self) -> bool { - self.validity_gps_speed_2d_raw() + self.validity_gps_speed_2d_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Speed_2D' + /// Returns the raw value of `Validity_GPS_Speed_2D`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_speed_2d_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_speed_2d_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Speed_2D`. + #[inline(always)] + pub fn set_validity_gps_speed_2d_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Speed_2D' + /// Sets the value of `Validity_GPS_Speed_2D`. #[inline(always)] pub fn set_validity_gps_speed_2d(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -35647,7 +37334,7 @@ impl RtSbGpsTime { pub const GPS_TIME_MAX: f32 = 604800_f32; pub const ACCURACY_GPS_TIME_MIN: u8 = 0_u8; pub const ACCURACY_GPS_TIME_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_GPS_Time' from values + /// Constructs a new `RT_SB_GPS_Time` message from values. pub fn new( gps_week: u16, gps_time: f32, @@ -35663,35 +37350,38 @@ impl RtSbGpsTime { res.set_validity_gps_time(validity_gps_time)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_GPS_Time` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'GPS_Week' + /// Returns the value of `GPS_Week`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn gps_week(&self) -> u16 { - self.gps_week_raw() + self.gps_week_raw_val() } - /// Get raw value of 'GPS_Week' + /// Returns the raw value of `GPS_Week`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_week_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn gps_week_raw_val(&self) -> u16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `GPS_Week`. + #[inline(always)] + pub fn set_gps_week_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'GPS_Week' + /// Sets the value of `GPS_Week`. #[inline(always)] pub fn set_gps_week(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -35699,17 +37389,10 @@ impl RtSbGpsTime { message_id: RtSbGpsTime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsTime::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'GPS_Time' + /// Returns the value of `GPS_Time`. /// /// GPS time is the time in seconds since midnight GMT on Saturday night. /// @@ -35717,26 +37400,31 @@ impl RtSbGpsTime { /// - Max: 604800 /// - Unit: "s" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn gps_time(&self) -> f32 { - self.gps_time_raw() + let signal = self.raw.view_bits::()[16..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'GPS_Time' + /// Returns the raw value of `GPS_Time`. /// /// - Start bit: 16 /// - Signal size: 32 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn gps_time_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gps_time_raw_val(&self) -> u32 { + self.raw.view_bits::()[16..48].load_le::() } - /// Set value of 'GPS_Time' + /// Sets the raw value of `GPS_Time`. + #[inline(always)] + pub fn set_gps_time_raw_val(&mut self, value: u32) { + self.raw.view_bits_mut::()[16..48].store_le(value); + } + /// Sets the value of `GPS_Time`. #[inline(always)] pub fn set_gps_time(&mut self, value: f32) -> Result<(), CanError> { if value < 0_f32 || 604800_f32 < value { @@ -35750,31 +37438,34 @@ impl RtSbGpsTime { self.raw.view_bits_mut::()[16..48].store_le(value); Ok(()) } - /// Get value of 'Accuracy_GPS_Time' + /// Returns the value of `Accuracy_GPS_Time`. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gps_time(&self) -> u8 { - self.accuracy_gps_time_raw() + self.accuracy_gps_time_raw_val() } - /// Get raw value of 'Accuracy_GPS_Time' + /// Returns the raw value of `Accuracy_GPS_Time`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gps_time_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gps_time_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() } - /// Set value of 'Accuracy_GPS_Time' + /// Sets the raw value of `Accuracy_GPS_Time`. + #[inline(always)] + pub fn set_accuracy_gps_time_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); + } + /// Sets the value of `Accuracy_GPS_Time`. #[inline(always)] pub fn set_accuracy_gps_time(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -35782,74 +37473,75 @@ impl RtSbGpsTime { message_id: RtSbGpsTime::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGpsTime::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Week' + /// Returns the value of `Validity_GPS_Week`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_week(&self) -> bool { - self.validity_gps_week_raw() + self.validity_gps_week_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Week' + /// Returns the raw value of `Validity_GPS_Week`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_week_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gps_week_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_GPS_Week`. + #[inline(always)] + pub fn set_validity_gps_week_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_GPS_Week' + /// Sets the value of `Validity_GPS_Week`. #[inline(always)] pub fn set_validity_gps_week(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_GPS_Time' + /// Returns the value of `Validity_GPS_Time`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gps_time(&self) -> bool { - self.validity_gps_time_raw() + self.validity_gps_time_raw_val() == 1 } - /// Get raw value of 'Validity_GPS_Time' + /// Returns the raw value of `Validity_GPS_Time`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gps_time_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gps_time_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_GPS_Time`. + #[inline(always)] + pub fn set_validity_gps_time_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_GPS_Time' + /// Sets the value of `Validity_GPS_Time`. #[inline(always)] pub fn set_validity_gps_time(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; @@ -35925,7 +37617,7 @@ impl RtSbAccel { pub const ACCEL_LONGITUDINAL_MAX: f32 = 65_f32; pub const ACCURACY_ACCEL_MIN: u8 = 0_u8; pub const ACCURACY_ACCEL_MAX: u8 = 255_u8; - /// Construct new 'RT_SB_Accel' from values + /// Constructs a new `RT_SB_Accel` message from values. pub fn new( accel_vertical: f32, accel_lateral: f32, @@ -35945,11 +37637,11 @@ impl RtSbAccel { res.set_validity_accel_longitudinal(validity_accel_longitudinal)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Accel` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Accel_Vertical' + /// Returns the value of `Accel_Vertical`. /// /// Vertical acceleration. This is positive when the vehicle accelerates in an upwards direction, e.g. when travelling through a dip. /// @@ -35957,26 +37649,32 @@ impl RtSbAccel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_vertical(&self) -> f32 { - self.accel_vertical_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Vertical' + /// Returns the raw value of `Accel_Vertical`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_vertical_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_vertical_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Accel_Vertical`. + #[inline(always)] + pub fn set_accel_vertical_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Accel_Vertical' + /// Sets the value of `Accel_Vertical`. #[inline(always)] pub fn set_accel_vertical(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -35991,7 +37689,7 @@ impl RtSbAccel { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Accel_Lateral' + /// Returns the value of `Accel_Lateral`. /// /// Lateral acceleration. This is positive when the vehicle accelerates towards the right, e.g. when cornering around a right-hand bend. /// @@ -35999,26 +37697,32 @@ impl RtSbAccel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_lateral(&self) -> f32 { - self.accel_lateral_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Lateral' + /// Returns the raw value of `Accel_Lateral`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_lateral_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_lateral_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Accel_Lateral`. + #[inline(always)] + pub fn set_accel_lateral_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Accel_Lateral' + /// Sets the value of `Accel_Lateral`. #[inline(always)] pub fn set_accel_lateral(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -36033,7 +37737,7 @@ impl RtSbAccel { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Accel_Longitudinal' + /// Returns the value of `Accel_Longitudinal`. /// /// Longitudinal acceleration. This is positive when the vehicle accelerates in a forwards direction. /// @@ -36041,26 +37745,32 @@ impl RtSbAccel { /// - Max: 65 /// - Unit: "g" /// - Receivers: Vector__XXX + /// - Factor: 0.001 + /// - Offset: 0 #[inline(always)] pub fn accel_longitudinal(&self) -> f32 { - self.accel_longitudinal_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.001_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Accel_Longitudinal' + /// Returns the raw value of `Accel_Longitudinal`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.001 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn accel_longitudinal_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.001_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn accel_longitudinal_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Accel_Longitudinal`. + #[inline(always)] + pub fn set_accel_longitudinal_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Accel_Longitudinal' + /// Sets the value of `Accel_Longitudinal`. #[inline(always)] pub fn set_accel_longitudinal(&mut self, value: f32) -> Result<(), CanError> { if value < -65_f32 || 65_f32 < value { @@ -36075,33 +37785,36 @@ impl RtSbAccel { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Accel' + /// Returns the value of `Accuracy_Accel`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 255 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_accel(&self) -> u8 { - self.accuracy_accel_raw() + self.accuracy_accel_raw_val() } - /// Get raw value of 'Accuracy_Accel' + /// Returns the raw value of `Accuracy_Accel`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_accel_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_accel_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_Accel`. + #[inline(always)] + pub fn set_accuracy_accel_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_Accel' + /// Sets the value of `Accuracy_Accel`. #[inline(always)] pub fn set_accuracy_accel(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 255_u8 < value { @@ -36109,106 +37822,111 @@ impl RtSbAccel { message_id: RtSbAccel::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbAccel::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Vertical' + /// Returns the value of `Validity_Accel_Vertical`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_vertical(&self) -> bool { - self.validity_accel_vertical_raw() + self.validity_accel_vertical_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Vertical' + /// Returns the raw value of `Validity_Accel_Vertical`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_vertical_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_accel_vertical_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_Accel_Vertical`. + #[inline(always)] + pub fn set_validity_accel_vertical_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_Accel_Vertical' + /// Sets the value of `Validity_Accel_Vertical`. #[inline(always)] pub fn set_validity_accel_vertical(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Lateral' + /// Returns the value of `Validity_Accel_Lateral`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_lateral(&self) -> bool { - self.validity_accel_lateral_raw() + self.validity_accel_lateral_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Lateral' + /// Returns the raw value of `Validity_Accel_Lateral`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_lateral_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_accel_lateral_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_Accel_Lateral`. + #[inline(always)] + pub fn set_validity_accel_lateral_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_Accel_Lateral' + /// Sets the value of `Validity_Accel_Lateral`. #[inline(always)] pub fn set_validity_accel_lateral(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Accel_Longitudinal' + /// Returns the value of `Validity_Accel_Longitudinal`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_accel_longitudinal(&self) -> bool { - self.validity_accel_longitudinal_raw() + self.validity_accel_longitudinal_raw_val() == 1 } - /// Get raw value of 'Validity_Accel_Longitudinal' + /// Returns the raw value of `Validity_Accel_Longitudinal`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_accel_longitudinal_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_accel_longitudinal_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Accel_Longitudinal`. + #[inline(always)] + pub fn set_validity_accel_longitudinal_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Accel_Longitudinal' + /// Sets the value of `Validity_Accel_Longitudinal`. #[inline(always)] pub fn set_validity_accel_longitudinal( &mut self, @@ -36287,7 +38005,7 @@ impl RtSbGyroRates { pub const GYRO_RATE_YAW_MAX: f32 = 327_f32; pub const ACCURACY_GYRO_RATES_MIN: u8 = 0_u8; pub const ACCURACY_GYRO_RATES_MAX: u8 = 0_u8; - /// Construct new 'RT_SB_Gyro_Rates' from values + /// Constructs a new `RT_SB_Gyro_Rates` message from values. pub fn new( gyro_rate_roll: f32, gyro_rate_pitch: f32, @@ -36307,11 +38025,11 @@ impl RtSbGyroRates { res.set_validity_gyro_rate_yaw(validity_gyro_rate_yaw)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `RT_SB_Gyro_Rates` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get value of 'Gyro_Rate_Roll' + /// Returns the value of `Gyro_Rate_Roll`. /// /// Roll rate is positive for clockwise rotation when looking at the rear of the vehicle from behind the vehicle. /// @@ -36319,26 +38037,32 @@ impl RtSbGyroRates { /// - Max: 327 /// - Unit: "degrees/s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gyro_rate_roll(&self) -> f32 { - self.gyro_rate_roll_raw() + let signal = self.raw.view_bits::()[48..64].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Gyro_Rate_Roll' + /// Returns the raw value of `Gyro_Rate_Roll`. /// /// - Start bit: 48 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gyro_rate_roll_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[48..64].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gyro_rate_roll_raw_val(&self) -> i16 { + self.raw.view_bits::()[48..64].load_le::() + } + /// Sets the raw value of `Gyro_Rate_Roll`. + #[inline(always)] + pub fn set_gyro_rate_roll_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[48..64].store_le(value); } - /// Set value of 'Gyro_Rate_Roll' + /// Sets the value of `Gyro_Rate_Roll`. #[inline(always)] pub fn set_gyro_rate_roll(&mut self, value: f32) -> Result<(), CanError> { if value < -327_f32 || 327_f32 < value { @@ -36353,7 +38077,7 @@ impl RtSbGyroRates { self.raw.view_bits_mut::()[48..64].store_le(value); Ok(()) } - /// Get value of 'Gyro_Rate_Pitch' + /// Returns the value of `Gyro_Rate_Pitch`. /// /// Pitch rate is positive for clockwise rotation when looking at the left hand side of the vehicle from the left of the vehicle. /// @@ -36361,26 +38085,32 @@ impl RtSbGyroRates { /// - Max: 327 /// - Unit: "degrees/s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gyro_rate_pitch(&self) -> f32 { - self.gyro_rate_pitch_raw() + let signal = self.raw.view_bits::()[32..48].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Gyro_Rate_Pitch' + /// Returns the raw value of `Gyro_Rate_Pitch`. /// /// - Start bit: 32 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gyro_rate_pitch_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[32..48].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gyro_rate_pitch_raw_val(&self) -> i16 { + self.raw.view_bits::()[32..48].load_le::() + } + /// Sets the raw value of `Gyro_Rate_Pitch`. + #[inline(always)] + pub fn set_gyro_rate_pitch_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[32..48].store_le(value); } - /// Set value of 'Gyro_Rate_Pitch' + /// Sets the value of `Gyro_Rate_Pitch`. #[inline(always)] pub fn set_gyro_rate_pitch(&mut self, value: f32) -> Result<(), CanError> { if value < -327_f32 || 327_f32 < value { @@ -36395,7 +38125,7 @@ impl RtSbGyroRates { self.raw.view_bits_mut::()[32..48].store_le(value); Ok(()) } - /// Get value of 'Gyro_Rate_Yaw' + /// Returns the value of `Gyro_Rate_Yaw`. /// /// Yaw rate is positive for clockwise rotation when looking down on the vehicle from above. /// @@ -36403,26 +38133,32 @@ impl RtSbGyroRates { /// - Max: 327 /// - Unit: "degrees/s" /// - Receivers: Vector__XXX + /// - Factor: 0.01 + /// - Offset: 0 #[inline(always)] pub fn gyro_rate_yaw(&self) -> f32 { - self.gyro_rate_yaw_raw() + let signal = self.raw.view_bits::()[16..32].load_le::(); + let factor = 0.01_f32; + let offset = 0_f32; + (signal as f32) * factor + offset } - /// Get raw value of 'Gyro_Rate_Yaw' + /// Returns the raw value of `Gyro_Rate_Yaw`. /// /// - Start bit: 16 /// - Signal size: 16 bits - /// - Factor: 0.01 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Signed #[inline(always)] - pub fn gyro_rate_yaw_raw(&self) -> f32 { - let signal = self.raw.view_bits::()[16..32].load_le::(); - let factor = 0.01_f32; - let offset = 0_f32; - (signal as f32) * factor + offset + pub fn gyro_rate_yaw_raw_val(&self) -> i16 { + self.raw.view_bits::()[16..32].load_le::() + } + /// Sets the raw value of `Gyro_Rate_Yaw`. + #[inline(always)] + pub fn set_gyro_rate_yaw_raw_val(&mut self, value: i16) { + let value = u16::from_ne_bytes(value.to_ne_bytes()); + self.raw.view_bits_mut::()[16..32].store_le(value); } - /// Set value of 'Gyro_Rate_Yaw' + /// Sets the value of `Gyro_Rate_Yaw`. #[inline(always)] pub fn set_gyro_rate_yaw(&mut self, value: f32) -> Result<(), CanError> { if value < -327_f32 || 327_f32 < value { @@ -36437,33 +38173,36 @@ impl RtSbGyroRates { self.raw.view_bits_mut::()[16..32].store_le(value); Ok(()) } - /// Get value of 'Accuracy_Gyro_Rates' + /// Returns the value of `Accuracy_Gyro_Rates`. /// /// Dimensionless. Lower values imply but do not guarantee better accuracy than higher values. /// /// - Min: 0 /// - Max: 0 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn accuracy_gyro_rates(&self) -> u8 { - self.accuracy_gyro_rates_raw() + self.accuracy_gyro_rates_raw_val() } - /// Get raw value of 'Accuracy_Gyro_Rates' + /// Returns the raw value of `Accuracy_Gyro_Rates`. /// /// - Start bit: 8 /// - Signal size: 8 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn accuracy_gyro_rates_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[8..16].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn accuracy_gyro_rates_raw_val(&self) -> u8 { + self.raw.view_bits::()[8..16].load_le::() + } + /// Sets the raw value of `Accuracy_Gyro_Rates`. + #[inline(always)] + pub fn set_accuracy_gyro_rates_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[8..16].store_le(value); } - /// Set value of 'Accuracy_Gyro_Rates' + /// Sets the value of `Accuracy_Gyro_Rates`. #[inline(always)] pub fn set_accuracy_gyro_rates(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -36471,106 +38210,111 @@ impl RtSbGyroRates { message_id: RtSbGyroRates::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: RtSbGyroRates::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[8..16].store_le(value); Ok(()) } - /// Get value of 'Validity_Gyro_Rate_Roll' + /// Returns the value of `Validity_Gyro_Rate_Roll`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gyro_rate_roll(&self) -> bool { - self.validity_gyro_rate_roll_raw() + self.validity_gyro_rate_roll_raw_val() == 1 } - /// Get raw value of 'Validity_Gyro_Rate_Roll' + /// Returns the raw value of `Validity_Gyro_Rate_Roll`. /// /// - Start bit: 2 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gyro_rate_roll_raw(&self) -> bool { - let signal = self.raw.view_bits::()[2..3].load_le::(); - signal == 1 + pub fn validity_gyro_rate_roll_raw_val(&self) -> u8 { + self.raw.view_bits::()[2..3].load_le::() + } + /// Sets the raw value of `Validity_Gyro_Rate_Roll`. + #[inline(always)] + pub fn set_validity_gyro_rate_roll_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[2..3].store_le(value); } - /// Set value of 'Validity_Gyro_Rate_Roll' + /// Sets the value of `Validity_Gyro_Rate_Roll`. #[inline(always)] pub fn set_validity_gyro_rate_roll(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[2..3].store_le(value); Ok(()) } - /// Get value of 'Validity_Gyro_Rate_Pitch' + /// Returns the value of `Validity_Gyro_Rate_Pitch`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gyro_rate_pitch(&self) -> bool { - self.validity_gyro_rate_pitch_raw() + self.validity_gyro_rate_pitch_raw_val() == 1 } - /// Get raw value of 'Validity_Gyro_Rate_Pitch' + /// Returns the raw value of `Validity_Gyro_Rate_Pitch`. /// /// - Start bit: 1 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gyro_rate_pitch_raw(&self) -> bool { - let signal = self.raw.view_bits::()[1..2].load_le::(); - signal == 1 + pub fn validity_gyro_rate_pitch_raw_val(&self) -> u8 { + self.raw.view_bits::()[1..2].load_le::() + } + /// Sets the raw value of `Validity_Gyro_Rate_Pitch`. + #[inline(always)] + pub fn set_validity_gyro_rate_pitch_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[1..2].store_le(value); } - /// Set value of 'Validity_Gyro_Rate_Pitch' + /// Sets the value of `Validity_Gyro_Rate_Pitch`. #[inline(always)] pub fn set_validity_gyro_rate_pitch(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; self.raw.view_bits_mut::()[1..2].store_le(value); Ok(()) } - /// Get value of 'Validity_Gyro_Rate_Yaw' + /// Returns the value of `Validity_Gyro_Rate_Yaw`. /// /// Valid when bit is set, invalid when bit is clear. /// /// - Min: 0 /// - Max: 1 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn validity_gyro_rate_yaw(&self) -> bool { - self.validity_gyro_rate_yaw_raw() + self.validity_gyro_rate_yaw_raw_val() == 1 } - /// Get raw value of 'Validity_Gyro_Rate_Yaw' + /// Returns the raw value of `Validity_Gyro_Rate_Yaw`. /// /// - Start bit: 0 /// - Signal size: 1 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn validity_gyro_rate_yaw_raw(&self) -> bool { - let signal = self.raw.view_bits::()[0..1].load_le::(); - signal == 1 + pub fn validity_gyro_rate_yaw_raw_val(&self) -> u8 { + self.raw.view_bits::()[0..1].load_le::() + } + /// Sets the raw value of `Validity_Gyro_Rate_Yaw`. + #[inline(always)] + pub fn set_validity_gyro_rate_yaw_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[0..1].store_le(value); } - /// Set value of 'Validity_Gyro_Rate_Yaw' + /// Sets the value of `Validity_Gyro_Rate_Yaw`. #[inline(always)] pub fn set_validity_gyro_rate_yaw(&mut self, value: bool) -> Result<(), CanError> { let value = value as u8; diff --git a/tests-snapshots/opendbc/!error___FORD_CADS_64.snap b/tests-snapshots/opendbc/!error___FORD_CADS_64.snap index 4b0c2257..75b0c177 100644 --- a/tests-snapshots/opendbc/!error___FORD_CADS_64.snap +++ b/tests-snapshots/opendbc/!error___FORD_CADS_64.snap @@ -7,10 +7,7 @@ Error { context: "write message `MRR_Detection_022`", source: Error { context: "write signal impl `CAN_DET_SUPER_RES_TARGET_22_03`", - source: Error { - context: "signal from payload", - source: "signal starts at 207, but message is only 192 bits", - }, + source: "signal starts at 207, but message is only 192 bits", }, }, } diff --git a/tests-snapshots/opendbc/!error___mazda_2017.snap b/tests-snapshots/opendbc/!error___mazda_2017.snap index 7d3abc20..e17ca74d 100644 --- a/tests-snapshots/opendbc/!error___mazda_2017.snap +++ b/tests-snapshots/opendbc/!error___mazda_2017.snap @@ -7,10 +7,7 @@ Error { context: "write message `HVAC`", source: Error { context: "write signal impl `NEW_SIGNAL_4`", - source: Error { - context: "signal from payload", - source: "signal ends at 68, but message is only 64 bits", - }, + source: "signal ends at 68, but message is only 64 bits", }, }, } diff --git a/tests-snapshots/opendbc/!error___mazda_3_2019.snap b/tests-snapshots/opendbc/!error___mazda_3_2019.snap index 695af856..bf37366f 100644 --- a/tests-snapshots/opendbc/!error___mazda_3_2019.snap +++ b/tests-snapshots/opendbc/!error___mazda_3_2019.snap @@ -7,10 +7,7 @@ Error { context: "write message `CAM_KEEP_ALIVE_1`", source: Error { context: "write signal impl `NEW_SIGNAL_4`", - source: Error { - context: "signal from payload", - source: "signal ends at 78, but message is only 64 bits", - }, + source: "signal ends at 78, but message is only 64 bits", }, }, } diff --git a/tests-snapshots/opendbc/!error___vw_pq.snap b/tests-snapshots/opendbc/!error___vw_pq.snap index e93173d9..b7aaaff4 100644 --- a/tests-snapshots/opendbc/!error___vw_pq.snap +++ b/tests-snapshots/opendbc/!error___vw_pq.snap @@ -7,10 +7,7 @@ Error { context: "write message `Lenkhilfe_1`", source: Error { context: "write signal impl `LH1_EPS_Diagmode`", - source: Error { - context: "signal from payload", - source: "signal ends at 17, but message is only 16 bits", - }, + source: "signal ends at 17, but message is only 16 bits", }, }, } diff --git a/tests-snapshots/opendbc/generator/hyundai/!error___hyundai_palisade_2023.snap b/tests-snapshots/opendbc/generator/hyundai/!error___hyundai_palisade_2023.snap index 2f39b0c7..475edf47 100644 --- a/tests-snapshots/opendbc/generator/hyundai/!error___hyundai_palisade_2023.snap +++ b/tests-snapshots/opendbc/generator/hyundai/!error___hyundai_palisade_2023.snap @@ -7,10 +7,7 @@ Error { context: "write message `FRT_RADAR11`", source: Error { context: "write signal impl `BYTE2`", - source: Error { - context: "signal from payload", - source: "signal ends at 24, but message is only 16 bits", - }, + source: "signal ends at 24, but message is only 16 bits", }, }, } diff --git a/tests-snapshots/oxibus/bug_dbc-codegen_98.snap.rs b/tests-snapshots/oxibus/bug_dbc-codegen_98.snap.rs index ef516e5f..5d6d3ed3 100644 --- a/tests-snapshots/oxibus/bug_dbc-codegen_98.snap.rs +++ b/tests-snapshots/oxibus/bug_dbc-codegen_98.snap.rs @@ -82,32 +82,37 @@ impl TestInput { pub const VAR3_MAX: u16 = 65535_u16; pub const VAR4_MIN: u16 = 0_u16; pub const VAR4_MAX: u16 = 65535_u16; - /// Construct new 'Test_input' from values + /// Constructs a new `Test_input` message from values. pub fn new(test_input_mux: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_input_mux(test_input_mux)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Test_input` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Test_input_Mux' + /// Returns the raw value of `Test_input_Mux`. /// /// - Start bit: 56 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn test_input_mux_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..60].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_input_mux_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..60].load_le::() + } + /// Sets the raw value of `Test_input_Mux`. + #[allow(dead_code)] + #[inline(always)] + fn set_test_input_mux_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..60].store_le(value); } - pub fn test_input_mux(&mut self) -> Result { - match self.test_input_mux_raw() { + /// Selects the active multiplexed sub-message for `Test_input_Mux`. + pub fn test_input_mux_multiplexed( + &mut self, + ) -> Result { + match self.test_input_mux_raw_val() { 0 => { Ok( TestInputTestInputMuxIndex::M0(TestInputTestInputMuxM0 { @@ -144,7 +149,7 @@ impl TestInput { } } } - /// Set value of 'Test_input_Mux' + /// Sets the value of `Test_input_Mux`. #[inline(always)] fn set_test_input_mux(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -152,17 +157,10 @@ impl TestInput { message_id: TestInput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestInput::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..60].store_le(value); Ok(()) } - /// Set value of 'Test_input_Mux' + /// Sets the value of `Test_input_Mux`. #[inline(always)] pub fn set_m0(&mut self, value: TestInputTestInputMuxM0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -171,7 +169,7 @@ impl TestInput { self.set_test_input_mux(0)?; Ok(()) } - /// Set value of 'Test_input_Mux' + /// Sets the value of `Test_input_Mux`. #[inline(always)] pub fn set_m1(&mut self, value: TestInputTestInputMuxM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -180,7 +178,7 @@ impl TestInput { self.set_test_input_mux(1)?; Ok(()) } - /// Set value of 'Test_input_Mux' + /// Sets the value of `Test_input_Mux`. #[inline(always)] pub fn set_m2(&mut self, value: TestInputTestInputMuxM2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -189,7 +187,7 @@ impl TestInput { self.set_test_input_mux(2)?; Ok(()) } - /// Set value of 'Test_input_Mux' + /// Sets the value of `Test_input_Mux`. #[inline(always)] pub fn set_m3(&mut self, value: TestInputTestInputMuxM3) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -308,31 +306,34 @@ impl TestInputTestInputMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var1' + /// Returns the value of `Var1`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var1(&self) -> u16 { - self.var1_raw() + self.var1_raw_val() } - /// Get raw value of 'Var1' + /// Returns the raw value of `Var1`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var1_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var1_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'Var1' + /// Sets the raw value of `Var1`. + #[inline(always)] + pub fn set_var1_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `Var1`. #[inline(always)] pub fn set_var1(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -340,13 +341,6 @@ impl TestInputTestInputMuxM0 { message_id: TestInput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestInput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -377,31 +371,34 @@ impl TestInputTestInputMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var2' + /// Returns the value of `Var2`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var2(&self) -> u16 { - self.var2_raw() + self.var2_raw_val() } - /// Get raw value of 'Var2' + /// Returns the raw value of `Var2`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var2_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var2_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Var2`. + #[inline(always)] + pub fn set_var2_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Var2' + /// Sets the value of `Var2`. #[inline(always)] pub fn set_var2(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -409,13 +406,6 @@ impl TestInputTestInputMuxM1 { message_id: TestInput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestInput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -446,31 +436,34 @@ impl TestInputTestInputMuxM2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var3' + /// Returns the value of `Var3`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var3(&self) -> u16 { - self.var3_raw() + self.var3_raw_val() } - /// Get raw value of 'Var3' + /// Returns the raw value of `Var3`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var3_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var3_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Var3`. + #[inline(always)] + pub fn set_var3_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Var3' + /// Sets the value of `Var3`. #[inline(always)] pub fn set_var3(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -478,13 +471,6 @@ impl TestInputTestInputMuxM2 { message_id: TestInput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestInput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -515,31 +501,34 @@ impl TestInputTestInputMuxM3 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var4' + /// Returns the value of `Var4`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var4(&self) -> u16 { - self.var4_raw() + self.var4_raw_val() } - /// Get raw value of 'Var4' + /// Returns the raw value of `Var4`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var4_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var4_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'Var4' + /// Sets the raw value of `Var4`. + #[inline(always)] + pub fn set_var4_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `Var4`. #[inline(always)] pub fn set_var4(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -547,13 +536,6 @@ impl TestInputTestInputMuxM3 { message_id: TestInput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestInput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -590,32 +572,37 @@ impl TestOutput { pub const VAR7_MAX: u16 = 65535_u16; pub const VAR8_MIN: u16 = 0_u16; pub const VAR8_MAX: u16 = 65535_u16; - /// Construct new 'Test_output' from values + /// Constructs a new `Test_output` message from values. pub fn new(test_output_mux: u8) -> Result { let mut res = Self { raw: [0x00; 8] }; res.set_test_output_mux(test_output_mux)?; Ok(res) } - /// Access message payload raw value + /// Returns the raw `Test_output` message payload. pub fn raw(&self) -> &[u8; 8] { &self.raw } - /// Get raw value of 'Test_output_Mux' + /// Returns the raw value of `Test_output_Mux`. /// /// - Start bit: 56 /// - Signal size: 4 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn test_output_mux_raw(&self) -> u8 { - let signal = self.raw.view_bits::()[56..60].load_le::(); - let factor = 1; - u8::from(signal).saturating_mul(factor).saturating_add(0) + pub fn test_output_mux_raw_val(&self) -> u8 { + self.raw.view_bits::()[56..60].load_le::() + } + /// Sets the raw value of `Test_output_Mux`. + #[allow(dead_code)] + #[inline(always)] + fn set_test_output_mux_raw_val(&mut self, value: u8) { + self.raw.view_bits_mut::()[56..60].store_le(value); } - pub fn test_output_mux(&mut self) -> Result { - match self.test_output_mux_raw() { + /// Selects the active multiplexed sub-message for `Test_output_Mux`. + pub fn test_output_mux_multiplexed( + &mut self, + ) -> Result { + match self.test_output_mux_raw_val() { 0 => { Ok( TestOutputTestOutputMuxIndex::M0(TestOutputTestOutputMuxM0 { @@ -652,7 +639,7 @@ impl TestOutput { } } } - /// Set value of 'Test_output_Mux' + /// Sets the value of `Test_output_Mux`. #[inline(always)] fn set_test_output_mux(&mut self, value: u8) -> Result<(), CanError> { if value < 0_u8 || 0_u8 < value { @@ -660,17 +647,10 @@ impl TestOutput { message_id: TestOutput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestOutput::MESSAGE_ID, - })?; - let value = (value / factor) as u8; self.raw.view_bits_mut::()[56..60].store_le(value); Ok(()) } - /// Set value of 'Test_output_Mux' + /// Sets the value of `Test_output_Mux`. #[inline(always)] pub fn set_m0(&mut self, value: TestOutputTestOutputMuxM0) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -679,7 +659,7 @@ impl TestOutput { self.set_test_output_mux(0)?; Ok(()) } - /// Set value of 'Test_output_Mux' + /// Sets the value of `Test_output_Mux`. #[inline(always)] pub fn set_m1(&mut self, value: TestOutputTestOutputMuxM1) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -688,7 +668,7 @@ impl TestOutput { self.set_test_output_mux(1)?; Ok(()) } - /// Set value of 'Test_output_Mux' + /// Sets the value of `Test_output_Mux`. #[inline(always)] pub fn set_m2(&mut self, value: TestOutputTestOutputMuxM2) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -697,7 +677,7 @@ impl TestOutput { self.set_test_output_mux(2)?; Ok(()) } - /// Set value of 'Test_output_Mux' + /// Sets the value of `Test_output_Mux`. #[inline(always)] pub fn set_m3(&mut self, value: TestOutputTestOutputMuxM3) -> Result<(), CanError> { let b0 = BitArray::<_, LocalBits>::new(self.raw); @@ -816,31 +796,34 @@ impl TestOutputTestOutputMuxM0 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var5' + /// Returns the value of `Var5`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var5(&self) -> u16 { - self.var5_raw() + self.var5_raw_val() } - /// Get raw value of 'Var5' + /// Returns the raw value of `Var5`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var5_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var5_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'Var5' + /// Sets the raw value of `Var5`. + #[inline(always)] + pub fn set_var5_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `Var5`. #[inline(always)] pub fn set_var5(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -848,13 +831,6 @@ impl TestOutputTestOutputMuxM0 { message_id: TestOutput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestOutput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -885,31 +861,34 @@ impl TestOutputTestOutputMuxM1 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var6' + /// Returns the value of `Var6`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var6(&self) -> u16 { - self.var6_raw() + self.var6_raw_val() } - /// Get raw value of 'Var6' + /// Returns the raw value of `Var6`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var6_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var6_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Var6`. + #[inline(always)] + pub fn set_var6_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Var6' + /// Sets the value of `Var6`. #[inline(always)] pub fn set_var6(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -917,13 +896,6 @@ impl TestOutputTestOutputMuxM1 { message_id: TestOutput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestOutput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -954,31 +926,34 @@ impl TestOutputTestOutputMuxM2 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var7' + /// Returns the value of `Var7`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var7(&self) -> u16 { - self.var7_raw() + self.var7_raw_val() } - /// Get raw value of 'Var7' + /// Returns the raw value of `Var7`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var7_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var7_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() + } + /// Sets the raw value of `Var7`. + #[inline(always)] + pub fn set_var7_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); } - /// Set value of 'Var7' + /// Sets the value of `Var7`. #[inline(always)] pub fn set_var7(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -986,13 +961,6 @@ impl TestOutputTestOutputMuxM2 { message_id: TestOutput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestOutput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) } @@ -1023,31 +991,34 @@ impl TestOutputTestOutputMuxM3 { pub fn new() -> Self { Self { raw: [0u8; 8] } } - /// Get value of 'Var8' + /// Returns the value of `Var8`. /// /// - Min: 0 /// - Max: 65535 - /// - Unit: "" + /// - Unit: Not specified /// - Receivers: Vector__XXX + /// - Factor: 1 + /// - Offset: 0 #[inline(always)] pub fn var8(&self) -> u16 { - self.var8_raw() + self.var8_raw_val() } - /// Get raw value of 'Var8' + /// Returns the raw value of `Var8`. /// /// - Start bit: 0 /// - Signal size: 16 bits - /// - Factor: 1 - /// - Offset: 0 /// - Byte order: LittleEndian /// - Value type: Unsigned #[inline(always)] - pub fn var8_raw(&self) -> u16 { - let signal = self.raw.view_bits::()[0..16].load_le::(); - let factor = 1; - u16::from(signal).saturating_mul(factor).saturating_add(0) + pub fn var8_raw_val(&self) -> u16 { + self.raw.view_bits::()[0..16].load_le::() } - /// Set value of 'Var8' + /// Sets the raw value of `Var8`. + #[inline(always)] + pub fn set_var8_raw_val(&mut self, value: u16) { + self.raw.view_bits_mut::()[0..16].store_le(value); + } + /// Sets the value of `Var8`. #[inline(always)] pub fn set_var8(&mut self, value: u16) -> Result<(), CanError> { if value < 0_u16 || 65535_u16 < value { @@ -1055,13 +1026,6 @@ impl TestOutputTestOutputMuxM3 { message_id: TestOutput::MESSAGE_ID, }); } - let factor = 1; - let value = value - .checked_sub(0) - .ok_or(CanError::ParameterOutOfRange { - message_id: TestOutput::MESSAGE_ID, - })?; - let value = (value / factor) as u16; self.raw.view_bits_mut::()[0..16].store_le(value); Ok(()) }