improvements to the scope

This commit is contained in:
core 2023-11-04 22:38:49 -04:00
parent f07264a138
commit 8dacc8a9ba
Signed by: core
GPG Key ID: FDBF740DADDCEECF
4 changed files with 277 additions and 108 deletions

326
log.txt
View File

@ -1,140 +1,264 @@
2023-11-04T21:35:01.793Z TRACE [nexrad2] Loaded - VolumeHeaderRecord {
2023-11-04T22:10:43.640Z TRACE [nexrad2] Loaded - VolumeHeaderRecord {
tape_filename: "AR2V0006.",
extension_number: "037",
date: 19665,
time: 44018888,
icao: "KGRB",
extension_number: "267",
date: 19664,
time: 52330099,
icao: "KOTX",
}
2023-11-04T21:35:01.794Z TRACE [nexrad2] Reading LDM record - 2195 bytes compressed
2023-11-04T21:35:01.795Z TRACE [nexrad2] LDM record decompressed to 325888 bytes
2023-11-04T21:35:01.795Z TRACE [nexrad2] Message: MessageHeader {
2023-11-04T22:10:43.640Z TRACE [nexrad2] Reading LDM record - 2262 bytes compressed
2023-11-04T22:10:43.642Z TRACE [nexrad2] LDM record decompressed to 325888 bytes
2023-11-04T22:10:43.642Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1208,
rda_redundant_channel: 8,
message_type: 15,
message_sequence_number: 12786,
julian_date: 19663,
millis_after_midnight: 11268749,
message_sequence_number: 58510,
julian_date: 19664,
millis_after_midnight: 7630137,
num_of_message_segments: 5,
message_segment_num: 1,
}
2023-11-04T21:35:01.795Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T21:35:01.795Z TRACE [nexrad2] Message: MessageHeader {
2023-11-04T22:10:43.642Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T22:10:43.642Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1208,
rda_redundant_channel: 8,
message_type: 15,
message_sequence_number: 12786,
julian_date: 19663,
millis_after_midnight: 11268749,
message_sequence_number: 58510,
julian_date: 19664,
millis_after_midnight: 7630137,
num_of_message_segments: 5,
message_segment_num: 2,
}
2023-11-04T21:35:01.795Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T21:35:01.795Z TRACE [nexrad2] Message: MessageHeader {
2023-11-04T22:10:43.642Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T22:10:43.642Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1208,
rda_redundant_channel: 8,
message_type: 15,
message_sequence_number: 12786,
julian_date: 19663,
millis_after_midnight: 11268749,
message_sequence_number: 58510,
julian_date: 19664,
millis_after_midnight: 7630137,
num_of_message_segments: 5,
message_segment_num: 3,
}
2023-11-04T21:35:01.795Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T21:35:01.795Z TRACE [nexrad2] Message: MessageHeader {
2023-11-04T22:10:43.642Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T22:10:43.642Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1208,
rda_redundant_channel: 8,
message_type: 15,
message_sequence_number: 12786,
julian_date: 19663,
millis_after_midnight: 11268749,
message_sequence_number: 58510,
julian_date: 19664,
millis_after_midnight: 7630137,
num_of_message_segments: 5,
message_segment_num: 4,
}
2023-11-04T21:35:01.795Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T21:35:01.795Z TRACE [nexrad2] Message: MessageHeader {
2023-11-04T22:10:43.642Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T22:10:43.642Z TRACE [nexrad2] Message: MessageHeader {
message_size: 611,
rda_redundant_channel: 8,
message_type: 15,
message_sequence_number: 12786,
julian_date: 19663,
millis_after_midnight: 11268749,
message_sequence_number: 58510,
julian_date: 19664,
millis_after_midnight: 7630137,
num_of_message_segments: 5,
message_segment_num: 5,
}
2023-11-04T21:35:01.795Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T21:35:01.799Z TRACE [nexrad2] Message: MessageHeader {
message_size: 769,
rda_redundant_channel: 85,
message_type: 121,
message_sequence_number: 4,
julian_date: 1,
millis_after_midnight: 1668641394,
num_of_message_segments: 25966,
message_segment_num: 29696,
2023-11-04T22:10:43.642Z TRACE [nexrad2] unrecognized message type 15
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.642Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1208,
rda_redundant_channel: 8,
message_type: 18,
message_sequence_number: 11,
julian_date: 19664,
millis_after_midnight: 3959931,
num_of_message_segments: 4,
message_segment_num: 1,
}
2023-11-04T21:35:01.799Z TRACE [nexrad2] unrecognized message type 121
2023-11-04T21:35:01.799Z TRACE [nexrad2] Message: MessageHeader {
message_size: 769,
rda_redundant_channel: 85,
message_type: 121,
message_sequence_number: 4,
julian_date: 2,
millis_after_midnight: 0,
num_of_message_segments: 0,
message_segment_num: 0,
2023-11-04T22:10:43.643Z TRACE [nexrad2] unrecognized message type 18
2023-11-04T22:10:43.643Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1208,
rda_redundant_channel: 8,
message_type: 18,
message_sequence_number: 11,
julian_date: 19664,
millis_after_midnight: 3959931,
num_of_message_segments: 4,
message_segment_num: 2,
}
2023-11-04T21:35:01.799Z TRACE [nexrad2] unrecognized message type 121
2023-11-04T21:35:01.799Z TRACE [nexrad2] Message: MessageHeader {
message_size: 769,
rda_redundant_channel: 85,
message_type: 121,
message_sequence_number: 4,
julian_date: 3,
millis_after_midnight: 0,
num_of_message_segments: 0,
message_segment_num: 0,
2023-11-04T22:10:43.643Z TRACE [nexrad2] unrecognized message type 18
2023-11-04T22:10:43.643Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1208,
rda_redundant_channel: 8,
message_type: 18,
message_sequence_number: 11,
julian_date: 19664,
millis_after_midnight: 3959931,
num_of_message_segments: 4,
message_segment_num: 3,
}
2023-11-04T21:35:01.799Z TRACE [nexrad2] unrecognized message type 121
2023-11-04T21:35:01.799Z TRACE [nexrad2] Message: MessageHeader {
message_size: 769,
rda_redundant_channel: 85,
message_type: 121,
message_sequence_number: 4,
julian_date: 4,
millis_after_midnight: 0,
num_of_message_segments: 0,
message_segment_num: 0,
2023-11-04T22:10:43.643Z TRACE [nexrad2] unrecognized message type 18
2023-11-04T22:10:43.643Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1142,
rda_redundant_channel: 8,
message_type: 18,
message_sequence_number: 11,
julian_date: 19664,
millis_after_midnight: 3959931,
num_of_message_segments: 4,
message_segment_num: 4,
}
2023-11-04T21:35:01.799Z TRACE [nexrad2] unrecognized message type 121
2023-11-04T21:35:01.799Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1,
rda_redundant_channel: 0,
message_type: 1,
message_sequence_number: 0,
julian_date: 0,
millis_after_midnight: 906635245,
num_of_message_segments: 63506,
message_segment_num: 53479,
2023-11-04T22:10:43.643Z TRACE [nexrad2] unrecognized message type 18
2023-11-04T22:10:43.643Z TRACE [nexrad2] extra segment message
2023-11-04T22:10:43.643Z TRACE [nexrad2] Message: MessageHeader {
message_size: 488,
rda_redundant_channel: 8,
message_type: 3,
message_sequence_number: 10307,
julian_date: 19664,
millis_after_midnight: 52331198,
num_of_message_segments: 1,
message_segment_num: 1,
}
2023-11-04T21:35:01.799Z TRACE [nexrad2] unrecognized message type 1
2023-11-04T21:35:01.799Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1,
rda_redundant_channel: 0,
message_type: 1,
message_sequence_number: 287,
julian_date: 2,
millis_after_midnight: 2293772,
num_of_message_segments: 257,
message_segment_num: 514,
2023-11-04T22:10:43.643Z TRACE [nexrad2] unrecognized message type 3
2023-11-04T22:10:43.643Z TRACE [nexrad2] Message: MessageHeader {
message_size: 433,
rda_redundant_channel: 8,
message_type: 5,
message_sequence_number: 10308,
julian_date: 19664,
millis_after_midnight: 52331198,
num_of_message_segments: 1,
message_segment_num: 1,
}
2023-11-04T21:35:01.799Z TRACE [nexrad2] unrecognized message type 1
2023-11-04T21:35:01.799Z TRACE [nexrad2] Message: MessageHeader {
message_size: 1,
rda_redundant_channel: 0,
message_type: 1,
message_sequence_number: 16,
julian_date: 4,
millis_after_midnight: 262146,
num_of_message_segments: 896,
message_segment_num: 10,
2023-11-04T22:10:43.643Z TRACE [nexrad2] unrecognized message type 5
2023-11-04T22:10:43.643Z TRACE [nexrad2] Message: MessageHeader {
message_size: 68,
rda_redundant_channel: 8,
message_type: 2,
message_sequence_number: 10306,
julian_date: 19664,
millis_after_midnight: 52331198,
num_of_message_segments: 1,
message_segment_num: 1,
}
2023-11-04T22:10:43.643Z TRACE [nexrad2] 1 messages loaded from chunk
2023-11-04T22:10:43.643Z INFO [nexrad2] File loaded successfully! 1 messages loaded in 1 chunks

View File

@ -102,6 +102,15 @@ function zulu() {
return `${date.getUTCHours().toString().padStart(2, '0')}:${date.getUTCMinutes().toString().padStart(2, '0')}:${date.getUTCSeconds().toString().padStart(2, '0')}Z`;
}
function vcp(vc) {
if (vc === 31) { return "CLEAR AIR MODE LONG PULSE"; }
else if (vc === 35) { return "CLEAR AIR MODE"; }
else if (vc === 12) { return "PRECIP MODE"; }
else if (vc === 112) { return "PRECIP MODE SZ-2 PRF"; }
else if (vc === 212) { return "PRECIP MODE SZ-2"; }
else if (vc === 215) { return "PRECIP MODE VERT"; }
}
let command_buf = "";
let buf_response_mode = false;
@ -133,9 +142,16 @@ function cmd_err(err) {
}
let ar2 = undefined;
let new_file_available = false;
document.getElementById("file").onchange = () => {
new_file_available = true;
}
async function load() {
new_file_available = false;
const file = document.getElementById("file").files[0];
document.getElementById("file").value = null;
const reader = new FileReader();
reader.addEventListener('load', (event) => {
let data = event.target.result;
@ -217,7 +233,7 @@ function reRender() {
if (ar2 !== undefined) {
radar_inoperative = false;
icao = ar2.volume_header_record.icao;
site_string = `${icao} VCP INFORMATION UNAVAILABLE`;
site_string = `${icao} VCP ${ar2.meta_rda_status_data.vcp} ${vcp(ar2.meta_rda_status_data.vcp)}`;
selected_mode = "REF";
} else {
radar_inoperative = true;
@ -258,6 +274,11 @@ function reRender() {
ctx.fillText("RADR INOP NO DATA LOADED", x0 + 50, y0 + 50 + preferences.FCS);
ctx.fillStyle = green;
}
if (new_file_available) {
ctx.fillStyle = blinkyColor;
ctx.fillText("NEW DATA AVAIL RLD RQD", x0 + 50, y0 + 50 + preferences.FCS * 2);
ctx.fillStyle = green;
}
ctx.textAlign = "right";
ctx.fillText("RADAR SITE", xfull - 75, y0 + 50);

View File

@ -19,7 +19,8 @@ pub mod message2;
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Nexrad2Chunk {
pub volume_header_record: VolumeHeaderRecord,
pub chunks: Vec<Vec<Message>>
pub chunks: Vec<Vec<Message>>,
pub meta_rda_status_data: Msg02RDAStatusData
}
#[derive(Debug, Clone, PartialEq, Eq)]
@ -59,7 +60,8 @@ pub enum NexradParseError {
TcmHeaderReadFailed(io::Error),
TcmChunkReadFailed(io::Error),
FailedToReadFile(io::Error),
LdmReadFailed(io::Error)
LdmReadFailed(io::Error),
MissingMsg02
}
impl Display for NexradParseError {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
@ -75,7 +77,8 @@ impl Display for NexradParseError {
Self::TcmHeaderReadFailed(e) => write!(f, "tcm message header read failed: {}", e),
Self::TcmChunkReadFailed(e) => write!(f, "tcm chunk read failed: {}", e),
Self::FailedToReadFile(e) => write!(f, "failed to read file: {}", e),
Self::LdmReadFailed(e) => write!(f, "ldm read failed: {}", e)
Self::LdmReadFailed(e) => write!(f, "ldm read failed: {}", e),
Self::MissingMsg02 => write!(f, "missing RDA status data (message type 02) in metadata header")
}
}
}
@ -170,7 +173,9 @@ pub fn parse_nx2_chunk(cursor: &mut (impl Read + Seek)) -> Result<Nexrad2Chunk,
message_segment_num: u16::from_be_bytes(message_header[14..].try_into().unwrap()),
};
let mut body_buf = vec![0u8; MESSAGE_BODY_SIZE];
let body_size = MESSAGE_BODY_SIZE.max(message_header.message_size as usize);
let mut body_buf = vec![0u8; body_size];
decompressed.read_exact(&mut body_buf).map_err(|e| NexradParseError::TcmChunkReadFailed(e))?;
@ -194,18 +199,37 @@ pub fn parse_nx2_chunk(cursor: &mut (impl Read + Seek)) -> Result<Nexrad2Chunk,
trace!("{} messages loaded from chunk", messages.len());
records.push(messages);
break;
}
info!("Extracting meta records");
let mut msg2: Option<Msg02RDAStatusData> = None;
let mut messages = 0;
for chunk in &records {
messages += chunk.len();
for message in chunk {
match message {
Message::Msg02(m) if msg2.is_none() => { msg2 = Some(m.clone()); },
_ => ()
}
}
}
let msg2 = match msg2 {
Some(m) => m,
None => return Err(NexradParseError::MissingMsg02)
};
info!("File loaded successfully! {} messages loaded in {} chunks", messages, records.len());
Ok(Nexrad2Chunk {
volume_header_record: header,
chunks: records
chunks: records,
meta_rda_status_data: msg2
})
}

View File

@ -3,7 +3,7 @@ use crate::NexradParseError;
pub const MSG_RDA_STATUS_DATA: u8 = 2;
#[derive(Debug)]
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Msg02RDAStatusData {
rda_status: u16,