diff --git a/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.cpp b/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.cpp index 1bc80d2735..2cc0544b02 100644 --- a/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.cpp +++ b/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.cpp @@ -1,21 +1,23 @@ /* - Copyright 2022 Sagetech Avionics Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - https://github.com/Sagetech-Avionics/sagetech-mxs-sdk/blob/main/doc/pdf/ICD02373_MXS_Host_ICD.pdf - - Author: Chuck Faber, Tom Pittenger + * Copyright (C) 2022 Sagetech Avionics Inc. All rights reserved. + * + * This file is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + * SDK specification + * https://github.com/Sagetech-Avionics/sagetech-mxs-sdk/blob/main/doc/pdf/ICD02373_MXS_Host_ICD.pdf + * + * Authors: Chuck Faber, Tom Pittenger */ @@ -27,6 +29,9 @@ #include #include #include +#include + +#define SAGETECH_USE_MXS_SDK !APM_BUILD_TYPE(APM_BUILD_UNKNOWN) #define MXS_INIT_TIMEOUT 20000 @@ -164,6 +169,7 @@ void AP_ADSB_Sagetech_MXS::update() void AP_ADSB_Sagetech_MXS::handle_packet(const Packet &msg) { +#if SAGETECH_USE_MXS_SDK switch (msg.type) { case MsgType::ACK: if(sgDecodeAck((uint8_t*) &msg, &mxs_state.ack)) { @@ -248,6 +254,7 @@ void AP_ADSB_Sagetech_MXS::handle_packet(const Packet &msg) // unhandled or intended for out-bound only break; } +#endif // SAGETECH_USE_MXS_SDK } bool AP_ADSB_Sagetech_MXS::parse_byte(const uint8_t data) @@ -351,9 +358,11 @@ void AP_ADSB_Sagetech_MXS::auto_config_operating() last.msg.type = SG_MSG_TYPE_HOST_OPMSG; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_OPMSG] {}; sgEncodeOperating(txComBuffer, &mxs_state.op, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_OPMSG); +#endif } void AP_ADSB_Sagetech_MXS::auto_config_installation() @@ -385,9 +394,11 @@ void AP_ADSB_Sagetech_MXS::auto_config_installation() last.msg.type = SG_MSG_TYPE_HOST_INSTALL; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_INSTALL] {}; sgEncodeInstall(txComBuffer, &mxs_state.inst, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_INSTALL); +#endif } void AP_ADSB_Sagetech_MXS::auto_config_flightid() @@ -399,9 +410,11 @@ void AP_ADSB_Sagetech_MXS::auto_config_flightid() } last.msg.type = SG_MSG_TYPE_HOST_FLIGHT; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_FLIGHT] {}; sgEncodeFlightId(txComBuffer, &mxs_state.fid, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_FLIGHT); +#endif } void AP_ADSB_Sagetech_MXS::handle_ack(const sg_ack_t ack) @@ -502,9 +515,13 @@ void AP_ADSB_Sagetech_MXS::send_data_req(const sg_datatype_t dataReqType) dataReq.reqType = dataReqType; last.msg.type = SG_MSG_TYPE_HOST_DATAREQ; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_DATAREQ] {}; sgEncodeDataReq(txComBuffer, &dataReq, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_DATAREQ); +#else + (void)dataReq; +#endif } void AP_ADSB_Sagetech_MXS::send_install_msg() @@ -523,9 +540,11 @@ void AP_ADSB_Sagetech_MXS::send_install_msg() last.msg.type = SG_MSG_TYPE_HOST_INSTALL; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_INSTALL] {}; sgEncodeInstall(txComBuffer, &mxs_state.inst, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_INSTALL); +#endif } void AP_ADSB_Sagetech_MXS::send_flight_id_msg() @@ -537,9 +556,11 @@ void AP_ADSB_Sagetech_MXS::send_flight_id_msg() last.msg.type = SG_MSG_TYPE_HOST_FLIGHT; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_FLIGHT] {}; sgEncodeFlightId(txComBuffer, &mxs_state.fid, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_FLIGHT); +#endif } void AP_ADSB_Sagetech_MXS::send_operating_msg() @@ -598,9 +619,11 @@ void AP_ADSB_Sagetech_MXS::send_operating_msg() last.msg.type = SG_MSG_TYPE_HOST_OPMSG; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_OPMSG] {}; sgEncodeOperating(txComBuffer, &mxs_state.op, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_OPMSG); +#endif } void AP_ADSB_Sagetech_MXS::send_gps_msg() @@ -674,9 +697,13 @@ void AP_ADSB_Sagetech_MXS::send_gps_msg() last.msg.type = SG_MSG_TYPE_HOST_GPS; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_GPS] {}; sgEncodeGPS(txComBuffer, &gps, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_GPS); +#else + (void)gps; +#endif } void AP_ADSB_Sagetech_MXS::send_targetreq_msg() @@ -696,9 +723,11 @@ void AP_ADSB_Sagetech_MXS::send_targetreq_msg() last.msg.type = SG_MSG_TYPE_HOST_TARGETREQ; +#if SAGETECH_USE_MXS_SDK uint8_t txComBuffer[SG_MSG_LEN_TARGETREQ] {}; sgEncodeTargetReq(txComBuffer, &mxs_state.treq, ++last.msg.id); msg_write(txComBuffer, SG_MSG_LEN_TARGETREQ); +#endif } sg_emitter_t AP_ADSB_Sagetech_MXS::convert_emitter_type_to_sg(const uint8_t emitterType) const diff --git a/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.h b/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.h index f12af24c7e..ec669cf39d 100644 --- a/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.h +++ b/libraries/AP_ADSB/AP_ADSB_Sagetech_MXS.h @@ -1,21 +1,23 @@ /* - Copyright 2022 Sagetech Avionics Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - https://github.com/Sagetech-Avionics/sagetech-mxs-sdk/blob/main/doc/pdf/ICD02373_MXS_Host_ICD.pdf - - Author: Chuck Faber, Tom Pittenger + * Copyright (C) 2022 Sagetech Avionics Inc. All rights reserved. + * + * This file is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + * SDK specification + * https://github.com/Sagetech-Avionics/sagetech-mxs-sdk/blob/main/doc/pdf/ICD02373_MXS_Host_ICD.pdf + * + * Authors: Chuck Faber, Tom Pittenger */ #pragma once