7cdab61d72
* schedule: add decode_daily_schedule() and encode_daily_schedule() * schedule: encode/decode implemented + add to bacapp * add safe encode/decode functions for timevalue, schedule function renaming * fix unit tests build failing * add IDEA and test temporary files to .gitignore * try to make "deprecated" work in MSVC * add WeeklySchedule compare function * add bacnet_weeklyschedule_context_decode() * Add basic test for WeeklySchedule * Fix WeeklySchedule parsing and snprintf, decoder verified with real hardware * try to fix windows build * improve boolean parsing in 'bacapp_parse_application_data' * add parse function for weekly schedule * allow types > 16 in bacwp, show the decoded value before sending * add bacapp binaries to gitignore * remove bacwp logging * Add error checking to bacapp_parse_application_data * try to fix windows build * fix avr build * Fix error handling in RP Ack * add singleDay flag * show day name in single day weeklyschedule snprintf * show weeklyschedule inner tag in snprintf * improve weeklyschedule parsing and printing, supports type names now * add weekly schedule to bacapp_decode_data * move bacnet/bacnet_plat_compat.h to bacnet/basic/sys/platform.h * disable tag limit also in bacwpm * add ifdef's around strtoX helper functions in bacapp * move strtox to BACAPP_PRINT_ENABLED ifdef in bacapp * fix stm32 makefiles * fix at91sam7s build * use BACNET_UNSIGNED_INTEGER in BACnet_Short_Application_Data_Value * fix capitalization in BACnet_Daily_Schedule * add name to BACNET_TIME_VALUE struct * change bacwp bacwpm to use bacapp_known_property_tag() * fix some macros in bacdcode missing parentheses * Remove dummy fields from BACNET_SHORT_APPLICATION_DATA_VALUE, replace remaining uses of upcasting (adds extra overhead but is maybe safer), rename short DV to Primitive * fix new ci warnings * more fixes for ancient C * fix tests no longer building * primitive value renamed to shorter name
This port was done with a AT91SAM7S-EK which contained a AT91SAM7S64 processor. The compiler was the GNU ARM compiler and tools from Yagarto project. The hardware was modified by severing the I-PA5 (RXD0), I-PA6 (TXD0), I-PA7 (RTS0) pads and rerouting those signals to a DS75176 RS-485 transceiver. PIN SIGNAL AT91SAM7S --- ------ --------- 1 RO RXD0 2 /RE RTS 3 DE RTS 4 DI TXD0 5 GND GND 6 DO n/c 7 DO n/c 8 +5V From EXT_VCC via 5V Regulator The makefile allows you to build just the dlmstp or a simple server, both for programming into the flash memory of the processor. The dlmstp is the datalink layer for MS/TP over RS-485. I used the makefile from the command line on Windows, and then used the SAM-BA to send the resulting .bin file to the board using a J-Link. To debug the code from flash, run the J-Link GDB Server and then: > arm-elf-gdb bacnet.elf I got the crt.s, at91sam7s256.ld, blinker.c, init.c, isr.c, and timer.c from James P Lynch. I created the rs485.c based on the initialization sequence from serial.c by Keil Electronik. I got the at91sam7s256.h file from Atmel via the Keil website. I started with the makefile from James P Lynch, but it didn't work for me. I then used some ideas from FreeRTOS makefile, and created my own makefile from scratch. Hopefully you find it useful! Steve Karg