@@ -981,16 +981,18 @@ private function readDataRecords()
981981 $ tmp_value = null ; // Placeholder for value for checking before inserting into the tmp_record_array
982982
983983 foreach ($ this ->defn_mesgs [$ local_mesg_type ]['field_defns ' ] as $ field_defn ) {
984- // Check that we have information on the Field Definition and a valud base type exists.
984+ // Check that we have information on the Field Definition and a valid base type exists.
985985 if (isset ($ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]) && isset ($ this ->types [$ field_defn ['base_type ' ]])) {
986- // If it's a Record data message, store all the pieces in the temporary array as the timestamp may not be first...
987- if ($ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ] === 20 ) {
988- $ tmp_value = unpack ($ this ->types [$ field_defn ['base_type ' ]], substr ($ this ->file_contents , $ this ->file_pointer , $ field_defn ['size ' ]))['tmp ' ];
989-
990- // Check if it's an invalid value for the type
991- $ tmp_record_array [$ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['field_name ' ]] = ($ tmp_value !== $ this ->invalid_values [$ field_defn ['base_type ' ]]) ? $ tmp_value / $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['scale ' ] - $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['offset ' ] : null ;
992- } else {
993- $ this ->data_mesgs [$ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['mesg_name ' ]][$ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['field_name ' ]][] = (unpack ($ this ->types [$ field_defn ['base_type ' ]], substr ($ this ->file_contents , $ this ->file_pointer , $ field_defn ['size ' ]))['tmp ' ] / $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['scale ' ]) - $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['offset ' ];
986+ // Check if it's an invalid value for the type
987+ $ tmp_value = unpack ($ this ->types [$ field_defn ['base_type ' ]], substr ($ this ->file_contents , $ this ->file_pointer , $ field_defn ['size ' ]))['tmp ' ];
988+ if ($ tmp_value !== $ this ->invalid_values [$ field_defn ['base_type ' ]]) {
989+
990+ // If it's a Record data message, store all the pieces in the temporary array as the timestamp may not be first...
991+ if ($ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ] === 20 ) {
992+ $ tmp_record_array [$ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['field_name ' ]] = $ tmp_value / $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['scale ' ] - $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['offset ' ];
993+ } else {
994+ $ this ->data_mesgs [$ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['mesg_name ' ]][$ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['field_name ' ]][] = $ tmp_value / $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['scale ' ] - $ this ->data_mesg_info [$ this ->defn_mesgs [$ local_mesg_type ]['global_mesg_num ' ]]['field_defns ' ][$ field_defn ['field_definition_number ' ]]['offset ' ];
995+ }
994996 }
995997 }
996998 $ this ->file_pointer += $ field_defn ['size ' ];
0 commit comments