Skip to content

Commit

Permalink
Parse both pitch and roll in XDR message
Browse files Browse the repository at this point in the history
  • Loading branch information
transmitterdan committed Jul 4, 2016
1 parent c2ecd70 commit 2ea0d74
Showing 1 changed file with 46 additions and 44 deletions.
90 changes: 46 additions & 44 deletions plugins/dashboard_pi/src/dashboard_pi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1049,51 +1049,53 @@ void dashboard_pi::SetNMEASentence( wxString &sentence )
if (m_NMEA0183.Parse()) {
wxString xdrunit;
double xdrdata;
for (int i = 0; i<m_NMEA0183.Xdr.TransducerCnt; i++){
xdrdata = m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData;
// XDR Airtemp
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerType == _T("C")){
SendSentenceToAllInstruments(OCPN_DBP_STC_ATMP, xdrdata , m_NMEA0183.Xdr.TransducerInfo[i].UnitOfMeasurement);
}
// XDR Pressure
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerType == _T("P")){
if (m_NMEA0183.Xdr.TransducerInfo[i].UnitOfMeasurement == _T("B")){
xdrdata *= 1000;
SendSentenceToAllInstruments(OCPN_DBP_STC_MDA, xdrdata , _T("mBar") );
}
}
// XDR Pitch (=Nose up/down)
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerType == _T("D")) {
if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData > 0){
xdrunit = _T("\u00B0 Nose up");
}
else if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData < 0) {
xdrunit = _T("\u00B0 Nose down");
xdrdata *= -1;
}
else {
xdrunit = _T("\u00B0");
}
SendSentenceToAllInstruments(OCPN_DBP_STC_PITCH, xdrdata, xdrunit);
}
// XDR Heel
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerType == _T("A")) {
if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData > 0) {
xdrunit = _T("\u00B0 to Starboard");
}
else if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData < 0) {
xdrunit = _T("\u00B0 to Port");
xdrdata *= -1;
}
else {
xdrunit = _T("\u00B0");
}
SendSentenceToAllInstruments(OCPN_DBP_STC_HEEL, xdrdata, xdrunit);
}
for (int i = 0; i<m_NMEA0183.Xdr.TransducerCnt; i++) {
xdrdata = m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData;
// XDR Airtemp
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerType == _T("C")) {
SendSentenceToAllInstruments(OCPN_DBP_STC_ATMP, xdrdata , m_NMEA0183.Xdr.TransducerInfo[i].UnitOfMeasurement);
}
// XDR Pressure
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerType == _T("P")) {
if (m_NMEA0183.Xdr.TransducerInfo[i].UnitOfMeasurement == _T("B")) {
xdrdata *= 1000;
SendSentenceToAllInstruments(OCPN_DBP_STC_MDA, xdrdata , _T("mBar") );
}
}
// XDR Pitch (=Nose up/down) or Heel (stb/port)
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerType == _T("A")) {
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerName == _T("PTCH")) {
if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData > 0) {
xdrunit = _T("\u00B0 Nose up");
}
else if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData < 0) {
xdrunit = _T("\u00B0 Nose down");
xdrdata *= -1;
}
else {
xdrunit = _T("\u00B0");
}
SendSentenceToAllInstruments(OCPN_DBP_STC_PITCH, xdrdata, xdrunit);
}
// XDR Heel
else if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerName == _T("ROLL")) {
if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData > 0) {
xdrunit = _T("\u00B0 to Starboard");
}
else if (m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData < 0) {
xdrunit = _T("\u00B0 to Port");
xdrdata *= -1;
}
else {
xdrunit = _T("\u00B0");
}
SendSentenceToAllInstruments(OCPN_DBP_STC_HEEL, xdrdata, xdrunit);
}
}
//Nasa style water temp
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerName == _T("ENV_WATER_T")){
SendSentenceToAllInstruments(OCPN_DBP_STC_TMP, m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData,m_NMEA0183.Xdr.TransducerInfo[i].UnitOfMeasurement);
}
if (m_NMEA0183.Xdr.TransducerInfo[i].TransducerName == _T("ENV_WATER_T")){
SendSentenceToAllInstruments(OCPN_DBP_STC_TMP, m_NMEA0183.Xdr.TransducerInfo[i].MeasurementData,m_NMEA0183.Xdr.TransducerInfo[i].UnitOfMeasurement);
}
}
}
}
Expand Down

0 comments on commit 2ea0d74

Please sign in to comment.