* ```rust pub fn to_bytes(&self) -> [u8; MsgType::ConfigGnss.payload_size() as usize] { const CCS: usize = PAYLOAD_SIZE_CONFIG_COMMON; let mut result = [0; MsgType::ConfigGnss.payload_size() as usize]; let cfg_common_bytes = self.common.to_bytes(); result[..CCS].clone_from_slice(&cfg_common_bytes); result[CCS] = self.broadcast_ratio_gnss; result[CCS + 1..CCS + 3].copy_from_slice(&self.broadcast_rate_fused.to_le_bytes()); result[CCS + 3] = self.broadcast_rate_baro; result[CCS + 4] = self.broadcast_rate_mag; result[CCS + 5] = self.broadcast_ratio_imu; result[CCS + 6] = self.broadcast_ratio_ahrs; result[CCS + 7] = self.fused_custom_format as u8; result[CCS + 8..CCS + 12].copy_from_slice(&self.acc_cal_bias.0.to_le_bytes()); // etc result } pub fn save(&self, flash: &mut Flash, system_status: &SystemStatus) { self.update_leds(system_status); flash.erase_page(Bank::B1, FLASH_PAGE_ONBOARD).ok(); flash .write_page(Bank::B1, FLASH_PAGE_ONBOARD, &self.to_bytes()) .ok(); } pub fn load(flash: &mut Flash) -> Self { let mut buf = [0; MsgType::ConfigGnss.payload_size() as usize]; flash.read(Bank::B1, FLASH_PAGE_ONBOARD, 0, &mut buf); Self::from_bytes(&buf) } ```