ARCS6 AR6-REV.24062600
読み取り中…
検索中…
一致する文字列を見つけられません
UDPTransmitter.hh
[詳解]
1
8//
9// Copyright (C) 2011-2019 Yuki YOKOKURA
10// This program is free software;
11// you can redistribute it and/or modify it under the terms of the FreeBSD License.
12// For details, see the License.txt file.
13
14#ifndef UDPTRANS
15#define UDPTRANS
16
17#include <sys/types.h>
18#include <sys/socket.h>
19#include <netinet/in.h>
20#include <arpa/inet.h>
21
22namespace ARCS { // ARCS名前空間
25 public:
26 // 送信データの型の設定用定義
27 enum VarType {
28 UDP_INT16_T, // int16_t型
29 UDP_INT32_T, // int32_t型
30 UDP_UINT16_T, // uint16_t型
31 UDP_UINT32_T, // uint32_t型
32 UDP_DOUBLE // double型
33 };
34 // コンストラクタ (関数オーバーロード: 宛先のみ指定する場合)
35 // IPaddress_dest : 宛先IPアドレス, PortNum_dest : 宛先Port番号
36 // TypeOfVar : 送信する変数の型(ヘッダの定義を参照せよ), NumOfVar : 送信する変数の数
37 UDPTransmitter(const char* IPaddress, const unsigned short PortNum, VarType TypeOfVar, unsigned int NumOfVar);
38 // コンストラクタ (関数オーバーロード: 発信元を指定する場合)
39 // IPaddress_dept : 発信元IPアドレス, PortNum_dept : 発信元Port番号
40 // IPaddress_dest : 宛先IPアドレス, PortNum_dest : 宛先Port番号
41 // TypeOfVar : 送信する変数の型, NumOfVar : 送信する変数の数
42 UDPTransmitter(const char* IPaddress_dept, const unsigned short PortNum_dept,
43 const char* IPaddress_dest, const unsigned short PortNum_dest, VarType TypeOfVar, unsigned int NumOfVar);
44 ~UDPTransmitter(); // デストラクタ
45 void SetNumOfVar(unsigned int NumOfVar); // 送信する変数の数を再設定する関数 注意:コンストラクタのNumOfVarを超えてはならない!
46 // オーバーロードここから (そのうちテンプレートで書きなおす予定)
47 // charデータを送信する関数
48 // Data : 送信データ, Length : 送信データのバイト数
49 void Transmit(const char* Data, unsigned int Length);
50 // int16_tデータを送信する関数 Data : 送信データ
51 volatile bool Transmit(int16_t* Data);
52 // int32_tデータを送信する関数 Data : 送信データ
53 volatile bool Transmit(int32_t* Data);
54 // uint16_tデータを送信する関数 Data : 送信データ
55 volatile bool Transmit(uint16_t* Data);
56 // uint32_tデータを送信する関数 Data : 送信データ
57 volatile bool Transmit(uint32_t* Data);
58 // doubleデータを送信する関数 Data : 送信データ
59 volatile bool Transmit(double* Data);
60 // オーバーロードここまで
61
62 private:
63 UDPTransmitter(const UDPTransmitter&); // コピーコンストラクタ使用禁止
64 const UDPTransmitter& operator=(const UDPTransmitter&); // 代入演算子使用禁止
65 volatile bool SendTo(void); // 実際に送信を実行する関数
66 int sock; // ソケットファイルディスクリプタ
67 struct sockaddr_in addr_dest; // 宛先ソケット構造体
68 struct sockaddr_in addr_dept; // 発信元ソケット構造体
69 VarType VariableType; // 送信するデータの型
70 char* TransData; // 送信バイナリデータ
71 size_t TransBytes; // 送信バイナリデータのバイト数
72 static size_t CalcTransBytes(VarType TypeOfVar, unsigned int NumOfVar); // 送信するデータの型からバイト数を計算する関数
73 };
74}
75
76#endif
77
UDP送信器クラス
Definition UDPTransmitter.hh:24