Changeset 364 for asp3_tinet_ecnl_arm/trunk/app3_human_detec
- Timestamp:
- Feb 1, 2019, 9:57:09 PM (5 years ago)
- Location:
- asp3_tinet_ecnl_arm/trunk/app3_human_detec
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_tinet_ecnl_arm/trunk/app3_human_detec/.cproject
r352 r364 22 22 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 23 23 <option id="toolchain.id" value="gcc-arm-embedded"/> 24 <option id="toolchain.version" value=" 5.4.1.20160919"/>24 <option id="toolchain.version" value="6.3.1.20170620"/> 25 25 </storageModule> 26 26 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 59 59 <option id="com.renesas.cdt.managedbuild.gcc.rz.option.warnStack.2061453524" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.rz.option.warnStack" useByScannerDiscovery="false" value="100" valueType="string"/> 60 60 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.2110510466" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/> 61 <builder buildPath="${workspace_loc:/app3_human_detec}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.2014365971" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>61 <builder buildPath="${workspace_loc:/app3_human_detec}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.2014365971" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/> 62 62 <tool id="com.renesas.cdt.managedbuild.gcc.rz.tool.assembler.1586235718" name="Cross ARM GNU Assembler" superClass="com.renesas.cdt.managedbuild.gcc.rz.tool.assembler"> 63 63 <option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1315128639" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/> … … 127 127 <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo"> 128 128 <option id="toolchain.id" value="gcc-arm-embedded"/> 129 <option id="toolchain.version" value=" 5.4.1.20160919"/>129 <option id="toolchain.version" value="6.3.1.20170620"/> 130 130 </storageModule> 131 131 <storageModule moduleId="cdtBuildSystem" version="4.0.0"> … … 164 164 <option id="com.renesas.cdt.managedbuild.gcc.rz.option.warnStack.1077866862" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.rz.option.warnStack" useByScannerDiscovery="false" value="100" valueType="string"/> 165 165 <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.22147358" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/> 166 <builder buildPath="${workspace_loc:/app3_human_detec}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.rz.builder.1165377046" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>166 <builder buildPath="${workspace_loc:/app3_human_detec}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.rz.builder.1165377046" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/> 167 167 <tool id="com.renesas.cdt.managedbuild.gcc.rz.tool.assembler.154532541" name="Cross ARM GNU Assembler" superClass="com.renesas.cdt.managedbuild.gcc.rz.tool.assembler"> 168 168 <option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1431457153" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/> -
asp3_tinet_ecnl_arm/trunk/app3_human_detec/Debug/Makefile
r352 r364 173 173 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 174 174 endif 175 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=_binary_______ntshell_src_rom_fs_bin_start175 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=_binary_______ntshell_src_rom_fs_bin_start 176 176 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 177 177 -I$(SRCDIR)/../btstack/include \ … … 181 181 -I$(SRCDIR)/../usbhost/src \ 182 182 $(INCLUDES) 183 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.183 LDFLAGS := $(LDFLAGS) -L. 184 184 LIBS := $(LIBS) $(CXXLIBS) 185 185 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 215 215 endif 216 216 217 218 # 219 # ネットワークサービスの定義 220 # 221 NO_USE_TINET_LIBRARY = true 222 223 # ネットワークインタフェースの選択、何れか一つ選択する。 224 NET_IF = ether 225 226 # イーサネット・ディバイスドライバの選択 227 NET_DEV = if_btusb 228 229 # ネットワーク層の選択 230 #SUPPORT_INET6 = true 231 SUPPORT_INET4 = true 232 233 # API に組込む機能の選択 234 #API_CFG_IP4MAPPED_ADDR = true 235 236 # トランスポート層の選択 237 SUPPORT_TCP = true 238 SUPPORT_UDP = true 239 240 # IGMPを有効に設定 241 SUPPORT_IGMP = true 242 243 # 244 # ネットワークサービスの Makefile のインクルード 245 # 246 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 217 ifdef TINETDIR 218 # 219 # ネットワークサービスの定義 220 # 221 NO_USE_TINET_LIBRARY = true 222 223 # ネットワークインタフェースの選択、何れか一つ選択する。 224 NET_IF = ether 225 226 # イーサネット・ディバイスドライバの選択 227 NET_DEV = if_btusb 228 229 # ネットワーク層の選択 230 #SUPPORT_INET6 = true 231 SUPPORT_INET4 = true 232 233 # API に組込む機能の選択 234 #API_CFG_IP4MAPPED_ADDR = true 235 236 # トランスポート層の選択 237 SUPPORT_TCP = true 238 SUPPORT_UDP = true 239 240 # IGMPを有効に設定 241 SUPPORT_IGMP = true 242 243 # 244 # ネットワークサービスの Makefile のインクルード 245 # 246 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 247 endif 247 248 248 249 # … … 277 278 # コンフィギュレータに関する定義 278 279 # 279 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel 280 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \ 280 ifndef TINETDIR 281 CFG_TRB := -T $(TARGETDIR)/target_kernel.trb 282 CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \ 283 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 284 else 285 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel 286 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \ 281 287 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 282 288 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 284 290 --symval-table ../../ntshell/echonet/echonet_sym.def \ 285 291 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 292 endif 286 293 CFG_ASMOBJS := $(CFG_ASMOBJS) 287 294 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 429 436 430 437 # 438 # 並列makeのための依存関係の定義 439 # 440 $(APPL_OBJS) $(filter-out $(CFG_DMY), $(SYSSVC_OBJS)): | kernel_cfg.timestamp 441 $(APPL_ASMOBJS) $(filter-out $(CFG_DMY), $(SYSSVC_ASMOBJS)) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 442 | offset.timestamp 443 444 # 431 445 # 特別な依存関係の定義 432 446 # … … 437 451 # 438 452 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 439 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \453 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 440 454 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 441 455 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) -
asp3_tinet_ecnl_arm/trunk/app3_human_detec/DebugEther/Makefile
r352 r364 171 171 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 172 172 endif 173 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=_binary_______ntshell_src_rom_fs_bin_start173 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DNOUSE_MPF_NET_BUF -DECHONET_USE_MALLOC -DRamDisk=_binary_______ntshell_src_rom_fs_bin_start 174 174 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 175 175 -I$(SRCDIR)/../btstack/include \ … … 179 179 -I$(SRCDIR)/../usbhost/src \ 180 180 $(INCLUDES) 181 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.181 LDFLAGS := $(LDFLAGS) -L. 182 182 LIBS := $(LIBS) $(CXXLIBS) 183 183 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 213 213 endif 214 214 215 216 #217 # ネットワークサービスの定義218 #219 NO_USE_TINET_LIBRARY = true220 221 # ネットワークインタフェースの選択、何れか一つ選択する。222 NET_IF = ether223 224 # イーサネット・ディバイスドライバの選択215 ifdef TINETDIR 216 # 217 # ネットワークサービスの定義 218 # 219 NO_USE_TINET_LIBRARY = true 220 221 # ネットワークインタフェースの選択、何れか一つ選択する。 222 NET_IF = ether 223 224 # イーサネット・ディバイスドライバの選択 225 225 NET_DEV = if_mbed 226 226 227 # ネットワーク層の選択 228 #SUPPORT_INET6 = true 229 SUPPORT_INET4 = true 230 231 # API に組込む機能の選択 232 #API_CFG_IP4MAPPED_ADDR = true 233 234 # トランスポート層の選択 235 SUPPORT_TCP = true 236 SUPPORT_UDP = true 237 238 # IGMPを有効に設定 239 SUPPORT_IGMP = true 240 241 # 242 # ネットワークサービスの Makefile のインクルード 243 # 244 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 227 # ネットワーク層の選択 228 #SUPPORT_INET6 = true 229 SUPPORT_INET4 = true 230 231 # API に組込む機能の選択 232 #API_CFG_IP4MAPPED_ADDR = true 233 234 # トランスポート層の選択 235 SUPPORT_TCP = true 236 SUPPORT_UDP = true 237 238 # IGMPを有効に設定 239 SUPPORT_IGMP = true 240 241 # 242 # ネットワークサービスの Makefile のインクルード 243 # 244 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 245 endif 245 246 246 247 # … … 275 276 # コンフィギュレータに関する定義 276 277 # 277 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel 278 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \ 278 ifndef TINETDIR 279 CFG_TRB := -T $(TARGETDIR)/target_kernel.trb 280 CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \ 281 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 282 else 283 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel 284 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \ 279 285 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 280 286 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 282 288 --symval-table ../../ntshell/echonet/echonet_sym.def \ 283 289 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 290 endif 284 291 CFG_ASMOBJS := $(CFG_ASMOBJS) 285 292 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 427 434 428 435 # 436 # 並列makeのための依存関係の定義 437 # 438 $(APPL_OBJS) $(filter-out $(CFG_DMY), $(SYSSVC_OBJS)): | kernel_cfg.timestamp 439 $(APPL_ASMOBJS) $(filter-out $(CFG_DMY), $(SYSSVC_ASMOBJS)) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 440 | offset.timestamp 441 442 # 429 443 # 特別な依存関係の定義 430 444 # … … 435 449 # 436 450 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 437 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \451 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 438 452 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 439 453 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) -
asp3_tinet_ecnl_arm/trunk/app3_human_detec/src/echonet_main.c
r352 r364 1 1 /* 2 2 * TOPPERS ECHONET Lite Communication Middleware 3 * 3 * 4 4 * Copyright (C) 2014-2018 Cores Co., Ltd. Japan 5 * 5 * 6 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 … … 26 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 27 * 免責すること. 28 * 28 * 29 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 … … 32 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 33 * の責任を負わない. 34 * 34 * 35 35 * @(#) $Id$ 36 36 */ 37 37 38 /* 38 /* 39 39 * サンプルプログラム(1)の本体 40 40 */ … … 94 94 { 95 95 /* サイズが1以外は受け付けない */ 96 if (size != 1)96 if (size != 1) 97 97 return 0; 98 98 99 99 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 100 100 101 switch (*(uint8_t *)src){101 switch (*(uint8_t *)src) { 102 102 /* ONの場合 */ 103 103 case 0x30: … … 126 126 { 127 127 /* サイズが1以外は受け付けない */ 128 if (size != 1)128 if (size != 1) 129 129 return 0; 130 130 131 131 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 132 132 133 switch (*(uint8_t *)src){133 switch (*(uint8_t *)src) { 134 134 /* 異常発生ありの場合 */ 135 135 case 0x41: … … 152 152 { 153 153 /* サイズが1以外は受け付けない */ 154 if (size != 1)155 return 0; 156 157 if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)){154 if (size != 1) 155 return 0; 156 157 if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)) { 158 158 *((uint8_t *)item->exinf) = *((uint8_t *)src); 159 159 } 160 160 /* 上記以外は受け付けない */ 161 else {161 else { 162 162 return 0; 163 163 } … … 180 180 181 181 /* サイズが1以外は受け付けない */ 182 if (size != 1)182 if (size != 1) 183 183 return 0; 184 184 185 185 *anno = false; 186 186 187 if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)){187 if ((*(uint8_t *)src >= 0x31) && (*(uint8_t *)src <= 0x38)) { 188 188 /* 以前の検知レベルを保存 */ 189 189 prev_state = eobj->state; … … 197 197 198 198 /* 人体検知状態に変化があった場合 */ 199 if((prev_state < eobj->threshold) != (eobj->state < eobj->threshold)) 200 { 199 if ((prev_state < eobj->threshold) != (eobj->state < eobj->threshold)) { 201 200 /* プロパティ通知 */ 202 201 *anno = true; … … 204 203 } 205 204 /* 上記以外は受け付けない */ 206 else {205 else { 207 206 return 0; 208 207 } … … 211 210 } 212 211 213 /* 212 /* 214 213 * 人体検知状態取得関数 215 214 */ … … 219 218 220 219 /* 閾値より検知レベルが低い場合 */ 221 if (eobj->state < eobj->threshold){220 if (eobj->state < eobj->threshold) { 222 221 /* 人体検知なし */ 223 222 ((uint8_t *)dst)[0] = 0x42; 224 223 } 225 224 /* 閾値より検知レベルが高い場合 */ 226 else {225 else { 227 226 /* 人体検知あり */ 228 227 ((uint8_t *)dst)[0] = 0x41; … … 255 254 256 255 ret2 = get_tim(&now); 257 if (ret2 != E_OK) {256 if (ret2 != E_OK) { 258 257 syslog(LOG_ERROR, "get_tim"); 259 258 return; 260 259 } 261 260 262 for (;;){261 for (;;) { 263 262 prev = now; 264 263 … … 268 267 /* 応答電文待ち */ 269 268 ret = ecn_trcv_esv(&esv, timer); 270 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {269 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) { 271 270 syslog(LOG_ERROR, "ecn_trcv_esv"); 272 271 break; … … 274 273 275 274 ret2 = get_tim(&now); 276 if (ret2 != E_OK) {275 if (ret2 != E_OK) { 277 276 syslog(LOG_ERROR, "get_tim"); 278 277 break; … … 289 288 /* 領域解放 */ 290 289 ret = ecn_rel_esv(esv); 291 if (ret != E_OK) {290 if (ret != E_OK) { 292 291 syslog(LOG_ERROR, "ecn_rel_esv"); 293 292 break; … … 298 297 /* 応答電文待ちの割り込みデータ取得 */ 299 298 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 300 if (ret != E_OK) {299 if (ret != E_OK) { 301 300 syslog(LOG_ERROR, "ecn_get_brk_dat"); 302 301 break; … … 308 307 /* 領域解放 */ 309 308 ret = ecn_rel_esv(esv); 310 if (ret != E_OK) {309 if (ret != E_OK) { 311 310 syslog(LOG_ERROR, "ecn_rel_esv"); 312 311 break; … … 319 318 } 320 319 321 bool_t started = false;322 323 320 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 324 321 { … … 328 325 return; 329 326 330 if (up && !started) { 331 started = true; 332 333 /* ECHONETミドルウェアを起動 */ 334 ret = ecn_sta_svc(); 335 if (ret != E_OK) 336 return; 337 338 /* ECHONETミドルウェアを起動するのを待つ */ 339 dly_tsk(100); 327 if (up) { 328 /* インスタンスリスト通知の送信 */ 329 ret = ecn_ntf_inl(); 330 if (ret != E_OK) { 331 syslog(LOG_ERROR, "ecn_ntf_inl"); 332 } 340 333 } 341 334 … … 351 344 } 352 345 353 enum main_state_t{ 346 enum main_state_t { 347 main_state_start, 354 348 main_state_idle, 355 349 }; 356 350 357 351 int main_timer = TMO_FEVR; 358 enum main_state_t main_state = main_state_ idle;352 enum main_state_t main_state = main_state_start; 359 353 bool_t main_btn1_state; 360 354 int main_btn1_count = 0; … … 386 380 gpio_write(&led_red, 0); 387 381 388 /* 10ms後にボタン状態を確認 */ 389 main_timer = 10 * 1000; 382 /* ECHONETミドルウェアを起動するのを待つ */ 383 main_state = main_state_start; 384 main_timer = 1000 * 1000; 390 385 391 386 /* アナログ入力の初期化 */ … … 398 393 main_btn2_state = btn2 != 0; 399 394 395 /* メインタスクを起動 */ 400 396 ER ret = act_tsk(MAIN_TASK); 401 397 if (ret != E_OK) { … … 417 413 static void main_progress(int interval) 418 414 { 419 if (main_timer == TMO_FEVR)415 if (main_timer == TMO_FEVR) 420 416 return; 421 417 422 418 main_timer -= interval; 423 if (main_timer < 0){419 if (main_timer < 0) { 424 420 main_timer = 0; 425 421 } … … 438 434 439 435 ret = ecn_itr_ini(&enm, esv); 440 if (ret != E_OK){436 if (ret != E_OK) { 441 437 syslog(LOG_ERROR, "ecn_itr_ini"); 442 438 return; 443 439 } 444 440 445 for (;;) {446 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {441 for (;;) { 442 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) { 447 443 switch (epc) { 448 444 case 0x80: … … 452 448 } 453 449 } 454 if (ret != E_BOVR){450 if (ret != E_BOVR) { 455 451 syslog(LOG_ERROR, "ecn_itr_nxt"); 456 452 break; 457 453 } 458 if (enm.is_eof)454 if (enm.is_eof) 459 455 break; 460 456 } … … 466 462 static void main_break_wait(uint8_t *brkdat, int32_t len) 467 463 { 468 switch (main_state){464 switch (main_state) { 469 465 case main_state_idle: 470 466 break; … … 488 484 static void main_timeout() 489 485 { 486 ER ret; 490 487 uint8_t btn1, btn2; 491 488 uint16_t ad_value; 492 489 uint8_t ad_level; 493 490 494 if(main_timer != 0) 495 return; 496 497 switch(main_state){ 491 if (main_timer != 0) 492 return; 493 494 switch (main_state) { 495 case main_state_start: 496 /* ECHONETミドルウェアを起動 */ 497 ret = ecn_sta_svc(); 498 if (ret != E_OK) { 499 syslog(LOG_ERROR, "ecn_sta_svc"); 500 } 501 502 /* 10ms後にボタン状態を確認 */ 503 main_state = main_state_idle; 504 main_timer = 10 * 1000; 505 break; 498 506 case main_state_idle: 499 507 /* 10ms後にボタン状態を確認 */ … … 507 515 508 516 main_ad_pos++; 509 if (main_ad_pos >= main_ad_table_count){517 if (main_ad_pos >= main_ad_table_count) { 510 518 main_ad_pos = 0; 511 519 } 512 520 513 ad_level = (((main_ad_avelage / main_ad_table_count) >> 9) & 0x7) + 1;514 if (main_ad_level != ad_level){521 ad_level = 8 - (((main_ad_avelage / main_ad_table_count) >> 9) & 0x7); 522 if (main_ad_level != ad_level) { 515 523 /* 1秒変化が続いたら */ 516 if (main_count < 100){524 if (main_count < 100) { 517 525 main_count++; 518 526 } 519 else {527 else { 520 528 main_ad_level = ad_level; 521 529 … … 524 532 } 525 533 } 526 else {534 else { 527 535 main_count = 0; 528 536 } … … 533 541 534 542 /* ボタン1の処理 */ 535 if ((btn1 != 0) && !main_btn1_state){543 if ((btn1 != 0) && !main_btn1_state) { 536 544 main_btn1_count++; 537 if (main_btn1_count > 10){545 if (main_btn1_count > 10) { 538 546 main_btn1_count = 0; 539 547 main_btn1_state = true; … … 542 550 } 543 551 } 544 else if ((btn1 == 0) && main_btn1_state){552 else if ((btn1 == 0) && main_btn1_state) { 545 553 main_btn1_count++; 546 if (main_btn1_count > 10){554 if (main_btn1_count > 10) { 547 555 main_btn1_count = 0; 548 556 main_btn1_state = false; … … 553 561 554 562 /* ボタン2の処理 */ 555 if ((btn2 != 0) && !main_btn2_state){563 if ((btn2 != 0) && !main_btn2_state) { 556 564 main_btn2_count++; 557 if (main_btn2_count > 10){565 if (main_btn2_count > 10) { 558 566 main_btn2_count = 0; 559 567 main_btn2_state = true; … … 562 570 } 563 571 } 564 else if ((btn2 == 0) && main_btn2_state){572 else if ((btn2 == 0) && main_btn2_state) { 565 573 main_btn2_count++; 566 if (main_btn2_count > 10){574 if (main_btn2_count > 10) { 567 575 main_btn2_count = 0; 568 576 main_btn2_state = false; … … 588 596 /* プロパティ設定電文作成 */ 589 597 ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt); 590 if (ret != E_OK){598 if (ret != E_OK) { 591 599 syslog(LOG_ERROR, "ecn_esv_setc"); 592 600 return; … … 610 618 611 619 /* 押されて戻った時に処理する */ 612 if (push)620 if (push) 613 621 return; 614 622 615 623 /* 人体検知状態 */ 616 if (!main_rev){624 if (!main_rev) { 617 625 main_level--; 618 if (main_level < 1){626 if (main_level < 1) { 619 627 main_level = 1; 620 628 main_rev = true; 621 629 } 622 630 } 623 else {631 else { 624 632 main_level++; 625 if (main_level > 8){633 if (main_level > 8) { 626 634 main_level = 8; 627 635 main_rev = false; … … 633 641 /* プロパティ設定電文作成 */ 634 642 ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt); 635 if (ret != E_OK){643 if (ret != E_OK) { 636 644 syslog(LOG_ERROR, "ecn_esv_setc"); 637 645 return; … … 652 660 653 661 /* 押されて戻った時に処理する */ 654 if (push)662 if (push) 655 663 return; 656 664 657 665 /* 人体検知状態 */ 658 if (!main_rev){666 if (!main_rev) { 659 667 main_level++; 660 if (main_level > 8){668 if (main_level > 8) { 661 669 main_level = 8; 662 670 main_rev = false; 663 671 } 664 672 } 665 else {673 else { 666 674 main_level--; 667 if (main_level < 1){675 if (main_level < 1) { 668 676 main_level = 1; 669 677 main_rev = true; … … 675 683 /* プロパティ設定電文作成 */ 676 684 ret = ecn_esv_setc(&esv, HUMAN_DETECTION_SENSOR_EOBJ, 0xB1, 1, p_edt); 677 if (ret != E_OK){685 if (ret != E_OK) { 678 686 syslog(LOG_ERROR, "ecn_esv_setc"); 679 687 return; -
asp3_tinet_ecnl_arm/trunk/app3_human_detec/src/main.c
r359 r364 79 79 80 80 ID ws_api_mailboxid = MAIN_DATAQUEUE; 81 #ifndef NOUSE_MPF_NET_BUF 81 82 ID ws_mempoolid = MPF_NET_BUF_256; 83 #endif 82 84 83 85 #ifdef IF_ETHER_BTUSB … … 111 113 static void main_timeout(); 112 114 115 extern int ntshell_exit; 116 113 117 int uart_read(char *buf, int cnt, void *extobj) 114 118 { 115 return serial_rea_dat(SIO_PORTID, (char *)buf, cnt); 119 struct main_t *obj = (struct main_t *)extobj; 120 int result; 121 ER ret; 122 int timer; 123 124 obj->prev = obj->now; 125 126 /* タイマー取得 */ 127 timer = main_get_timer(); 128 129 /* 待ち */ 130 ret = serial_trea_dat(SIO_PORTID, buf, cnt, timer); 131 if ((ret < 0) && (ret != E_OK) && (ret != E_TMOUT)) { 132 syslog(LOG_NOTICE, "tslp_tsk ret: %s %d", itron_strerror(ret), timer); 133 ntshell_exit = 1; 134 return -1; 135 } 136 result = (int)ret; 137 138 ret = get_tim(&obj->now); 139 if (ret != E_OK) { 140 syslog(LOG_NOTICE, "get_tim ret: %s", itron_strerror(ret)); 141 ntshell_exit = 1; 142 return -1; 143 } 144 145 /* 時間経過 */ 146 int elapse = obj->now - obj->prev; 147 main_progress(elapse); 148 149 /* タイムアウト処理 */ 150 main_timeout(); 151 152 return result; 116 153 } 117 154 … … 119 156 { 120 157 return serial_wri_dat(SIO_PORTID, buf, cnt); 121 }122 123 unsigned char ntstdio_xi(struct ntstdio_t *handle)124 {125 char buf[1];126 if(serial_rea_dat(SIO_PORTID, buf, 1) != 1)127 return -EIO;128 return buf[0];129 }130 131 void ntstdio_xo(struct ntstdio_t *handle, unsigned char c)132 {133 char buf[1];134 buf[0] = c;135 serial_wri_dat(SIO_PORTID, buf, 1);136 158 } 137 159 … … 150 172 main_initialize(); 151 173 152 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);174 ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj); 153 175 ntshell_set_prompt(&ntshell, "NTShell>"); 154 176 ntshell_execute(&ntshell); … … 168 190 ER ret; 169 191 170 ntshell_task_init(); 192 #ifdef TOPPERS_OMIT_TECS 193 serial_opn_por(SIO_PORTID); 194 #endif 195 serial_ctl_por(SIO_PORTID, IOCTL_FCSND | IOCTL_FCRCV); 196 197 ntshell_task_init(uart_read, uart_write, &main_obj); 171 198 172 199 main_obj.timer = TMO_FEVR; -
asp3_tinet_ecnl_arm/trunk/app3_human_detec/src/main.cfg
r352 r364 54 54 INCLUDE("tinet/tinet_asp.cfg"); 55 55 INCLUDE("tinet_main.cfg"); 56 INCLUDE("netinet/ip_igmp.cfg");57 56 58 57 /* DHCP クライアント */
Note:
See TracChangeset
for help on using the changeset viewer.