Changeset 364 for asp3_tinet_ecnl_arm/trunk/app5_temp_sensor
- Timestamp:
- Feb 1, 2019, 9:57:09 PM (5 years ago)
- Location:
- asp3_tinet_ecnl_arm/trunk/app5_temp_sensor
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_tinet_ecnl_arm/trunk/app5_temp_sensor/.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.1852970779" 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.852559143" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/> 61 <builder buildPath="${workspace_loc:/app5_temp_sensor}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.394642308" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>61 <builder buildPath="${workspace_loc:/app5_temp_sensor}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.394642308" 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.589273516" 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.462582981" 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.512694190" 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.1203540506" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/> 166 <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.rz.builder.730173267" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn=" false" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>166 <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.rz.builder.730173267" 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.1443620921" 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.1975708208" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/> -
asp3_tinet_ecnl_arm/trunk/app5_temp_sensor/Debug/Makefile
r352 r364 179 179 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 180 180 endif 181 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=_binary_______ntshell_src_rom_fs_bin_start181 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 182 182 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 183 183 -I$(SRCDIR)/../btstack/include \ … … 187 187 -I$(SRCDIR)/../usbhost/src \ 188 188 $(INCLUDES) 189 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.189 LDFLAGS := $(LDFLAGS) -L. 190 190 LIBS := $(LIBS) $(CXXLIBS) 191 191 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 198 198 APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o sdfs.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o 199 199 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 200 APPL_COBJS := $(APPL_COBJS) draw_font.o misaki_font.o 200 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 201 APPL_CFLAGS := $(APPL_CFLAGS) -DSHNM12_FONT 201 202 202 203 # … … 223 224 endif 224 225 225 226 # 227 # ネットワークサービスの定義 228 # 229 NO_USE_TINET_LIBRARY = true 230 231 # ネットワークインタフェースの選択、何れか一つ選択する。 232 NET_IF = ether 233 234 # イーサネット・ディバイスドライバの選択 235 NET_DEV = if_btusb 236 237 # ネットワーク層の選択 238 #SUPPORT_INET6 = true 239 SUPPORT_INET4 = true 240 241 # API に組込む機能の選択 242 #API_CFG_IP4MAPPED_ADDR = true 243 244 # トランスポート層の選択 245 SUPPORT_TCP = true 246 SUPPORT_UDP = true 247 248 # IGMPを有効に設定 249 SUPPORT_IGMP = true 250 251 # 252 # ネットワークサービスの Makefile のインクルード 253 # 254 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 226 ifdef TINETDIR 227 # 228 # ネットワークサービスの定義 229 # 230 NO_USE_TINET_LIBRARY = true 231 232 # ネットワークインタフェースの選択、何れか一つ選択する。 233 NET_IF = ether 234 235 # イーサネット・ディバイスドライバの選択 236 NET_DEV = if_btusb 237 238 # ネットワーク層の選択 239 #SUPPORT_INET6 = true 240 SUPPORT_INET4 = true 241 242 # API に組込む機能の選択 243 #API_CFG_IP4MAPPED_ADDR = true 244 245 # トランスポート層の選択 246 SUPPORT_TCP = true 247 SUPPORT_UDP = true 248 249 # IGMPを有効に設定 250 SUPPORT_IGMP = true 251 252 # 253 # ネットワークサービスの Makefile のインクルード 254 # 255 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 256 endif 255 257 256 258 # … … 285 287 # コンフィギュレータに関する定義 286 288 # 287 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel 288 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \ 289 ifndef TINETDIR 290 CFG_TRB := -T $(TARGETDIR)/target_kernel.trb 291 CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \ 292 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 293 else 294 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel 295 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \ 289 296 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 290 297 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 292 299 --symval-table ../../ntshell/echonet/echonet_sym.def \ 293 300 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 301 endif 294 302 CFG_ASMOBJS := $(CFG_ASMOBJS) 295 303 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 437 445 438 446 # 447 # 並列makeのための依存関係の定義 448 # 449 $(APPL_OBJS) $(filter-out $(CFG_DMY), $(SYSSVC_OBJS)): | kernel_cfg.timestamp 450 $(APPL_ASMOBJS) $(filter-out $(CFG_DMY), $(SYSSVC_ASMOBJS)) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 451 | offset.timestamp 452 453 # 439 454 # 特別な依存関係の定義 440 455 # … … 445 460 # 446 461 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 447 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \462 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 448 463 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 449 464 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) -
asp3_tinet_ecnl_arm/trunk/app5_temp_sensor/DebugEther/Makefile
r352 r364 177 177 CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS) 178 178 endif 179 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -D ECHONET_USE_MALLOC -DRamDisk=_binary_______ntshell_src_rom_fs_bin_start179 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 180 180 INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \ 181 181 -I$(SRCDIR)/../btstack/include \ … … 185 185 -I$(SRCDIR)/../usbhost/src \ 186 186 $(INCLUDES) 187 LDFLAGS := $(LDFLAGS) - Wl,-Map=$(OBJNAME).map,--cref -L.187 LDFLAGS := $(LDFLAGS) -L. 188 188 LIBS := $(LIBS) $(CXXLIBS) 189 189 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES) … … 196 196 APPL_COBJS := $(APPL_COBJS) netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o sdfs.o ccsbcs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o tlsf.o 197 197 APPLDIRS := $(APPLDIRS) ../../ntshell/lcd 198 APPL_COBJS := $(APPL_COBJS) draw_font.o misaki_font.o 198 APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o 199 APPL_CFLAGS := $(APPL_CFLAGS) -DSHNM12_FONT 199 200 200 201 # … … 221 222 endif 222 223 223 224 #225 # ネットワークサービスの定義226 #227 NO_USE_TINET_LIBRARY = true228 229 # ネットワークインタフェースの選択、何れか一つ選択する。230 NET_IF = ether231 232 # イーサネット・ディバイスドライバの選択224 ifdef TINETDIR 225 # 226 # ネットワークサービスの定義 227 # 228 NO_USE_TINET_LIBRARY = true 229 230 # ネットワークインタフェースの選択、何れか一つ選択する。 231 NET_IF = ether 232 233 # イーサネット・ディバイスドライバの選択 233 234 NET_DEV = if_mbed 234 235 235 # ネットワーク層の選択 236 #SUPPORT_INET6 = true 237 SUPPORT_INET4 = true 238 239 # API に組込む機能の選択 240 #API_CFG_IP4MAPPED_ADDR = true 241 242 # トランスポート層の選択 243 SUPPORT_TCP = true 244 SUPPORT_UDP = true 245 246 # IGMPを有効に設定 247 SUPPORT_IGMP = true 248 249 # 250 # ネットワークサービスの Makefile のインクルード 251 # 252 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 236 # ネットワーク層の選択 237 #SUPPORT_INET6 = true 238 SUPPORT_INET4 = true 239 240 # API に組込む機能の選択 241 #API_CFG_IP4MAPPED_ADDR = true 242 243 # トランスポート層の選択 244 SUPPORT_TCP = true 245 SUPPORT_UDP = true 246 247 # IGMPを有効に設定 248 SUPPORT_IGMP = true 249 250 # 251 # ネットワークサービスの Makefile のインクルード 252 # 253 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet 254 endif 253 255 254 256 # … … 283 285 # コンフィギュレータに関する定義 284 286 # 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 \ 287 ifndef TINETDIR 288 CFG_TRB := -T $(TARGETDIR)/target_kernel.trb 289 CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \ 290 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 291 else 292 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel 293 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \ 287 294 --api-table ../../ntshell/echonet/echonet_api.def:echonet \ 288 295 --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \ … … 290 297 --symval-table ../../ntshell/echonet/echonet_sym.def \ 291 298 --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS) 299 endif 292 300 CFG_ASMOBJS := $(CFG_ASMOBJS) 293 301 CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS) … … 435 443 436 444 # 445 # 並列makeのための依存関係の定義 446 # 447 $(APPL_OBJS) $(filter-out $(CFG_DMY), $(SYSSVC_OBJS)): | kernel_cfg.timestamp 448 $(APPL_ASMOBJS) $(filter-out $(CFG_DMY), $(SYSSVC_ASMOBJS)) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \ 449 | offset.timestamp 450 451 # 437 452 # 特別な依存関係の定義 438 453 # … … 443 458 # 444 459 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP) 445 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \460 $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \ 446 461 $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \ 447 462 -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS) -
asp3_tinet_ecnl_arm/trunk/app5_temp_sensor/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 */ … … 55 55 #include "adafruit_st7735.h" 56 56 #include "draw_font.h" 57 #include <tinet_defs.h> 58 #include <tinet_config.h> 59 #include <netinet/in.h> 60 #include <netinet/in_var.h> 61 #include <net/ethernet.h> 62 #include <net/if_var.h> 63 64 extern uint8_t mac_addr[6]; 57 65 58 66 /* TODO: メーカーコードを設定 */ … … 111 119 112 120 /* サイズが1以外は受け付けない */ 113 if (size != 1)121 if (size != 1) 114 122 return 0; 115 123 116 124 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 117 125 118 switch (*(uint8_t *)src){126 switch (*(uint8_t *)src) { 119 127 /* ONの場合 */ 120 128 case 0x30: … … 126 134 data[1] = *(uint8_t *)src; 127 135 ret = ecn_brk_wai(data, sizeof(data)); 128 if (ret != E_OK){136 if (ret != E_OK) { 129 137 syslog(LOG_ERROR, "ecn_brk_wai"); 130 138 return 1; … … 145 153 { 146 154 /* サイズが1以外は受け付けない */ 147 if (size != 1)155 if (size != 1) 148 156 return 0; 149 157 150 158 *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src); 151 159 152 switch (*(uint8_t *)src){160 switch (*(uint8_t *)src) { 153 161 /* 異常発生ありの場合 */ 154 162 case 0x41: … … 176 184 177 185 /* サイズが2以外は受け付けない */ 178 if (size != 2)186 if (size != 2) 179 187 return 0; 180 188 181 189 value = (((uint8_t *)src)[0] << 8) | (((uint8_t *)src)[1] & 0xFF); 182 190 183 if ((value >= -2732) && (value <= 32766)){191 if ((value >= -2732) && (value <= 32766)) { 184 192 eobj->propertyE0 = value; 185 193 /* メインタスクに通知 */ 186 194 data[0] = 0xE0; 187 195 ret = ecn_brk_wai(data, sizeof(data)); 188 if (ret != E_OK){196 if (ret != E_OK) { 189 197 syslog(LOG_ERROR, "ecn_brk_wai"); 190 198 return 2; … … 192 200 } 193 201 /* 上記以外は受け付けない */ 194 else {202 else { 195 203 return 0; 196 204 } … … 199 207 } 200 208 201 /* 209 /* 202 210 * 温度計測値取得関数 203 211 */ … … 208 216 209 217 /* サイズが2以外は受け付けない */ 210 if (size != 2)218 if (size != 2) 211 219 return 0; 212 220 … … 240 248 241 249 ret2 = get_tim(&now); 242 if (ret2 != E_OK) {250 if (ret2 != E_OK) { 243 251 syslog(LOG_ERROR, "get_tim"); 244 252 return; 245 253 } 246 254 247 for (;;){255 for (;;) { 248 256 prev = now; 249 257 … … 253 261 /* 応答電文待ち */ 254 262 ret = ecn_trcv_esv(&esv, timer); 255 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {263 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) { 256 264 syslog(LOG_ERROR, "ecn_trcv_esv"); 257 265 break; … … 259 267 260 268 ret2 = get_tim(&now); 261 if (ret2 != E_OK) {269 if (ret2 != E_OK) { 262 270 syslog(LOG_ERROR, "get_tim"); 263 271 break; … … 274 282 /* 領域解放 */ 275 283 ret = ecn_rel_esv(esv); 276 if (ret != E_OK) {284 if (ret != E_OK) { 277 285 syslog(LOG_ERROR, "ecn_rel_esv"); 278 286 break; … … 283 291 /* 応答電文待ちの割り込みデータ取得 */ 284 292 ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len); 285 if (ret != E_OK) {293 if (ret != E_OK) { 286 294 syslog(LOG_ERROR, "ecn_get_brk_dat"); 287 295 break; … … 293 301 /* 領域解放 */ 294 302 ret = ecn_rel_esv(esv); 295 if (ret != E_OK) {303 if (ret != E_OK) { 296 304 syslog(LOG_ERROR, "ecn_rel_esv"); 297 305 break; … … 304 312 } 305 313 306 bool_t started = false;307 308 314 void echonet_change_netif_link(uint8_t link_up, uint8_t up) 309 315 { … … 313 319 return; 314 320 315 if (up && !started) { 316 started = true; 317 318 /* ECHONETミドルウェアを起動 */ 319 ret = ecn_sta_svc(); 320 if (ret != E_OK) 321 return; 322 323 /* ECHONETミドルウェアを起動するのを待つ */ 324 dly_tsk(100); 321 if (up) { 322 /* インスタンスリスト通知の送信 */ 323 ret = ecn_ntf_inl(); 324 if (ret != E_OK) { 325 syslog(LOG_ERROR, "ecn_ntf_inl"); 326 } 325 327 } 326 328 … … 328 330 uint8_t data[2]; 329 331 data[0] = 0x01; 330 data[1] = up ? 0x01 : 0x02;332 data[1] = (up ? 0x01 : 0x02) | (link_up ? 0x10 : 0x20); 331 333 ret = ecn_brk_wai(data, sizeof(data)); 332 334 if (ret != E_OK) { … … 336 338 } 337 339 338 enum main_state_t{ 340 enum main_state_t { 341 main_state_start, 339 342 main_state_idle, 340 343 }; 341 344 342 345 int main_timer = TMO_FEVR; 343 enum main_state_t main_state = main_state_ idle;346 enum main_state_t main_state = main_state_start; 344 347 345 348 int main_lcd_timer = TMO_FEVR; … … 386 389 analogin_init(&joystick, P1_12); 387 390 388 /* 10ms後にボタン状態を確認 */ 389 main_timer = 10 * 1000; 391 /* ECHONETミドルウェアを起動するのを待つ */ 392 main_state = main_state_start; 393 main_timer = 1000 * 1000; 390 394 391 395 /* ボタン状態読み込み */ … … 397 401 spi_init(&lcd.hspi, P10_14, P10_15, P10_12, NC); 398 402 spi_format(&lcd.hspi, 8, 0, 0); 399 spi_frequency(&lcd.hspi, 1000000);403 spi_frequency(&lcd.hspi, 4000000); 400 404 401 405 gpio_init_out(&lcd.cs_pin, P10_13); … … 416 420 main_lcd_timer = 1000 * 1000; 417 421 422 /* メインタスクを起動 */ 418 423 ER ret = act_tsk(MAIN_TASK); 419 424 if (ret != E_OK) { … … 429 434 int result = main_timer; 430 435 431 if ((result == TMO_FEVR)432 || ((main_lcd_timer != TMO_FEVR) && (main_lcd_timer < result))) {436 if ((result == TMO_FEVR) 437 || ((main_lcd_timer != TMO_FEVR) && (main_lcd_timer < result))) { 433 438 result = main_lcd_timer; 434 439 } … … 442 447 static void main_progress(int interval) 443 448 { 444 if (main_timer != TMO_FEVR){449 if (main_timer != TMO_FEVR) { 445 450 main_timer -= interval; 446 if (main_timer < 0){451 if (main_timer < 0) { 447 452 main_timer = 0; 448 453 } 449 454 } 450 455 451 if (main_lcd_timer != TMO_FEVR){456 if (main_lcd_timer != TMO_FEVR) { 452 457 main_lcd_timer -= interval; 453 if (main_lcd_timer < 0){458 if (main_lcd_timer < 0) { 454 459 main_lcd_timer = 0; 455 460 } … … 472 477 473 478 ret = ecn_itr_ini(&enm, esv); 474 if (ret != E_OK){479 if (ret != E_OK) { 475 480 syslog(LOG_ERROR, "ecn_itr_ini"); 476 481 return; 477 482 } 478 483 479 for (;;) {480 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {484 for (;;) { 485 while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) { 481 486 switch (epc) { 482 487 case 0xE0: 483 if (in_get && (esv->hdr.edata.esv == ESV_SET_GET_RES)){488 if (in_get && (esv->hdr.edata.esv == ESV_SET_GET_RES)) { 484 489 check_response(pdc, p_edt); 485 490 } … … 487 492 } 488 493 } 489 if (ret != E_BOVR){494 if (ret != E_BOVR) { 490 495 syslog(LOG_ERROR, "ecn_itr_nxt"); 491 496 break; 492 497 } 493 if (enm.is_eof)498 if (enm.is_eof) 494 499 break; 495 500 … … 504 509 static void main_break_wait(uint8_t *brkdat, int32_t len) 505 510 { 511 char mac_text[30] = "mac: "; 512 char ipaddr_text[30] = "ipadr: "; 513 const T_IN4_ADDR *ip4_addr; 514 int pos; 515 506 516 if (brkdat[0] == 0x01) { 507 // Link up/down 517 pos = str_macaddr(&mac_text[4], sizeof(mac_text) - 4, mac_addr, 0); 518 mac_text[pos + 4] = '\0'; 519 lcd_drawString(&lcd, mac_text, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 11), ST7735_BLACK, ST7735_WHITE); 520 521 ip4_addr = in4_get_ifaddr(0); 522 pos = str_ipv4addr(&ipaddr_text[6], sizeof(ipaddr_text) - 6, ip4_addr, 0); 523 ipaddr_text[pos + 6] = '\0'; 524 lcd_drawString(&lcd, ipaddr_text, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 12), ST7735_BLACK, ST7735_WHITE); 508 525 return; 509 526 } 510 527 511 528 if ((len == 2) && (brkdat[0] == 0x80)) { 512 switch (brkdat[1]){529 switch (brkdat[1]) { 513 530 /* ONの場合 */ 514 531 case 0x30: … … 533 550 static void main_timeout() 534 551 { 535 if (main_timer == 0){552 if (main_timer == 0) { 536 553 main_ontimer(); 537 554 } 538 555 539 if (main_lcd_timer == 0){556 if (main_lcd_timer == 0) { 540 557 main_lcd_ontimer(); 541 558 } … … 543 560 544 561 #define main_ad_count 3 562 #define main_ad_table_count 64 545 563 static int16_t main_ad_tempr[main_ad_count] = { 200, 200, 200 }; 546 static uint16_t main_ad_table[64]; 547 #define main_ad_table_count (sizeof(main_ad_table) / sizeof(main_ad_table[0])) 564 static uint16_t main_ad_table[main_ad_count][main_ad_table_count]; 548 565 static int main_ad_pos = 0; 549 566 static uint32_t main_ad_avelage[main_ad_count]; … … 556 573 static void main_ontimer() 557 574 { 575 ER ret; 558 576 uint8_t btn; 559 577 uint16_t ad_value; 560 578 int16_t ad_tempr; 561 579 562 switch(main_state){ 580 switch (main_state) { 581 case main_state_start: 582 /* ECHONETミドルウェアを起動 */ 583 ret = ecn_sta_svc(); 584 if (ret != E_OK) { 585 syslog(LOG_ERROR, "ecn_sta_svc"); 586 } 587 588 /* 10ms後にボタン状態を確認 */ 589 main_state = main_state_idle; 590 main_timer = 10 * 1000; 591 break; 563 592 case main_state_idle: 564 593 /* 10ms後にボタン状態を確認 */ … … 567 596 /* ADCの変換結果取得 */ 568 597 for (int i = 0; i < main_ad_count; i++) { 569 main_ad_avelage[i] -= main_ad_table[ main_ad_pos];598 main_ad_avelage[i] -= main_ad_table[i][main_ad_pos]; 570 599 ad_value = analogin_read_u16(&analogin[i]) >> 4; // 16bit値取得->12bit 571 main_ad_table[ main_ad_pos] = ad_value;600 main_ad_table[i][main_ad_pos] = ad_value; 572 601 main_ad_avelage[i] += ad_value; 573 602 } 574 603 575 604 main_ad_pos++; 576 if (main_ad_pos >= main_ad_table_count){605 if (main_ad_pos >= main_ad_table_count) { 577 606 main_ad_pos = 0; 578 607 } … … 586 615 } 587 616 else { 617 main_count[i] = 0; 588 618 main_ad_tempr[i] = ad_tempr; 589 619 … … 601 631 602 632 /* ボタン1の処理 */ 603 if ((btn == BUTTON_LEFT) && !main_btn1_state){633 if ((btn == BUTTON_LEFT) && !main_btn1_state) { 604 634 main_btn1_count++; 605 if (main_btn1_count > 10){635 if (main_btn1_count > 10) { 606 636 main_btn1_count = 0; 607 637 main_btn1_state = true; … … 610 640 } 611 641 } 612 else if ((btn != BUTTON_LEFT) && main_btn1_state){642 else if ((btn != BUTTON_LEFT) && main_btn1_state) { 613 643 main_btn1_count++; 614 if (main_btn1_count > 10){644 if (main_btn1_count > 10) { 615 645 main_btn1_count = 0; 616 646 main_btn1_state = false; … … 621 651 622 652 /* ボタン2の処理 */ 623 if ((btn == BUTTON_RIGHT) && !main_btn2_state){653 if ((btn == BUTTON_RIGHT) && !main_btn2_state) { 624 654 main_btn2_count++; 625 if (main_btn2_count > 10){655 if (main_btn2_count > 10) { 626 656 main_btn2_count = 0; 627 657 main_btn2_state = true; … … 630 660 } 631 661 } 632 else if ((btn != BUTTON_RIGHT) && main_btn2_state){662 else if ((btn != BUTTON_RIGHT) && main_btn2_state) { 633 663 main_btn2_count++; 634 if (main_btn2_count > 10){664 if (main_btn2_count > 10) { 635 665 main_btn2_count = 0; 636 666 main_btn2_state = false; … … 645 675 static void main_lcd_ontimer() 646 676 { 647 char temp1[] = "温度1:+00 .0℃";648 char temp2[] = "温度2:+00 .0℃";649 char humid[] = "湿度 :+00 .0%";677 char temp1[] = "温度1:+000.0℃"; 678 char temp2[] = "温度2:+000.0℃"; 679 char humid[] = "湿度 :+000.0%"; 650 680 char *btn_texts[] = { "none ", "down ", "left ", "select", "up ", "right " }; 651 681 int temp, btn; … … 653 683 switch (main_lcd_state) { 654 684 case 0: 655 temp1[ 9] = (temperature_sensor1_data.propertyE0 >= 0) ? ' ' : '-';685 temp1[10] = (temperature_sensor1_data.propertyE0 >= 0) ? ' ' : '-'; 656 686 temp = (temperature_sensor1_data.propertyE0 / 1000) % 10; 657 687 if (temp < 0) 658 688 temp = -temp; 659 temp1[1 0] = '0' + temp;689 temp1[11] = '0' + temp; 660 690 temp = (temperature_sensor1_data.propertyE0 / 100) % 10; 661 691 if (temp < 0) 662 692 temp = -temp; 663 temp1[1 1] = '0' + temp;693 temp1[12] = '0' + temp; 664 694 temp = (temperature_sensor1_data.propertyE0 / 10) % 10; 665 695 if (temp < 0) 666 696 temp = -temp; 667 697 temp1[13] = '0' + temp; 668 lcd_drawString(&lcd, &temp1[9], X_LINE_HALF_TO_PIX(&lcd, 8) + 10, Y_ROW_TO_PIX(&lcd, main_lcd_state + 4) + 10, ST7735_BLACK, ST7735_WHITE); 698 temp = (temperature_sensor1_data.propertyE0 / 1) % 10; 699 if (temp < 0) 700 temp = -temp; 701 temp1[15] = '0' + temp; 702 lcd_drawString(&lcd, &temp1[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), ST7735_BLACK, ST7735_WHITE); 669 703 main_lcd_state++; 670 704 break; 671 705 case 1: 672 temp2[ 9] = (temperature_sensor2_data.propertyE0 >= 0) ? ' ' : '-';706 temp2[10] = (temperature_sensor2_data.propertyE0 >= 0) ? ' ' : '-'; 673 707 temp = (temperature_sensor2_data.propertyE0 / 1000) % 10; 674 708 if (temp < 0) 675 709 temp = -temp; 676 temp2[1 0] = '0' + temp;710 temp2[11] = '0' + temp; 677 711 temp = (temperature_sensor2_data.propertyE0 / 100) % 10; 678 712 if (temp < 0) 679 713 temp = -temp; 680 temp2[1 1] = '0' + temp;714 temp2[12] = '0' + temp; 681 715 temp = (temperature_sensor2_data.propertyE0 / 10) % 10; 682 716 if (temp < 0) 683 717 temp = -temp; 684 718 temp2[13] = '0' + temp; 685 lcd_drawString(&lcd, &temp2[9], X_LINE_HALF_TO_PIX(&lcd, 8) + 10, Y_ROW_TO_PIX(&lcd, main_lcd_state + 4) + 10, ST7735_BLACK, ST7735_WHITE); 719 temp = (temperature_sensor2_data.propertyE0 / 1) % 10; 720 if (temp < 0) 721 temp = -temp; 722 temp2[15] = '0' + temp; 723 lcd_drawString(&lcd, &temp2[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), ST7735_BLACK, ST7735_WHITE); 686 724 main_lcd_state++; 687 725 break; 688 726 case 2: 689 humid[9] = ' '; 690 temp = (humidity_sensor_data.propertyE0 / 1000) % 10; 691 humid[10] = '0' + temp; 727 humid[10] = ' '; 728 humid[11] = ' '; 692 729 temp = (humidity_sensor_data.propertyE0 / 100) % 10; 693 humid[1 1] = '0' + temp;730 humid[12] = '0' + temp; 694 731 temp = (humidity_sensor_data.propertyE0 / 10) % 10; 695 732 humid[13] = '0' + temp; 696 lcd_drawString(&lcd, &humid[9], X_LINE_HALF_TO_PIX(&lcd, 8) + 10, Y_ROW_TO_PIX(&lcd, main_lcd_state + 4) + 10, ST7735_BLACK, ST7735_WHITE); 733 temp = (humidity_sensor_data.propertyE0 / 1) % 10; 734 humid[15] = '0' + temp; 735 lcd_drawString(&lcd, &humid[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), ST7735_BLACK, ST7735_WHITE); 697 736 main_lcd_state++; 698 737 break; … … 704 743 case 6: 705 744 btn = main_read_button(&joystick); 706 lcd_drawString(&lcd, btn_texts[btn], X_LINE_TO_PIX(&lcd, 0) + 10, Y_ROW_TO_PIX(&lcd, 10) + 10, ST7735_BLACK, ST7735_WHITE);745 lcd_drawString(&lcd, btn_texts[btn], X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 9), ST7735_BLACK, ST7735_WHITE); 707 746 main_lcd_state++; 708 747 break; … … 711 750 break; 712 751 case 10: 713 lcd_drawString(&lcd, "温度湿度計", X_LINE_TO_PIX(&lcd, 9) + 10, Y_ROW_TO_PIX(&lcd, 0) + 10, ST7735_BLACK, ST7735_WHITE);714 lcd_drawString(&lcd, temp1, X_LINE_TO_PIX(&lcd, 0) + 10, Y_ROW_TO_PIX(&lcd, 0 + 4) + 10, ST7735_BLACK, ST7735_WHITE);715 lcd_drawString(&lcd, temp2, X_LINE_TO_PIX(&lcd, 0) + 10, Y_ROW_TO_PIX(&lcd, 1 + 4) + 10, ST7735_BLACK, ST7735_WHITE);716 lcd_drawString(&lcd, humid, X_LINE_TO_PIX(&lcd, 0) + 10, Y_ROW_TO_PIX(&lcd, 2 + 4) + 10, ST7735_BLACK, ST7735_WHITE);752 lcd_drawString(&lcd, "温度湿度計", X_LINE_TO_PIX(&lcd, 5), Y_ROW_TO_PIX(&lcd, 0), ST7735_BLACK, ST7735_WHITE); 753 lcd_drawString(&lcd, temp1, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 0 + 2), ST7735_BLACK, ST7735_WHITE); 754 lcd_drawString(&lcd, temp2, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 1 + 2), ST7735_BLACK, ST7735_WHITE); 755 lcd_drawString(&lcd, humid, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 2 + 2), ST7735_BLACK, ST7735_WHITE); 717 756 main_lcd_state = 0; 718 757 break; … … 755 794 /* プロパティ設定電文作成 */ 756 795 ret = ecn_esv_setc(&esv, eobj, 0xE0, 2, p_edt); 757 if (ret != E_OK){796 if (ret != E_OK) { 758 797 syslog(LOG_ERROR, "ecn_esv_setc"); 759 798 return; … … 761 800 762 801 /* 電文送信 */ 763 ecn_snd_esv(esv); 802 ret = ecn_snd_esv(esv); 803 if (ret != E_OK) { 804 syslog(LOG_ERROR, "ecn_snd_esv"); 805 } 764 806 } 765 807 … … 798 840 799 841 /* 押されて戻った時に処理する */ 800 if (push)842 if (push) 801 843 return; 802 844 803 845 /* 温度計測値 */ 804 846 main_tmpr -= 10; /* - 1.0℃ */ 805 if (main_tmpr < -100) /* -10.0℃までとする */847 if (main_tmpr < -100) /* -10.0℃までとする */ 806 848 main_tmpr = -100; 807 849 … … 811 853 /* プロパティ値書き込み・読み出し要求電文作成 */ 812 854 ret = ecn_esv_set_get(&esv, TEMP_SENSOR_02_EOBJ, 0xE0, 2, p_edt); 813 if (ret != E_OK){855 if (ret != E_OK) { 814 856 syslog(LOG_ERROR, "ecn_esv_setc"); 815 857 return; … … 820 862 /* 書き込みプロパティ追加 */ 821 863 ret = ecn_add_edt(esv, 0x80, 1, p_edt); 822 if (ret) {864 if (ret) { 823 865 syslog(LOG_ERROR, "ecn_add_edt"); 824 866 goto error; … … 827 869 /* プロパティ値書き込み・読み出し要求電文作成:折り返し指定 */ 828 870 ret = ecn_trn_set_get(esv, &trn_pos); 829 if (ret) {871 if (ret) { 830 872 syslog(LOG_ERROR, "ecn_trn_set_get"); 831 873 goto error; … … 834 876 /* 読み出しプロパティ追加 */ 835 877 ret = ecn_add_epc(esv, 0xE0); 836 if (ret) {878 if (ret) { 837 879 syslog(LOG_ERROR, "ecn_add_epc"); 838 880 goto error; … … 841 883 /* プロパティ値書き込み・読み出し要求電文作成:終了指定 */ 842 884 ret = ecn_end_set_get(esv, trn_pos); 843 if (ret) {885 if (ret) { 844 886 syslog(LOG_ERROR, "ecn_end_set_get"); 845 887 goto error; … … 848 890 /* 電文送信 */ 849 891 ret = ecn_snd_esv(esv); 850 if (ret != E_OK){892 if (ret != E_OK) { 851 893 syslog(LOG_ERROR, "ecn_snd_esv"); 852 894 } … … 855 897 /* 領域解放 */ 856 898 ret = ecn_rel_esv(esv); 857 if (ret != E_OK) {899 if (ret != E_OK) { 858 900 syslog(LOG_ERROR, "ecn_rel_esv"); 859 901 } … … 871 913 872 914 /* 押されて戻った時に処理する */ 873 if (push)915 if (push) 874 916 return; 875 917 876 918 /* 温度計測値 */ 877 919 main_tmpr += 10; /* + 1.0℃ */ 878 if (main_tmpr > 400) /* +40.0℃までとする */920 if (main_tmpr > 400) /* +40.0℃までとする */ 879 921 main_tmpr = 400; 880 922 … … 884 926 /* プロパティ値書き込み・読み出し要求電文作成 */ 885 927 ret = ecn_esv_set_get(&esv, TEMP_SENSOR_02_EOBJ, 0xE0, 2, p_edt); 886 if (ret != E_OK){928 if (ret != E_OK) { 887 929 syslog(LOG_ERROR, "ecn_esv_setc"); 888 930 return; … … 893 935 /* 書き込みプロパティ追加 */ 894 936 ret = ecn_add_edt(esv, 0x80, 1, p_edt); 895 if (ret) {937 if (ret) { 896 938 syslog(LOG_ERROR, "ecn_add_edt"); 897 939 goto error; … … 900 942 /* プロパティ値書き込み・読み出し要求電文作成:折り返し指定 */ 901 943 ret = ecn_trn_set_get(esv, &trn_pos); 902 if (ret) {944 if (ret) { 903 945 syslog(LOG_ERROR, "ecn_trn_set_get"); 904 946 goto error; … … 907 949 /* 読み出しプロパティ追加 */ 908 950 ret = ecn_add_epc(esv, 0xE0); 909 if (ret) {951 if (ret) { 910 952 syslog(LOG_ERROR, "ecn_add_epc"); 911 953 goto error; … … 914 956 /* プロパティ値書き込み・読み出し要求電文作成:終了指定 */ 915 957 ret = ecn_end_set_get(esv, trn_pos); 916 if (ret) {958 if (ret) { 917 959 syslog(LOG_ERROR, "ecn_end_set_get"); 918 960 goto error; … … 921 963 /* 電文送信 */ 922 964 ret = ecn_snd_esv(esv); 923 if (ret != E_OK){965 if (ret != E_OK) { 924 966 syslog(LOG_ERROR, "ecn_snd_esv"); 925 967 } … … 928 970 /* 領域解放 */ 929 971 ret = ecn_rel_esv(esv); 930 if (ret != E_OK) {972 if (ret != E_OK) { 931 973 syslog(LOG_ERROR, "ecn_rel_esv"); 932 974 } … … 938 980 static bool_t check_response(uint8_t pdc, uint8_t *p_edt) 939 981 { 940 if ((pdc != 2)982 if ((pdc != 2) 941 983 || (p_edt[0] != ((uint16_t)main_tmpr) >> 8) 942 || (p_edt[1] != ((uint16_t)main_tmpr) & 0xFF)) 943 { 984 || (p_edt[1] != ((uint16_t)main_tmpr) & 0xFF)) { 944 985 syslog(LOG_WARNING, "epc_set_get response NG"); 945 986 return false; -
asp3_tinet_ecnl_arm/trunk/app5_temp_sensor/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/app5_temp_sensor/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.