Skip to content

Commit

Permalink
improve XML comment docs and fix warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
smdn committed Apr 3, 2024
1 parent 865c67e commit 01020a2
Show file tree
Hide file tree
Showing 4 changed files with 174 additions and 41 deletions.
1 change: 0 additions & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ SPDX-License-Identifier: MIT

<!-- disables code style/code analysis warnings configured by Smdn.MSBuild.ProjectAssets.Common -->
<PropertyGroup>
<NoWarn>CA1008;$(NoWarn)</NoWarn> <!-- CA1008: 提案された名前 'None' を伴う、値 0 を含む メンバーを追加します -->
<NoWarn>CA1031;$(NoWarn)</NoWarn> <!-- CA1031: 'Dispose' を変更してより具体的な許可された例外の種類をキャッチするか、例外を再スローしてください -->
<NoWarn>CA1063;$(NoWarn)</NoWarn> <!-- CA1063: Dispose(bool) のオーバーライド可能な実装を提供するか、型を sealed としてマークします。Dispose(false) を呼び出す場合は、ネイティブ リソースのみがクリーンアップされます。Dispose(true) を呼び出す場合には、マネージド リソースとネイティブ リソースの両方がクリーンアップされます。 -->
<NoWarn>CA1816;$(NoWarn)</NoWarn> <!-- CA1816: GC.SuppressFinalize(object) を呼び出すように Dispose() を変更します。これにより、ファイナライザーを導入する派生型で、その呼び出しのために 'IDisposable' を再実装する必要がなくなります。-->
Expand Down
33 changes: 26 additions & 7 deletions src/Smdn.Net.EchonetLite/Smdn.Net.EchonetLite.Protocol/EHD1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,31 @@
// SPDX-License-Identifier: MIT
namespace Smdn.Net.EchonetLite.Protocol;

/// <summary>
/// ECHONET Lite ヘッダ1 (EDH1)の値を表す列挙体です。
/// ECHONETのプロトコル種別を規定します。
/// </summary>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 3.2.1.1 ECHONET Lite ヘッダ1(EHD1)
/// </seealso>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 図 3-2 EHD1 詳細規定
/// </seealso>
#pragma warning disable CA1027
public enum EHD1 : byte {
// 図 3-2 EHD1 詳細規定
// プロトコル種別
// 1* * * :従来のECHONET規格
// 0001:ECHONET Lite規格
EchonetLite = 0x10,
// 0000:使用不可
// その他:future reserved
#pragma warning restore CA1027
/// <summary>
/// プロトコル種別として「使用不可」を表す値を示します。
/// </summary>
None = 0b_0000_0000,

/// <summary>
/// プロトコル種別として「ECHONET Lite規格」を表す値を示します。
/// </summary>
EchonetLite = 0b_0001_0000,

/// <summary>
/// プロトコル種別として「従来のECHONET規格」を表すビットをマスクする値を示します。
/// </summary>
MaskEchonet = 0b_1000_0000,
}
24 changes: 17 additions & 7 deletions src/Smdn.Net.EchonetLite/Smdn.Net.EchonetLite.Protocol/EHD2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,26 @@
// SPDX-License-Identifier: MIT
namespace Smdn.Net.EchonetLite.Protocol;

/// <summary>
/// ECHONET Lite ヘッダ2 (EDH2)の値を表す列挙体です。
/// ECHONET Lite フレームのEDATA部の電文形式を規定します。
/// </summary>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 3.2.1.1 ECHONET Lite ヘッダ2(EHD2)
/// </seealso>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 図 3-3 EHD2 詳細規定
/// </seealso>
#pragma warning disable CA1008
public enum EHD2 : byte {
// 図 3-3 EHD2 詳細規定
#pragma warning restore CA1008
/// <summary>
/// 形式1
/// EDATA部の電文形式として「電文形式 1(規定電文形式)」を表す値を示します。
/// </summary>
Type1 = 0x81,
Type1 = 0b_1000_0001,

/// <summary>
/// 形式2
/// EDATA部の電文形式として「電文形式 2(任意電文形式)」を表す値を示します。
/// </summary>
Type2 = 0x82,
// その他:future reserved
// ただし、b7=1固定
Type2 = 0b_1000_0010,
}
157 changes: 131 additions & 26 deletions src/Smdn.Net.EchonetLite/Smdn.Net.EchonetLite.Protocol/ESV.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,49 +3,154 @@
// SPDX-License-Identifier: MIT
namespace Smdn.Net.EchonetLite.Protocol;

