Fixed device object compile errors and added IPv6 recipes for blinkt and piface (#841)

This commit is contained in:
Steve Karg
2024-10-31 14:16:47 -05:00
committed by GitHub
parent 7b6a0923f0
commit 6d9cff2312
8 changed files with 120 additions and 35 deletions
+81 -18
View File
@@ -20,10 +20,10 @@ on:
description: 'Environment to run tests against' description: 'Environment to run tests against'
type: environment type: environment
required: true required: true
jobs: jobs:
log-the-inputs: log-the-inputs:
runs-on: raspios/base:latest runs-on: ubuntu-latest
steps: steps:
- run: | - run: |
echo "Log level: $LEVEL" echo "Log level: $LEVEL"
@@ -32,44 +32,107 @@ jobs:
env: env:
LEVEL: ${{ inputs.logLevel }} LEVEL: ${{ inputs.logLevel }}
TAGS: ${{ inputs.tags }} TAGS: ${{ inputs.tags }}
ENVIRONMENT: ${{ inputs.environment }} ENVIRONMENT: ${{ inputs.environment }}
raspi-bip-apps: raspi-bip-apps:
runs-on: raspios/base:latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - name: Checkout
uses: actions/checkout@v4
- name: Create Build Environment - name: Create Build Environment
run: | run: |
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get install -qq libconfig-dev sudo apt-get install -qq libconfig-dev
sudo apt-get install -qq gcc-arm-linux-gnueabihf
- name: Build Demo Apps - name: Build Demo Apps
run: | run: |
gcc --version export CC=arm-linux-gnueabihf-gcc
export LD=arm-linux-gnueabihf-ld
arm-linux-gnueabihf-gcc --version
make clean make clean
make all make LEGACY=true all
piface: piface:
runs-on: raspios/base:latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - name: Checkout
uses: actions/checkout@v4
- name: Checkout libmcp23s17 repo
uses: actions/checkout@v4
with:
repository: piface/libmcp23s17
path: ./apps/piface/libmcp23s17
- name: Checkout libpifacedigital repo
uses: actions/checkout@v4
with:
repository: piface/libpifacedigital
path: ./apps/piface/libpifacedigital
- name: Create Build Environment - name: Create Build Environment
run: | run: |
sudo apt-get update -qq sudo apt-get update -qq
- name: Build Demo Apps sudo apt-get install -qq gcc-arm-linux-gnueabihf
- name: Build libmcp23s17 library
run: | run: |
gcc --version arm-linux-gnueabihf-gcc --version
cd apps/piface && ./configure && cd ../../ cd apps/piface/libmcp23s17
make CC=arm-linux-gnueabihf-gcc
arm-linux-gnueabihf-ar rcs libmcp23s17.a src/mcp23s17.o
cd ../../../
- name: Build pifacedigital library
run: |
arm-linux-gnueabihf-gcc --version
cd apps/piface/libpifacedigital
make CC=arm-linux-gnueabihf-gcc
: # Use the arm-linux-gnueabihf-ar command to create a static library
arm-linux-gnueabihf-ar rcs libpifacedigital.a src/pifacedigital.o
cd ../../../
- name: Build Piface demo
run: |
arm-linux-gnueabihf-gcc --version
: # BACnet library uses environment CC and LD variables
CC=arm-linux-gnueabihf-gcc
LD=arm-linux-gnueabihf-ld
CROSS_PREFIX=arm-linux-gnueabihf-
make piface make piface
blinkt: blinkt:
runs-on: raspios/base:latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - name: Checkout
uses: actions/checkout@v4
- name: Checkout pigpio repo
uses: actions/checkout@v4
with:
repository: joan2937/pigpio
path: ./apps/blinkt/pigpio
- name: Create Build Environment - name: Create Build Environment
run: | run: |
sudo apt-get update -qq sudo apt-get update -qq
sudo apt-get install -qq libpigpio-dev libpigpiod-if-dev pigpiod sudo apt-get install -qq gcc-arm-linux-gnueabihf
- name: Build Demo Apps
- name: Build Blinkt! pigpio library
run: | run: |
gcc --version arm-linux-gnueabihf-gcc --version
CROSS_PREFIX=arm-linux-gnueabihf-
DESTDIR="${HOME}/.local/bin"
cd apps/binkt/pigpio
make CROSS_PREFIX="${CROSS_PREFIX}" DESTDIR="${DESTDIR}" all install
cd ../../../
- name: Build Blinkt! demo
run: |
arm-linux-gnueabihf-gcc --version
: # BACnet library uses environment CC and LD variables
export CC=arm-linux-gnueabihf-gcc
export LD=arm-linux-gnueabihf-ld
export CROSS_PREFIX=arm-linux-gnueabihf-
make blinkt make blinkt
+9 -1
View File
@@ -94,7 +94,11 @@ apdu:
.PHONY: blinkt .PHONY: blinkt
blinkt: blinkt:
$(MAKE) -s -C apps $@ $(MAKE) LEGACY=true -C apps $@
.PHONY: blinkt6
blinkt6:
$(MAKE) LEGACY=true BACDL=bip6 -C apps blinkt
.PHONY: create-object .PHONY: create-object
create-object: create-object:
@@ -140,6 +144,10 @@ gateway-win32:
piface: piface:
$(MAKE) CSTANDARD="-std=gnu11" LEGACY=true -s -C apps $@ $(MAKE) CSTANDARD="-std=gnu11" LEGACY=true -s -C apps $@
.PHONY: piface6
piface6:
$(MAKE) CSTANDARD="-std=gnu11" BACDL=bip6 LEGACY=true -s -C apps piface
.PHONY: readbdt .PHONY: readbdt
readbdt: readbdt:
$(MAKE) -s -C apps $@ $(MAKE) -s -C apps $@
+1 -1
View File
@@ -289,7 +289,7 @@ apdu: $(BACNET_LIB_TARGET)
.PHONY: blinkt .PHONY: blinkt
blinkt: blinkt:
$(MAKE) -C $@ $(MAKE) -B -C $@
.PHONY: create-object .PHONY: create-object
create-object: $(BACNET_LIB_TARGET) create-object: $(BACNET_LIB_TARGET)
+12 -2
View File
@@ -5,6 +5,7 @@
## General Flags ## General Flags
TARGET = bacblinkt TARGET = bacblinkt
# BACnet objects that are used with this app # BACnet objects that are used with this app
BACNET_OBJECT_DIR = $(BACNET_SRC_DIR)/bacnet/basic/object BACNET_OBJECT_DIR = $(BACNET_SRC_DIR)/bacnet/basic/object
SRC = main.c \ SRC = main.c \
@@ -22,8 +23,17 @@ CFLAGS += -DMAX_TSM_TRANSACTIONS=1
# TARGET_EXT is defined in apps/Makefile as .exe or nothing # TARGET_EXT is defined in apps/Makefile as .exe or nothing
TARGET_BIN = ${TARGET}$(TARGET_EXT) TARGET_BIN = ${TARGET}$(TARGET_EXT)
#
# Set CROSS_PREFIX to prepend to all compiler tools at once for easier
# cross-compilation.
CROSS_PREFIX ?=
CC = $(CROSS_PREFIX)gcc
AR = $(CROSS_PREFIX)ar
RANLIB = $(CROSS_PREFIX)ranlib
SIZE = $(CROSS_PREFIX)size
# note: link to pigpio daemon so that our app can run without root # note: link to pigpio daemon so that our app can run without root
# start pigio daemon with the command 'sudo pigpiod' # start pigpio daemon with the command 'sudo pigpiod'
LD_PIGPIO = -Wl,-pthread,-lpigpiod_if2 LD_PIGPIO = -Wl,-pthread,-lpigpiod_if2
LFLAGS += $(LD_PIGPIO) LFLAGS += $(LD_PIGPIO)
@@ -33,7 +43,7 @@ all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN}
${TARGET_BIN}: ${OBJS} Makefile ${BACNET_LIB_TARGET} ${TARGET_BIN}: ${OBJS} Makefile ${BACNET_LIB_TARGET}
${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ ${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@
size $@ $(SIZE) $@
cp $@ ../../bin cp $@ ../../bin
${BACNET_LIB_TARGET}: ${BACNET_LIB_TARGET}:
+1 -5
View File
@@ -40,10 +40,6 @@
#include "bacnet/basic/object/color_temperature.h" #include "bacnet/basic/object/color_temperature.h"
#endif #endif
/* local forward (semi-private) and external prototypes */
int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata);
bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data);
/* may be overridden by outside table */ /* may be overridden by outside table */
static object_functions_t *Object_Table; static object_functions_t *Object_Table;
@@ -924,7 +920,7 @@ int Device_Object_List_Element_Encode(
* @return True on success or else False if not found. * @return True on success or else False if not found.
*/ */
bool Device_Valid_Object_Name( bool Device_Valid_Object_Name(
BACNET_CHARACTER_STRING *object_name1, const BACNET_CHARACTER_STRING *object_name1,
BACNET_OBJECT_TYPE *object_type, BACNET_OBJECT_TYPE *object_type,
uint32_t *object_instance) uint32_t *object_instance)
{ {
+14 -2
View File
@@ -13,6 +13,15 @@ SRC = main.c \
$(BACNET_OBJECT_DIR)/blo.c \ $(BACNET_OBJECT_DIR)/blo.c \
$(BACNET_OBJECT_DIR)/bo.c $(BACNET_OBJECT_DIR)/bo.c
# Set CROSS_PREFIX to prepend to all compiler tools at once for easier
# cross-compilation.
CROSS_PREFIX ?=
CC = $(CROSS_PREFIX)gcc
AR = $(CROSS_PREFIX)ar
RANLIB = $(CROSS_PREFIX)ranlib
SIZE = $(CROSS_PREFIX)size
STRIP = $(CROSS_PREFIX)strip
CFLAGS += -DMAX_TSM_TRANSACTIONS=1 CFLAGS += -DMAX_TSM_TRANSACTIONS=1
CFLAGS += -DMAX_BINARY_INPUTS=4 CFLAGS += -DMAX_BINARY_INPUTS=4
CFLAGS += -DMAX_BINARY_OUTPUTS=8 CFLAGS += -DMAX_BINARY_OUTPUTS=8
@@ -20,6 +29,9 @@ CFLAGS += -DMAX_BINARY_OUTPUTS=8
# TARGET_EXT is defined in apps/Makefile as .exe or nothing # TARGET_EXT is defined in apps/Makefile as .exe or nothing
TARGET_BIN = ${TARGET}$(TARGET_EXT) TARGET_BIN = ${TARGET}$(TARGET_EXT)
# relies on the BACnet library
BACNET_LIB_DIR = $(realpath ../lib)
# Source locations # Source locations
PIFACE_INCLUDE = libpifacedigital/src PIFACE_INCLUDE = libpifacedigital/src
PIFACE_LIB = libpifacedigital PIFACE_LIB = libpifacedigital
@@ -35,8 +47,8 @@ OBJS += ${SRC:.c=.o}
all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN} all: ${BACNET_LIB_TARGET} Makefile ${TARGET_BIN}
${TARGET_BIN}: ${OBJS} Makefile ${BACNET_LIB_TARGET} ${TARGET_BIN}: ${OBJS} Makefile ${BACNET_LIB_TARGET}
${CC} ${PFLAGS} ${OBJS} ${LFLAGS} -o $@ $(CC) ${PFLAGS} ${OBJS} ${LFLAGS} -o $@
size $@ $(SIZE) $@
cp $@ ../../bin cp $@ ../../bin
${BACNET_LIB_TARGET}: ${BACNET_LIB_TARGET}:
+2 -2
View File
@@ -5,12 +5,12 @@
if [ ! -d "libmcp23s17" ] if [ ! -d "libmcp23s17" ]
then then
git clone git@github.com:piface/libmcp23s17.git git clone https://github.com/piface/libmcp23s17.git
fi fi
if [ ! -d "libpifacedigital" ] if [ ! -d "libpifacedigital" ]
then then
git clone git@github.com:piface/libpifacedigital.git git clone https://github.com:piface/libpifacedigital.git
fi fi
# Build the library # Build the library
-4
View File
@@ -33,10 +33,6 @@
#include "bacnet/basic/object/netport.h" #include "bacnet/basic/object/netport.h"
#endif #endif
/* local forward (semi-private) and external prototypes */
int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata);
bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data);
/* may be overridden by outside table */ /* may be overridden by outside table */
static object_functions_t *Object_Table; static object_functions_t *Object_Table;