diff --git a/.work_note2.swp b/.work_note2.swp new file mode 100644 index 0000000..3997cb3 Binary files /dev/null and b/.work_note2.swp differ diff --git a/CLAUDE.md b/CLAUDE.md index f42864a..9bedb2a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -127,7 +127,6 @@ struct target_data_structure { std::string registration; // will be null for no registration float length; // in meters float beam; // in meters - float altitude; // in meters int vessel_type; // AIS type code or aircraft type uint32_t mmsi; // AIS unique identifier; ICAO hex address for aircraft float course; // course over ground, degrees, based on true north @@ -151,8 +150,8 @@ struct target_data_to_shader_structure { float reflectivity; // derivied from vessel_type (see table below) float height_estimate; // derived from vessel_type (see table below) float noiseglint; // derived from vessel_type (see table below) - int32_t police_boat // this indicates that the target is for the roaming police boat. 1 = police boat - int type // target type (0 for boat 1 for aircraft) + int32_t police_boat; // this indicates that the target is for the roaming police boat. 1 = police boat + int type; // target type (0 for boat 1 for aircraft) }; Please note that height and material are not included in the data received from the simulator @@ -997,8 +996,8 @@ Here is the data items for the table in the Postgres database: 1. float length 2. float beam 3. int32_t material - 1 for metal, 2 for wood, 3 for fiberglass -4. timestamp elapsed_seconds -5. binary may_need_update (this if a randome value is applied to any part of the target +4. time_t timestamp - use to check to see if this has already been processed +5. int32_t may_need_update (this if a randome value is applied to any part of the target and that the user may want to update the database. This will not force the user to do the update, a later database editing program will use this. @@ -1105,7 +1104,7 @@ struct RadarMaterialProfile { float noiseGlint; // simulated signal scintillation }; -RadarMaterialProfile getMaterialProfile(int aisTypeCode) { +RadarMaterialProfile getMaterialProfile(int vessel_type) { RadarMaterialProfile profile; switch(vessel_type) { // vessel_type is in the target_data_structure @@ -1173,6 +1172,12 @@ Data synchronization between threads must be managed explicitly using std::mutex and the marine traffic control radars. It will already have the longitude and latitude of the police boat radar as it will be processing the location of the police boat radar from the simulator. +8. Instructions regarding chain home. If the current active radar is chain home, we + need to drop all boat target and any target that is not within 300 miles from the + latitude and longitude of the chain home radar station. Furthermore all traffic from the + raspberry PI's need to be discarded for chain home. All chain home target traffic will be + beyond range for all of the other radars; therefore all such targets shall be discarded if + the active radar is not chain home. 7. Critical Section: Assert a std::mutex to gain safe writing access to the double-buffered array driving the SSBO, copy the structural contents, and clear the mutex immediately. May I suggest that this activity be performed @@ -1181,7 +1186,7 @@ Data synchronization between threads must be managed explicitly using std::mutex and the simulator may not updata every screen update. If that's the case, the traffic cop will not do anything. Also note that the SSBO maximum target capability will be 200. Oldest targets shall not be sent to the SSBO if the limit is reached. - Lets include the maximum in memory copy of the database and SSBO shouse be + Lets include the maximum in memory copy of the database and SSBO should be a value in the settings.h file.