Closed rgleason closed 1 year ago
Using this file and VDR to test [Uploading Hakefjord-Sweden-1m.txt…]()
Some more screen shots.
Why is the range always calculated to be 4nm for all AIStargets?
Something has changed in wxWidgets 3.2.1 here. Some wxWidgets function is not working or has been dropped in this new version!!!
Range is not calculating properly.
Search on "range"
C:\Users\fcgle\source\aisradar_pi\src\aisradar_pi.cpp (10 hits)
Line 80: m_ais_range(0),
Line 379: // { "Brg" : 180, Range : 1.2 },
Line 380: // { "Brg" : 359, Range : 8.3 },
Line 381: // { "Brg" : 34, Range : 0.9 },
Line 382: // { "Brg" : 13, Range : 0.4 },
Line 383: // { "Brg" : 57, Range : 0.7 }
Line 459: m_ais_range = pConf->Read ( _T ( "RADARRange" ), 4L );
Line 478: pConf->Write ( _T ( "RADARRange" ), m_ais_range );
C:\Users\fcgle\source\aisradar_pi\src\aisradar_pi.h (5 hits)
Line 86: void SetAisRange (int x) { m_ais_range = x; }
Line 88: int GetAisRange (void) { return m_ais_range; }
Line 113: int m_ais_range;
C:\Users\fcgle\source\aisradar_pi\src\aisview.cpp (40 hits)
Line 36: static const double RangeData[9] = {
Line 40: enum Ids { cbRangeId = 10001,
Line 59: EVT_COMBOBOX ( cbRangeId, AisFrame::OnRange)
Line 72: m_pRange(0),
Line 76: m_Range(0),
Line 131: wxStaticText *st1 = new wxStaticText(panel,wxID_ANY,_("Range"));
Line 133: m_pRange = new wxComboBox(panel, cbRangeId, wxT(""));
Line 134: m_pRange->Append(wxT("0.25"));
Line 135: m_pRange->Append(wxT("0.5") );
Line 136: m_pRange->Append(wxT("1") );
Line 137: m_pRange->Append(wxT("2") );
Line 138: m_pRange->Append(wxT("4") );
Line 139: m_pRange->Append(wxT("8") );
Line 140: m_pRange->Append(wxT("12") );
Line 141: m_pRange->Append(wxT("16") );
Line 142: m_pRange->Append(wxT("32") );
Line 143: m_pRange->SetSelection(pPlugIn->GetAisRange());
Line 144: controls->Add(m_pRange);
Line 193: void AisFrame::OnRange ( wxCommandEvent& event ) {
Line 194: pPlugIn->SetAisRange(m_pRange->GetSelection());
Line 251: int cur = m_pRange->GetSelection();
Line 253: m_pRange->SetSelection(--cur);
Line 255: if ( rotation < 0 && cur < int(m_pRange->GetCount()) - 1 ) {
Line 256: m_pRange->SetSelection(++cur);
Line 293: renderRange(dc, center, size, radius);
Line 330: dt.SetNavDetails(RangeData[m_pRange->GetSelection()], offset, m_ShowCogArrows, m_CogArrowMinutes);
Line 335: if (t->Range_NM>0.0 && t->Brg>0.0) {
Line 342: dt.SetState(t->MMSI, Name, t->Range_NM, t->Brg, t->COG, t->SOG, t->HDG,
Line 351: void AisFrame::renderRange(wxDC& dc, wxPoint ¢er, wxSize &size, int radius) {
Line 370: // Draw the range description
Line 375: float Range=RangeData[m_pRange->GetSelection()];
Line 376: dc.DrawText(wxString::Format(wxT("%s %2.2f"), _("Range"),Range ), 0, 0);
C:\Users\fcgle\source\aisradar_pi\src\aisview.h (4 hits)
Line 112: void OnRange( wxCommandEvent& event );
Line 119: void renderRange( wxDC& dc, wxPoint ¢er, wxSize &size, int radius );
Line 129: wxComboBox *m_pRange;
Line 133: int m_Range;
C:\Users\fcgle\source\aisradar_pi\src\Target.cpp (8 hits)
Line 104: Range( 0. ),
Line 133: void Target::SetNavDetails(double range, double mycog, bool showarrow, int arrowminutes) {
Line 134: Range=range;
Line 166: int vsize = ((double)ArrowMinutes/60)* Sog / Range * (double)Radius ;
Line 325: // Check if the target is less than sqrt 2 times the range away
Line 328: if (Dist < Range * 1.4) {
Line 334: double delta= Dist/Range*(double)Radius;
C:\Users\fcgle\source\aisradar_pi\src\Target.h (2 hits)
Line 99: void SetNavDetails(double range, double mycog, // details of navigation view
Line 119: double Range;
Search on Bearing
C:\Users\fcgle\source\aisradar_pi\src\aisview.cpp (12 hits)
Line 42: cbBearingLineId,
Line 61: EVT_CHECKBOX ( cbBearingLineId, AisFrame::OnBearingLine )
Line 73: m_pBearingLine(0),
Line 153: m_pBearingLine = new wxCheckBox(panel, cbBearingLineId, _("EBL"));
Line 154: m_pBearingLine->SetValue(false);
Line 155: controls->Add(m_pBearingLine, 0, wxLEFT, 10);
Line 216: void AisFrame::OnBearingLine( wxCommandEvent& event ) {
Line 222: if (m_pBearingLine->GetValue()) {
Line 398: if (m_pBearingLine->GetValue()) {
Line 399: // Display and estimated bearing line
C:\Users\fcgle\source\aisradar_pi\src\aisview.h (2 hits)
Line 114: void OnBearingLine( wxCommandEvent& event );
Line 130: wxCheckBox *m_pBearingLine;
Removed from PIM until these problems are fixed.
Bdbcat advised that this was caused by an OpenCPN optimization that reduced the AIS target stream via the API. This has been fixed in O5.8.2
They are all bunched up at one range. Also zooming in to .5 nm does not display the respective ships properly in the right location. Something isn't calculating the locations correctly.