Add AX25 SlotTime and P-Persist parameters.
This commit is contained in:
parent
d0fa27bfd1
commit
d2be920254
26
Conf.cpp
26
Conf.cpp
|
@ -213,8 +213,10 @@ m_fmMaxDevLevel(90.0F),
|
|||
m_fmExtAudioBoost(1U),
|
||||
m_fmModeHang(10U),
|
||||
m_ax25Enabled(false),
|
||||
m_ax25RXTwist(6),
|
||||
m_ax25TXDelay(300U),
|
||||
m_ax25RXTwist(6),
|
||||
m_ax25SlotTime(30U),
|
||||
m_ax25PPersist(128U),
|
||||
m_ax25Trace(false),
|
||||
m_dstarNetworkEnabled(false),
|
||||
m_dstarGatewayAddress(),
|
||||
|
@ -815,10 +817,14 @@ bool CConf::read()
|
|||
} else if (section == SECTION_AX25) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_ax25Enabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "RXTwist") == 0)
|
||||
m_ax25RXTwist = ::atoi(value);
|
||||
else if (::strcmp(key, "TXDelay") == 0)
|
||||
m_ax25TXDelay = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "RXTwist") == 0)
|
||||
m_ax25RXTwist = ::atoi(value);
|
||||
else if (::strcmp(key, "SlotTime") == 0)
|
||||
m_ax25SlotTime = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "PPersist") == 0)
|
||||
m_ax25PPersist = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Trace") == 0)
|
||||
m_ax25Trace = ::atoi(value) == 1;
|
||||
} else if (section == SECTION_DSTAR_NETWORK) {
|
||||
|
@ -1772,14 +1778,24 @@ bool CConf::getAX25Enabled() const
|
|||
return m_ax25Enabled;
|
||||
}
|
||||
|
||||
unsigned int CConf::getAX25TXDelay() const
|
||||
{
|
||||
return m_ax25TXDelay;
|
||||
}
|
||||
|
||||
int CConf::getAX25RXTwist() const
|
||||
{
|
||||
return m_ax25RXTwist;
|
||||
}
|
||||
|
||||
unsigned int CConf::getAX25TXDelay() const
|
||||
unsigned int CConf::getAX25SlotTime() const
|
||||
{
|
||||
return m_ax25TXDelay;
|
||||
return m_ax25SlotTime;
|
||||
}
|
||||
|
||||
unsigned int CConf::getAX25PPersist() const
|
||||
{
|
||||
return m_ax25PPersist;
|
||||
}
|
||||
|
||||
bool CConf::getAX25Trace() const
|
||||
|
|
8
Conf.h
8
Conf.h
|
@ -175,8 +175,10 @@ public:
|
|||
|
||||
// The AX.25 section
|
||||
bool getAX25Enabled() const;
|
||||
int getAX25RXTwist() const;
|
||||
unsigned int getAX25TXDelay() const;
|
||||
int getAX25RXTwist() const;
|
||||
unsigned int getAX25SlotTime() const;
|
||||
unsigned int getAX25PPersist() const;
|
||||
bool getAX25Trace() const;
|
||||
|
||||
// The FM Section
|
||||
|
@ -505,8 +507,10 @@ private:
|
|||
unsigned int m_fmModeHang;
|
||||
|
||||
bool m_ax25Enabled;
|
||||
int m_ax25RXTwist;
|
||||
unsigned int m_ax25TXDelay;
|
||||
int m_ax25RXTwist;
|
||||
unsigned int m_ax25SlotTime;
|
||||
unsigned int m_ax25PPersist;
|
||||
bool m_ax25Trace;
|
||||
|
||||
bool m_dstarNetworkEnabled;
|
||||
|
|
|
@ -183,6 +183,8 @@ ExtAudioBoost=1
|
|||
Enable=1
|
||||
TXDelay=300
|
||||
RXTwist=6
|
||||
SlotTime=30
|
||||
PPersist=128
|
||||
Trace=1
|
||||
|
||||
[D-Star Network]
|
||||
|
|
|
@ -639,13 +639,17 @@ int CMMDVMHost::run()
|
|||
}
|
||||
|
||||
if (m_ax25Enabled) {
|
||||
int rxTwist = m_conf.getAX25RXTwist();
|
||||
unsigned int txDelay = m_conf.getAX25TXDelay();
|
||||
bool trace = m_conf.getAX25Trace();
|
||||
unsigned int txDelay = m_conf.getAX25TXDelay();
|
||||
int rxTwist = m_conf.getAX25RXTwist();
|
||||
unsigned int slotTime = m_conf.getAX25SlotTime();
|
||||
unsigned int pPersist = m_conf.getAX25PPersist();
|
||||
bool trace = m_conf.getAX25Trace();
|
||||
|
||||
LogInfo("AX.25 RF Parameters");
|
||||
LogInfo(" RX Twist: %d", rxTwist);
|
||||
LogInfo(" TX Delay: %ums", txDelay);
|
||||
LogInfo(" RX Twist: %d", rxTwist);
|
||||
LogInfo(" Slot Time: %ums", slotTime);
|
||||
LogInfo(" P-Persist: %u", pPersist);
|
||||
LogInfo(" Trace: %s", trace ? "yes" : "no");
|
||||
|
||||
m_ax25 = new CAX25Control(m_ax25Network, trace);
|
||||
|
@ -1301,6 +1305,8 @@ bool CMMDVMHost::createModem()
|
|||
float rfLevel = m_conf.getModemRFLevel();
|
||||
int rxTwist = m_conf.getAX25RXTwist();
|
||||
unsigned int ax25TXDelay = m_conf.getAX25TXDelay();
|
||||
unsigned int ax25SlotTime = m_conf.getAX25SlotTime();
|
||||
unsigned int ax25PPersist = m_conf.getAX25PPersist();
|
||||
|
||||
LogInfo("Modem Parameters");
|
||||
LogInfo(" Port: %s", port.c_str());
|
||||
|
@ -1345,7 +1351,7 @@ bool CMMDVMHost::createModem()
|
|||
m_modem->setYSFParams(lowDeviation, ysfTXHang);
|
||||
m_modem->setP25Params(p25TXHang);
|
||||
m_modem->setNXDNParams(nxdnTXHang);
|
||||
m_modem->setAX25Params(rxTwist, ax25TXDelay);
|
||||
m_modem->setAX25Params(rxTwist, ax25TXDelay, ax25SlotTime, ax25PPersist);
|
||||
|
||||
if (m_fmEnabled) {
|
||||
std::string callsign = m_conf.getFMCallsign();
|
||||
|
|
2
Modem.h
2
Modem.h
|
@ -35,7 +35,7 @@ public:
|
|||
virtual void setYSFParams(bool loDev, unsigned int txHang) = 0;
|
||||
virtual void setP25Params(unsigned int txHang) = 0;
|
||||
virtual void setNXDNParams(unsigned int txHang) = 0;
|
||||
virtual void setAX25Params(int rxTwist, unsigned int txDelay) = 0;
|
||||
virtual void setAX25Params(int rxTwist, unsigned int txDelay, unsigned int slotTime, unsigned int pPersist) = 0;
|
||||
virtual void setTransparentDataParams(unsigned int sendFrameType) = 0;
|
||||
|
||||
virtual void setFMCallsignParams(const std::string& callsign, unsigned int callsignSpeed, unsigned int callsignFrequency, unsigned int callsignTime, unsigned int callsignHoldoff, float callsignHighLevel, float callsignLowLevel, bool callsignAtStart, bool callsignAtEnd, bool callsignAtLatch) = 0;
|
||||
|
|
|
@ -37,7 +37,7 @@ public:
|
|||
virtual void setYSFParams(bool loDev, unsigned int txHang) {};
|
||||
virtual void setP25Params(unsigned int txHang) {};
|
||||
virtual void setNXDNParams(unsigned int txHang) {};
|
||||
virtual void setAX25Params(int rxTwist, unsigned int txDelay) {};
|
||||
virtual void setAX25Params(int rxTwist, unsigned int txDelay, unsigned int slotTime, unsigned int pPersist) {};
|
||||
virtual void setTransparentDataParams(unsigned int sendFrameType) {};
|
||||
|
||||
virtual void setFMCallsignParams(const std::string& callsign, unsigned int callsignSpeed, unsigned int callsignFrequency, unsigned int callsignTime, unsigned int callsignHoldoff, float callsignHighLevel, float callsignLowLevel, bool callsignAtStart, bool callsignAtEnd, bool callsignAtLatch) {};
|
||||
|
|
|
@ -194,6 +194,8 @@ m_mode(MODE_IDLE),
|
|||
m_hwType(HWT_UNKNOWN),
|
||||
m_ax25RXTwist(0),
|
||||
m_ax25TXDelay(300U),
|
||||
m_ax25SlotTime(30U),
|
||||
m_ax25PPersist(128U),
|
||||
m_fmCallsign(),
|
||||
m_fmCallsignSpeed(20U),
|
||||
m_fmCallsignFrequency(1000U),
|
||||
|
@ -308,10 +310,12 @@ void CSerialModem::setNXDNParams(unsigned int txHang)
|
|||
m_nxdnTXHang = txHang;
|
||||
}
|
||||
|
||||
void CSerialModem::setAX25Params(int rxTwist, unsigned int txDelay)
|
||||
void CSerialModem::setAX25Params(int rxTwist, unsigned int txDelay, unsigned int slotTime, unsigned int pPersist)
|
||||
{
|
||||
m_ax25RXTwist = rxTwist;
|
||||
m_ax25TXDelay = txDelay;
|
||||
m_ax25RXTwist = rxTwist;
|
||||
m_ax25TXDelay = txDelay;
|
||||
m_ax25SlotTime = slotTime;
|
||||
m_ax25PPersist = pPersist;
|
||||
}
|
||||
|
||||
void CSerialModem::setTransparentDataParams(unsigned int sendFrameType)
|
||||
|
@ -1757,7 +1761,7 @@ bool CSerialModem::setConfig()
|
|||
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
|
||||
buffer[1U] = 27U;
|
||||
buffer[1U] = 29U;
|
||||
|
||||
buffer[2U] = MMDVM_SET_CONFIG;
|
||||
|
||||
|
@ -1788,7 +1792,7 @@ bool CSerialModem::setConfig()
|
|||
buffer[4U] |= 0x10U;
|
||||
if (m_pocsagEnabled)
|
||||
buffer[4U] |= 0x20U;
|
||||
if (m_fmEnabled && m_duplex)
|
||||
if (m_fmEnabled)
|
||||
buffer[4U] |= 0x40U;
|
||||
if (m_ax25Enabled)
|
||||
buffer[4U] |= 0x80U;
|
||||
|
@ -1828,15 +1832,15 @@ bool CSerialModem::setConfig()
|
|||
buffer[23U] = (unsigned char)m_nxdnTXHang;
|
||||
|
||||
buffer[24U] = (unsigned char)(m_ax25TXLevel * 2.55F + 0.5F);
|
||||
|
||||
buffer[25U] = (unsigned char)(m_ax25RXTwist + 128);
|
||||
|
||||
buffer[26U] = m_ax25TXDelay / 10U; // In 10ms units
|
||||
buffer[27U] = m_ax25SlotTime / 10U; // In 10ms units
|
||||
buffer[28U] = m_ax25PPersist;
|
||||
|
||||
// CUtils::dump(1U, "Written", buffer, 27U);
|
||||
// CUtils::dump(1U, "Written", buffer, 29U);
|
||||
|
||||
int ret = m_serial->write(buffer, 27U);
|
||||
if (ret != 27)
|
||||
int ret = m_serial->write(buffer, 29U);
|
||||
if (ret != 29)
|
||||
return false;
|
||||
|
||||
unsigned int count = 0U;
|
||||
|
|
|
@ -55,7 +55,7 @@ public:
|
|||
virtual void setYSFParams(bool loDev, unsigned int txHang);
|
||||
virtual void setP25Params(unsigned int txHang);
|
||||
virtual void setNXDNParams(unsigned int txHang);
|
||||
virtual void setAX25Params(int rxTwist, unsigned int txDelay);
|
||||
virtual void setAX25Params(int rxTwist, unsigned int txDelay, unsigned int slotTime, unsigned int pPersist);
|
||||
virtual void setTransparentDataParams(unsigned int sendFrameType);
|
||||
|
||||
virtual void setFMCallsignParams(const std::string& callsign, unsigned int callsignSpeed, unsigned int callsignFrequency, unsigned int callsignTime, unsigned int callsignHoldoff, float callsignHighLevel, float callsignLowLevel, bool callsignAtStart, bool callsignAtEnd, bool callsignAtLatch);
|
||||
|
@ -216,6 +216,8 @@ private:
|
|||
HW_TYPE m_hwType;
|
||||
int m_ax25RXTwist;
|
||||
unsigned int m_ax25TXDelay;
|
||||
unsigned int m_ax25SlotTime;
|
||||
unsigned int m_ax25PPersist;
|
||||
|
||||
std::string m_fmCallsign;
|
||||
unsigned int m_fmCallsignSpeed;
|
||||
|
|
Loading…
Reference in a new issue