EL_dev_arduino 2.10.0
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 公開変数類 | 限定公開メンバ関数 | 全メンバ一覧
EL クラス

Main class for EL [詳解]

#include <EL.h>

EL 連携図
Collaboration graph
[凡例]

公開メンバ関数

 EL (WiFiUDP &udp, byte classGroupCode, byte classCode, byte instanceNumber)
 オブジェクトを一つだけサポートする場合のコンストラクタ
 
 EL (WiFiUDP &udp, byte eojs[][3], int count)
 オブジェクトを複数サポートする場合のコンストラクタ
 
void begin (void)
 通信の開始、受信開始
 
void update (const byte epc, byte pdcedt[])
 EPCの値を変更する, eojが1個の場合(複数の場合は0番に相当)
 
byte * at (const byte epc)
 EPCの値を取得する, eojが1個の場合(複数の場合は0番に相当)
 
void update (const int devId, const byte epc, byte pdcedt[])
 EPCの値を変更する, 複数の場合
 
byte * at (const int devId, const byte epc)
 EPCの値を取得する, 複数の場合
 
void send (IPAddress toip, byte sBuffer[], int size)
 IP指定による送信
 
void sendOPC1 (const IPAddress toip, const byte tid[], const byte seoj[], const byte *deoj, const byte esv, const byte epc, const byte edt[])
 
void sendOPC1 (const IPAddress toip, const byte seoj[], const byte deoj[], const byte esv, const byte epc, const byte edt[])
 
void sendOPC1 (const IPAddress toip, const byte deoj[], const byte esv, const byte epc, const byte *edt)
 
void sendOPC1 (const IPAddress toip, const int devId, const byte deoj[], const byte esv, const byte epc, const byte *pdcedt)
 
void sendBroad (byte sBuffer[], int size)
 ブロードキャストによる送信(default: 192.168.1.255)
 
void sendMulti (byte sBuffer[], int size)
 マルチキャストによる送信(default: 192.168.1.255)
 
void sendMultiOPC1 (const byte tid[], const byte seoj[], const byte deoj[], const byte esv, const byte epc, const byte edt[])
 
void sendMultiOPC1 (const byte seoj[], const byte deoj[], const byte esv, const byte epc, const byte edt[])
 
void sendMultiOPC1 (const byte deoj[], const byte esv, const byte epc, const byte edt[])
 
void sendMultiOPC1 (const int devId, const byte deoj[], const byte esv, const byte epc, const byte *pdcedt)
 
void sendDetails (const IPAddress toip, const byte tid[], const byte seoj[], const byte deoj[], const byte esv, const byte opc, const byte detail[], const byte detailSize)
 複数のEPCで送信する場合はこれを使う
 
void replyGetDetail (const IPAddress toip)
 Getに対して複数OPCにも対応して返答する内部関数
 
boolean replyGetDetail_sub (const byte eoj[], const byte epc, byte &devId)
 EOJとEPCを指定したとき、そのプロパティ(EDT)があるかチェックする内部関数
 
void replySetDetail (const IPAddress toip)
 Setに対して複数OPCにも対応して返答する内部関数
 
boolean replySetDetail_sub (const byte eoj[], const byte epc, byte &devId)
 EOJとEPCを指定したとき、そのプロパティ(EDT)があるかチェックする内部関数
 
int read ()
 受信データを受け取る
 
IPAddress remoteIP (void)
 受信データの送信元を取得する
 
void returner (void)
 
void printAll (void)
 インスタンスの情報を表示
 
void delPtr (byte ptr[])
 byte[] を安全にdeleteするinline関数
 

公開変数類

ELOBJ profile
 profile object (for specialist)
 
ELOBJdevices
 device objects (for multi eoj)
 
byte _rBuffer [EL_BUFFER_SIZE]
 receive buffer
 
byte _tid [2]
 TID (semi-auto incremented)
 

限定公開メンバ関数

int parsePacket (void)
 受信データを読む
 
void commonConstructor (WiFiUDP &udp, byte eojs[][3], int count)
 コンストラクタ共通処理
 
void tidAutoIncrement (void)
 TIDの自動インクリメント、オーバーフロー対策
 

詳解

Main class for EL

構築子と解体子

◆ EL() [1/2]

EL::EL ( WiFiUDP &  udp,
byte  classGroupCode,
byte  classCode,
byte  instanceNumber 
)

オブジェクトを一つだけサポートする場合のコンストラクタ

