Changeset 364 for asp3_tinet_ecnl_arm/trunk/app2_light
- Timestamp:
- Feb 1, 2019, 9:57:09 PM (5 years ago)
- Location:
- asp3_tinet_ecnl_arm/trunk/app2_light
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_tinet_ecnl_arm/trunk/app2_light/.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.913962636" 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.812015080" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/> 61 <builder buildPath="${workspace_loc:/app2_light}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.1678746512" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>61 <builder buildPath="${workspace_loc:/app2_light}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.1678746512" 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.1300910948" 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.821934622" 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.296419460" 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.1982161542" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/> 166 <builder buildPath="${workspace_loc:/app2_light}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.rz.builder.648260189" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>166 <builder buildPath="${workspace_loc:/app2_light}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.rz.builder.648260189" 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.1287580563" 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.1691990754" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/> -
asp3_tinet_ecnl_arm/trunk/app2_light/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/app2_light/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/app2_light/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 */ … … 127 127 { 128 128 /* サイズが1以外は受け付けない */ 129 if (size != 1)129 if (size != 1) 130 130 return 0; 131 131 132 132 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 133 133 134 switch (*(uint8_t *)src){134 switch (*(uint8_t *)src) { 135 135 /* ONの場合 */ 136 136 case 0x30: … … 163 163 { 164 164 /* サイズが1以外は受け付けない */ 165 if (size != 1)165 if (size != 1) 166 166 return 0; 167 167 168 168 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 169 169 170 switch (*(uint8_t *)src){170 switch (*(uint8_t *)src) { 171 171 /* 異常発生ありの場合 */ 172 172 case 0x41: … … 189 189 { 190 190 /* サイズが1以外は受け付けない */ 191 if (size != 1)192 return 0; 193 194 switch (*(uint8_t *)src){191 if (size != 1) 192 return 0; 193 194 switch (*(uint8_t *)src) { 195 195 /* 自動の場合 */ 196 196 case 0x41: … … 241 241 uint8_t data[2]; 242 242 243 if (size != 1)244 return 0; 245 246 switch (*(uint8_t *)src){243 if (size != 1) 244 return 0; 245 246 switch (*(uint8_t *)src) { 247 247 /* 人体検出ありの場合 */ 248 248 case 0x41: … … 253 253 data[1] = *(uint8_t *)src; 254 254 ret = ecn_brk_wai(data, sizeof(data)); 255 if (ret != E_OK){255 if (ret != E_OK) { 256 256 syslog(LOG_ERROR, "ecn_brk_wai"); 257 257 return 1; … … 266 266 data[1] = *(uint8_t *)src; 267 267 ret = ecn_brk_wai(data, sizeof(data)); 268 if (ret != E_OK){268 if (ret != E_OK) { 269 269 syslog(LOG_ERROR, "ecn_brk_wai"); 270 270 return 1; … … 288 288 struct tm _tm; 289 289 290 if (size != 2)290 if (size != 2) 291 291 return 0; 292 292 … … 315 315 struct tm _tm; 316 316 317 if (size != 2)317 if (size != 2) 318 318 return 0; 319 319 … … 338 338 struct tm _tm; 339 339 340 if (size != 4)340 if (size != 4) 341 341 return 0; 342 342 … … 365 365 struct tm _tm; 366 366 367 if (size != 4)367 if (size != 4) 368 368 return 0; 369 369 … … 403 403 404 404 ret2 = get_tim(&now); 405 if (ret2 != E_OK) {405 if (ret2 != E_OK) { 406 406 syslog(LOG_ERROR, "get_tim"); 407 407 return; 408 408 } 409 409 410 for (;;){410 for (;;) { 411 411 prev = now; 412 412 … … 416 416 /* 応答電文待ち */ 417 417 ret = ecn_trcv_esv(&esv, timer); 418 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {418 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) { 419 419 syslog(LOG_ERROR, "ecn_trcv_esv"); 420 420 break; … … 422 422 423 423 ret2 = get_tim(&now); 424 if (ret2 != E_OK) {424 if (ret2 != E_OK) { 425 425 syslog(LOG_ERROR, "get_tim"); 426 426 break; … … 437 437 /* 領域解放 */ 438 438 ret = ecn_rel_esv(esv); 439 if (ret != E_OK) {439 if (ret != E_OK) { 440 440 syslog(LOG_ERROR, "ecn_rel_esv"); 441 441 break; … … 446 446 /* 応答電文待ちの割り込みデータ取得 */ 447 447 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 448 if (ret != E_OK) {448 if (ret != E_OK) { 449 449 syslog(LOG_ERROR, "ecn_get_brk_dat"); 450 450 break; … … 456 456 /* 領域解放 */ 457 457 ret = ecn_rel_esv(esv); 458 if (ret != E_OK) {458 if (ret != E_OK) { 459 459 syslog(LOG_ERROR, "ecn_rel_esv"); 460 460 break; … … 467 467 } 468 468 469 bool_t started = false;470 471 469 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 472 470 { … … 476 474 return; 477 475 478 if (up && !started) { 479 started = true; 480 481 /* ECHONETミドルウェアを起動 */ 482 ret = ecn_sta_svc(); 483 if (ret != E_OK) 484 return; 485 486 /* ECHONETミドルウェアを起動するのを待つ */ 487 dly_tsk(100); 476 if (up) { 477 /* インスタンスリスト通知の送信 */ 478 ret = ecn_ntf_inl(); 479 if (ret != E_OK) { 480 syslog(LOG_ERROR, "ecn_ntf_inl"); 481 } 488 482 } 489 483 … … 499 493 } 500 494 501 enum main_state_t{ 495 enum main_state_t { 496 main_state_start, 502 497 main_state_idle, 503 498 main_state_search, … … 506 501 int main_timer = TMO_FEVR; 507 502 int main_btn_timer = TMO_FEVR; 508 enum main_state_t main_state = main_state_ idle;503 enum main_state_t main_state = main_state_start; 509 504 bool_t main_btn1_state; 510 505 int main_btn1_count = 0; … … 535 530 gpio_write(&led_red, 0); 536 531 537 /* 1秒後に人体検知センサを検索*/538 main_state = main_state_s earch;532 /* ECHONETミドルウェアを起動するのを待つ */ 533 main_state = main_state_start; 539 534 main_timer = 1000 * 1000; 540 535 … … 548 543 main_btn2_state = btn2 != 0; 549 544 545 /* メインタスクを起動 */ 550 546 ER ret = act_tsk(MAIN_TASK); 551 547 if (ret != E_OK) { … … 561 557 int result = main_timer; 562 558 563 if ((result == TMO_FEVR)564 || ((main_btn_timer != TMO_FEVR) && (main_btn_timer < result))) {559 if ((result == TMO_FEVR) 560 || ((main_btn_timer != TMO_FEVR) && (main_btn_timer < result))) { 565 561 result = main_btn_timer; 566 562 } … … 574 570 static void main_progress(int interval) 575 571 { 576 if (main_timer != TMO_FEVR){572 if (main_timer != TMO_FEVR) { 577 573 main_timer -= interval; 578 if (main_timer < 0){574 if (main_timer < 0) { 579 575 main_timer = 0; 580 576 } 581 577 } 582 578 583 if (main_btn_timer != TMO_FEVR){579 if (main_btn_timer != TMO_FEVR) { 584 580 main_btn_timer -= interval; 585 if (main_btn_timer < 0){581 if (main_btn_timer < 0) { 586 582 main_btn_timer = 0; 587 583 } … … 602 598 603 599 eobjid = ecn_get_eobj(esv); 604 if (eobjid == EOBJ_NULL){600 if (eobjid == EOBJ_NULL) { 605 601 syslog(LOG_ERROR, "ecn_get_eobj"); 606 602 } 607 603 608 604 ret = ecn_itr_ini(&enm, esv); 609 if (ret != E_OK){605 if (ret != E_OK) { 610 606 syslog(LOG_ERROR, "ecn_itr_ini"); 611 607 return; 612 608 } 613 609 614 for (;;) {615 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {610 for (;;) { 611 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) { 616 612 switch (epc) { 617 613 case 0xD6: 618 switch (main_state){614 switch (main_state) { 619 615 case main_state_search: 620 616 if (eobjid == HUMAN_DETECTION_SENSER_ENOD) { … … 628 624 } 629 625 } 630 if (ret != E_BOVR){626 if (ret != E_BOVR) { 631 627 syslog(LOG_ERROR, "ecn_itr_nxt"); 632 628 break; 633 629 } 634 if (enm.is_eof)630 if (enm.is_eof) 635 631 break; 636 632 } … … 646 642 ER ret; 647 643 648 switch (main_state){644 switch (main_state) { 649 645 case main_state_idle: 650 646 if (len < 2) … … 670 666 static void main_timeout() 671 667 { 672 if (main_timer == 0){668 if (main_timer == 0) { 673 669 main_ontimer(); 674 670 } 675 671 676 if (main_btn_timer == 0){672 if (main_btn_timer == 0) { 677 673 main_btn_ontimer(); 678 674 } … … 683 679 static void main_ontimer() 684 680 { 685 switch(main_state){ 681 ER ret; 682 683 switch (main_state) { 684 case main_state_start: 685 /* ECHONETミドルウェアを起動 */ 686 ret = ecn_sta_svc(); 687 if (ret != E_OK) { 688 syslog(LOG_ERROR, "ecn_sta_svc"); 689 } 690 691 /* 1秒後に人体検知センサを検索 */ 692 main_state = main_state_search; 693 main_timer = 1000 * 1000; 694 break; 686 695 case main_state_search: 687 696 /* 人体検知センサ再検索 */ … … 700 709 /* 人体検知センサ検索 */ 701 710 ret = ecn_esv_inf_req(&esv, EOBJ_NULL, 0xD6); 702 if (ret != E_OK){711 if (ret != E_OK) { 703 712 syslog(LOG_ERROR, "ecn_esv_inf_req"); 704 713 return; … … 707 716 /* 電文送信 */ 708 717 ret = ecn_snd_esv(esv); 709 if (ret != E_OK){718 if (ret != E_OK) { 710 719 syslog(LOG_ERROR, "ecn_snd_esv"); 711 720 } … … 730 739 731 740 /* ボタン1の処理 */ 732 if ((btn1 != 0) && !main_btn1_state){741 if ((btn1 != 0) && !main_btn1_state) { 733 742 main_btn1_count++; 734 if (main_btn1_count > 10){743 if (main_btn1_count > 10) { 735 744 main_btn1_count = 0; 736 745 main_btn1_state = true; … … 739 748 } 740 749 } 741 else if ((btn1 == 0) && main_btn1_state){750 else if ((btn1 == 0) && main_btn1_state) { 742 751 main_btn1_count++; 743 if (main_btn1_count > 10){752 if (main_btn1_count > 10) { 744 753 main_btn1_count = 0; 745 754 main_btn1_state = false; … … 750 759 751 760 /* ボタン2の処理 */ 752 if ((btn2 != 0) && !main_btn2_state){761 if ((btn2 != 0) && !main_btn2_state) { 753 762 main_btn2_count++; 754 if (main_btn2_count > 10){763 if (main_btn2_count > 10) { 755 764 main_btn2_count = 0; 756 765 main_btn2_state = true; … … 759 768 } 760 769 } 761 else if ((btn2 == 0) && main_btn2_state){770 else if ((btn2 == 0) && main_btn2_state) { 762 771 main_btn2_count++; 763 if (main_btn2_count > 10){772 if (main_btn2_count > 10) { 764 773 main_btn2_count = 0; 765 774 main_btn2_state = false; … … 770 779 } 771 780 772 enum lighting_mode_t {781 enum lighting_mode_t { 773 782 lighting_mode_auto, /* 自動の場合 */ 774 783 lighting_mode_normal, /* 通常灯の場合 */ … … 789 798 790 799 /* 押されて戻った時に処理する */ 791 if (push)800 if (push) 792 801 return; 793 802 … … 798 807 /* プロパティ設定電文作成 */ 799 808 ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0x80, 1, p_edt); 800 if (ret != E_OK){809 if (ret != E_OK) { 801 810 syslog(LOG_ERROR, "ecn_esv_setc"); 802 811 return; … … 817 826 818 827 /* 押されて戻った時に処理する */ 819 if (push)828 if (push) 820 829 return; 821 830 822 831 /* 点灯モードの切り替え */ 823 switch (main_mode){832 switch (main_mode) { 824 833 /* 自動の場合 */ 825 834 case lighting_mode_auto: … … 851 860 /* プロパティ設定電文作成 */ 852 861 ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0xB6, 1, p_edt); 853 if (ret != E_OK){862 if (ret != E_OK) { 854 863 syslog(LOG_ERROR, "ecn_esv_setc"); 855 864 return; … … 867 876 868 877 /* 照明がOFFで人体検出ありの場合 */ 869 if (!main_on && state == 0x41){878 if (!main_on && state == 0x41) { 870 879 /* 照明をON */ 871 880 main_on = true; 872 881 } 873 882 /* 照明がOFFで人体検出ありの場合 */ 874 else if (main_on && state == 0x42){883 else if (main_on && state == 0x42) { 875 884 /* 照明をOFF */ 876 885 main_on = false; … … 883 892 /* プロパティ設定電文作成 */ 884 893 ret = ecn_esv_setc(&esv, GENERAL_LIGHTING_CLASS_EOBJ, 0x80, 1, p_edt); 885 if (ret != E_OK){894 if (ret != E_OK) { 886 895 syslog(LOG_ERROR, "ecn_esv_setc"); 887 896 return; -
asp3_tinet_ecnl_arm/trunk/app2_light/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/app2_light/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.