source: UsbWattMeter/trunk/src/usb_watt_meter/main.h

Last change on this file was 167, checked in by coas-nagasima, 8 years ago

MIMEにSJISを設定

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr; charset=SHIFT_JIS
File size: 5.5 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2016 Cores Co., Ltd. Japan
5 *
6 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
8 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
11 * スコード中に含まれていること.
12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
13 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
14 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
15 * の無保証規定を掲載すること.
16 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
17 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
18 * と.
19 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
20 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
21 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
22 * 報告すること.
23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
25 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
27 * 免責すること.
28 *
29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
33 * の責任を負わない.
34 *
35 * @(#) $Id: main.h 167 2016-03-08 11:37:45Z coas-nagasima $
36 */
37
38#ifndef _MAIN_H_
39#define _MAIN_H_
40
41/*
42 * サンプルプログラム(1)のヘッダファイル
43 */
44
45/*
46 * ターゲット依存の定義
47 */
48#include <kernel.h>
49#include "target_config.h"
50#include "echonet.h"
51
52/*
53 * 各タスクの優先度の定義
54 */
55
56#define MAIN_PRIORITY 5 /* メインタスクの優先度 */
57
58#define MAIN_STACK_SIZE 1024 /* スタック領域のサイズ */
59
60#define EOJ_X3_LOCAL_NODE 1 /* ノードプロファイルオブジェクトのインスタンスコード */
61
62#define EOJ_X3_ELECTRIC_ENERGY_METER_1 1 /* 電力量メータ1のインスタンスコード */
63#define EOJ_X3_ELECTRIC_ENERGY_METER_2 2 /* 電力量メータ2のインスタンスコード */
64#define EOJ_X3_ELECTRIC_ENERGY_METER_3 3 /* 電力量メータ3のインスタンスコード */
65#define EOJ_X3_ELECTRIC_ENERGY_METER_4 4 /* 電力量メータ4のインスタンスコード */
66#define EOJ_X3_ELECTRIC_ENERGY_METER_5 5 /* 電力量メータ5のインスタンスコード */
67#define EOJ_X3_ELECTRIC_ENERGY_METER_6 6 /* 電力量メータ6のインスタンスコード */
68
69#define KMM_SIZE 8192 /* カーネルが割り付けるメモリ領域のサイズ */
70
71/*
72 * 関数のプロトタイプ宣言
73 */
74#ifndef TOPPERS_MACRO_ONLY
75
76extern void main_task(intptr_t exinf);
77
78#ifdef __CA850__
79#pragma pack(1)
80#elif __RX
81#pragma pack
82#elif _MSC_VER
83#pragma pack(push, 1)
84#endif
85
86/*
87 * Version情報の型
88 */
89struct version_information_t {
90 /* メジャーバージョン(小数点以上) */
91 uint8_t major_version_number;
92 /* マイナーバージョン(小数点以下) */
93 uint8_t minor_version_number;
94 /* 電文タイプ */
95 uint8_t message_type[2];
96};
97
98/*
99 * メーカーコードの型
100 */
101struct manufacturer_code_t {
102 /* メーカーコード */
103 uint8_t manufacturer_code[3];
104};
105
106/*
107 * 識別番号の型
108 */
109struct node_identification_number_t {
110 /* 下位通信層IDフィールド */
111 uint8_t lower_communication_id_field;
112 /* メーカーコード */
113 struct manufacturer_code_t manufacturer_code;
114 /* ユニークID部(メーカー独自) */
115 uint8_t unique_id_section[13];
116};
117
118/*
119 * 規格Version情報の型
120 */
121struct standard_version_information_t {
122 /* 固定1(for future reserved) */
123 uint8_t reserved1;
124 /* 固定2(for future reserved) */
125 uint8_t reserved2;
126 /* リリース順をASCIIで示す */
127 uint8_t order_of_release;
128 /* 固定4(for future reserved) */
129 uint8_t reserved3;
130};
131
132/*
133 * ノードプロファイルオブジェクト
134 */
135struct node_profile_object_t {
136 /* 動作状態 */
137 uint8_t operation_status;
138 /* Version情報 */
139 struct version_information_t version_information;
140 /* 識別番号 */
141 struct node_identification_number_t identification_number;
142 /* 異常内容 */
143 uint16_t fault_content;
144 /* メーカーコード */
145 struct manufacturer_code_t manufacturer_code;
146};
147
148/*
149 * 電力量メータ
150 */
151struct watt_hour_meter_t {
152 /* 動作状態 */
153 uint8_t operation_status;
154 /* 設置場所 */
155 uint8_t installation_location;
156 /* 規格Version情報 */
157 struct standard_version_information_t standard_version_information;
158 /* 異常発生状態 */
159 uint8_t fault_status;
160 /* メーカーコード */
161 struct manufacturer_code_t manufacturer_code;
162 /* 積算電力量単位 */
163 uint8_t integral_electric_energy_unit;
164 /* 積算電力量計測値 */
165 uint32_t integral_electric_energy_measurement_value;
166 /* 積算電力量計測値履歴1 */
167 uint32_t integral_electric_energy_measurement_log[48];
168 int current_pos;
169};
170
171#ifdef __CA850__
172#pragma pack(8)
173#elif __RX
174#pragma unpack
175#elif _MSC_VER
176#pragma pack(pop)
177#endif
178
179extern struct node_profile_object_t local_node_data; /* ノードプロファイルオブジェクトのデータ */
180
181extern struct watt_hour_meter_t electric_energy_meter_data[6]; /* 電力量メータ1〜6のデータ */
182
183EPRP_SETTER onoff_prop_set;
184EPRP_SETTER alarm_prop_set;
185EPRP_SETTER time_prop_set;
186EPRP_GETTER time_prop_get;
187EPRP_SETTER date_prop_set;
188EPRP_GETTER date_prop_get;
189EPRP_GETTER watt_hour_meter_integral_electric_energy_measurement_value_get;
190EPRP_GETTER watt_hour_meter_integral_electric_energy_unit_get;
191EPRP_GETTER watt_hour_meter_integral_electric_energy_measurement_log_get;
192
193#endif /* TOPPERS_MACRO_ONLY */
194
195#endif /* of #ifndef _MAINN_H_ */
Note: See TracBrowser for help on using the repository browser.