2017-02-01 05:33:31 +01:00
|
|
|
/*
|
2020-10-23 15:43:06 +02:00
|
|
|
* Copyright (C) 2015,2016,2020 by Jonathan Naylor G4KLX
|
2019-02-11 18:49:59 +01:00
|
|
|
* Copyright (C) 2016,2017,2018,2019 by Andy Uribe CA6JAU
|
2019-01-31 17:36:38 +01:00
|
|
|
* Copyright (C) 2019 by Florian Wolters DF2ET
|
2017-02-01 05:33:31 +01:00
|
|
|
*
|
|
|
|
|
* This program 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 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program 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, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#if !defined(GLOBALS_H)
|
|
|
|
|
#define GLOBALS_H
|
|
|
|
|
|
|
|
|
|
#if defined(STM32F10X_MD)
|
|
|
|
|
#include <stm32f10x.h>
|
|
|
|
|
#include "string.h"
|
2017-10-10 03:42:22 +02:00
|
|
|
#elif defined(STM32F4XX)
|
|
|
|
|
#include "stm32f4xx.h"
|
|
|
|
|
#include "string.h"
|
|
|
|
|
#elif defined(STM32F7XX)
|
|
|
|
|
#include "stm32f7xx.h"
|
|
|
|
|
#include "string.h"
|
2017-02-01 05:33:31 +01:00
|
|
|
#else
|
|
|
|
|
#include <Arduino.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
enum MMDVM_STATE {
|
|
|
|
|
STATE_IDLE = 0,
|
|
|
|
|
STATE_DSTAR = 1,
|
|
|
|
|
STATE_DMR = 2,
|
|
|
|
|
STATE_YSF = 3,
|
2017-12-27 17:35:29 +01:00
|
|
|
STATE_P25 = 4,
|
2018-02-13 05:52:34 +01:00
|
|
|
STATE_NXDN = 5,
|
2018-06-18 02:10:00 +02:00
|
|
|
STATE_POCSAG = 6,
|
2020-10-23 15:43:06 +02:00
|
|
|
STATE_M17 = 7,
|
2017-12-27 17:35:29 +01:00
|
|
|
|
|
|
|
|
// Dummy states start at 90
|
2018-02-15 18:27:04 +01:00
|
|
|
STATE_DMRDMO1K = 92,
|
2018-02-18 03:56:23 +01:00
|
|
|
STATE_RSSICAL = 96,
|
2018-02-15 18:27:04 +01:00
|
|
|
STATE_CWID = 97,
|
|
|
|
|
STATE_DMRCAL = 98,
|
2018-11-04 18:34:31 +01:00
|
|
|
STATE_DSTARCAL = 99,
|
2019-01-31 17:36:38 +01:00
|
|
|
STATE_INTCAL = 100,
|
|
|
|
|
STATE_POCSAGCAL = 101
|
2017-02-01 05:33:31 +01:00
|
|
|
};
|
|
|
|
|
|
2017-04-30 04:05:03 +02:00
|
|
|
const uint8_t MARK_SLOT1 = 0x08U;
|
|
|
|
|
const uint8_t MARK_SLOT2 = 0x04U;
|
|
|
|
|
const uint8_t MARK_NONE = 0x00U;
|
|
|
|
|
|
2017-07-26 06:49:22 +02:00
|
|
|
// Bidirectional Data pin (Enable Standard TX/RX Data Interface of ADF7021):
|
|
|
|
|
#define BIDIR_DATA_PIN
|
|
|
|
|
|
2017-02-01 05:33:31 +01:00
|
|
|
#include "IO.h"
|
|
|
|
|
#include "SerialPort.h"
|
|
|
|
|
#include "DMRDMORX.h"
|
|
|
|
|
#include "DMRDMOTX.h"
|
2017-04-30 04:05:03 +02:00
|
|
|
|
|
|
|
|
#if defined(DUPLEX)
|
|
|
|
|
#include "DMRIdleRX.h"
|
|
|
|
|
#include "DMRRX.h"
|
|
|
|
|
#include "DMRTX.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
2017-02-01 05:33:31 +01:00
|
|
|
#include "DStarRX.h"
|
|
|
|
|
#include "DStarTX.h"
|
|
|
|
|
#include "YSFRX.h"
|
|
|
|
|
#include "YSFTX.h"
|
|
|
|
|
#include "P25RX.h"
|
|
|
|
|
#include "P25TX.h"
|
2020-10-23 15:43:06 +02:00
|
|
|
#include "M17RX.h"
|
|
|
|
|
#include "M17TX.h"
|
2018-02-13 05:52:34 +01:00
|
|
|
#include "NXDNRX.h"
|
|
|
|
|
#include "NXDNTX.h"
|
2018-06-18 02:10:00 +02:00
|
|
|
#include "POCSAGTX.h"
|
2017-12-27 17:35:29 +01:00
|
|
|
#include "CWIdTX.h"
|
2018-02-18 03:56:23 +01:00
|
|
|
#include "CalRSSI.h"
|
2018-02-15 18:27:04 +01:00
|
|
|
#include "CalDMR.h"
|
2017-02-01 05:33:31 +01:00
|
|
|
#include "Debug.h"
|
2017-08-26 23:55:37 +02:00
|
|
|
#include "Utils.h"
|
2019-02-11 18:49:59 +01:00
|
|
|
#include "I2CHost.h"
|
2017-02-01 05:33:31 +01:00
|
|
|
|
|
|
|
|
extern MMDVM_STATE m_modemState;
|
2018-02-15 18:27:04 +01:00
|
|
|
extern MMDVM_STATE m_calState;
|
2017-03-24 05:11:50 +01:00
|
|
|
extern MMDVM_STATE m_modemState_prev;
|
2017-02-01 05:33:31 +01:00
|
|
|
|
2017-12-27 17:35:29 +01:00
|
|
|
extern bool m_cwid_state;
|
2018-06-18 02:10:00 +02:00
|
|
|
extern bool m_pocsag_state;
|
|
|
|
|
|
2017-12-27 17:35:29 +01:00
|
|
|
extern uint8_t m_cwIdTXLevel;
|
|
|
|
|
|
2017-05-26 05:46:16 +02:00
|
|
|
extern uint32_t m_modeTimerCnt;
|
|
|
|
|
|
2017-02-01 05:33:31 +01:00
|
|
|
extern bool m_dstarEnable;
|
|
|
|
|
extern bool m_dmrEnable;
|
|
|
|
|
extern bool m_ysfEnable;
|
|
|
|
|
extern bool m_p25Enable;
|
2018-02-13 05:52:34 +01:00
|
|
|
extern bool m_nxdnEnable;
|
2020-10-23 15:43:06 +02:00
|
|
|
extern bool m_m17Enable;
|
2018-06-18 02:10:00 +02:00
|
|
|
extern bool m_pocsagEnable;
|
2017-02-01 05:33:31 +01:00
|
|
|
|
2017-03-24 02:06:04 +01:00
|
|
|
extern bool m_duplex;
|
|
|
|
|
|
2017-02-01 05:33:31 +01:00
|
|
|
extern bool m_tx;
|
|
|
|
|
extern bool m_dcd;
|
|
|
|
|
|
|
|
|
|
extern CIO io;
|
|
|
|
|
extern CSerialPort serial;
|
|
|
|
|
|
|
|
|
|
extern CDStarRX dstarRX;
|
|
|
|
|
extern CDStarTX dstarTX;
|
|
|
|
|
|
2017-05-07 01:19:08 +02:00
|
|
|
extern uint8_t m_control;
|
2017-07-23 00:58:36 +02:00
|
|
|
|
|
|
|
|
#if defined(DUPLEX)
|
2017-04-30 04:05:03 +02:00
|
|
|
extern CDMRIdleRX dmrIdleRX;
|
|
|
|
|
extern CDMRRX dmrRX;
|
|
|
|
|
extern CDMRTX dmrTX;
|
|
|
|
|
#endif
|
|
|
|
|
|
2017-02-01 05:33:31 +01:00
|
|
|
extern CDMRDMORX dmrDMORX;
|
|
|
|
|
extern CDMRDMOTX dmrDMOTX;
|
|
|
|
|
|
|
|
|
|
extern CYSFRX ysfRX;
|
|
|
|
|
extern CYSFTX ysfTX;
|
|
|
|
|
|
|
|
|
|
extern CP25RX p25RX;
|
|
|
|
|
extern CP25TX p25TX;
|
|
|
|
|
|
2020-10-23 15:43:06 +02:00
|
|
|
extern CM17RX m17RX;
|
|
|
|
|
extern CM17TX m17TX;
|
|
|
|
|
|
2018-02-13 05:52:34 +01:00
|
|
|
extern CNXDNRX nxdnRX;
|
|
|
|
|
extern CNXDNTX nxdnTX;
|
|
|
|
|
|
2018-06-18 02:10:00 +02:00
|
|
|
extern CPOCSAGTX pocsagTX;
|
|
|
|
|
|
2018-02-18 03:56:23 +01:00
|
|
|
extern CCalDMR calDMR;
|
|
|
|
|
|
|
|
|
|
#if defined(SEND_RSSI_DATA)
|
|
|
|
|
extern CCalRSSI calRSSI;
|
|
|
|
|
#endif
|
2018-02-15 18:27:04 +01:00
|
|
|
|
2017-12-27 17:35:29 +01:00
|
|
|
extern CCWIdTX cwIdTX;
|
|
|
|
|
|
2019-02-11 18:49:59 +01:00
|
|
|
#if defined(STM32_I2C_HOST)
|
|
|
|
|
extern CI2CHost i2c;
|
|
|
|
|
#endif
|
|
|
|
|
|
2017-02-01 05:33:31 +01:00
|
|
|
#endif
|
|
|
|
|
|