diff --git a/CLAUDE.md b/CLAUDE.md index c4e49b5..cc31847 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -59,7 +59,7 @@ GENERAL STUFF ================================================================== Please note that all on-screen text shall be white and fully -illuminated and is not subject to phosphor persistance or decay. +illuminated and is not subject to phosphor persistence or decay. Exceptions: @@ -82,7 +82,7 @@ Maximum Range 10 miles for precision approach radar; graticule is parallax The proposed location of the marine radar antenna is in the middle of Bellingham -Bay on a 100 foot platform. (This should be mentioned as fictitous in the description) +Bay on a 100 foot platform. (This should be mentioned as fictitious in the description) Location is 48.74361448950435 latitude, -122.56466911663048 longitude The proposed location of the air traffic control radar is the Bellingham @@ -195,8 +195,8 @@ should be articulated in the descriptive text rate is 1/2 of the standard 50 Hz for British power. The operator did have a switch to switch from the 25 pulses per second PRF to 12.5 - pulses per second PRF so that they could help eliminate teh range ambiguity - problem, where a target that is away could appear to be right on site since that echo + pulses per second PRF so that they could help eliminate the range ambiguity + problem, where a target far away could appear to be right on site since that echo would return at the precise time for the next pulse to go out at 25 PRF. This needs to be explained in the explainer window for the chain home. Mention that mountains or planes in the continent could have that kind of range. Furthermore, the operator can reduce @@ -206,14 +206,14 @@ should be articulated in the descriptive text Let's assign key . for toggling between 25 and 12.5 PRF. There is no range selection. Note on description; this is to reduce use of the shift key. - Because of the slow repitition rate, the phosphor used was a early implementation + Because of the slow repetition rate, the phosphor used was an early implementation of the p7 phosphor so that the targets will still glow between the sweeps and not cause flickering. Another unique feature would be a response to the drifting problem in early electronics. The scope electronics would use a crystal calibrator that puts tiny pips or spikes at - known intervals (10 miles). The operator would use a knob, or control, to stretch or - shrink the electronic trace so tht the 10 mile pips align perfectly with the 10 mile + known intervals (10 miles). The operator would use a knob, or control, to stretch or + shrink the electronic trace so that the 10 mile pips align perfectly with the 10 mile marks on the edge lit glass graticule. Let's assign key n for shrink and m for stretch. (may be ambiguous, but I am running @@ -223,9 +223,9 @@ should be articulated in the descriptive text 4. Marine PPI Scope - marine scopes have the following items in common: Targets, range rings, and range ring text levels shall be treated the same for - presentation. All are P7 phosphor. Immediatel strike by the electron beam is blue. - persistance is green/yellow. Targets, range rings, and range ring labels shall all - persiste and fade out together. They should be faded out by the time the sweep + presentation. All are P7 phosphor. Immediate strike by the electron beam is blue. + persistence is green/yellow. Targets, range rings, and range ring labels shall all + persist and fade out together. They should be faded out by the time the sweep to that location. The maximum range settings are 6 miles for the marine radar scope @@ -245,16 +245,16 @@ should be articulated in the descriptive text Bear in mind that the max range setting is independent for both radars. - The bearing graticle (lit incandescent) There shold + The bearing graticule (lit incandescent) There should be an inner circle with tickmarks for each degree, starting at 0 (north) and going - clockwise to the last tick, which is 359. Outside the innter ring shall be text + clockwise to the last tick, which is 359. Outside the inner ring shall be text labels for every 15 degrees. Outside the text labels, there will be an outer ring. Both inner and outer rings, along with ticks, and the bearing labels are to be incandescent color. The sweep time shall be 4 seconds for the marine scope - The sweep direction is clockwise, which means that the entenna + The sweep direction is clockwise, which means that the antenna dish rotates clockwise. The scope has a cursor for range and bearing. The cursor consists of a @@ -270,9 +270,9 @@ should be articulated in the descriptive text 5. Air Traffic PPI Scope - Targets, range rings, and range ring text levels - All are P7 phosphor. Immediatel strike by the electron beam is blue. - persistance is green/yellow. Targets, range rings, and range ring labels shall all - persiste and fade out together. They should be faded out by the time the sweep + All are P7 phosphor. Immediate strike by the electron beam is blue. + persistence is green/yellow. Targets, range rings, and range ring labels shall all + persist and fade out together. They should be faded out by the time the sweep to that location. Rings should be 5,10,15,20 for the air traffic control radar. @@ -292,9 +292,9 @@ should be articulated in the descriptive text Bear in mind that the max range setting is independent for both radars. - The bearing graticle (lit incandescent) for the scopes are the same. There shold + The bearing graticule (lit incandescent) for the scopes are the same. There should be an inner circle with tickmarks for each degree, starting at 0 (north) and going - clockwise to the last tick, which is 359. Outside the innter ring shall be text + clockwise to the last tick, which is 359. Outside the inner ring shall be text labels for every 15 degrees. Outside the text labels, there will be an outer ring. Both inner and outer rings, along with ticks, and the bearing labels are to be incandescent color. @@ -302,7 +302,7 @@ should be articulated in the descriptive text The sweep time shall be 5 seconds for the air traffic scope. - The sweep direction on the scope is clockwise, which means that the entenna + The sweep direction on the scope is clockwise, which means that the antenna dish rotates clockwise. The scope has cursor for range and bearing. The cursor consists of a @@ -394,17 +394,31 @@ SUMMARY OF Controls: │ n │ Calibrator shrink │ │ │ ✓ │ │ │ │ ├─────┼─────────────────────────────────────┼───────┼──────────┼──────────────┼────────────┼─────────┼─────┤ │ m │ Calibrator stretch │ │ │ ✓ │ │ │ │ + ├─────┼─────────────────────────────────────┼───────┼──────────┼──────────────┼────────────┼─────────┼─────┤ + │ 1 │ Gain increase │ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ + ├─────┼─────────────────────────────────────┼───────┼──────────┼──────────────┼────────────┼─────────┼─────┤ + │ 2 │ Gain decrease │ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ + ├─────┼─────────────────────────────────────┼───────┼──────────┼──────────────┼────────────┼─────────┼─────┤ + │ 3 │ Rain clutter filter increase │ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ + ├─────┼─────────────────────────────────────┼───────┼──────────┼──────────────┼────────────┼─────────┼─────┤ + │ 4 │ Rain clutter filter decrease │ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ + ├─────┼─────────────────────────────────────┼───────┼──────────┼──────────────┼────────────┼─────────┼─────┤ + │ 5 │ Wave clutter filter increase │ │ ✓ │ ✓ │ ✓ │ │ │ + ├─────┼─────────────────────────────────────┼───────┼──────────┼──────────────┼────────────┼─────────┼─────┤ + │ 6 │ Wave clutter filter decrease │ │ ✓ │ ✓ │ ✓ │ │ │ └─────┴─────────────────────────────────────┴───────┴──────────┴──────────────┴────────────┴─────────┴─────┘ -Table for general controls not implemented on the keyboard in the table above: +Table for general controls not yet implemented on the keyboard in the table above: 1. Intensity 2. Focus 3. Astigmatism -4. Gain -5. rain clutter -6. water wave clutter -7. graticule light intensity +4. Graticule light intensity + +Note: Gain (keys 1/2), rain clutter (keys 3/4), and wave clutter (keys 5/6) are now +in the keyboard control table above. They remain physical encoder controls on the +operator panel when that hardware is installed; the keyboard keys are the temporary +stand-in. All three have defaults in settings.h. SUMMARY of target handling: @@ -435,6 +449,11 @@ in. SharedRenderState holds the default values unchanged; Thread 1 reads and app every frame. No feature flags or conditional compilation are needed — the code path is complete end-to-end, always at the compile-time default. +Three of the 7 general controls — Gain, Rain Clutter, and Wave Clutter — have temporary +keyboard implementations (keys 1/2, 3/4, and 5/6 respectively) that write to the same +SharedRenderState fields the hardware encoders will eventually write to. When physical +encoders are installed, the keyboard keys can be removed or left as redundant overrides. + Things to note about the keyboard type controls. The letter on the keyboard are temporary. When I get around to making the operators panel, this all will go away. @@ -618,3 +637,7 @@ settings.h — tunable constants: - PAR azimuth/elevation height fractions - UI text color and size; cursor readout text size - Graticule label color (incandescent) + - Gain: default (0.5), minimum (0.0), maximum (1.0), keyboard step size + - Rain clutter filter: default (0.0 = off), minimum (0.0), maximum (1.0), keyboard step size + - Wave clutter filter: default (0.0 = off), minimum (0.0), maximum (1.0), keyboard step size + - Key-hold acceleration for gain, rain clutter, and wave clutter keys diff --git a/additions b/additions index 0124c83..6f3a2c0 100644 --- a/additions +++ b/additions @@ -23,32 +23,33 @@ DATABASE Schema: For performance, we can keep id, width, length, and height, and material inside the shaders as fixed data; but have location, heading, and altitude (aircraft) -The items in the database (to start with) would be the Enumeration, The ID, width, height, -and material. Suggestion: Uniform Buffer Object for the id, width, height, material - The items that are updated per data coming in from the raspberry pis and the simulator are orientation / RCS (based on heading), location (in longitude and latitude) and ID ; Suggestion vertex objects or SSBO Suggest that CPU compute the RCS based on heading and dimensions and altitude (aircraft) +In doing this, keep this work outside of any mutex lock of any shared data Maybe, if I simulate a modern system, I may want a field to describe the target (passenger, cargo, oil, fishing; and maybe specifics for the targets. I know that the coast guard has a lot of -contextual data on targets that are from external sources. For now, lets now worry about this. +contextual data on targets that are from external sources. For now, let's not worry about this. PROPOSAL: Since ADS-b and AIS may not have material and size data, I would like to propose -That the initial running of the system upon detecting a target that has no size -determinatioin, we use a default size, say, 20 feet long 20 feet wide and fiberglass +That the initial running of the system upon detecting a target that has no size +determination, we use a default size, say, 20 feet long 20 feet wide and fiberglass for boats; 50 feet long 10 feet wide fusalage for planes; and set the need update parameter to need update. Add an option (command line option) for system. Command line options would be 'database' which would open a graphical panel suitable for updating the postgres database. -At the begining of the life of this project, almost all targets seen except for those +At the beginning of the life of this project, almost all targets seen except for those from the simulator will need database updating; as life of the system gets older there would -be fewer targets that need operation. +be fewer targets that need operation. For this option; none of the main radar screens +will be available. So we do not have to to have the opengl and shader stuff. Use a regular +desktop based application non opengl shader database updating application. This would be ended with quit +and then the main radar application can be started. END OF PROPOSAL @@ -84,7 +85,7 @@ Note that the transmit beam is not a beam, but a floodlight. Pulse repetition frequency is 25 Hz or 12.5 Hz as selected by operator Use Transmit G from beam width (floodlight) something like G = 30000/100 degrees * 40 degrees -about 8.7 dBI (linear value of 7.5 +about 8.7 dBi (linear value of 7.5) Note that this is Bistatic; we need both Gt and Gr @@ -100,8 +101,8 @@ Peak power is about 100 kw Very high antenna gain X Band (3 cm for wavelength) Operation allow higher antenna gain PAR must reliably detect small aircraft -High pule repition rate -Sweep about 20 degrees horizontal and 10 degress vertical +High pulse repetition rate +Sweep about 20 degrees horizontal and 10 degrees vertical Short pulse width for range resolution Beamwidth is determined by wavelength/antenna size with antenna size of about 5 meters.