引数
WiFiUDP&
byteeoj0: class group code
byteeoj1: class code
byteeoj2: instance code
戻り値
none
覚え書き
eoj0, eoj1, eoj2で一つのオブジェクト 一般照明の例 ex. EL(udp, 0x02, 0x90, 0x01);
呼び出し関係図:

◆ EL() [2/2]

EL::EL ( WiFiUDP &  udp,
byte  eojs[][3],
int  count 
)

オブジェクトを複数サポートする場合のコンストラクタ

引数
WiFiUDP&
byteeoj[][3]
intcount
戻り値
none
覚え書き
呼び出し関係図:

関数詳解

◆ at() [1/2]

byte * EL::at ( const byte  epc)

EPCの値を取得する, eojが1個の場合(複数の場合は0番に相当)

引数
epcconst byte
戻り値
byte*
呼び出し関係図:

◆ at() [2/2]

byte * EL::at ( const int  devId,
const byte  epc 
)

EPCの値を取得する, 複数の場合

引数
devIdconst int, コンストラクタで渡した順番に相当
epcconst byte
戻り値
none
呼び出し関係図:

◆ begin()

void EL::begin ( void  )

通信の開始、受信開始

引数
none
戻り値
none
覚え書き
被呼び出し関係図:

◆ commonConstructor()

void EL::commonConstructor ( WiFiUDP &  udp,
byte  eojs[][3],
int  count 
)
protected

コンストラクタ共通処理

引数
udpWiFiUDP&
eojsbyte[][3]
countint
戻り値
none
覚え書き
呼び出し関係図:
被呼び出し関係図:

◆ delPtr()

void EL::delPtr ( byte  ptr[])
inline

byte[] を安全にdeleteするinline関数

引数
ptrbyte[]
戻り値
none
覚え書き

◆ parsePacket()

int EL::parsePacket ( void  )
protected

受信データを読む

引数
void
戻り値
int
覚え書き
被呼び出し関係図:

◆ printAll()

void EL::printAll ( void  )

インスタンスの情報を表示

引数
none
戻り値
none
覚え書き
呼び出し関係図:

◆ read()

int EL::read ( void  )

受信データを受け取る

引数
void
戻り値
受信データサイズ : int
覚え書き
呼び出し関係図:
被呼び出し関係図:

◆ remoteIP()

IPAddress EL::remoteIP ( void  )

受信データの送信元を取得する

引数
void
戻り値
受信データの送信元IPアドレス : IPAddress
覚え書き
被呼び出し関係図:

◆ replyGetDetail()

void EL::replyGetDetail ( const IPAddress  toip)

Getに対して複数OPCにも対応して返答する内部関数

引数
toipconst IPAddress
戻り値
void
覚え書き
呼び出し関係図:
被呼び出し関係図:

◆ replyGetDetail_sub()

boolean EL::replyGetDetail_sub ( const byte  eoj[],
const byte  epc,
byte &  devId 
)

EOJとEPCを指定したとき、そのプロパティ(EDT)があるかチェックする内部関数

引数
eojconst byte[]
epcconst byte
devId[out]byte&: -1:profile, x:devId
戻り値
true:無し、false:あり
覚え書き
replyGetDetailのサブルーチン、GetPropertyMapを参照しなくても、基本的に持っているPeopertyはGet可能なのでMapチェックしなくてよい
被呼び出し関係図:

◆ replySetDetail()

void EL::replySetDetail ( const IPAddress  toip)

Setに対して複数OPCにも対応して返答する内部関数

引数
toipconst IPAddress
戻り値
void
覚え書き
EPC毎の設定値に関して基本はノーチェックなので注意すべし EPC毎の設定値チェックや、INF処理に関しては下記の replySetDetail_sub にて実施 SET_RESはEDT入ってない
呼び出し関係図:
被呼び出し関係図:

◆ replySetDetail_sub()

boolean EL::replySetDetail_sub ( const byte  eoj[],
const byte  epc,
byte &  devId 
)

EOJとEPCを指定したとき、そのプロパティ(EDT)があるかチェックする内部関数

引数
eojconst byte[]
epcconst byte
devId[out]byte&: -1:profile, x:devId
戻り値
true:無し、false:あり
覚え書き
replySetDetail_subのサブルーチン、本来はSetPropertyMap[0x9E]の確認をすべきだが、やってない
被呼び出し関係図:

◆ returner()

void EL::returner ( void  )
引数

return none

覚え書き
呼び出し関係図:
被呼び出し関係図:

◆ send()

void EL::send ( IPAddress  toip,
byte  sBuffer[],
int  size 
)

IP指定による送信

