Ignore:
Timestamp:
Feb 1, 2019, 9:57:09 PM (5 years ago)
Author:
coas-nagasima
Message:

TINETとSocket APIなどを更新

Location:
asp3_tinet_ecnl_rx/trunk/app5_temp_sensor
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/.cproject

    r345 r364  
    2222                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    2323                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    24                                 <option id="toolchain.version" value="4.8.4.201703"/>
     24                                <option id="toolchain.version" value="4.8.4.201803"/>
    2525                        </storageModule>
    2626                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    3737                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.1780467547" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    3838                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.1563250286" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    39                                                         <builder buildPath="${workspace_loc:/app5_temp_sensor}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1575069720" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     39                                                        <builder buildPath="${workspace_loc:/app5_temp_sensor}/Debug" id="com.renesas.cdt.managedbuild.gcc.core.builder.1575069720" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    4040                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.208699470" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    4141                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1089825677" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    9191                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    9292                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    93                                 <option id="toolchain.version" value="4.8.4.201703"/>
     93                                <option id="toolchain.version" value="4.8.4.201803"/>
    9494                        </storageModule>
    9595                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    106106                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.881482763" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    107107                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.391802059" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    108                                                         <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.224601891" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     108                                                        <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugCitrus" id="com.renesas.cdt.managedbuild.gcc.core.builder.224601891" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    109109                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.847507658" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    110110                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.371365316" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    160160                        <storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
    161161                                <option id="toolchain.id" value="RENESAS_GCC_RX"/>
    162                                 <option id="toolchain.version" value="4.8.4.201703"/>
     162                                <option id="toolchain.version" value="4.8.4.201803"/>
    163163                        </storageModule>
    164164                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
     
    175175                                                        <option id="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize.751823232" name="Warn if stack size exceeds the limit (-Wstack-usage) (H')" superClass="com.renesas.cdt.managedbuild.gcc.core.option.debug.warnStackSize" useByScannerDiscovery="false" value="100" valueType="string"/>
    176176                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.renesas.cdt.managedbuild.gcc.core.targetPlatform.381079413" isAbstract="false" osList="all" superClass="com.renesas.cdt.managedbuild.gcc.core.targetPlatform"/>
    177                                                         <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1878313362" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="false" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
     177                                                        <builder buildPath="${workspace_loc:/app5_temp_sensor}/DebugEther" id="com.renesas.cdt.managedbuild.gcc.core.builder.1878313362" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.core.builder"/>
    178178                                                        <tool id="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen.1422598921" name="Library Generator" superClass="com.renesas.cdt.managedbuild.gcc.rx.tool.libgen">
    179179                                                                <option id="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary.1459601745" name="Select Library" superClass="com.renesas.cdt.managedbuild.gcc.rx.option.selectlibrary" useByScannerDiscovery="true" value="com.renesas.cdt.managedbuild.gcc.core.option.librarygenerator.settings.selectLibrary.newLib" valueType="enumerated"/>
     
    224224        <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
    225225        <storageModule moduleId="refreshScope" versionNumber="2">
     226                <configuration configurationName="DebugEther"/>
     227                <configuration configurationName="DebugCitrus"/>
    226228                <configuration configurationName="Debug">
    227229                        <resource resourceType="PROJECT" workspacePath="/app5_temp_sensor"/>
     
    231233                </configuration>
    232234        </storageModule>
     235        <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
    233236</cproject>
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/Debug/Makefile

    r342 r364  
    155155
    156156#
     157#  gdicサービスの定義
     158#
     159
     160include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    167173        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168174endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     175CDEFS := $(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
    170176INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171177        -I$(SRCDIR)/../btstack/include \
     
    175181        -I$(SRCDIR)/../usbhost/src \
    176182        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     183LDFLAGS := $(LDFLAGS) -L.
    178184LIBS := $(LIBS) $(CXXLIBS)
    179185CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186192APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.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
     193APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
     194APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
     195APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT
    187196
    188197#
     
    209218endif
    210219
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     220ifdef TINETDIR
     221        #
     222        #  ネットワークサービスの定義
     223        #
     224        NO_USE_TINET_LIBRARY = true
     225
     226        #  ネットワークインタフェースの選択、何れか一つ選択する。
     227        NET_IF = ether
     228
     229        #  イーサネット・ディバイスドライバの選択
     230        NET_DEV = if_btusb
     231
     232        #  ネットワーク層の選択
     233        #SUPPORT_INET6 = true
     234        SUPPORT_INET4 = true
     235
     236        #  API に組込む機能の選択
     237        #API_CFG_IP4MAPPED_ADDR = true
     238
     239        #  トランスポート層の選択
     240        SUPPORT_TCP = true
     241        SUPPORT_UDP = true
     242
     243        # IGMPを有効に設定
     244        SUPPORT_IGMP = true
     245
     246        #
     247        #  ネットワークサービスの Makefile のインクルード
     248        #
     249        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     250endif
    241251
    242252#
     
    258268all: tecs | $(DEPDIR)
    259269#       @$(MAKE) check
    260         @$(MAKE) check $(OBJNAME).bin
     270#       @$(MAKE) check $(OBJNAME).bin
    261271#       @$(MAKE) check $(OBJNAME).srec
     272        @$(MAKE) check $(OBJNAME).mot
    262273else
    263274#all: check
    264 all: check $(OBJNAME).bin
     275#all: check $(OBJNAME).bin
    265276#all: check $(OBJNAME).srec
     277all: check $(OBJNAME).mot
    266278endif
    267279
     
    271283#  コンフィギュレータに関する定義
    272284#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     285ifndef TINETDIR
     286  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     287  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     288                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     289else
     290  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     291  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275292                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276293                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278295                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279296                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     297endif
    280298CFG_ASMOBJS := $(CFG_ASMOBJS)
    281299CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423441
    424442#
     443#  並列makeのための依存関係の定義
     444#
     445$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     446$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     447                                                                                                                | offset.timestamp
     448
     449#
    425450#  特別な依存関係の定義
    426451#
     
    431456#
    432457$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     458        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434459                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435460                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    460485$(OBJNAME).srec: $(OBJFILE)
    461486        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     487
     488$(OBJNAME).mot: $(OBJFILE)
     489        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    462490
    463491#
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/DebugCitrus/Makefile

    r342 r364  
    155155
    156156#
     157#  gdicサービスの定義
     158#
     159
     160include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config
     161
     162#
    157163#  共通コンパイルオプションの定義
    158164#
     
    167173        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    168174endif
    169 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     175CDEFS := $(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
    170176INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    171177        -I$(SRCDIR)/../btstack/include \
     
    175181        -I$(SRCDIR)/../usbhost/src \
    176182        $(INCLUDES)
    177 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     183LDFLAGS := $(LDFLAGS) -L.
    178184LIBS := $(LIBS) $(CXXLIBS)
    179185CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    185191APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    186192APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.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
     193APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
     194APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
     195APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT
    187196
    188197#
     
    209218endif
    210219
    211 
    212 #
    213 #  ネットワークサービスの定義
    214 #
    215 NO_USE_TINET_LIBRARY = true
    216 
    217 #  ネットワークインタフェースの選択、何れか一つ選択する。
    218 NET_IF = ether
    219 
    220 #  イーサネット・ディバイスドライバの選択
    221 NET_DEV = if_btusb
    222 
    223 #  ネットワーク層の選択
    224 #SUPPORT_INET6 = true
    225 SUPPORT_INET4 = true
    226 
    227 #  API に組込む機能の選択
    228 #API_CFG_IP4MAPPED_ADDR = true
    229 
    230 #  トランスポート層の選択
    231 SUPPORT_TCP = true
    232 SUPPORT_UDP = true
    233 
    234 # IGMPを有効に設定
    235 SUPPORT_IGMP = true
    236 
    237 #
    238 #  ネットワークサービスの Makefile のインクルード
    239 #
    240 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     220ifdef TINETDIR
     221        #
     222        #  ネットワークサービスの定義
     223        #
     224        NO_USE_TINET_LIBRARY = true
     225
     226        #  ネットワークインタフェースの選択、何れか一つ選択する。
     227        NET_IF = ether
     228
     229        #  イーサネット・ディバイスドライバの選択
     230        NET_DEV = if_btusb
     231
     232        #  ネットワーク層の選択
     233        #SUPPORT_INET6 = true
     234        SUPPORT_INET4 = true
     235
     236        #  API に組込む機能の選択
     237        #API_CFG_IP4MAPPED_ADDR = true
     238
     239        #  トランスポート層の選択
     240        SUPPORT_TCP = true
     241        SUPPORT_UDP = true
     242
     243        # IGMPを有効に設定
     244        SUPPORT_IGMP = true
     245
     246        #
     247        #  ネットワークサービスの Makefile のインクルード
     248        #
     249        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     250endif
    241251
    242252#
     
    258268all: tecs | $(DEPDIR)
    259269#       @$(MAKE) check
    260         @$(MAKE) check $(OBJNAME).bin
     270#       @$(MAKE) check $(OBJNAME).bin
    261271#       @$(MAKE) check $(OBJNAME).srec
     272        @$(MAKE) check $(OBJNAME).mot
    262273else
    263274#all: check
    264 all: check $(OBJNAME).bin
     275#all: check $(OBJNAME).bin
    265276#all: check $(OBJNAME).srec
     277all: check $(OBJNAME).mot
    266278endif
    267279
     
    271283#  コンフィギュレータに関する定義
    272284#
    273 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    274 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     285ifndef TINETDIR
     286  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     287  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     288                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     289else
     290  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     291  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    275292                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    276293                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    278295                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    279296                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     297endif
    280298CFG_ASMOBJS := $(CFG_ASMOBJS)
    281299CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    423441
    424442#
     443#  並列makeのための依存関係の定義
     444#
     445$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     446$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     447                                                                                                                | offset.timestamp
     448
     449#
    425450#  特別な依存関係の定義
    426451#
     
    431456#
    432457$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    433         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     458        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    434459                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    435460                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    460485$(OBJNAME).srec: $(OBJFILE)
    461486        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     487
     488$(OBJNAME).mot: $(OBJFILE)
     489        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    462490
    463491#
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/DebugEther/Makefile

    r342 r364  
    153153
    154154#
     155#  gdicサービスの定義
     156#
     157
     158include $(SRCDIR)/gdic/adafruit_ssd1306/Makefile.config
     159
     160#
    155161#  共通コンパイルオプションの定義
    156162#
     
    165171        CDEFS := -DTOPPERS_OMIT_TECS $(CDEFS)
    166172endif
    167 CDEFS := $(CDEFS) -DDHCP4_CLI_CFG -DUSE_PING -DUSE_RESOLVER -DUSE_NETAPP_SUBR -DECHONET_USE_MALLOC -DRamDisk=binary_______ntshell_src_rom_fs_bin_start
     173CDEFS := $(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
    168174INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR) \
    169175        -I$(SRCDIR)/../btstack/include \
     
    173179        -I$(SRCDIR)/../usbhost/src \
    174180        $(INCLUDES)
    175 LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref -L.
     181LDFLAGS := $(LDFLAGS) -L.
    176182LIBS := $(LIBS) $(CXXLIBS)
    177183CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
     
    183189APPLDIRS := $(APPLDIRS) ../../ntshell/tlsf ../../ntshell/fatfs ../../ntshell/ntshell ../../ntshell/ntshell/core ../../ntshell/ntshell/util ../../ntshell/src
    184190APPL_COBJS := $(APPL_COBJS) mbed_api.o netcmd.o fdtable.o io_stub.o socket_stub.o ffarch.o diskio.o ff.o mmc_rspi.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
     191APPLDIRS := $(APPLDIRS) ../../ntshell/lcd
     192APPL_COBJS := $(APPL_COBJS) draw_font.o shnm12_font.o
     193APPL_CFLAGS := $(APPL_CFLAGS) -DADAFRUIT_SSD1306 -DSHNM12_FONT
    185194
    186195#
     
    207216endif
    208217
    209 
    210 #
    211 #  ネットワークサービスの定義
    212 #
    213 NO_USE_TINET_LIBRARY = true
    214 
    215 #  ネットワークインタフェースの選択、何れか一つ選択する。
    216 NET_IF = ether
    217 
    218 #  イーサネット・ディバイスドライバの選択
     218ifdef TINETDIR
     219        #
     220        #  ネットワークサービスの定義
     221        #
     222        NO_USE_TINET_LIBRARY = true
     223
     224        #  ネットワークインタフェースの選択、何れか一つ選択する。
     225        NET_IF = ether
     226
     227        #  イーサネット・ディバイスドライバの選択
    219228        NET_DEV = if_rx62n
    220229
    221 #  ネットワーク層の選択
    222 #SUPPORT_INET6 = true
    223 SUPPORT_INET4 = true
    224 
    225 #  API に組込む機能の選択
    226 #API_CFG_IP4MAPPED_ADDR = true
    227 
    228 #  トランスポート層の選択
    229 SUPPORT_TCP = true
    230 SUPPORT_UDP = true
    231 
    232 # IGMPを有効に設定
    233 SUPPORT_IGMP = true
    234 
    235 #
    236 #  ネットワークサービスの Makefile のインクルード
    237 #
    238 include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     230        #  ネットワーク層の選択
     231        #SUPPORT_INET6 = true
     232        SUPPORT_INET4 = true
     233
     234        #  API に組込む機能の選択
     235        #API_CFG_IP4MAPPED_ADDR = true
     236
     237        #  トランスポート層の選択
     238        SUPPORT_TCP = true
     239        SUPPORT_UDP = true
     240
     241        # IGMPを有効に設定
     242        SUPPORT_IGMP = true
     243
     244        #
     245        #  ネットワークサービスの Makefile のインクルード
     246        #
     247        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     248endif
    239249
    240250#
     
    256266all: tecs | $(DEPDIR)
    257267#       @$(MAKE) check
    258         @$(MAKE) check $(OBJNAME).bin
     268#       @$(MAKE) check $(OBJNAME).bin
    259269#       @$(MAKE) check $(OBJNAME).srec
     270        @$(MAKE) check $(OBJNAME).mot
    260271else
    261272#all: check
    262 all: check $(OBJNAME).bin
     273#all: check $(OBJNAME).bin
    263274#all: check $(OBJNAME).srec
     275all: check $(OBJNAME).mot
    264276endif
    265277
     
    269281#  コンフィギュレータに関する定義
    270282#
    271 CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
    272 CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
     283ifndef TINETDIR
     284  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     285  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     286                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     287else
     288  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T ../../ntshell/echonet/echonet.trb:echonet -T $(TARGETDIR)/target_kernel.trb:kernel
     289  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    273290                        --api-table ../../ntshell/echonet/echonet_api.def:echonet \
    274291                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
     
    276293                        --symval-table ../../ntshell/echonet/echonet_sym.def \
    277294                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     295endif
    278296CFG_ASMOBJS := $(CFG_ASMOBJS)
    279297CFG_COBJS := kernel_cfg.o echonet_cfg.o $(CFG_COBJS)
     
    421439
    422440#
     441#  並列makeのための依存関係の定義
     442#
     443$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
     444$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
     445                                                                                                                | offset.timestamp
     446
     447#
    423448#  特別な依存関係の定義
    424449#
     
    429454#
    430455$(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
    431         $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
     456        $(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
    432457                        $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
    433458                        -Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
     
    458483$(OBJNAME).srec: $(OBJFILE)
    459484        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
     485
     486$(OBJNAME).mot: $(OBJFILE)
     487        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).mot
    460488
    461489#
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/src/echonet_main.c

    r351 r364  
    11/*
    22 *  TOPPERS ECHONET Lite Communication Middleware
    3  * 
     3 *
    44 *  Copyright (C) 2014-2018 Cores Co., Ltd. Japan
    5  * 
     5 *
    66 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    77 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2626 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    2727 *      免責すること.
    28  * 
     28 *
    2929 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3030 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3232 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3333 *  の責任を負わない.
    34  * 
     34 *
    3535 *  @(#) $Id$
    3636 */
    3737
    38 /* 
     38/*
    3939 *  サンプルプログラム(1)の本体
    4040 */
     
    5151#include "echonet_cfg.h"
    5252#include "target_kernel_impl.h"
     53#include "adafruit_ssd1306.h"
     54#include "draw_font.h"
    5355
    5456/* TODO: メーカーコードを設定 */
     
    107109
    108110        /* サイズが1以外は受け付けない */
    109         if(size != 1)
     111        if (size != 1)
    110112                return 0;
    111113
    112114        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    113115
    114         switch(*(uint8_t *)src){
     116        switch (*(uint8_t *)src) {
    115117        /* ONの場合 */
    116118        case 0x30:
     
    122124                data[1] = *(uint8_t *)src;
    123125                ret = ecn_brk_wai(data, sizeof(data));
    124                 if(ret != E_OK){
     126                if (ret != E_OK) {
    125127                        syslog(LOG_ERROR, "ecn_brk_wai");
    126128                        return 1;
     
    141143{
    142144        /* サイズが1以外は受け付けない */
    143         if(size != 1)
     145        if (size != 1)
    144146                return 0;
    145147
    146148        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    147149
    148         switch(*(uint8_t *)src){
     150        switch (*(uint8_t *)src) {
    149151        /* 異常発生ありの場合 */
    150152        case 0x41:
     
    172174
    173175        /* サイズが2以外は受け付けない */
    174         if(size != 2)
     176        if (size != 2)
    175177                return 0;
    176178
    177179        value = (((uint8_t *)src)[0] << 8) | (((uint8_t *)src)[1] & 0xFF);
    178180
    179         if((value >= -2732) && (value <= 32766)){
     181        if ((value >= -2732) && (value <= 32766)) {
    180182                eobj->propertyE0 = value;
    181183                /* メインタスクに通知 */
    182184                data[0] = 0xE0;
    183185                ret = ecn_brk_wai(data, sizeof(data));
    184                 if(ret != E_OK){
     186                if (ret != E_OK) {
    185187                        syslog(LOG_ERROR, "ecn_brk_wai");
    186188                        return 2;
     
    188190        }
    189191        /* 上記以外は受け付けない */
    190         else{
     192        else {
    191193                return 0;
    192194        }
     
    195197}
    196198
    197 /* 
     199/*
    198200 * 温度計測値取得関数
    199201 */
     
    204206
    205207        /* サイズが2以外は受け付けない */
    206         if(size != 2)
     208        if (size != 2)
    207209                return 0;
    208210
     
    236238
    237239        ret2 = get_tim(&now);
    238         if (ret2 != E_OK){
     240        if (ret2 != E_OK) {
    239241                syslog(LOG_ERROR, "get_tim");
    240242                return;
    241243        }
    242244
    243         for(;;){
     245        for (;;) {
    244246                prev = now;
    245247
     
    249251                /* 応答電文待ち */
    250252                ret = ecn_trcv_esv(&esv, timer);
    251                 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)){
     253                if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {
    252254                        syslog(LOG_ERROR, "ecn_trcv_esv");
    253255                        break;
     
    255257
    256258                ret2 = get_tim(&now);
    257                 if (ret2 != E_OK){
     259                if (ret2 != E_OK) {
    258260                        syslog(LOG_ERROR, "get_tim");
    259261                        break;
     
    270272                        /* 領域解放 */
    271273                        ret = ecn_rel_esv(esv);
    272                         if (ret != E_OK){
     274                        if (ret != E_OK) {
    273275                                syslog(LOG_ERROR, "ecn_rel_esv");
    274276                                break;
     
    279281                        /* 応答電文待ちの割り込みデータ取得 */
    280282                        ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len);
    281                         if (ret != E_OK){
     283                        if (ret != E_OK) {
    282284                                syslog(LOG_ERROR, "ecn_get_brk_dat");
    283285                                break;
     
    289291                        /* 領域解放 */
    290292                        ret = ecn_rel_esv(esv);
    291                         if (ret != E_OK){
     293                        if (ret != E_OK) {
    292294                                syslog(LOG_ERROR, "ecn_rel_esv");
    293295                                break;
     
    300302}
    301303
    302 bool_t started = false;
    303 
    304304void echonet_change_netif_link(uint8_t link_up, uint8_t up)
    305305{
     
    309309                return;
    310310
    311         if (up && !started) {
    312                 started = true;
    313 
    314                 /* ECHONETミドルウェアを起動 */
    315                 ret = ecn_sta_svc();
    316                 if (ret != E_OK)
    317                         return;
    318 
    319                 /* ECHONETミドルウェアを起動するのを待つ */
    320                 dly_tsk(100);
     311        if (up) {
     312                /* インスタンスリスト通知の送信 */
     313                ret = ecn_ntf_inl();
     314                if (ret != E_OK) {
     315                        syslog(LOG_ERROR, "ecn_ntf_inl");
     316                }
    321317        }
    322318
     
    332328}
    333329
    334 enum main_state_t{
     330enum main_state_t {
     331        main_state_start,
    335332        main_state_idle,
    336333};
    337334
    338335int main_timer = TMO_FEVR;
    339 enum main_state_t main_state = main_state_idle;
    340 
    341 enum main_led_state_t{
    342         main_led_state_idle,
    343         main_led_state_on_o,
    344         main_led_state_on_n,
    345         main_led_state_off_o,
    346         main_led_state_off_f1,
    347         main_led_state_off_f2,
    348         main_led_state_space1,
    349         main_led_state_tmpr_minus,
    350         main_led_state_tmpr_100,
    351         main_led_state_tmpr_10,
    352         main_led_state_tmpr_1,
    353         main_led_state_space2,
    354         main_led_state_humid_10,
    355         main_led_state_humid_1,
    356         main_led_state_space3,
    357 };
    358 
    359 int main_led_timer = TMO_FEVR;
    360 enum main_led_state_t main_led_state = main_led_state_idle;
    361 bool_t main_led_update;
     336enum main_state_t main_state = main_state_start;
     337
     338int main_lcd_timer = TMO_FEVR;
     339int main_lcd_state = 0;
    362340
    363341bool_t main_btn1_state;
     
    365343bool_t main_btn2_state;
    366344int main_btn2_count = 0;
     345
     346LCD_Handler_t lcd;
    367347
    368348/*
     
    387367        sil_wrb_mem((uint8_t *)0x0008C02D, 0xC0);
    388368
    389         /* 10ms後にボタン状態を確認 */
    390         main_timer = 10 * 1000;
     369        /* ECHONETミドルウェアを起動するのを待つ */
     370        main_state = main_state_start;
     371        main_timer = 1000 * 1000;
    391372
    392373        /* 12bitADC初期化 */
    393374        sil_wrh_mem((uint16_t *)S12AD_ADEXICR_ADDR, 0x0000);    /* 温度センサ出力、内部基準電圧非選択 */
    394         sil_wrh_mem((uint16_t *)S12AD_ADANS0_ADDR, 0x0001);             /* 変換ポートAN000選択、AN001~AN015非選択 */
     375        sil_wrh_mem((uint16_t *)S12AD_ADANS0_ADDR, 0x0007);             /* 変換ポートAN000選択、AN001~AN015非選択 */
    395376        sil_wrh_mem((uint16_t *)S12AD_ADANS1_ADDR, 0x0000);             /* 変換ポートAN016~AN020非選択 */
    396 
    397         if(temperature_sensor1_data.property80 == 0x30)
    398                 main_led_state = main_led_state_on_o;
    399         else
    400                 main_led_state = main_led_state_off_o;
    401         main_led_timer = 0;
    402377
    403378        /* ボタン状態読み込み */
     
    407382        main_btn2_state = (btn2 & 0x80) != 0;
    408383
     384        i2c_init(&lcd.i2c, I2C_SDA, I2C_SCL);
     385        i2c_frequency(&lcd.i2c, 100000);
     386
     387        lcd_init3(&lcd, NC);
     388
     389        lcd_begin(&lcd, SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS, true);
     390
     391        lcd_clearDisplay(&lcd);
     392
     393        lcd_display(&lcd);
     394
     395        /* 1秒後にLCD表示を更新 */
     396        main_lcd_state = 10;
     397        main_lcd_timer = 1000 * 1000;
     398
     399        /* メインタスクを起動 */
    409400        ER ret = act_tsk(MAIN_TASK);
    410401        if (ret != E_OK) {
     
    420411        int result = main_timer;
    421412
    422         if((result == TMO_FEVR)
    423                 || ((main_led_timer != TMO_FEVR) && (main_led_timer < result))){
    424                 result = main_led_timer;
     413        if ((result == TMO_FEVR)
     414                || ((main_lcd_timer != TMO_FEVR) && (main_lcd_timer < result))) {
     415                result = main_lcd_timer;
    425416        }
    426417
     
    433424static void main_progress(int interval)
    434425{
    435         if(main_timer != TMO_FEVR){
     426        if (main_timer != TMO_FEVR) {
    436427                main_timer -= interval;
    437                 if(main_timer < 0){
     428                if (main_timer < 0) {
    438429                        main_timer = 0;
    439430                }
    440431        }
    441432
    442         if(main_led_timer != TMO_FEVR){
    443                 main_led_timer -= interval;
    444                 if(main_led_timer < 0){
    445                         main_led_timer = 0;
     433        if (main_lcd_timer != TMO_FEVR) {
     434                main_lcd_timer -= interval;
     435                if (main_lcd_timer < 0) {
     436                        main_lcd_timer = 0;
    446437                }
    447438        }
     
    463454
    464455        ret = ecn_itr_ini(&enm, esv);
    465         if(ret != E_OK){
     456        if (ret != E_OK) {
    466457                syslog(LOG_ERROR, "ecn_itr_ini");
    467458                return;
    468459        }
    469460
    470         for(;;) {
    471                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     461        for (;;) {
     462                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    472463                        switch (epc) {
    473464                        case 0xE0:
    474                                 if(in_get && (esv->hdr.edata.esv == ESV_SET_GET_RES)){
     465                                if (in_get && (esv->hdr.edata.esv == ESV_SET_GET_RES)) {
    475466                                        check_response(pdc, p_edt);
    476467                                }
     
    478469                        }
    479470                }
    480                 if(ret != E_BOVR){
     471                if (ret != E_BOVR) {
    481472                        syslog(LOG_ERROR, "ecn_itr_nxt");
    482473                        break;
    483474                }
    484                 if(enm.is_eof)
     475                if (enm.is_eof)
    485476                        break;
    486477
     
    501492
    502493        if ((len == 2) && (brkdat[0] == 0x80)) {
    503                 switch(brkdat[1]){
     494                switch (brkdat[1]) {
    504495                /* ONの場合 */
    505496                case 0x30:
     
    514505                }
    515506        }
    516 
    517         switch(main_led_state){
    518         case main_led_state_idle:
    519                 if(temperature_sensor1_data.property80 == 0x30)
    520                         main_led_state = main_led_state_on_o;
    521                 else
    522                         main_led_state = main_led_state_off_o;
    523                 main_led_timer = 0;
    524                 break;
    525         default:
    526                 main_led_update = true;
    527                 break;
    528         }
    529507}
    530508
    531509static void main_ontimer();
    532 static void main_led_ontimer();
     510static void main_lcd_ontimer();
    533511
    534512/*
     
    537515static void main_timeout()
    538516{
    539         if(main_timer == 0){
     517        if (main_timer == 0) {
    540518                main_ontimer();
    541519        }
    542520
    543         if(main_led_timer == 0){
    544                 main_led_ontimer();
    545         }
    546 }
    547 
    548 static int16_t main_ad_tempr = 200;
    549 static uint16_t main_ad_table[64];
    550 #define main_ad_table_count (sizeof(main_ad_table) / sizeof(main_ad_table[0]))
     521        if (main_lcd_timer == 0) {
     522                main_lcd_ontimer();
     523        }
     524}
     525
     526#define main_ad_count 3
     527#define main_ad_table_count 64
     528static int16_t main_ad_tempr[main_ad_count] = { 200, 200, 200 };
     529static uint16_t main_ad_table[main_ad_count][main_ad_table_count];
    551530static int main_ad_pos = 0;
    552 static uint32_t main_ad_avelage;
    553 static int main_count;
    554 
    555 static void main_ad_change();
     531static uint32_t main_ad_avelage[main_ad_count];
     532static int main_count[main_ad_count];
     533
     534static void main_ad_change(int no, int adv);
    556535static void main_btn1_change(bool_t push);
    557536static void main_btn2_change(bool_t push);
    558537
    559 uint8_t led_disp[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
    560 
    561538static void main_ontimer()
    562539{
     540        ER ret;
    563541        uint8_t btn1, btn2;
    564542        uint16_t ad_value;
    565543        int16_t ad_tempr;
    566         uint8_t sseg = sil_reb_mem((uint8_t *)0x0008C02A) & ~0x07;
    567 
    568         switch(main_state){
     544
     545        switch (main_state) {
     546        case main_state_start:
     547                /* ECHONETミドルウェアを起動 */
     548                ret = ecn_sta_svc();
     549                if (ret != E_OK) {
     550                        syslog(LOG_ERROR, "ecn_sta_svc");
     551                }
     552
     553                /* 10ms後にボタン状態を確認 */
     554                main_state = main_state_idle;
     555                main_timer = 10 * 1000;
     556                break;
    569557        case main_state_idle:
    570558                /* 10ms後にボタン状態を確認 */
     
    572560
    573561                /* ADCの変換結果取得 */
    574                 if((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0){
    575                         main_ad_avelage -= main_ad_table[main_ad_pos];
    576                         ad_value = sil_reh_mem((uint16_t *)S12AD_ADDR0_ADDR);
    577                         main_ad_table[main_ad_pos] = ad_value;
    578                         main_ad_avelage += ad_value;
     562                if ((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0) {
     563                        for (int i = 0; i < main_ad_count; i++) {
     564                                main_ad_avelage[i] -= main_ad_table[i][main_ad_pos];
     565                                ad_value = sil_reh_mem(&((uint16_t *)S12AD_ADDR0_ADDR)[i]);
     566                                main_ad_table[i][main_ad_pos] = ad_value;
     567                                main_ad_avelage[i] += ad_value;
     568                        }
    579569
    580570                        main_ad_pos++;
    581                         if(main_ad_pos >= main_ad_table_count){
     571                        if (main_ad_pos >= main_ad_table_count) {
    582572                                main_ad_pos = 0;
    583573                        }
    584574
    585                         ad_tempr = ((int16_t)(((main_ad_avelage / main_ad_table_count) >> 3) & 0x1FF)) - 100;
    586                         if(main_ad_tempr != ad_tempr){
    587                                 /* 1秒変化が続いたら */
    588                                 if(main_count < 100){
    589                                         main_count++;
     575                        for (int i = 0; i < main_ad_count; i++) {
     576                                ad_tempr = ((int16_t)(((main_ad_avelage[i] / main_ad_table_count) >> 3) & 0x1FF)) - 100;
     577                                if (main_ad_tempr[i] != ad_tempr) {
     578                                        /* 1秒変化が続いたら */
     579                                        if (main_count[i] < 100) {
     580                                                main_count[i]++;
     581                                        }
     582                                        else {
     583                                                main_count[i] = 0;
     584                                                main_ad_tempr[i] = ad_tempr;
     585
     586                                                /* ADC状態変化処理 */
     587                                                main_ad_change(i + 1, ad_tempr);
     588                                        }
    590589                                }
    591                                 else{
    592                                         main_ad_tempr = ad_tempr;
    593 
    594                                         /* ADC状態変化処理 */
    595                                         main_ad_change();
     590                                else {
     591                                        main_count[i] = 0;
    596592                                }
    597                         }
    598                         else{
    599                                 main_count = 0;
    600                         }
    601 
    602                         /* LEDに温度計測値を表示 */
    603                         sil_wrb_mem((uint8_t *)0x0008C02A, sseg | led_disp[(main_ad_avelage / main_ad_table_count) >> 9]);
    604 
    605                         /* 変換開始(シングルスキャンモード) */
    606                         sil_wrb_mem((uint8_t *)S12AD_ADCSR_ADDR, S12AD_ADCSR_ADST_BIT);
     593
     594                                /* 変換開始(シングルスキャンモード) */
     595                                sil_wrb_mem((uint8_t *)S12AD_ADCSR_ADDR, S12AD_ADCSR_ADST_BIT);
     596                        }
    607597                }
    608598
     
    612602
    613603                /* ボタン1の処理 */
    614                 if(((btn1 & 0x20) != 0) && !main_btn1_state){
     604                if (((btn1 & 0x20) != 0) && !main_btn1_state) {
    615605                        main_btn1_count++;
    616                         if(main_btn1_count > 10){
     606                        if (main_btn1_count > 10) {
    617607                                main_btn1_count = 0;
    618608                                main_btn1_state = true;
     
    621611                        }
    622612                }
    623                 else if(((btn1 & 0x20) == 0) && main_btn1_state){
     613                else if (((btn1 & 0x20) == 0) && main_btn1_state) {
    624614                        main_btn1_count++;
    625                         if(main_btn1_count > 10){
     615                        if (main_btn1_count > 10) {
    626616                                main_btn1_count = 0;
    627617                                main_btn1_state = false;
     
    632622
    633623                /* ボタン2の処理 */
    634                 if(((btn2 & 0x80) != 0) && !main_btn2_state){
     624                if (((btn2 & 0x80) != 0) && !main_btn2_state) {
    635625                        main_btn2_count++;
    636                         if(main_btn2_count > 10){
     626                        if (main_btn2_count > 10) {
    637627                                main_btn2_count = 0;
    638628                                main_btn2_state = true;
     
    641631                        }
    642632                }
    643                 else if(((btn2 & 0x80) == 0) && main_btn2_state){
     633                else if (((btn2 & 0x80) == 0) && main_btn2_state) {
    644634                        main_btn2_count++;
    645                         if(main_btn2_count > 10){
     635                        if (main_btn2_count > 10) {
    646636                                main_btn2_count = 0;
    647637                                main_btn2_state = false;
     
    654644}
    655645
    656 uint8_t led_num[] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 };
    657 uint8_t led_onf[] = { 0xA3, 0xAB, 0x8E };
    658 
    659 static void main_led_ontimer()
     646static char temp1[] = "温度1:+000.0℃";
     647static char temp2[] = "温度2:+000.0℃";
     648static char humid[] = "湿度 :+000.0%";
     649
     650static void main_lcd_ontimer()
    660651{
    661652        int temp;
    662653
    663         switch(main_led_state){
    664         case main_led_state_idle:
    665                 /* 7segに' 'を表示 */
    666                 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF);
    667                 main_led_timer = TMO_FEVR;
    668                 return;
    669         case main_led_state_on_o:
    670                 /* 7segに'o'を表示 */
    671                 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[0]);
    672                 main_led_state = main_led_state_on_n;
    673                 break;
    674         case main_led_state_on_n:
    675                 /* 7segに'n'を表示 */
    676                 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[1]);
    677                 main_led_state = main_led_state_space1;
    678                 break;
    679         case main_led_state_off_o:
    680                 /* 7segに'o'を表示 */
    681                 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[0]);
    682                 main_led_state = main_led_state_off_f1;
    683                 break;
    684         case main_led_state_off_f1:
    685                 /* 7segに'f'を表示 */
    686                 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[2]);
    687                 main_led_state = main_led_state_off_f2;
    688                 break;
    689         case main_led_state_off_f2:
    690                 /* 7segに'f'を表示 */
    691                 sil_wrb_mem((uint8_t *)0x0008C02D, led_onf[2]);
    692                 main_led_state = main_led_state_space1;
    693                 break;
    694         case main_led_state_space1:
    695                 /* 7segに' 'を表示 */
    696                 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF);
    697                 if(temperature_sensor1_data.propertyE0 >= 0){
    698                         main_led_state = main_led_state_tmpr_10;
    699                 }
    700                 else{
    701                         main_led_state = main_led_state_tmpr_minus;
    702                 }
    703                 break;
    704         case main_led_state_tmpr_minus:
    705                 /* 7segに'-'を表示 */
    706                 sil_wrb_mem((uint8_t *)0x0008C02D, 0xBF);
    707                 if((temperature_sensor1_data.propertyE0 >= 100)
    708                         || (temperature_sensor1_data.propertyE0 <= -100))
    709                         main_led_state = main_led_state_tmpr_100;
    710                 else
    711                         main_led_state = main_led_state_tmpr_10;
    712                 break;
    713         case main_led_state_tmpr_100:
     654        switch (main_lcd_state) {
     655        case 0:
     656                temp1[10] = (temperature_sensor1_data.propertyE0 >= 0) ? ' ' : '-';
    714657                temp = (temperature_sensor1_data.propertyE0 / 1000) % 10;
    715                 if(temp < 0)
     658                if (temp < 0)
    716659                        temp = -temp;
    717                 /* 7segに温度計測値10の位を表示 */
    718                 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]);
    719                 main_led_state = main_led_state_tmpr_10;
    720                 break;
    721         case main_led_state_tmpr_10:
     660                temp1[11] = '0' + temp;
    722661                temp = (temperature_sensor1_data.propertyE0 / 100) % 10;
    723                 if(temp < 0)
     662                if (temp < 0)
    724663                        temp = -temp;
    725                 /* 7segに温度計測値10の位を表示 */
    726                 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]);
    727                 main_led_state = main_led_state_tmpr_1;
    728                 break;
    729         case main_led_state_tmpr_1:
     664                temp1[12] = '0' + temp;
    730665                temp = (temperature_sensor1_data.propertyE0 / 10) % 10;
    731                 if(temp < 0)
     666                if (temp < 0)
    732667                        temp = -temp;
    733                 /* 7segに温度計測値10の位を表示 */
    734                 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp] & (~0x80));
    735                 main_led_state = main_led_state_space2;
    736                 break;
    737         case main_led_state_space2:
    738                 /* 7segに' 'を表示 */
    739                 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF);
    740                 main_led_state = main_led_state_humid_10;
    741                 break;
    742         case main_led_state_humid_10:
    743                 temp = humidity_sensor_data.propertyE0 / 10;
    744                 /* 7segに湿度計測値10の位を表示 */
    745                 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp]);
    746                 main_led_state = main_led_state_humid_1;
    747                 break;
    748         case main_led_state_humid_1:
    749                 temp = humidity_sensor_data.propertyE0 % 10;
    750                 /* 7segに湿度計測値10の位を表示 */
    751                 sil_wrb_mem((uint8_t *)0x0008C02D, led_num[temp] & (~0x80));
    752                 main_led_state = main_led_state_space3;
    753                 break;
    754         case main_led_state_space3:
    755                 /* 7segに' 'を表示 */
    756                 if(temperature_sensor1_data.property80 == 0x30)
    757                         /* 7segに'.'を表示 */
    758                         sil_wrb_mem((uint8_t *)0x0008C02D, 0x7F);
    759                 else
    760                         /* 7segに' 'を表示 */
    761                         sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF);
    762 
    763                 if(main_led_update){
    764                         main_led_update = false;
    765 
    766                         if(temperature_sensor1_data.property80 == 0x30)
    767                                 main_led_state = main_led_state_on_o;
    768                         else
    769                                 main_led_state = main_led_state_off_o;
    770                 }
    771                 else{
    772                         main_led_state = main_led_state_idle;
    773                         main_led_timer = TMO_FEVR;
    774                         return;
    775                 }
     668                temp1[13] = '0' + temp;
     669                temp = (temperature_sensor1_data.propertyE0 / 1) % 10;
     670                if (temp < 0)
     671                        temp = -temp;
     672                temp1[15] = '0' + temp;
     673                lcd_drawString(&lcd, &temp1[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), WHITE, BLACK);
     674                main_lcd_state++;
     675                break;
     676        case 1:
     677                temp2[10] = (temperature_sensor2_data.propertyE0 >= 0) ? ' ' : '-';
     678                temp = (temperature_sensor2_data.propertyE0 / 1000) % 10;
     679                if (temp < 0)
     680                        temp = -temp;
     681                temp2[11] = '0' + temp;
     682                temp = (temperature_sensor2_data.propertyE0 / 100) % 10;
     683                if (temp < 0)
     684                        temp = -temp;
     685                temp2[12] = '0' + temp;
     686                temp = (temperature_sensor2_data.propertyE0 / 10) % 10;
     687                if (temp < 0)
     688                        temp = -temp;
     689                temp2[13] = '0' + temp;
     690                temp = (temperature_sensor2_data.propertyE0 / 1) % 10;
     691                if (temp < 0)
     692                        temp = -temp;
     693                temp2[15] = '0' + temp;
     694                lcd_drawString(&lcd, &temp2[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), WHITE, BLACK);
     695                main_lcd_state++;
     696                break;
     697        case 2:
     698                humid[10] = ' ';
     699                humid[11] = ' ';
     700                temp = (humidity_sensor_data.propertyE0 / 100) % 10;
     701                humid[12] = '0' + temp;
     702                temp = (humidity_sensor_data.propertyE0 / 10) % 10;
     703                humid[13] = '0' + temp;
     704                temp = (humidity_sensor_data.propertyE0 / 1) % 10;
     705                humid[15] = '0' + temp;
     706                lcd_drawString(&lcd, &humid[10], X_LINE_HALF_TO_PIX(&lcd, 7), Y_ROW_TO_PIX(&lcd, main_lcd_state + 2), WHITE, BLACK);
     707                main_lcd_state++;
     708                break;
     709        case 3:
     710        case 4:
     711        case 5:
     712        case 6:
     713        case 7:
     714        case 8:
     715                main_lcd_state++;
     716                break;
     717        case 9:
     718                lcd_display(&lcd);
     719                main_lcd_state = 0;
     720                break;
     721        case 10:
     722                lcd_drawString(&lcd, "温度湿度計", X_LINE_TO_PIX(&lcd, 5), Y_ROW_TO_PIX(&lcd, 0), WHITE, BLACK);
     723                lcd_drawString(&lcd, temp1, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 0 + 2), WHITE, BLACK);
     724                lcd_drawString(&lcd, temp2, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 1 + 2), WHITE, BLACK);
     725                lcd_drawString(&lcd, humid, X_LINE_TO_PIX(&lcd, 0), Y_ROW_TO_PIX(&lcd, 2 + 2), WHITE, BLACK);
     726                lcd_display(&lcd);
     727                main_lcd_state = 0;
    776728                break;
    777729        default:
    778                 /* 7segに' 'を表示 */
    779                 sil_wrb_mem((uint8_t *)0x0008C02D, 0xFF);
    780                 main_led_state = main_led_state_idle;
    781                 main_led_timer = TMO_FEVR;
    782                 return;
    783         }
    784 
    785         main_led_timer = 500 * 1000;
     730                main_lcd_state = 10;
     731                break;
     732        }
     733
     734        /* 100ms後にLCD表示を更新 */
     735        main_lcd_timer = 100 * 1000;
    786736}
    787737
     
    789739 * ADC状態変化処理
    790740 */
    791 static void main_ad_change()
     741static void main_ad_change(int no, int adv)
    792742{
    793743        ER ret;
    794744        T_EDATA *esv;
    795745        uint8_t p_edt[2];
    796 
    797         p_edt[0] = ((uint16_t)main_ad_tempr) >> 8;
    798         p_edt[1] = ((uint16_t)main_ad_tempr) & 0xFF;
     746        uint8_t eobj;
     747
     748        switch (no) {
     749        case 1:
     750                eobj = TEMP_SENSOR_01_EOBJ;
     751                break;
     752        case 2:
     753                eobj = TEMP_SENSOR_02_EOBJ;
     754                break;
     755        case 3:
     756                eobj = HUMIDITY_SENSOR_EOBJ;
     757                break;
     758        default:
     759                return;
     760        }
     761
     762        p_edt[0] = ((uint16_t)adv) >> 8;
     763        p_edt[1] = ((uint16_t)adv) & 0xFF;
    799764
    800765        /* プロパティ設定電文作成 */
    801         ret = ecn_esv_setc(&esv, TEMP_SENSOR_01_EOBJ, 0xE0, 2, p_edt);
    802         if(ret != E_OK){
     766        ret = ecn_esv_setc(&esv, eobj, 0xE0, 2, p_edt);
     767        if (ret != E_OK) {
    803768                syslog(LOG_ERROR, "ecn_esv_setc");
    804769                return;
     
    806771
    807772        /* 電文送信 */
    808         ecn_snd_esv(esv);
     773        ret = ecn_snd_esv(esv);
     774        if (ret != E_OK) {
     775                syslog(LOG_ERROR, "ecn_snd_esv");
     776        }
    809777}
    810778
     
    822790
    823791        /* 押されて戻った時に処理する */
    824         if(push)
     792        if (push)
    825793                return;
    826794
    827795        /* 温度計測値 */
    828796        main_tmpr -= 10;        /* - 1.0℃ */
    829         if(main_tmpr < -100)    /* -10.0℃までとする */
     797        if (main_tmpr < -100)   /* -10.0℃までとする */
    830798                main_tmpr = -100;
    831799
     
    835803        /* プロパティ値書き込み・読み出し要求電文作成 */
    836804        ret = ecn_esv_set_get(&esv, TEMP_SENSOR_02_EOBJ, 0xE0, 2, p_edt);
    837         if(ret != E_OK){
     805        if (ret != E_OK) {
    838806                syslog(LOG_ERROR, "ecn_esv_setc");
    839807                return;
     
    844812        /* 書き込みプロパティ追加 */
    845813        ret = ecn_add_edt(esv, 0x80, 1, p_edt);
    846         if(ret) {
     814        if (ret) {
    847815                syslog(LOG_ERROR, "ecn_add_edt");
    848816                goto error;
     
    851819        /* プロパティ値書き込み・読み出し要求電文作成:折り返し指定 */
    852820        ret = ecn_trn_set_get(esv, &trn_pos);
    853         if(ret) {
     821        if (ret) {
    854822                syslog(LOG_ERROR, "ecn_trn_set_get");
    855823                goto error;
     
    858826        /* 読み出しプロパティ追加 */
    859827        ret = ecn_add_epc(esv, 0xE0);
    860         if(ret) {
     828        if (ret) {
    861829                syslog(LOG_ERROR, "ecn_add_epc");
    862830                goto error;
     
    865833        /* プロパティ値書き込み・読み出し要求電文作成:終了指定 */
    866834        ret = ecn_end_set_get(esv, trn_pos);
    867         if(ret) {
     835        if (ret) {
    868836                syslog(LOG_ERROR, "ecn_end_set_get");
    869837                goto error;
     
    872840        /* 電文送信 */
    873841        ret = ecn_snd_esv(esv);
    874         if(ret != E_OK){
     842        if (ret != E_OK) {
    875843                syslog(LOG_ERROR, "ecn_snd_esv");
    876844        }
     
    879847        /* 領域解放 */
    880848        ret = ecn_rel_esv(esv);
    881         if (ret != E_OK){
     849        if (ret != E_OK) {
    882850                syslog(LOG_ERROR, "ecn_rel_esv");
    883851        }
     
    895863
    896864        /* 押されて戻った時に処理する */
    897         if(push)
     865        if (push)
    898866                return;
    899867
    900868        /* 温度計測値 */
    901869        main_tmpr += 10;        /* + 1.0℃ */
    902         if(main_tmpr > 400)     /* +40.0℃までとする */
     870        if (main_tmpr > 400)    /* +40.0℃までとする */
    903871                main_tmpr = 400;
    904872
     
    908876        /* プロパティ値書き込み・読み出し要求電文作成 */
    909877        ret = ecn_esv_set_get(&esv, TEMP_SENSOR_02_EOBJ, 0xE0, 2, p_edt);
    910         if(ret != E_OK){
     878        if (ret != E_OK) {
    911879                syslog(LOG_ERROR, "ecn_esv_setc");
    912880                return;
     
    917885        /* 書き込みプロパティ追加 */
    918886        ret = ecn_add_edt(esv, 0x80, 1, p_edt);
    919         if(ret) {
     887        if (ret) {
    920888                syslog(LOG_ERROR, "ecn_add_edt");
    921889                goto error;
     
    924892        /* プロパティ値書き込み・読み出し要求電文作成:折り返し指定 */
    925893        ret = ecn_trn_set_get(esv, &trn_pos);
    926         if(ret) {
     894        if (ret) {
    927895                syslog(LOG_ERROR, "ecn_trn_set_get");
    928896                goto error;
     
    931899        /* 読み出しプロパティ追加 */
    932900        ret = ecn_add_epc(esv, 0xE0);
    933         if(ret) {
     901        if (ret) {
    934902                syslog(LOG_ERROR, "ecn_add_epc");
    935903                goto error;
     
    938906        /* プロパティ値書き込み・読み出し要求電文作成:終了指定 */
    939907        ret = ecn_end_set_get(esv, trn_pos);
    940         if(ret) {
     908        if (ret) {
    941909                syslog(LOG_ERROR, "ecn_end_set_get");
    942910                goto error;
     
    945913        /* 電文送信 */
    946914        ret = ecn_snd_esv(esv);
    947         if(ret != E_OK){
     915        if (ret != E_OK) {
    948916                syslog(LOG_ERROR, "ecn_snd_esv");
    949917        }
     
    952920        /* 領域解放 */
    953921        ret = ecn_rel_esv(esv);
    954         if (ret != E_OK){
     922        if (ret != E_OK) {
    955923                syslog(LOG_ERROR, "ecn_rel_esv");
    956924        }
     
    962930static bool_t check_response(uint8_t pdc, uint8_t *p_edt)
    963931{
    964         if((pdc != 2)
     932        if ((pdc != 2)
    965933                || (p_edt[0] != ((uint16_t)main_tmpr) >> 8)
    966                 || (p_edt[1] != ((uint16_t)main_tmpr) & 0xFF))
    967         {
     934                || (p_edt[1] != ((uint16_t)main_tmpr) & 0xFF)) {
    968935                syslog(LOG_WARNING, "epc_set_get response NG");
    969936                return false;
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/src/main.c

    r359 r364  
    7979
    8080ID ws_api_mailboxid = MAIN_DATAQUEUE;
     81#ifndef NOUSE_MPF_NET_BUF
    8182ID ws_mempoolid = MPF_NET_BUF_256;
     83#endif
    8284
    8385#ifdef IF_ETHER_BTUSB
     
    111113static void main_timeout();
    112114
     115extern int ntshell_exit;
     116
    113117int uart_read(char *buf, int cnt, void *extobj)
    114118{
    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;
    116153}
    117154
     
    119156{
    120157        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);
    136158}
    137159
     
    150172        main_initialize();
    151173
    152         ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, NULL);
     174        ntshell_init(&ntshell, uart_read, uart_write, cmd_execute, &main_obj);
    153175        ntshell_set_prompt(&ntshell, "NTShell>");
    154176        ntshell_execute(&ntshell);
     
    168190        ER ret;
    169191
    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);
    171198
    172199        main_obj.timer = TMO_FEVR;
  • asp3_tinet_ecnl_rx/trunk/app5_temp_sensor/src/main.cfg

    r342 r364  
    5454INCLUDE("tinet/tinet_asp.cfg");
    5555INCLUDE("tinet_main.cfg");
    56 INCLUDE("netinet/ip_igmp.cfg");
    5756
    5857/* DHCP クライアント */
     
    7776INCLUDE("ffarch.cfg");
    7877
     78/* mbed */
     79INCLUDE("mbed_api.cfg");
     80
    7981#ifdef IF_ETHER_BTUSB
    8082INCLUDE("usb_hbth.cfg");
Note: See TracChangeset for help on using the changeset viewer.