esp32_loraprs/include/ax25_payload.h

56 wiersze
1.0 KiB
C
Czysty Zwykły widok Historia

#ifndef AX25_PAYLOAD_H
#define AX25_PAYLOAD_H
#include <Arduino.h>
#include <DebugLog.h>
#include "ax25_callsign.h"
namespace AX25 {
class Payload
{
public:
2020-06-19 07:39:49 +00:00
Payload(const String &textPayload);
2021-02-02 09:18:46 +00:00
Payload(const byte *rxPayload, int payloadLength);
Payload(const Payload &payload);
Payload& operator=(const Payload &payload);
inline bool IsValid() const { return isValid_; }
String ToString(const String &customComment=String()) const;
int ToBinary(byte *txPayload, int bufferLength) const;
bool Digirepeat(const Callsign &ownCallsign);
void Dump();
private:
2020-06-19 07:39:49 +00:00
bool fromString(const String &textPayload);
bool fromBinary(const byte *rxPayload, int payloadLength);
bool InsertRptCallsign(const Callsign &rptCallsign, int index);
private:
enum AX25Ctrl {
UI = 0x03
};
enum AX25Pid {
NoLayer3 = 0xf0
};
const int CallsignSize = 7;
const int RptMaxCount = 7;
private:
bool isValid_;
Callsign srcCall_, dstCall_;
Callsign rptCalls_[7];
int rptCallsCount_;
2020-06-12 15:55:55 +00:00
String info_;
};
} // AX25
2021-02-02 09:22:38 +00:00
#endif // AX25_PAYLOAD_H