PMX 1.0.0
読み取り中…
検索中…
一致する文字列を見つけられません
PmxHardSerialClass.h
[詳解]
1
12#ifndef __Pmx_HardSerial_Class_h__
13#define __Pmx_HardSerial_Class_h__
14
15
16
17#include "PmxBaseClass.h"
18
19#include "Arduino.h"
20#include "HardwareSerial.h"
21
22
23class PmxHardSerial : public PmxBace
24{
25 public:
26
27
28 protected:
29 HardwareSerial *pmxSerial;
30
33 unsigned short g_SerialConfig = 0xFF;
34 byte g_enPin = 0xFF;
35 byte g_rxPin = 0xFF;
36 byte g_txPin = 0xFF;
37
38
39 byte sendBuff[256]; //送信バッファ
40 byte receiveBuff[256]; //受信バッファ
41
42
43
44
45 private:
46 bool _isSynchronize = false;
47 bool _logOutput = false;
48 HardwareSerial *_logOutputSerial = nullptr;
49
50
51
52 // 関数一覧
53 public:
54 PmxHardSerial(HardwareSerial *hardSerial,byte enPin,long baudrate=115200, int timeout=100);
55 PmxHardSerial(HardwareSerial *hardSerial,byte enPin,long baudrate, unsigned short serialConfig, int timeout);
56 PmxHardSerial(HardwareSerial *hardSerial,byte rxPin,byte txPin, byte enPin, long baudrate=115200, int timeout=1000,byte partyVal=0x00);
57
58 //デストラクタ
60
61 // 通信の初期化
62 bool begin(long baudrate=PMX::ErrorUint32Data, int timeout=PMX::ErrorUint16Data);
63
64 //他の物が通信中かどうか
65 bool isSynchronize();
66
67 //イネーブルピンの処理
68 protected :
72 inline void enHigh(){digitalWrite(g_enPin, HIGH);}
76 inline void enLow(){digitalWrite(g_enPin, LOW);}
77
78 //データ送受信
79 public :
80 virtual bool synchronize(byte *txBuf, byte txLen, byte *rxBuf, byte rxLen);
81 virtual bool synchronizeVariableRead(byte *txBuf, byte txLen, byte *rxBuf, byte *rxLen);
82 virtual bool synchronizeNoRead(byte *txBuf, byte txLen);
83 //virtual bool setSerialParameters(long baudrate = PMX::ErrorUint32Data,byte parity=PMX::ErrorByteData,unsigned int timeout=PMX::ErrorUint16Data);
84
85 //送受信ログの処理
86 public:
87 virtual void setLogSerial(HardwareSerial *logSerial){_logOutputSerial=logSerial;}
88
89
90
91 protected:
92 virtual void logOutputPrint(byte outputBytes[],int outputSize);
93 virtual HardwareSerial *getLogSerial(){return _logOutputSerial;}
94
95 private:
96 void __synchronizeWrite(byte *txBuf, byte txLen);
97
98 // ログの出力
99
100};
101
102
103#endif
104
105
PMX library header file
Definition: PmxBaseClass.h:509
Definition: PmxHardSerialClass.h:24
virtual bool synchronizeVariableRead(byte *txBuf, byte txLen, byte *rxBuf, byte *rxLen)
Definition: PmxHardSerialClass.cpp:193
virtual bool synchronize(byte *txBuf, byte txLen, byte *rxBuf, byte rxLen)
Definition: PmxHardSerialClass.cpp:136
int g_timeout
タイムアウトの設定
Definition: PmxHardSerialClass.h:31
unsigned short g_SerialConfig
パリティの設定
Definition: PmxHardSerialClass.h:33
void enHigh()
enPinに割り当てられているピンをHにする
Definition: PmxHardSerialClass.h:72
void enLow()
enPinに割り当てられているピンをLにする
Definition: PmxHardSerialClass.h:76
HardwareSerial * pmxSerial
通信を使用するためのポインタ変数
Definition: PmxHardSerialClass.h:29
~PmxHardSerial()
Destroy the Pmx Hard Serial:: Pmx Hard Serial object
Definition: PmxHardSerialClass.cpp:67
byte g_txPin
TXピンの定義(M5などで必要な場合)
Definition: PmxHardSerialClass.h:36
virtual bool synchronizeNoRead(byte *txBuf, byte txLen)
Definition: PmxHardSerialClass.cpp:271
byte g_rxPin
RXピンの定義(M5などで必要な場合)
Definition: PmxHardSerialClass.h:35
byte g_enPin
イネーブルピンの定義
Definition: PmxHardSerialClass.h:34
bool isSynchronize()
Definition: PmxHardSerialClass.cpp:120
virtual void logOutputPrint(byte outputBytes[], int outputSize)
Definition: PmxHardSerialClass.cpp:345
long g_baudrate
通信速度の設定
Definition: PmxHardSerialClass.h:32
bool begin(long baudrate=PMX::ErrorUint32Data, int timeout=PMX::ErrorUint16Data)
Definition: PmxHardSerialClass.cpp:83
static constexpr unsigned long ErrorUint32Data
byte型のエラー値の定義
Definition: PmxBaseClass.h:33
static constexpr unsigned short ErrorUint16Data
byte型のエラー値の定義
Definition: PmxBaseClass.h:32