引数
toipIPAddress
sBufferbyte[]
sizeint size of sBuffer
被呼び出し関係図:

◆ sendBroad()

void EL::sendBroad ( byte  sBuffer[],
int  size 
)

ブロードキャストによる送信(default: 192.168.1.255)

引数
bytesBuffer[]
intsize
戻り値
none
覚え書き
!!deprecated!! 非推奨機能なので、本番環境では利用しないように

◆ sendDetails()

void EL::sendDetails ( const IPAddress  toip,
const byte  tid[],
const byte  seoj[],
const byte  deoj[],
const byte  esv,
const byte  opc,
const byte  detail[],
const byte  detailSize 
)

複数のEPCで送信する場合はこれを使う

引数
toipconst IPAddress:送信先
tidconst tid:TID
seojconst byte[3]
deojconst byte[3]
esvconst byte
epcconst byte
detailconst byte[N]: {EPC, PDC, EDT[x]}[y]
detailSizeconst byte: size of detail N
戻り値
none
覚え書き
呼び出し関係図:
被呼び出し関係図:

◆ sendMulti()

void EL::sendMulti ( byte  sBuffer[],
int  size 
)

マルチキャストによる送信(default: 192.168.1.255)

引数
bytesBuffer[]
intsize
戻り値
none バージョンによってはブロードキャストによる送信の場合がある。
被呼び出し関係図:

◆ sendMultiOPC1() [1/4]

void EL::sendMultiOPC1 ( const byte  deoj[],
const byte  esv,
const byte  epc,
const byte  edt[] 
)

◆ sendMultiOPC1() [2/4]

void EL::sendMultiOPC1 ( const byte  seoj[],
const byte  deoj[],
const byte  esv,
const byte  epc,
const byte  edt[] 
)

◆ sendMultiOPC1() [3/4]

void EL::sendMultiOPC1 ( const byte  tid[],
const byte  seoj[],
const byte  deoj[],
const byte  esv,
const byte  epc,
const byte  edt[] 
)
被呼び出し関係図:

◆ sendMultiOPC1() [4/4]

void EL::sendMultiOPC1 ( const int  devId,
const byte  deoj[],
const byte  esv,
const byte  epc,
const byte *  pdcedt 
)

◆ sendOPC1() [1/4]

void EL::sendOPC1 ( const IPAddress  toip,
const byte  deoj[],
const byte  esv,
const byte  epc,
const byte *  edt 
)

◆ sendOPC1() [2/4]

void EL::sendOPC1 ( const IPAddress  toip,
const byte  seoj[],
const byte  deoj[],
const byte  esv,
const byte  epc,
const byte  pdcedt[] 
)
引数

return none

覚え書き
呼び出し関係図:

◆ sendOPC1() [3/4]

void EL::sendOPC1 ( const IPAddress  toip,
const byte  tid[],
const byte  seoj[],
const byte *  deoj,
const byte  esv,
const byte  epc,
const byte  edt[] 
)
被呼び出し関係図:

◆ sendOPC1() [4/4]

void EL::sendOPC1 ( const IPAddress  toip,
const int  devId,
const byte  deoj[],
const byte  esv,
const byte  epc,
const byte *  pdcedt 
)

◆ tidAutoIncrement()

void EL::tidAutoIncrement ( void  )
protected

TIDの自動インクリメント、オーバーフロー対策

引数
none
戻り値
none
覚え書き
被呼び出し関係図:

◆ update() [1/2]

void EL::update ( const byte  epc,
byte  pdcedt[] 
)

EPCの値を変更する, eojが1個の場合(複数の場合は0番に相当)

引数
epcconst byte
pdcedtbyte[]
戻り値
none
覚え書き
pdcedtなので、pdcは自分で計算することに注意
呼び出し関係図:
被呼び出し関係図:

◆ update() [2/2]

void EL::update ( const int  devId,
const byte  epc,
byte  pdcedt[] 
)

EPCの値を変更する, 複数の場合

引数
devIdconst int, コンストラクタで渡した順番に相当
epcconst byte
bytepdcedt[]
戻り値
none
呼び出し関係図:

メンバ詳解

◆ _rBuffer

byte EL::_rBuffer[EL_BUFFER_SIZE]

receive buffer

◆ _tid

byte EL::_tid[2]

TID (semi-auto incremented)

◆ devices

ELOBJ* EL::devices

device objects (for multi eoj)

◆ profile

ELOBJ EL::profile

profile object (for specialist)


このクラス詳解は次のファイルから抽出されました: