pub fn get_example_message() -> Vec<u8> {
let mut message_bytes = Vec::<u8>::new();
message_bytes.push(0x30);
message_bytes.append(&mut vec![0x00, 0x30]);
message_bytes.push(get_1st_fspec(0xFD as u8));
message_bytes.push(get_2nd_fspec(0xF7 as u8));
message_bytes.push(get_3rd_fspec(0x02 as u8));
message_bytes.append(&mut get_i048_010(0x19, 0xC9));
message_bytes.append(&mut get_i048_140(0x35, 0x6D, 0x4D));
message_bytes.append(&mut get_i048_020(vec![0xA0]));
message_bytes.append(&mut get_i048_040(0xC5, 0xAF, 0xF1, 0xE0));
message_bytes.append(&mut get_i048_070(0x02, 0x00));
message_bytes.append(&mut get_i048_090(0x05, 0x28));
message_bytes.append(&mut get_i048_220(0x3C, 0x66, 0x0C));
message_bytes.append(&mut get_i048_240(0x10, 0xC2, 0x36, 0xD4, 0x18, 0x20));
message_bytes.append(&mut get_i048_250(0x01, 0xC0, 0x78,
0x00, 0x31, 0xBC,
0x00, 0x00, 0x40));
message_bytes.append(&mut get_i048_161(0x0D, 0xEB));
message_bytes.append(&mut get_i048_200(0x07, 0xB9, 0x58, 0x2E));
message_bytes.append(&mut get_i048_170(0x41, 0x00));
message_bytes.append(&mut get_i048_230(0x20, 0xF5));
message_bytes
}
fn get_1st_fspec(arg: u8) -> u8 {
assert_eq!(0xFD, arg);
let fspec0: u8 = arg;
fspec0
}
fn get_2nd_fspec(arg: u8) -> u8 {
assert_eq!(0xF7, arg);
let fspec1: u8 = arg;
fspec1
}
fn get_3rd_fspec(arg: u8) -> u8 {
assert_eq!(0x02, arg);
let fspec1: u8 = arg;
fspec1
}
fn get_i048_010(sac: u8, sic:u8 ) -> Vec<u8> {
assert_eq!(0x19, sac);
assert_eq!(0xC9, sic);
let i048_010 = vec![sac, sic];
i048_010
}
fn get_i048_020(vec: Vec<u8>) -> Vec<u8> {
assert_eq!(1, vec.len());
assert_eq!(0xA0, vec[0]);
vec
}
fn get_i048_040(rho_octet1: u8, rho_octet2: u8, theta_octet1: u8, theta_octet2: u8) -> Vec<u8> {
assert_eq!(0xC5, rho_octet1);
assert_eq!(0xAF, rho_octet2);
assert_eq!(0xF1, theta_octet1);
assert_eq!(0xE0, theta_octet2);
vec![rho_octet1, rho_octet2, theta_octet1, theta_octet2]
}
fn get_i048_070(octet1: u8, octet2: u8) -> Vec<u8> {
assert_eq!(0x02, octet1);
assert_eq!(0x00, octet2);
vec![octet1, octet2]
}
fn get_i048_090(octet1: u8, octet2: u8) -> Vec<u8> {
assert_eq!(0x05, octet1);
assert_eq!(0x28, octet2);
vec![octet1, octet2]
}
fn get_i048_140(octet1: u8, octet2: u8, octet3: u8) -> Vec<u8> {
assert_eq!(0x35, octet1);
assert_eq!(0x6D, octet2);
assert_eq!(0x4D, octet3);
vec![octet1, octet2, octet3]
}
fn get_i048_161(octet1: u8, octet2: u8) -> Vec<u8> {
assert_eq!(0x0D, octet1);
assert_eq!(0xEB, octet2);
vec![octet1, octet2]
}
fn get_i048_170(octet1: u8, octet2: u8) -> Vec<u8> {
assert_eq!(0x41, octet1);
assert_eq!(0x00, octet2);
vec![octet1, octet2]
}
fn get_i048_200(ground_speed_octet1: u8, ground_speed_octet2: u8, heading_octet1: u8, heading_octet2: u8) -> Vec<u8> {
assert_eq!(0x07, ground_speed_octet1);
assert_eq!(0xB9, ground_speed_octet2);
assert_eq!(0x58, heading_octet1);
assert_eq!(0x2E, heading_octet2);
vec![ground_speed_octet1, ground_speed_octet2, heading_octet1, heading_octet2]
}
fn get_i048_220(octet1: u8, octet2: u8, octet3: u8) -> Vec<u8> {
assert_eq!(0x3C, octet1);
assert_eq!(0x66, octet2);
assert_eq!(0x0C, octet3);
vec![octet1, octet2, octet3]
}
fn get_i048_230(octet1: u8, octet2: u8) -> Vec<u8> {
assert_eq!(0x20, octet1);
assert_eq!(0xF5, octet2);
vec![octet1, octet2]
}
fn get_i048_240(octet1: u8, octet2: u8, octet3: u8, octet4: u8, octet5: u8, octet6: u8) -> Vec<u8> {
assert_eq!(0x10, octet1);
assert_eq!(0xC2, octet2);
assert_eq!(0x36, octet3);
assert_eq!(0xD4, octet4);
assert_eq!(0x18, octet5);
assert_eq!(0x20, octet6);
vec![octet1, octet2, octet3, octet4, octet5, octet6]
}
fn get_i048_250(octet1: u8, octet2: u8, octet3: u8,
octet4: u8, octet5: u8, octet6: u8,
octet7: u8, octet8: u8, octet9: u8) -> Vec<u8> {
assert_eq!(0x01, octet1);
assert_eq!(0xC0, octet2);
assert_eq!(0x78, octet3);
assert_eq!(0x00, octet4);
assert_eq!(0x31, octet5);
assert_eq!(0xBC, octet6);
assert_eq!(0x00, octet7);
assert_eq!(0x00, octet8);
assert_eq!(0x40, octet9);
vec![octet1, octet2, octet3, octet4, octet5, octet6, octet7, octet8, octet9]
}