PmxArdinoLib 1.0.3
読み取り中…
検索中…
一致する文字列を見つけられません
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
27class PmxHardSerial : public PmxBase
28{
29 public:
30
31
32 protected:
33 HardwareSerial *pmxSerial; // 通信を使用するためのポインタ変数
34
35 int g_timeout = PMX::ErrorUint16Data; // タイムアウトの設定
36 long g_baudrate = PMX::ErrorUint32Data; // 通信速度の設定
37 unsigned short g_SerialConfig = 0xFF; // パリティの設定
38 byte g_enPin = 0xFF; // イネーブルピンの定義
41
42
43 byte sendBuff[256];
44 byte receiveBuff[256];
45
46
47
48
49 private:
50 bool _isSynchronize = false;
51 bool _logOutput = false;
52 HardwareSerial *_logOutputSerial = nullptr;
53
54
55
56 // 関数一覧
57 public:
58 PmxHardSerial(HardwareSerial *hardSerial,byte enPin,long baudrate=115200, int timeout=100);
59 PmxHardSerial(HardwareSerial *hardSerial,byte enPin,long baudrate, unsigned short serialConfig, int timeout);
60 // PmxHardSerial(HardwareSerial *hardSerial,byte rxPin,byte txPin, byte enPin, long baudrate=115200, int timeout=1000,byte partyVal=0x00);
61
62 //デストラクタ
64
65 // 通信の初期化
66 bool begin(long baudrate=PMX::ErrorUint32Data, int timeout=PMX::ErrorUint16Data);
67
68 //他の物が通信中かどうか
69 bool isSynchronize();
70
71 //イネーブルピンの処理
72 protected :
76 inline void enHigh(){digitalWrite(g_enPin, HIGH);}
80 inline void enLow(){digitalWrite(g_enPin, LOW);}
81
82 //データ送受信
83 public :
84 virtual bool synchronize(byte *txBuf, byte txLen, byte *rxBuf, byte rxLen);
85 virtual bool synchronizeVariableRead(byte *txBuf, byte txLen, byte *rxBuf, byte *rxLen);
86 virtual bool synchronizeNoRead(byte *txBuf, byte txLen);
87 //virtual bool setSerialParameters(long baudrate = PMX::ErrorUint32Data,byte parity=PMX::ErrorByteData,unsigned int timeout=PMX::ErrorUint16Data);
88
89 //送受信ログの処理
90 public:
91 virtual void setLogSerial(HardwareSerial *logSerial){_logOutputSerial=logSerial;}
92
93
94
95 protected:
96 virtual void logOutputPrint(byte outputBytes[],int outputSize);
97 virtual HardwareSerial *getLogSerial(){return _logOutputSerial;}
98
99 private:
100 void __synchronizeWrite(byte *txBuf, byte txLen);
101
102 // ログの出力
103
104};
105
106
107#endif
108
109
PMX library header file
PMXで使用する関数や定義をひとまとまりにしたものです
Definition PmxBaseClass.h:599
PMXで使用する関数や定義をひとまとまりにしたもので、ArduinoのHardwareSerialを使用して動作します。
Definition PmxHardSerialClass.h:28
virtual bool synchronizeVariableRead(byte *txBuf, byte txLen, byte *rxBuf, byte *rxLen)
HardwareSerialを使用してtxBufのコマンドを送受信します。 返信データ数がわからない場合に使用します。
Definition PmxHardSerialClass.cpp:197
virtual bool synchronize(byte *txBuf, byte txLen, byte *rxBuf, byte rxLen)
HardwareSerialを使用して送受信します
Definition PmxHardSerialClass.cpp:133
void enHigh()
enPinに割り当てられているピンをHにする
Definition PmxHardSerialClass.h:76
void enLow()
enPinに割り当てられているピンをLにする
Definition PmxHardSerialClass.h:80
byte sendBuff[256]
送信バッファ
Definition PmxHardSerialClass.h:43
virtual void setLogSerial(HardwareSerial *logSerial)
Logを出力するシリアルポートの設定をします。
Definition PmxHardSerialClass.h:91
~PmxHardSerial()
Destroy the Pmx Hard Serial:: Pmx Hard Serial object
Definition PmxHardSerialClass.cpp:65
virtual bool synchronizeNoRead(byte *txBuf, byte txLen)
ブロードキャストIDなどでデータの返事がないとわかっている時に送信をします。
Definition PmxHardSerialClass.cpp:276
bool isSynchronize()
Synchronize関数が送受信してるか確認する
Definition PmxHardSerialClass.cpp:117
byte receiveBuff[256]
受信バッファ
Definition PmxHardSerialClass.h:44
virtual void logOutputPrint(byte outputBytes[], int outputSize)
Pmxで送信したデータ配列を表示する関数
Definition PmxHardSerialClass.cpp:350
PmxHardSerial(HardwareSerial *hardSerial, byte enPin, long baudrate=115200, int timeout=100)
Construct a new Pmx Hard Serial:: Pmx Hard Serial object
Definition PmxHardSerialClass.cpp:29
bool begin(long baudrate=PMX::ErrorUint32Data, int timeout=PMX::ErrorUint16Data)
HardwareSerialポートの設定をする
Definition PmxHardSerialClass.cpp:82
static constexpr unsigned long ErrorUint32Data
byte型のエラー値の定義
Definition PmxBaseClass.h:52
static constexpr unsigned short ErrorUint16Data
byte型のエラー値の定義
Definition PmxBaseClass.h:51