/// <summary>
/// ECHONET Lite ヘッダ2 (EDH2)の値を表す列挙体です。
/// ECHONET Lite サービスコードを規定します。
/// </summary>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 3.2.5 ECHONET Lite サービス(ESV)
/// </seealso>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 図 3-5 ESV コードの詳細規定
/// </seealso>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 表 3-9 要求用 ESV コード一覧表
/// </seealso>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 表 3-10 応答・通知用 ESV コード一覧表
/// </seealso>
/// <seealso href="https://echonet.jp/spec_v114_lite/">
/// ECHONET Lite規格書 Ver.1.14 第2部 ECHONET Lite 通信ミドルウェア仕様 表 3-11 不可応答用 ESV コード一覧表
/// </seealso>
// #pragma warning disable CA1027
public enum ESV : byte {
// 表 3-9 要求用 ESV コード一覧表
/// <summary>0x60 プロパティ値書き込み要求(応答不要) SetI 一斉同報可</summary>
/// <summary>
/// 未定義または無効なサービスコードを表す値を示します。
/// </summary>
Invalid = 0,

/// <summary>
/// サービスコード<c>0x60</c>、「プロパティ値書き込み要求(応答不要)」(記号:<c>SetI</c>) を表す値を示します。
/// このサービスは、一斉同報可です。
/// </summary>
SetI = 0x60,
/// <summary>0x61 プロパティ値書き込み要求(応答要) SetC </summary>

/// <summary>
/// サービスコード<c>0x61</c>、「プロパティ値書き込み要求(応答要)」(記号:<c>SetC</c>) を表す値を示します。
/// このサービスは、一斉同報可です。
/// </summary>
SetC = 0x61,
/// <summary>0x62 プロパティ値読み出し要求 Get 一斉同報可</summary>

/// <summary>
/// サービスコード<c>0x62</c>、「プロパティ値読み出し要求」(記号:<c>Get</c>) を表す値を示します。
/// このサービスは、一斉同報可です。
/// </summary>
Get = 0x62,
/// <summary>0x63 プロパティ値通知要求 INF_REQ 一斉同報可</summary>

/// <summary>
/// サービスコード<c>0x63</c>、「プロパティ値通知要求」(記号:<c>INF_REQ</c>) を表す値を示します。
/// このサービスは、一斉同報可です。
/// </summary>
InfRequest = 0x63,
// 0x64-0x6D for future reserved,
/// <summary>0x6E プロパティ値書き込み・読み出し要求 SetGet 一斉同報可</summary>

/*
* 0x64-0x6D: for future reserved
*/

/// <summary>
/// サービスコード<c>0x6E</c>、「プロパティ値書き込み・読み出し要求」(記号:<c>SetGet</c>) を表す値を示します。
/// このサービスは、一斉同報可です。
/// </summary>
SetGet = 0x6E,
// 0x6F for future reserved,

// 表 3-10 応答・通知用 ESV コード一覧表
/// <summary>0x71 プロパティ値書き込み応答 Set_Res ESV=0x61 の応答、個別応答</summary>
/*
* 0x6F: for future reserved
*/

/// <summary>
/// サービスコード<c>0x71</c>、「プロパティ値書き込み応答」(記号:<c>Set_Res</c>) を表す値を示します。
/// <see cref="SetC">ESV=0x61</see>の応答、個別応答です。
/// </summary>
SetResponse = 0x71,
/// <summary>0x72 プロパティ値読み出し応答 Get_Res ESV=0x62 の応答、個別応答</summary>

/// <summary>
/// サービスコード<c>0x72</c>、「プロパティ値読み出し応答」(記号:<c>Get_Res</c>) を表す値を示します。
/// <see cref="Get">ESV=0x62</see>の応答、個別応答です。
/// </summary>
GetResponse = 0x72,
/// <summary>0x73 プロパティ値通知 INF *1個別通知、一斉同報通知共に可</summary>

/// <summary>
/// サービスコード<c>0x73</c>、「プロパティ値通知」(記号:<c>INF</c>) を表す値を示します。
/// 自発的なプロパティ値通知、及び、<see cref="InfRequest">ESV=0x63</see>の応答に使用します。
/// このサービスは、個別通知、一斉同報通知共に可です。
/// </summary>
Inf = 0x73,
/// <summary>0x74 プロパティ値通知(応答要) INFC 個別通知</summary>

/// <summary>
/// サービスコード<c>0x74</c>、「プロパティ値通知(応答要)」(記号:<c>INFC</c>) を表す値を示します。
/// このサービスは、個別通知のみです。
/// </summary>
InfC = 0x74,
// 0x75-0x79 for future reserved,
/// <summary>0x7A プロパティ値通知応答 INFC_Res ESV=0x74 の応答、個別応答</summary>

/*
* 0x75-0x79: for future reserved
*/

/// <summary>
/// サービスコード<c>0x7A</c>、「プロパティ値通知応答」(記号:<c>INFC_Res</c>) を表す値を示します。
/// <see cref="InfC">ESV=0x74</see>の応答、個別応答です。
/// </summary>
InfCResponse = 0x7A,
// 0x7B-0x7D for future reserved,
/// <summary>0x7E プロパティ値書き込み・読み出し応答 SetGet_Res ESV=0x6E の応答、個別応答</summary>

/*
* 0x7B-0x7D: for future reserved
*/

/// <summary>
/// サービスコード<c>0x7E</c>、「プロパティ値書き込み・読み出し応答」(記号:<c>SetGet_Res</c>) を表す値を示します。
/// <see cref="SetGet">ESV=0x6E</see>の応答、個別応答です。
/// </summary>
SetGetResponse = 0x7E,
// 0x7F for future reserved,

// 表 3-11 不可応答用 ESV コード一覧表
/// <summary>0x50 プロパティ値書き込み要求不可応答 SetI_SNA ESV=0x60 の不可応答、個別応答</summary>
/*
* 0x7F: for future reserved
*/

/// <summary>
/// サービスコード<c>0x50</c>、「プロパティ値書き込み要求不可応答」(記号:<c>SetI_SNA</c>) を表す値を示します。
/// <see cref="SetI">ESV=0x60</see>の不可応答、個別応答です。
/// </summary>
SetIServiceNotAvailable = 0x50,
/// <summary>0x51 プロパティ値書き込み要求不可応答 SetC_SNA ESV=0x61 の不可応答、個別応答</summary>

/// <summary>
/// サービスコード<c>0x51</c>、「プロパティ値書き込み要求不可応答」(記号:<c>SetC_SNA</c>) を表す値を示します。
/// <see cref="SetC">ESV=0x61</see>の不可応答、個別応答です。
/// </summary>
SetCServiceNotAvailable = 0x51,
/// <summary>0x52 プロパティ値読み出し不可応答 Get_SNA ESV=0x62 の不可応答、個別応答</summary>

/// <summary>
/// サービスコード<c>0x52</c>、「プロパティ値読み出し不可応答」(記号:<c>Get_SNA</c>) を表す値を示します。
/// <see cref="Get">ESV=0x62</see>の不可応答、個別応答です。
/// </summary>
GetServiceNotAvailable = 0x52,
/// <summary>0x53 プロパティ値通知不可応答 INF_SNA ESV=0x63 の不可応答、個別応答</summary>

/// <summary>
/// サービスコード<c>0x53</c>、「プロパティ値通知不可応答」(記号:<c>INF_SNA</c>) を表す値を示します。
/// <see cref="InfRequest">ESV=0x63</see>の不可応答、個別応答です。
/// </summary>
InfServiceNotAvailable = 0x53,
// 0x54-0x5D for future reserved,
/// <summary>0x5E プロパティ値書き込み・読み出し不可応答 SetGet_SNA ESV=0x6E の不可応答、個別応答</summary>

/*
* 0x54-0x5D: for future reserved
*/

/// <summary>
/// サービスコード<c>0x5E</c>、「プロパティ値書き込み・読み出し不可応答」(記号:<c>SetGet_SNA</c>) を表す値を示します。
/// <see cref="SetGet">ESV=0x6E</see>の不可応答、個別応答です。
/// </summary>
SetGetServiceNotAvailable = 0x5E,
// 0x5F for future reserved

/*
* 0x5F: for future reserved
*/
}

0 comments on commit 01020a2

Please sign in to comment.