RadioLibSmol/src/protocols/Morse.h
2019-05-24 18:49:40 +02:00

77 lines
1.8 KiB
C++

#ifndef _RADIOLIB_MORSE_H
#define _RADIOLIB_MORSE_H
#include "TypeDef.h"
#include "PhysicalLayer.h"
#define MORSE_LENGTH 52
/*!
\class MorseClient
\brief Client for Morse Code communication. The public interface is the same as Arduino Serial.
*/
class MorseClient {
public:
/*!
\brief Default constructor.
\param phy Pointer to the wireless module providing PhysicalLayer communication.
*/
MorseClient(PhysicalLayer* phy);
// basic methods
/*!
\brief Initialization method.
\param base Base RF frequency to be used in MHz.
\param speed Coding speed in words per minute.
\returns \ref status_codes
*/
int16_t begin(float base, uint8_t speed = 20);
/*!
\brief Send start signal.
\returns Number of bytes sent (always 0).
*/
size_t startSignal();
size_t write(const char* str);
size_t write(uint8_t* buff, size_t len);
size_t write(uint8_t b);
size_t print(const String &);
size_t print(const char[]);
size_t print(char);
size_t print(unsigned char, int = DEC);
size_t print(int, int = DEC);
size_t print(unsigned int, int = DEC);
size_t print(long, int = DEC);
size_t print(unsigned long, int = DEC);
size_t print(double, int = 2);
size_t println(void);
size_t println(const String &s);
size_t println(const char[]);
size_t println(char);
size_t println(unsigned char, int = DEC);
size_t println(int, int = DEC);
size_t println(unsigned int, int = DEC);
size_t println(long, int = DEC);
size_t println(unsigned long, int = DEC);
size_t println(double, int = 2);
private:
PhysicalLayer* _phy;
uint32_t _base;
uint16_t _dotLength;
size_t printNumber(unsigned long, uint8_t);
size_t printFloat(double, uint8_t);
};
#endif