Fixed AVR ports IDE project builds (#111)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
###############################################################################
|
||||
|
||||
## General Flags
|
||||
MCU = atmega168
|
||||
AVRDUDE_MCU = m168
|
||||
MCU = atmega328
|
||||
AVRDUDE_MCU = m328
|
||||
TARGET = bacnet
|
||||
## Tools
|
||||
CC = avr-gcc
|
||||
@@ -50,6 +50,7 @@ CSRC = main.c \
|
||||
# common demo files needed
|
||||
BASICSRC = $(BACNET_BASIC)/tsm/tsm.c \
|
||||
$(BACNET_BASIC)/npdu/h_npdu.c \
|
||||
$(BACNET_BASIC)/sys/bigend.c \
|
||||
$(BACNET_BASIC)/service/s_iam.c \
|
||||
$(BACNET_BASIC)/service/h_noserv.c
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "bacnet", "bacnet.cproj", "{1CEFD571-4B50-48FD-B75E-0E968EBBD698}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1CEFD571-4B50-48FD-B75E-0E968EBBD698}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{1CEFD571-4B50-48FD-B75E-0E968EBBD698}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{1CEFD571-4B50-48FD-B75E-0E968EBBD698}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{1CEFD571-4B50-48FD-B75E-0E968EBBD698}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>7.0</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
|
||||
<ProjectGuid>{1cefd571-4b50-48fd-b75e-0e968ebbd698}</ProjectGuid>
|
||||
<avrdevice>ATmega328</avrdevice>
|
||||
<avrdeviceseries>mega</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>C</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>BACnet Atmel ATmega328</AssemblyName>
|
||||
<Name>BACnet Atmel ATmega328</Name>
|
||||
<RootNamespace>BACnet Atmel ATmega328</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<OverrideVtorValue>exception_table</OverrideVtorValue>
|
||||
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<UncachedRange />
|
||||
<BootSegment>2</BootSegment>
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data>
|
||||
<options>
|
||||
<option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />
|
||||
</options>
|
||||
<configurations />
|
||||
<files>
|
||||
<file path="src/config/conf_board.h" framework="" version="" source="common/applications/user_application/user_board/config/conf_board.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/boards/user_board/init.c" framework="" version="" source="common/boards/user_board/init.c" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/boards/user_board/user_board.h" framework="" version="" source="common/boards/user_board/user_board.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/interrupt/interrupt_avr8.h" framework="" version="" source="common/utils/interrupt/interrupt_avr8.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/make/Makefile.avr.in" framework="" version="" source="common/utils/make/Makefile.avr.in" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/assembler.h" framework="" version="" source="mega/utils/assembler.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/assembler/gas.h" framework="" version="" source="mega/utils/assembler/gas.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/compiler.h" framework="" version="" source="mega/utils/compiler.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/mrepeat.h" framework="" version="" source="mega/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/preprocessor.h" framework="" version="" source="mega/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/stringz.h" framework="" version="" source="mega/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/tpaste.h" framework="" version="" source="mega/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/progmem.h" framework="" version="" source="mega/utils/progmem.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/status_codes.h" framework="" version="" source="mega/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />
|
||||
</files>
|
||||
<documentation help="http://asf.atmel.com/docs/3.39.0/common.applications.user_application.user_board.mega/html/index.html" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.39.0" />
|
||||
</dependencies>
|
||||
<project id="common.applications.user_application.user_board.mega" value="Add" config="" content-id="Atmel.ASF" />
|
||||
<board id="board.user_board.mega" value="Add" config="" content-id="Atmel.ASF" />
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
<preserveEEPROM>true</preserveEEPROM>
|
||||
<ResetRule>0</ResetRule>
|
||||
<EraseKey />
|
||||
<avrtool />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGcc>
|
||||
<avrgcc.common.Device>-mmcu=atmega328 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\gcc\dev\atmega328"</avrgcc.common.Device>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.symbols.DefSymbols><ListValues>
|
||||
<Value>BACDL_MSTP</Value>
|
||||
<Value>MAX_APDU=50</Value>
|
||||
<Value>MAX_TSM_TRANSACTIONS=0</Value>
|
||||
<Value>BACAPP_REAL</Value>
|
||||
<Value>BACAPP_UNSIGNED</Value>
|
||||
<Value>BACAPP_ENUMERATED</Value>
|
||||
<Value>BACAPP_CHARACTER_STRING</Value>
|
||||
<Value>BACAPP_OBJECT_ID</Value>
|
||||
<Value>WRITE_PROPERTY</Value>
|
||||
<Value>BOARD=USER_BOARD</Value>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues></avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths><ListValues>
|
||||
<Value>..</Value>
|
||||
<Value>../../../src</Value>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value>
|
||||
<Value>../../../ports/atmega168</Value>
|
||||
</ListValues></avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.OtherFlags>-fdata-sections</avrgcc.compiler.optimization.OtherFlags>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -fno-strict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -mrelax -Wno-switch</avrgcc.compiler.miscellaneous.OtherFlags>
|
||||
<avrgcc.linker.libraries.Libraries><ListValues><Value>libm</Value></ListValues></avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.linker.miscellaneous.LinkerFlags>-Wl,--relax</avrgcc.linker.miscellaneous.LinkerFlags>
|
||||
<avrgcc.assembler.general.AssemblerFlags>-mrelax -DBOARD=USER_BOARD</avrgcc.assembler.general.AssemblerFlags>
|
||||
<avrgcc.assembler.general.IncludePaths><ListValues><Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value><Value>../src/ASF/common/boards/user_board</Value><Value>../src/ASF/common/boards</Value><Value>../src/ASF/mega/utils/preprocessor</Value><Value>../src/ASF/mega/utils</Value><Value>../src/ASF/common/utils</Value><Value>../src</Value><Value>../src/config</Value></ListValues></avrgcc.assembler.general.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
<UsesExternalMakeFile>False</UsesExternalMakeFile>
|
||||
<BuildTarget>all</BuildTarget>
|
||||
<CleanTarget>clean</CleanTarget>
|
||||
<ExternalMakeFilePath>Makefile</ExternalMakeFilePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGcc>
|
||||
<avrgcc.common.Device>-mmcu=atmega328 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\gcc\dev\atmega328"</avrgcc.common.Device>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.symbols.DefSymbols><ListValues>
|
||||
<Value>BACDL_MSTP</Value>
|
||||
<Value>MAX_APDU=50</Value>
|
||||
<Value>MAX_TSM_TRANSACTIONS=0</Value>
|
||||
<Value>BACAPP_REAL</Value>
|
||||
<Value>BACAPP_UNSIGNED</Value>
|
||||
<Value>BACAPP_ENUMERATED</Value>
|
||||
<Value>BACAPP_CHARACTER_STRING</Value>
|
||||
<Value>BACAPP_OBJECT_ID</Value>
|
||||
<Value>WRITE_PROPERTY</Value>
|
||||
<Value>BOARD=USER_BOARD</Value>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues></avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths><ListValues><Value>..</Value><Value>../../../src</Value><Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value></ListValues></avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.OtherFlags>-fdata-sections</avrgcc.compiler.optimization.OtherFlags>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -fno-strict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -mrelax -Wno-switch</avrgcc.compiler.miscellaneous.OtherFlags>
|
||||
<avrgcc.linker.libraries.Libraries><ListValues><Value>libm</Value></ListValues></avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.linker.miscellaneous.LinkerFlags>-Wl,--relax</avrgcc.linker.miscellaneous.LinkerFlags>
|
||||
<avrgcc.assembler.general.AssemblerFlags>-mrelax -DBOARD=USER_BOARD</avrgcc.assembler.general.AssemblerFlags>
|
||||
<avrgcc.assembler.general.IncludePaths><ListValues><Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value><Value>../src/ASF/common/boards/user_board</Value><Value>../src/ASF/common/boards</Value><Value>../src/ASF/mega/utils/preprocessor</Value><Value>../src/ASF/mega/utils</Value><Value>../src/ASF/common/utils</Value><Value>../src</Value><Value>../src/config</Value></ListValues></avrgcc.assembler.general.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Maximum (-g3)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
<UsesExternalMakeFile>False</UsesExternalMakeFile>
|
||||
<BuildTarget>all</BuildTarget>
|
||||
<CleanTarget>clean</CleanTarget>
|
||||
<ExternalMakeFilePath>Makefile</ExternalMakeFilePath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\src\bacnet\basic\sys\bigend.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Handlers\bigend.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\basic\npdu\h_npdu.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Handlers\h_npdu.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\basic\service\h_noserv.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Handlers\h_noserv.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\basic\service\s_iam.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Handlers\s_iam.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\basic\tsm\tsm.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Handlers\tsm.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\datalink\crc.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Handlers\crc.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\apdu.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>apdu.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\av.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>av.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\bv.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>bv.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\device.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>device.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\dlmstp.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>dlmstp.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\h_rp.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>h_rp.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\h_whois.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>h_whois.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\h_wp.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>h_wp.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\main.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>main.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\rs485.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>rs485.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\stack.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>stack.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\ports\atmega168\timer.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>timer.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\abort.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\abort.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\bacapp.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\bacapp.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\bacdcode.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\bacdcode.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\bacerror.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\bacerror.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\bacint.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\bacint.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\bacreal.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\bacreal.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\bacstr.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\bacstr.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\iam.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\iam.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\npdu.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\npdu.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\reject.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\reject.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\rp.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\rp.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\whois.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\whois.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\wp.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\wp.c</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="BACnet Handlers" />
|
||||
<Folder Include="BACnet Core" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
+3264
-2202
File diff suppressed because it is too large
Load Diff
@@ -216,9 +216,9 @@ bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
|
||||
However, if Out of Service is TRUE, then don't set the
|
||||
physical output. */
|
||||
if (Present_Value[0] == BINARY_ACTIVE) {
|
||||
LED_GREEN_ON();
|
||||
/* GPIO - turn ON */
|
||||
} else {
|
||||
LED_GREEN_OFF();
|
||||
/* GPIO - turn OFF */
|
||||
}
|
||||
status = true;
|
||||
} else {
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "bacnet/config.h"
|
||||
#include "bacnet/basic/tsm/tsm.h"
|
||||
#include "bacnet/datalink/datalink.h"
|
||||
#include "bacnet/basic/services.h"
|
||||
#include "bacnet/bacdef.h"
|
||||
#include "bacnet/bacdcode.h"
|
||||
#include "bacnet/bacerror.h"
|
||||
@@ -44,7 +45,7 @@
|
||||
|
||||
/* Encodes the property APDU and returns the length,
|
||||
or sets the error, and returns -1 */
|
||||
int Encode_Property_APDU(uint8_t *apdu, BACNET_READ_PROPERTY_DATA *rpdata)
|
||||
static int Encode_Property_APDU(uint8_t *apdu, BACNET_READ_PROPERTY_DATA *rpdata)
|
||||
{
|
||||
int apdu_len = -1;
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "bacnet/config.h"
|
||||
#include "bacnet/datalink/datalink.h"
|
||||
#include "bacnet/basic/tsm/tsm.h"
|
||||
#include "bacnet/basic/services.h"
|
||||
#include "bacnet/bacdef.h"
|
||||
#include "bacnet/bacdcode.h"
|
||||
#include "bacnet/bacerror.h"
|
||||
|
||||
@@ -31,24 +31,13 @@
|
||||
#endif
|
||||
|
||||
#if defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ASM__)
|
||||
#include <iom168.h>
|
||||
#include <ioavr.h>
|
||||
#else
|
||||
#if !defined(__AVR_ATmega168__)
|
||||
#error Firmware is configured for ATmega168 only (-mmcu=atmega168)
|
||||
#if !defined(__AVR_ATmega328__)
|
||||
#error Firmware is configured for ATmega328 only (-mmcu=atmega328)
|
||||
#endif
|
||||
#endif
|
||||
#include "iar2gcc.h"
|
||||
#include "bacnet/bits.h"
|
||||
|
||||
#define LED_NPDU_INIT() BIT_SET(DDRD, DDD5)
|
||||
#define LED_NPDU_ON() BIT_CLEAR(PORTD, PD5)
|
||||
#define LED_NPDU_OFF() BIT_SET(PORTD, PD5)
|
||||
/* #define LED_NPDU PORTD_Bit5 */
|
||||
/* #define LED_NPDU_OFF() {LED_NPDU = false;} */
|
||||
/* #define LED_NPDU_ON() {LED_NPDU = true;} */
|
||||
|
||||
#define LED_GREEN_INIT() BIT_SET(DDRD, DDD4)
|
||||
#define LED_GREEN_ON() BIT_CLEAR(PORTD, PD4)
|
||||
#define LED_GREEN_OFF() BIT_SET(PORTD, PD4)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -55,6 +55,27 @@ static inline void _delay_us(
|
||||
__delay_cycles(F_CPU / 1000000UL);
|
||||
} while (microseconds--);
|
||||
}
|
||||
|
||||
#if (__VER__ > 700)
|
||||
#define DDA0 DDRA0
|
||||
#define DDA1 DDRA1
|
||||
#define DDA2 DDRA2
|
||||
#define DDA3 DDRA3
|
||||
#define DDA4 DDRA4
|
||||
#define DDA5 DDRA5
|
||||
#define DDA6 DDRA6
|
||||
#define DDA7 DDRA7
|
||||
|
||||
#define DDD0 DDRD0
|
||||
#define DDD1 DDRD1
|
||||
#define DDD2 DDRD2
|
||||
#define DDD3 DDRD3
|
||||
#define DDD4 DDRD4
|
||||
#define DDD5 DDRD5
|
||||
#define DDD6 DDRD6
|
||||
#define DDD7 DDRD7
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Input/Output Registers */
|
||||
|
||||
+1
-11
@@ -30,6 +30,7 @@
|
||||
#include "rs485.h"
|
||||
#include "bacnet/datalink/datalink.h"
|
||||
#include "bacnet/npdu.h"
|
||||
#include "bacnet/dcc.h"
|
||||
#include "bacnet/basic/services.h"
|
||||
#include "bacnet/basic/tsm/tsm.h"
|
||||
#include "bacnet/iam.h"
|
||||
@@ -88,14 +89,6 @@ static void init(void)
|
||||
/* Configure Specialized Hardware */
|
||||
RS485_Initialize();
|
||||
|
||||
/* configure one LED for NPDU indication */
|
||||
/* default: off, output */
|
||||
LED_NPDU_OFF();
|
||||
LED_NPDU_INIT();
|
||||
/* Configure Software LED */
|
||||
LED_GREEN_INIT();
|
||||
LED_GREEN_OFF();
|
||||
|
||||
/* Configure Timer0 for millisecond timer */
|
||||
Timer_Initialize();
|
||||
|
||||
@@ -108,7 +101,6 @@ static void task_milliseconds(void)
|
||||
while (Timer_Milliseconds) {
|
||||
Timer_Milliseconds--;
|
||||
/* add other millisecond timer tasks here */
|
||||
RS485_LED_Timers();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,9 +158,7 @@ int main(void)
|
||||
/* BACnet handling */
|
||||
pdu_len = datalink_receive(&src, &PDUBuffer[0], MAX_MPDU, 0);
|
||||
if (pdu_len) {
|
||||
LED_NPDU_ON();
|
||||
npdu_handler(&src, &PDUBuffer[0], pdu_len);
|
||||
LED_NPDU_OFF();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-69
@@ -31,16 +31,12 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
/*#include "bacnet/datalink/mstp.h" */
|
||||
|
||||
/* This file has been customized for use with ATMEGA168 */
|
||||
#include "hardware.h"
|
||||
#include "rs485.h"
|
||||
#include "timer.h"
|
||||
|
||||
/* Timers for turning off the TX,RX LED indications */
|
||||
static uint8_t LED1_Off_Timer;
|
||||
static uint8_t LED3_Off_Timer;
|
||||
|
||||
/* baud rate */
|
||||
static uint32_t RS485_Baud = 9600;
|
||||
|
||||
@@ -70,11 +66,6 @@ void RS485_Initialize(void)
|
||||
/* Set port bit as Output - initially receiving */
|
||||
BIT_CLEAR(PORTD, PD2);
|
||||
BIT_SET(DDRD, DDD2);
|
||||
/* Configure Transmit and Receive LEDs - initially off */
|
||||
BIT_SET(PORTD, PD6);
|
||||
BIT_SET(PORTD, PD7);
|
||||
BIT_SET(DDRD, DDD6);
|
||||
BIT_SET(DDRD, DDD7);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -165,62 +156,14 @@ void RS485_Turnaround_Delay(void)
|
||||
BIT_SET(UCSR0A, TXC0);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* DESCRIPTION: Timers for delaying the LED indicators going off
|
||||
* RETURN: none
|
||||
* ALGORITHM: none
|
||||
* NOTES: expected to be called once a millisecond
|
||||
*****************************************************************************/
|
||||
void RS485_LED_Timers(void)
|
||||
{
|
||||
if (LED1_Off_Timer) {
|
||||
LED1_Off_Timer--;
|
||||
if (LED1_Off_Timer == 0) {
|
||||
BIT_SET(PORTD, PD6);
|
||||
}
|
||||
}
|
||||
if (LED3_Off_Timer) {
|
||||
LED3_Off_Timer--;
|
||||
if (LED3_Off_Timer == 0) {
|
||||
BIT_SET(PORTD, PD7);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* DESCRIPTION: Turn on the LED, and set the off timer to turn it off
|
||||
* RETURN: none
|
||||
* ALGORITHM: none
|
||||
* NOTES: none
|
||||
*****************************************************************************/
|
||||
static void RS485_LED1_On(void)
|
||||
{
|
||||
BIT_CLEAR(PORTD, PD6);
|
||||
LED1_Off_Timer = 20;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* DESCRIPTION: Turn on the LED, and set the off timer to turn it off
|
||||
* RETURN: none
|
||||
* ALGORITHM: none
|
||||
* NOTES: none
|
||||
*****************************************************************************/
|
||||
static void RS485_LED3_On(void)
|
||||
{
|
||||
BIT_CLEAR(PORTD, PD7);
|
||||
LED3_Off_Timer = 20;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* DESCRIPTION: Send some data and wait until it is sent
|
||||
* RETURN: none
|
||||
* ALGORITHM: none
|
||||
* NOTES: none
|
||||
*****************************************************************************/
|
||||
void RS485_Send_Data(uint8_t *buffer, /* data to send */
|
||||
/**
|
||||
* @brief Send some data and wait until it is sent
|
||||
* @param buffer - data to send
|
||||
* @param nbytes - number of bytes of data
|
||||
*/
|
||||
void RS485_Send_Data(uint8_t *buffer,
|
||||
uint16_t nbytes)
|
||||
{ /* number of bytes of data */
|
||||
RS485_LED3_On();
|
||||
{
|
||||
while (nbytes) {
|
||||
while (!BIT_CHECK(UCSR0A, UDRE0)) {
|
||||
/* do nothing - wait until Tx buffer is empty */
|
||||
@@ -268,9 +211,6 @@ bool RS485_ReceiveError(void)
|
||||
} while (BIT_CHECK(UCSR0A, RXC0));
|
||||
ReceiveError = true;
|
||||
}
|
||||
if (ReceiveError) {
|
||||
RS485_LED1_On();
|
||||
}
|
||||
(void)dummy_data;
|
||||
|
||||
return ReceiveError;
|
||||
@@ -290,7 +230,6 @@ bool RS485_DataAvailable(uint8_t *data)
|
||||
if (BIT_CHECK(UCSR0A, RXC0)) {
|
||||
*data = UDR0;
|
||||
DataAvailable = true;
|
||||
RS485_LED1_On();
|
||||
}
|
||||
|
||||
return DataAvailable;
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*********************************************************************/
|
||||
#include <stdint.h>
|
||||
#include "hardware.h"
|
||||
#include "stack.h"
|
||||
|
||||
/* stack checking */
|
||||
#if defined(__GNUC__)
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*********************************************************************/
|
||||
#include <stdint.h>
|
||||
#include "hardware.h"
|
||||
#include "timer.h"
|
||||
|
||||
/* This module is a 1 millisecond timer */
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@ BASICSRC = $(BACNET_BASIC)/service/h_dcc.c \
|
||||
$(BACNET_BASIC)/service/h_noserv.c \
|
||||
$(BACNET_BASIC)/service/s_iam.c \
|
||||
$(BACNET_BASIC)/service/s_ihave.c \
|
||||
$(BACNET_BASIC)/sys/bigend.c \
|
||||
$(BACNET_BASIC)/sys/fifo.c \
|
||||
$(BACNET_BASIC)/sys/mstimer.c \
|
||||
$(BACNET_BASIC)/sys/ringbuf.c \
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
|
||||
<ProjectGuid>{1cefd571-4b50-48fd-b75e-0e968ebbd698}</ProjectGuid>
|
||||
<avrdevice>ATmega644P</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<avrdeviceseries>mega</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>C</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
@@ -27,14 +27,36 @@
|
||||
<BootSegment>2</BootSegment>
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data>
|
||||
<options />
|
||||
<options>
|
||||
<option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />
|
||||
</options>
|
||||
<configurations />
|
||||
<files />
|
||||
<documentation help="" />
|
||||
<files>
|
||||
<file path="src/config/conf_board.h" framework="" version="" source="common/applications/user_application/user_board/config/conf_board.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/boards/user_board/init.c" framework="" version="" source="common/boards/user_board/init.c" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/boards/user_board/user_board.h" framework="" version="" source="common/boards/user_board/user_board.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/interrupt/interrupt_avr8.h" framework="" version="" source="common/utils/interrupt/interrupt_avr8.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/make/Makefile.avr.in" framework="" version="" source="common/utils/make/Makefile.avr.in" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/assembler.h" framework="" version="" source="mega/utils/assembler.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/assembler/gas.h" framework="" version="" source="mega/utils/assembler/gas.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/compiler.h" framework="" version="" source="mega/utils/compiler.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/mrepeat.h" framework="" version="" source="mega/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/preprocessor.h" framework="" version="" source="mega/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/stringz.h" framework="" version="" source="mega/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/preprocessor/tpaste.h" framework="" version="" source="mega/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/progmem.h" framework="" version="" source="mega/utils/progmem.h" changed="False" content-id="Atmel.ASF" />
|
||||
<file path="src/ASF/mega/utils/status_codes.h" framework="" version="" source="mega/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />
|
||||
</files>
|
||||
<documentation help="http://asf.atmel.com/docs/3.39.0/common.applications.user_application.user_board.mega/html/index.html" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.39.0" />
|
||||
</dependencies>
|
||||
<project id="common.applications.user_application.user_board.mega" value="Add" config="" content-id="Atmel.ASF" />
|
||||
<board id="board.user_board.mega" value="Add" config="" content-id="Atmel.ASF" />
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
<preserveEEPROM>true</preserveEEPROM>
|
||||
@@ -50,8 +72,6 @@
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>BACDL_MSTP</Value>
|
||||
@@ -61,6 +81,7 @@
|
||||
<Value>MAX_CHARACTER_STRING_BYTES=64</Value>
|
||||
<Value>MAX_OCTET_STRING_BYTES=64</Value>
|
||||
<Value>NDEBUG</Value>
|
||||
<Value>BOARD=USER_BOARD</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths>
|
||||
@@ -69,22 +90,40 @@
|
||||
<Value>../../../src</Value>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value>
|
||||
<Value>../../../ports/bdk-atxx4-mstp</Value>
|
||||
<Value>../src/ASF/common/boards/user_board</Value>
|
||||
<Value>../src/ASF/common/boards</Value>
|
||||
<Value>../src/ASF/mega/utils/preprocessor</Value>
|
||||
<Value>../src/ASF/mega/utils</Value>
|
||||
<Value>../src/ASF/common/utils</Value>
|
||||
<Value>../src</Value>
|
||||
<Value>../src/config</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.OtherFlags>-fdata-sections</avrgcc.compiler.optimization.OtherFlags>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -fno-strict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -mrelax</avrgcc.compiler.miscellaneous.OtherFlags>
|
||||
<avrgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.linker.miscellaneous.LinkerFlags>-Wl,--relax</avrgcc.linker.miscellaneous.LinkerFlags>
|
||||
<avrgcc.assembler.general.AssemblerFlags>-mrelax -DBOARD=USER_BOARD</avrgcc.assembler.general.AssemblerFlags>
|
||||
<avrgcc.assembler.general.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value>
|
||||
<Value>../src/ASF/common/boards/user_board</Value>
|
||||
<Value>../src/ASF/common/boards</Value>
|
||||
<Value>../src/ASF/mega/utils/preprocessor</Value>
|
||||
<Value>../src/ASF/mega/utils</Value>
|
||||
<Value>../src/ASF/common/utils</Value>
|
||||
<Value>../src</Value>
|
||||
<Value>../src/config</Value>
|
||||
</ListValues>
|
||||
</avrgcc.assembler.general.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
<UsesExternalMakeFile>False</UsesExternalMakeFile>
|
||||
@@ -101,8 +140,6 @@
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>BACDL_MSTP</Value>
|
||||
@@ -112,6 +149,7 @@
|
||||
<Value>MAX_CHARACTER_STRING_BYTES=64</Value>
|
||||
<Value>MAX_OCTET_STRING_BYTES=64</Value>
|
||||
<Value>DEBUG</Value>
|
||||
<Value>BOARD=USER_BOARD</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths>
|
||||
@@ -121,23 +159,41 @@
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value>
|
||||
<Value>../../../demo/object</Value>
|
||||
<Value>../../../include</Value>
|
||||
<Value>../src/ASF/common/boards/user_board</Value>
|
||||
<Value>../src/ASF/common/boards</Value>
|
||||
<Value>../src/ASF/mega/utils/preprocessor</Value>
|
||||
<Value>../src/ASF/mega/utils</Value>
|
||||
<Value>../src/ASF/common/utils</Value>
|
||||
<Value>../src</Value>
|
||||
<Value>../src/config</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.OtherFlags>-fdata-sections</avrgcc.compiler.optimization.OtherFlags>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Maximum (-g3)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -fno-strict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -mrelax</avrgcc.compiler.miscellaneous.OtherFlags>
|
||||
<avrgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.linker.miscellaneous.LinkerFlags>-Wl,--relax</avrgcc.linker.miscellaneous.LinkerFlags>
|
||||
<avrgcc.assembler.general.AssemblerFlags>-mrelax -DBOARD=USER_BOARD</avrgcc.assembler.general.AssemblerFlags>
|
||||
<avrgcc.assembler.general.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.3.300\include</Value>
|
||||
<Value>../src/ASF/common/boards/user_board</Value>
|
||||
<Value>../src/ASF/common/boards</Value>
|
||||
<Value>../src/ASF/mega/utils/preprocessor</Value>
|
||||
<Value>../src/ASF/mega/utils</Value>
|
||||
<Value>../src/ASF/common/utils</Value>
|
||||
<Value>../src</Value>
|
||||
<Value>../src/config</Value>
|
||||
</ListValues>
|
||||
</avrgcc.assembler.general.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
@@ -353,7 +409,7 @@
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\proplist.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\npdu.c</Link>
|
||||
<Link>BACnet Core\proplist.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\src\bacnet\rd.c">
|
||||
<SubType>compile</SubType>
|
||||
@@ -391,10 +447,77 @@
|
||||
<SubType>compile</SubType>
|
||||
<Link>BACnet Core\wp.c</Link>
|
||||
</Compile>
|
||||
<None Include="src\ASF\common\boards\board.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\asf.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<Compile Include="src\ASF\common\boards\user_board\init.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<None Include="src\ASF\common\utils\make\Makefile.avr.in">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\preprocessor\tpaste.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\progmem.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\config\conf_board.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\preprocessor\preprocessor.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\preprocessor\stringz.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\common\utils\interrupt.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\compiler.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\assembler.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\common\utils\parts.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\common\utils\interrupt\interrupt_avr8.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\preprocessor\mrepeat.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\assembler\gas.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\common\boards\user_board\user_board.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="src\ASF\mega\utils\status_codes.h">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="BACnet Handlers" />
|
||||
<Folder Include="BACnet Core" />
|
||||
<Folder Include="src\" />
|
||||
<Folder Include="src\ASF\" />
|
||||
<Folder Include="src\ASF\common\" />
|
||||
<Folder Include="src\ASF\common\boards\" />
|
||||
<Folder Include="src\ASF\common\boards\user_board\" />
|
||||
<Folder Include="src\ASF\common\utils\" />
|
||||
<Folder Include="src\ASF\common\utils\interrupt\" />
|
||||
<Folder Include="src\ASF\common\utils\make\" />
|
||||
<Folder Include="src\ASF\mega\" />
|
||||
<Folder Include="src\ASF\mega\utils\" />
|
||||
<Folder Include="src\ASF\mega\utils\assembler\" />
|
||||
<Folder Include="src\ASF\mega\utils\preprocessor\" />
|
||||
<Folder Include="src\config\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
+4409
-2279
File diff suppressed because it is too large
Load Diff
@@ -49,6 +49,44 @@ static inline void _delay_us(
|
||||
__delay_cycles(F_CPU / 1000000UL);
|
||||
} while (microseconds--);
|
||||
}
|
||||
|
||||
#if (__VER__ > 700)
|
||||
#define DDA0 DDRA0
|
||||
#define DDA1 DDRA1
|
||||
#define DDA2 DDRA2
|
||||
#define DDA3 DDRA3
|
||||
#define DDA4 DDRA4
|
||||
#define DDA5 DDRA5
|
||||
#define DDA6 DDRA6
|
||||
#define DDA7 DDRA7
|
||||
|
||||
#define DDB0 DDRB0
|
||||
#define DDB1 DDRB1
|
||||
#define DDB2 DDRB2
|
||||
#define DDB3 DDRB3
|
||||
#define DDB4 DDRB4
|
||||
#define DDB5 DDRB5
|
||||
#define DDB6 DDRB6
|
||||
#define DDB7 DDRB7
|
||||
|
||||
#define DDC0 DDRC0
|
||||
#define DDC1 DDRC1
|
||||
#define DDC2 DDRC2
|
||||
#define DDC3 DDRC3
|
||||
#define DDC4 DDRC4
|
||||
#define DDC5 DDRC5
|
||||
#define DDC6 DDRC6
|
||||
#define DDC7 DDRC7
|
||||
|
||||
#define DDD0 DDRD0
|
||||
#define DDD1 DDRD1
|
||||
#define DDD2 DDRD2
|
||||
#define DDD3 DDRD3
|
||||
#define DDD4 DDRD4
|
||||
#define DDD5 DDRD5
|
||||
#define DDD6 DDRD6
|
||||
#define DDD7 DDRD7
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__)
|
||||
@@ -311,6 +349,9 @@ unsigned char __uint8_eeprom_load(
|
||||
/* power macros in GCC-AVR */
|
||||
#if (defined(__ICCAVR__) && (defined(__ATmega644P__))) || \
|
||||
(defined(__CROSSWORKS_AVR) && (__TARGET_PROCESSOR == ATmega644P))
|
||||
#if (defined(__ICCAVR__) && (__VER__ > 700))
|
||||
#define PRR PRR0
|
||||
#endif
|
||||
#define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
|
||||
#define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
|
||||
#define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
|
||||
|
||||
+3
-1
@@ -1034,7 +1034,6 @@ int bacapp_snprintf_value(
|
||||
{
|
||||
size_t len = 0, i = 0;
|
||||
char *char_str;
|
||||
uint8_t *octet_str;
|
||||
BACNET_APPLICATION_DATA_VALUE *value;
|
||||
BACNET_PROPERTY_ID property = PROP_ALL;
|
||||
BACNET_OBJECT_TYPE object_type = MAX_BACNET_OBJECT_TYPE;
|
||||
@@ -1042,6 +1041,9 @@ int bacapp_snprintf_value(
|
||||
char *p_str = str;
|
||||
size_t rem_str_len = str_len;
|
||||
char temp_str[32];
|
||||
#if defined(BACAPP_OCTET_STRING)
|
||||
uint8_t *octet_str;
|
||||
#endif
|
||||
#ifdef __STDC_ISO_10646__
|
||||
/* Wide character (decoded from multi-byte character). */
|
||||
wchar_t wc;
|
||||
|
||||
+56
-56
@@ -110,11 +110,11 @@ int decode_unsigned32(uint8_t *apdu, uint32_t *value)
|
||||
*/
|
||||
int encode_unsigned40(uint8_t *buffer, uint64_t value)
|
||||
{
|
||||
buffer[0] = (uint8_t)((value & 0x000000ff00000000) >> 32);
|
||||
buffer[1] = (uint8_t)((value & 0x00000000ff000000) >> 24);
|
||||
buffer[2] = (uint8_t)((value & 0x0000000000ff0000) >> 16);
|
||||
buffer[3] = (uint8_t)((value & 0x000000000000ff00) >> 8);
|
||||
buffer[4] = (uint8_t)(value & 0x00000000000000ff);
|
||||
buffer[0] = (uint8_t)((value & 0x000000ff00000000ULL) >> 32);
|
||||
buffer[1] = (uint8_t)((value & 0x00000000ff000000ULL) >> 24);
|
||||
buffer[2] = (uint8_t)((value & 0x0000000000ff0000ULL) >> 16);
|
||||
buffer[3] = (uint8_t)((value & 0x000000000000ff00ULL) >> 8);
|
||||
buffer[4] = (uint8_t)(value & 0x00000000000000ffULL);
|
||||
|
||||
return 5;
|
||||
}
|
||||
@@ -129,14 +129,14 @@ int decode_unsigned40(uint8_t *buffer, uint64_t *value)
|
||||
{
|
||||
if (value) {
|
||||
*value =
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 32) & 0x000000ff00000000));
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 32) & 0x000000ff00000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 24) & 0x00000000ff000000));
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 24) & 0x00000000ff000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 16) & 0x0000000000ff0000));
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 16) & 0x0000000000ff0000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 8) & 0x000000000000ff00));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[4]) & 0x00000000000000ff));
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 8) & 0x000000000000ff00ULL));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[4]) & 0x00000000000000ffULL));
|
||||
}
|
||||
|
||||
return 5;
|
||||
@@ -150,12 +150,12 @@ int decode_unsigned40(uint8_t *buffer, uint64_t *value)
|
||||
*/
|
||||
int encode_unsigned48(uint8_t *buffer, uint64_t value)
|
||||
{
|
||||
buffer[0] = (uint8_t)((value & 0x0000ff0000000000) >> 40);
|
||||
buffer[1] = (uint8_t)((value & 0x000000ff00000000) >> 32);
|
||||
buffer[2] = (uint8_t)((value & 0x00000000ff000000) >> 24);
|
||||
buffer[3] = (uint8_t)((value & 0x0000000000ff0000) >> 16);
|
||||
buffer[4] = (uint8_t)((value & 0x000000000000ff00) >> 8);
|
||||
buffer[5] = (uint8_t)(value & 0x00000000000000ff);
|
||||
buffer[0] = (uint8_t)((value & 0x0000ff0000000000ULL) >> 40);
|
||||
buffer[1] = (uint8_t)((value & 0x000000ff00000000ULL) >> 32);
|
||||
buffer[2] = (uint8_t)((value & 0x00000000ff000000ULL) >> 24);
|
||||
buffer[3] = (uint8_t)((value & 0x0000000000ff0000ULL) >> 16);
|
||||
buffer[4] = (uint8_t)((value & 0x000000000000ff00ULL) >> 8);
|
||||
buffer[5] = (uint8_t)(value & 0x00000000000000ffULL);
|
||||
|
||||
return 6;
|
||||
}
|
||||
@@ -170,16 +170,16 @@ int decode_unsigned48(uint8_t *buffer, uint64_t *value)
|
||||
{
|
||||
if (value) {
|
||||
*value =
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 40) & 0x0000ff0000000000));
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 40) & 0x0000ff0000000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 32) & 0x000000ff00000000));
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 32) & 0x000000ff00000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 24) & 0x00000000ff000000));
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 24) & 0x00000000ff000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 16) & 0x0000000000ff0000));
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 16) & 0x0000000000ff0000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[4]) << 8) & 0x000000000000ff00));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[5]) & 0x00000000000000ff));
|
||||
((uint64_t)((((uint64_t)buffer[4]) << 8) & 0x000000000000ff00ULL));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[5]) & 0x00000000000000ffULL));
|
||||
}
|
||||
|
||||
return 6;
|
||||
@@ -193,13 +193,13 @@ int decode_unsigned48(uint8_t *buffer, uint64_t *value)
|
||||
*/
|
||||
int encode_unsigned56(uint8_t *buffer, uint64_t value)
|
||||
{
|
||||
buffer[0] = (uint8_t)((value & 0x00ff000000000000) >> 48);
|
||||
buffer[1] = (uint8_t)((value & 0x0000ff0000000000) >> 40);
|
||||
buffer[2] = (uint8_t)((value & 0x000000ff00000000) >> 32);
|
||||
buffer[3] = (uint8_t)((value & 0x00000000ff000000) >> 24);
|
||||
buffer[4] = (uint8_t)((value & 0x0000000000ff0000) >> 16);
|
||||
buffer[5] = (uint8_t)((value & 0x000000000000ff00) >> 8);
|
||||
buffer[6] = (uint8_t)(value & 0x00000000000000ff);
|
||||
buffer[0] = (uint8_t)((value & 0x00ff000000000000ULL) >> 48);
|
||||
buffer[1] = (uint8_t)((value & 0x0000ff0000000000ULL) >> 40);
|
||||
buffer[2] = (uint8_t)((value & 0x000000ff00000000ULL) >> 32);
|
||||
buffer[3] = (uint8_t)((value & 0x00000000ff000000ULL) >> 24);
|
||||
buffer[4] = (uint8_t)((value & 0x0000000000ff0000ULL) >> 16);
|
||||
buffer[5] = (uint8_t)((value & 0x000000000000ff00ULL) >> 8);
|
||||
buffer[6] = (uint8_t)(value & 0x00000000000000ffULL);
|
||||
|
||||
return 7;
|
||||
}
|
||||
@@ -214,18 +214,18 @@ int decode_unsigned56(uint8_t *buffer, uint64_t *value)
|
||||
{
|
||||
if (value) {
|
||||
*value =
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 48) & 0x00ff000000000000));
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 48) & 0x00ff000000000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 40) & 0x0000ff0000000000));
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 40) & 0x0000ff0000000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 32) & 0x000000ff00000000));
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 32) & 0x000000ff00000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 24) & 0x00000000ff000000));
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 24) & 0x00000000ff000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[4]) << 16) & 0x0000000000ff0000));
|
||||
((uint64_t)((((uint64_t)buffer[4]) << 16) & 0x0000000000ff0000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[5]) << 8) & 0x000000000000ff00));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[6]) & 0x00000000000000ff));
|
||||
((uint64_t)((((uint64_t)buffer[5]) << 8) & 0x000000000000ff00ULL));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[6]) & 0x00000000000000ffULL));
|
||||
}
|
||||
|
||||
return 7;
|
||||
@@ -239,14 +239,14 @@ int decode_unsigned56(uint8_t *buffer, uint64_t *value)
|
||||
*/
|
||||
int encode_unsigned64(uint8_t *buffer, uint64_t value)
|
||||
{
|
||||
buffer[0] = (uint8_t)((value & 0xff00000000000000) >> 56);
|
||||
buffer[1] = (uint8_t)((value & 0x00ff000000000000) >> 48);
|
||||
buffer[2] = (uint8_t)((value & 0x0000ff0000000000) >> 40);
|
||||
buffer[3] = (uint8_t)((value & 0x000000ff00000000) >> 32);
|
||||
buffer[4] = (uint8_t)((value & 0x00000000ff000000) >> 24);
|
||||
buffer[5] = (uint8_t)((value & 0x0000000000ff0000) >> 16);
|
||||
buffer[6] = (uint8_t)((value & 0x000000000000ff00) >> 8);
|
||||
buffer[7] = (uint8_t)(value & 0x00000000000000ff);
|
||||
buffer[0] = (uint8_t)((value & 0xff00000000000000ULL) >> 56);
|
||||
buffer[1] = (uint8_t)((value & 0x00ff000000000000ULL) >> 48);
|
||||
buffer[2] = (uint8_t)((value & 0x0000ff0000000000ULL) >> 40);
|
||||
buffer[3] = (uint8_t)((value & 0x000000ff00000000ULL) >> 32);
|
||||
buffer[4] = (uint8_t)((value & 0x00000000ff000000ULL) >> 24);
|
||||
buffer[5] = (uint8_t)((value & 0x0000000000ff0000ULL) >> 16);
|
||||
buffer[6] = (uint8_t)((value & 0x000000000000ff00ULL) >> 8);
|
||||
buffer[7] = (uint8_t)(value & 0x00000000000000ffULL);
|
||||
|
||||
return 8;
|
||||
}
|
||||
@@ -261,20 +261,20 @@ int decode_unsigned64(uint8_t *buffer, uint64_t *value)
|
||||
{
|
||||
if (value) {
|
||||
*value =
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 56) & 0xff00000000000000));
|
||||
((uint64_t)((((uint64_t)buffer[0]) << 56) & 0xff00000000000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 48) & 0x00ff000000000000));
|
||||
((uint64_t)((((uint64_t)buffer[1]) << 48) & 0x00ff000000000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 40) & 0x0000ff0000000000));
|
||||
((uint64_t)((((uint64_t)buffer[2]) << 40) & 0x0000ff0000000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 32) & 0x000000ff00000000));
|
||||
((uint64_t)((((uint64_t)buffer[3]) << 32) & 0x000000ff00000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[4]) << 24) & 0x00000000ff000000));
|
||||
((uint64_t)((((uint64_t)buffer[4]) << 24) & 0x00000000ff000000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[5]) << 16) & 0x0000000000ff0000));
|
||||
((uint64_t)((((uint64_t)buffer[5]) << 16) & 0x0000000000ff0000ULL));
|
||||
*value |=
|
||||
((uint64_t)((((uint64_t)buffer[6]) << 8) & 0x000000000000ff00));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[7]) & 0x00000000000000ff));
|
||||
((uint64_t)((((uint64_t)buffer[6]) << 8) & 0x000000000000ff00ULL));
|
||||
*value |= ((uint64_t)(((uint64_t)buffer[7]) & 0x00000000000000ffULL));
|
||||
}
|
||||
|
||||
return 8;
|
||||
@@ -298,13 +298,13 @@ int bacnet_unsigned_length(BACNET_UNSIGNED_INTEGER value)
|
||||
len = 3;
|
||||
} else {
|
||||
#ifdef UINT64_MAX
|
||||
if (value <= 0xFFFFFFFF) {
|
||||
if (value <= 0x00000000FFFFFFFFULL) {
|
||||
len = 4;
|
||||
} else if (value <= 0xFFFFFFFFFF) {
|
||||
} else if (value <= 0x000000FFFFFFFFFFULL) {
|
||||
len = 5;
|
||||
} else if (value <= 0xFFFFFFFFFFFF) {
|
||||
} else if (value <= 0x0000FFFFFFFFFFFFULL) {
|
||||
len = 6;
|
||||
} else if (value <= 0xFFFFFFFFFFFFFF) {
|
||||
} else if (value <= 0x00FFFFFFFFFFFFFFULL) {
|
||||
len = 7;
|
||||
} else {
|
||||
len = 8;
|
||||
|
||||
@@ -97,6 +97,8 @@ extern "C" {
|
||||
bool Analog_Value_Name_Set(
|
||||
uint32_t object_instance,
|
||||
char *new_name);
|
||||
char *Analog_Value_Name(
|
||||
uint32_t object_instance);
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
int Analog_Value_Read_Property(
|
||||
|
||||
@@ -71,6 +71,9 @@ extern "C" {
|
||||
bool Binary_Value_Name_Set(
|
||||
uint32_t object_instance,
|
||||
char *new_name);
|
||||
BACNET_STACK_EXPORT
|
||||
char *Binary_Value_Name(
|
||||
uint32_t object_instance);
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
char *Binary_Value_Description(
|
||||
|
||||
@@ -41,6 +41,10 @@
|
||||
#include "bacnet/lighting.h"
|
||||
#include "bacnet/bacdcode.h"
|
||||
|
||||
#ifndef islessgreater
|
||||
#define islessgreater( x, y) ((x) < (y) || (x) > (y))
|
||||
#endif
|
||||
|
||||
/** @file lighting.c Manipulate BACnet lighting command values */
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user