Alter the format of the returned RSSI data.
This commit is contained in:
parent
19c7578bb9
commit
83b27188e5
|
@ -47,7 +47,7 @@ m_dataType(0U),
|
||||||
m_seqNo(0U),
|
m_seqNo(0U),
|
||||||
m_n(0U),
|
m_n(0U),
|
||||||
m_ber(0U),
|
m_ber(0U),
|
||||||
m_rssi(0)
|
m_rssi(0U)
|
||||||
{
|
{
|
||||||
m_data = new unsigned char[2U * DMR_FRAME_LENGTH_BYTES];
|
m_data = new unsigned char[2U * DMR_FRAME_LENGTH_BYTES];
|
||||||
}
|
}
|
||||||
|
@ -158,12 +158,12 @@ void CDMRData::setBER(unsigned char ber)
|
||||||
m_ber = ber;
|
m_ber = ber;
|
||||||
}
|
}
|
||||||
|
|
||||||
signed char CDMRData::getRSSI() const
|
unsigned char CDMRData::getRSSI() const
|
||||||
{
|
{
|
||||||
return m_rssi;
|
return m_rssi;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDMRData::setRSSI(signed char rssi)
|
void CDMRData::setRSSI(unsigned char rssi)
|
||||||
{
|
{
|
||||||
m_rssi = rssi;
|
m_rssi = rssi;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,8 +48,8 @@ public:
|
||||||
unsigned char getBER() const;
|
unsigned char getBER() const;
|
||||||
void setBER(unsigned char ber);
|
void setBER(unsigned char ber);
|
||||||
|
|
||||||
signed char getRSSI() const;
|
unsigned char getRSSI() const;
|
||||||
void setRSSI(signed char ber);
|
void setRSSI(unsigned char ber);
|
||||||
|
|
||||||
void setData(const unsigned char* buffer);
|
void setData(const unsigned char* buffer);
|
||||||
unsigned int getData(unsigned char* buffer) const;
|
unsigned int getData(unsigned char* buffer) const;
|
||||||
|
@ -64,7 +64,7 @@ private:
|
||||||
unsigned char m_seqNo;
|
unsigned char m_seqNo;
|
||||||
unsigned char m_n;
|
unsigned char m_n;
|
||||||
unsigned char m_ber;
|
unsigned char m_ber;
|
||||||
signed char m_rssi;
|
unsigned char m_rssi;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
13
DMRSlot.cpp
13
DMRSlot.cpp
|
@ -87,7 +87,7 @@ m_netErrs(0U),
|
||||||
m_lastFrame(NULL),
|
m_lastFrame(NULL),
|
||||||
m_lastFrameValid(false),
|
m_lastFrameValid(false),
|
||||||
m_lastEMB(),
|
m_lastEMB(),
|
||||||
m_rssi(0),
|
m_rssi(0U),
|
||||||
m_fp(NULL)
|
m_fp(NULL)
|
||||||
{
|
{
|
||||||
m_lastFrame = new unsigned char[DMR_FRAME_LENGTH_BYTES + 2U];
|
m_lastFrame = new unsigned char[DMR_FRAME_LENGTH_BYTES + 2U];
|
||||||
|
@ -123,11 +123,12 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
|
|
||||||
// Have we got RSSI bytes on the end?
|
// Have we got RSSI bytes on the end?
|
||||||
if (len == (DMR_FRAME_LENGTH_BYTES + 4U) && m_rssiMultiplier != 0) {
|
if (len == (DMR_FRAME_LENGTH_BYTES + 4U) && m_rssiMultiplier != 0) {
|
||||||
uint16_t rssi = 0U;
|
uint16_t raw = 0U;
|
||||||
rssi |= (data[35U] << 8) & 0xFF00U;
|
raw |= (data[35U] << 8) & 0xFF00U;
|
||||||
rssi |= (data[36U] << 0) & 0x00FFU;
|
raw |= (data[36U] << 0) & 0x00FFU;
|
||||||
m_rssi = (rssi - m_rssiOffset) / m_rssiMultiplier;
|
int rssi = (raw - m_rssiOffset) / m_rssiMultiplier;
|
||||||
LogDebug("DMR Slot %u, raw RSSI: %u, reported RSSI: %d dBm", m_slotNo, rssi, m_rssi);
|
m_rssi = (rssi >= 0) ? rssi : -rssi;
|
||||||
|
LogDebug("DMR Slot %u, raw RSSI: %u, reported RSSI: -%u dBm", m_slotNo, raw, m_rssi);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dataSync = (data[1U] & DMR_SYNC_DATA) == DMR_SYNC_DATA;
|
bool dataSync = (data[1U] & DMR_SYNC_DATA) == DMR_SYNC_DATA;
|
||||||
|
|
|
@ -84,7 +84,7 @@ private:
|
||||||
unsigned char* m_lastFrame;
|
unsigned char* m_lastFrame;
|
||||||
bool m_lastFrameValid;
|
bool m_lastFrameValid;
|
||||||
CDMREMB m_lastEMB;
|
CDMREMB m_lastEMB;
|
||||||
signed char m_rssi;
|
unsigned char m_rssi;
|
||||||
FILE* m_fp;
|
FILE* m_fp;
|
||||||
|
|
||||||
static unsigned int m_id;
|
static unsigned int m_id;
|
||||||
|
|
|
@ -125,11 +125,12 @@ bool CDStarControl::writeModem(unsigned char *data, unsigned int len)
|
||||||
|
|
||||||
// Have we got RSSI bytes on the end?
|
// Have we got RSSI bytes on the end?
|
||||||
if (len == (DSTAR_FRAME_LENGTH_BYTES + 3U) && m_rssiMultiplier != 0) {
|
if (len == (DSTAR_FRAME_LENGTH_BYTES + 3U) && m_rssiMultiplier != 0) {
|
||||||
uint16_t rssi = 0U;
|
uint16_t raw = 0U;
|
||||||
rssi |= (data[13U] << 8) & 0xFF00U;
|
raw |= (data[35U] << 8) & 0xFF00U;
|
||||||
rssi |= (data[14U] << 0) & 0x00FFU;
|
raw |= (data[36U] << 0) & 0x00FFU;
|
||||||
signed char m_rssi = (rssi - m_rssiOffset) / m_rssiMultiplier;
|
int rssi = (raw - m_rssiOffset) / m_rssiMultiplier;
|
||||||
LogDebug("D-Star, raw RSSI: %u, reported RSSI: %d dBm", rssi, m_rssi);
|
unsigned char m_rssi = (rssi >= 0) ? rssi : -rssi;
|
||||||
|
LogDebug("D-Star, raw RSSI: %u, reported RSSI: -%u dBm", raw, m_rssi);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == TAG_HEADER) {
|
if (type == TAG_HEADER) {
|
||||||
|
|
|
@ -94,11 +94,12 @@ bool CYSFControl::writeModem(unsigned char *data, unsigned int len)
|
||||||
|
|
||||||
// Have we got RSSI bytes on the end?
|
// Have we got RSSI bytes on the end?
|
||||||
if (len == (YSF_FRAME_LENGTH_BYTES + 4U) && m_rssiMultiplier != 0) {
|
if (len == (YSF_FRAME_LENGTH_BYTES + 4U) && m_rssiMultiplier != 0) {
|
||||||
uint16_t rssi = 0U;
|
uint16_t raw = 0U;
|
||||||
rssi |= (data[122U] << 8) & 0xFF00U;
|
raw |= (data[35U] << 8) & 0xFF00U;
|
||||||
rssi |= (data[123U] << 0) & 0x00FFU;
|
raw |= (data[36U] << 0) & 0x00FFU;
|
||||||
signed char m_rssi = (rssi - m_rssiOffset) / m_rssiMultiplier;
|
int rssi = (raw - m_rssiOffset) / m_rssiMultiplier;
|
||||||
LogDebug("YSF, raw RSSI: %u, reported RSSI: %d dBm", rssi, m_rssi);
|
unsigned char m_rssi = (rssi >= 0) ? rssi : -rssi;
|
||||||
|
LogDebug("YSF, raw RSSI: %u, reported RSSI: -%u dBm", raw, m_rssi);
|
||||||
}
|
}
|
||||||
|
|
||||||
CYSFFICH fich;
|
CYSFFICH fich;
|
||||||
|
|
Loading…
Reference in a new issue