From f806c5829be1c40e014a6ef51b1fd0f0ed506258 Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Fri, 30 Aug 2024 19:20:58 +0300 Subject: [PATCH] Run clang-format and enable CI check for it (#755) * pre-commit: Update and enable clang-format check There is newer version from clang-format so use that. We do not yet want 18 as that is little bit too new. * Format some thing by hand which clang-format "breaks" Clang-format will format some things little bit off in some cases. Format some things by hand so we get cleaner end result. * Run clang-format with ``` pre-commit run --all-files clang-format ``` We have already in previously checked places where clang-format does not make good format and ignored those (hopefully most of the things). --------- Co-authored-by: Kari Argillander --- .pre-commit-config.yaml | 9 +- apps/abort/main.c | 41 +- apps/ack-alarm/main.c | 69 +- apps/add-list-element/main.c | 62 +- apps/apdu/main.c | 48 +- apps/blinkt/blinkt.c | 12 +- apps/blinkt/device.c | 325 +- apps/blinkt/main.c | 41 +- apps/create-object/main.c | 83 +- apps/dcc/main.c | 16 +- apps/delete-object/main.c | 61 +- apps/epics/bacepics.h | 26 +- apps/epics/main.c | 147 +- apps/error/main.c | 52 +- apps/event/main.c | 114 +- apps/fuzz-afl/main.c | 59 +- apps/fuzz-libfuzzer/main.c | 108 +- apps/gateway/gateway.h | 4 +- apps/gateway/main.c | 17 +- apps/getevent/main.c | 42 +- apps/iam/main.c | 58 +- apps/iamrouter/main.c | 26 +- apps/initrouter/main.c | 34 +- apps/mstpcap/main.c | 165 +- apps/mstpcrc/main.c | 9 +- apps/netnumis/main.c | 73 +- apps/perl/perl_bindings.c | 93 +- apps/piface/device.c | 275 +- apps/piface/main.c | 30 +- apps/ptransfer/h_pt.c | 25 +- apps/ptransfer/h_pt.h | 28 +- apps/ptransfer/h_pt_a.c | 15 +- apps/ptransfer/h_pt_a.h | 28 +- apps/ptransfer/main.c | 30 +- apps/ptransfer/s_ptransfer.c | 17 +- apps/ptransfer/s_ptransfer.h | 27 +- apps/readbdt/main.c | 4 +- apps/readfdt/main.c | 25 +- apps/readfile/main.c | 53 +- apps/readprop/main.c | 76 +- apps/readpropm/main.c | 109 +- apps/readrange/main.c | 80 +- apps/reinit/main.c | 49 +- apps/remove-list-element/main.c | 66 +- apps/router-ipv6/main.c | 71 +- apps/router-mstp/main.c | 65 +- apps/router/ipmodule.c | 37 +- apps/router/ipmodule.h | 47 +- apps/router/main.c | 32 +- apps/router/msgqueue.h | 47 +- apps/router/mstpmodule.c | 11 +- apps/router/mstpmodule.h | 21 +- apps/router/network_layer.c | 32 +- apps/router/network_layer.h | 34 +- apps/router/portthread.h | 63 +- apps/scov/main.c | 97 +- apps/server-client/main.c | 54 +- apps/server-discover/main.c | 35 +- apps/server/main.c | 63 +- apps/timesync/main.c | 53 +- apps/ucov/main.c | 86 +- apps/uevent/main.c | 41 +- apps/uptransfer/main.c | 88 +- apps/whatisnetnum/main.c | 52 +- apps/whohas/main.c | 49 +- apps/whois/main.c | 93 +- apps/whoisrouter/main.c | 58 +- apps/writebdt/main.c | 12 +- apps/writefile/main.c | 32 +- apps/writeprop/main.c | 97 +- apps/writepropm/main.c | 155 +- ports/arduino_uno/apdu.c | 21 +- ports/arduino_uno/av.c | 9 +- ports/arduino_uno/av.h | 54 +- ports/arduino_uno/bip-init.c | 16 +- ports/arduino_uno/bip.c | 42 +- ports/arduino_uno/bip.h | 111 +- ports/arduino_uno/bv.c | 12 +- ports/arduino_uno/bv.h | 48 +- ports/arduino_uno/bvlc-arduino.c | 6 +- ports/arduino_uno/bvlc-arduino.h | 6 +- ports/arduino_uno/datalink.h | 54 +- ports/arduino_uno/device.c | 26 +- ports/arduino_uno/device.h | 128 +- ports/arduino_uno/h_rp.c | 54 +- ports/arduino_uno/h_whois.c | 6 +- ports/arduino_uno/h_wp.c | 59 +- ports/arduino_uno/main.c | 21 +- ports/arduino_uno/stdbool.h | 2 +- ports/arduino_uno/stdint.h | 16 +- ports/arduino_uno/txbuf.h | 12 +- ports/arduino_uno/uart.h | 5 +- ports/esp32/src/device.h | 6 +- ports/linux/arcnet.c | 84 +- ports/linux/bacport.h | 90 +- ports/linux/bip-init.c | 66 +- ports/linux/bip6.c | 60 +- ports/linux/datetime-init.c | 2 +- ports/linux/dlmstp.c | 15 +- ports/linux/dlmstp_linux.c | 15 +- ports/linux/dlmstp_linux.h | 163 +- ports/linux/ethernet.c | 75 +- ports/linux/mstpsnap.c | 15 +- ports/linux/rs485.c | 22 +- ports/linux/rs485.h | 56 +- ports/lwip/bacport.h | 21 +- ports/lwip/bip.c | 18 +- ports/lwip/net.h | 12 +- ports/rx62n/bacnet.c | 20 +- ports/rx62n/bacnet.h | 18 +- ports/rx62n/bo.c | 65 +- ports/rx62n/device.c | 126 +- ports/rx62n/ethernet.c | 26 +- ports/rx62n/hardware.h | 12 +- ports/rx62n/led.h | 38 +- ports/win32/bacport.h | 38 +- ports/win32/bip-init.c | 61 +- ports/win32/bip6.c | 3 +- ports/win32/datetime-init.c | 17 +- ports/win32/dlmstp-mm.c | 86 +- ports/win32/dlmstp.c | 92 +- ports/win32/ethernet.c | 21 +- ports/win32/main.c | 46 +- ports/win32/mstimer-init.c | 3 +- ports/win32/rs485.c | 23 +- ports/win32/rs485.h | 57 +- src/bacnet/abort.c | 5 +- src/bacnet/abort.h | 36 +- src/bacnet/access_rule.h | 29 +- src/bacnet/alarm_ack.c | 11 +- src/bacnet/alarm_ack.h | 37 +- src/bacnet/arf.c | 9 +- src/bacnet/arf.h | 78 +- src/bacnet/assigned_access_rights.h | 30 +- src/bacnet/authentication_factor.h | 30 +- src/bacnet/authentication_factor_format.h | 34 +- src/bacnet/awf.c | 19 +- src/bacnet/awf.h | 86 +- src/bacnet/bacaction.c | 4 +- src/bacnet/bacaddr.c | 11 +- src/bacnet/bacaddr.h | 9 +- src/bacnet/bacapp.c | 77 +- src/bacnet/bacapp.h | 366 +- src/bacnet/bacdcode.c | 234 +- src/bacnet/bacdcode.h | 125 +- src/bacnet/bacdef.h | 8 +- src/bacnet/bacdest.h | 3 +- src/bacnet/bacdevobjpropref.c | 95 +- src/bacnet/bacdevobjpropref.h | 6 +- src/bacnet/bacenum.h | 4 +- src/bacnet/bacerror.c | 11 +- src/bacnet/bacerror.h | 42 +- src/bacnet/bacint.c | 48 +- src/bacnet/bacint.h | 146 +- src/bacnet/bacprop.c | 2 +- src/bacnet/bacprop.h | 18 +- src/bacnet/bacpropstates.c | 10 +- src/bacnet/bacpropstates.h | 30 +- src/bacnet/bacreal.h | 40 +- src/bacnet/bacstr.c | 50 +- src/bacnet/bacstr.h | 275 +- src/bacnet/bactext.c | 753 ++-- src/bacnet/bactext.h | 291 +- src/bacnet/bactimevalue.h | 162 +- src/bacnet/basic/bbmd/h_bbmd.c | 71 +- src/bacnet/basic/bbmd/h_bbmd.h | 25 +- src/bacnet/basic/bbmd6/h_bbmd6.c | 58 +- src/bacnet/basic/bbmd6/h_bbmd6.h | 92 +- src/bacnet/basic/bbmd6/vmac.c | 7 +- src/bacnet/basic/bbmd6/vmac.h | 53 +- src/bacnet/basic/binding/address.c | 24 +- src/bacnet/basic/binding/address.h | 135 +- src/bacnet/basic/client/bac-data.c | 29 +- src/bacnet/basic/client/bac-data.h | 15 +- src/bacnet/basic/client/bac-discover.c | 137 +- src/bacnet/basic/client/bac-discover.h | 37 +- src/bacnet/basic/client/bac-rw.c | 69 +- src/bacnet/basic/client/bac-rw.h | 27 +- src/bacnet/basic/client/bac-task.c | 3 +- src/bacnet/basic/npdu/h_npdu.h | 73 +- src/bacnet/basic/npdu/h_routed_npdu.c | 20 +- src/bacnet/basic/npdu/h_routed_npdu.h | 9 +- src/bacnet/basic/npdu/s_router.c | 23 +- src/bacnet/basic/npdu/s_router.h | 61 +- src/bacnet/basic/object/acc.c | 21 +- src/bacnet/basic/object/acc.h | 130 +- src/bacnet/basic/object/access_credential.c | 32 +- src/bacnet/basic/object/access_credential.h | 110 +- src/bacnet/basic/object/access_door.c | 41 +- src/bacnet/basic/object/access_door.h | 181 +- src/bacnet/basic/object/access_point.c | 36 +- src/bacnet/basic/object/access_point.h | 119 +- src/bacnet/basic/object/access_rights.c | 33 +- src/bacnet/basic/object/access_rights.h | 95 +- src/bacnet/basic/object/access_user.c | 11 +- src/bacnet/basic/object/access_user.h | 91 +- src/bacnet/basic/object/access_zone.c | 13 +- src/bacnet/basic/object/access_zone.h | 109 +- src/bacnet/basic/object/ai.c | 27 +- src/bacnet/basic/object/ai.h | 213 +- src/bacnet/basic/object/ao.c | 59 +- src/bacnet/basic/object/ao.h | 229 +- src/bacnet/basic/object/av.c | 33 +- src/bacnet/basic/object/av.h | 215 +- src/bacnet/basic/object/bacfile.c | 136 +- src/bacnet/basic/object/bacfile.h | 219 +- src/bacnet/basic/object/bi.c | 25 +- src/bacnet/basic/object/bi.h | 301 +- src/bacnet/basic/object/bitstring_value.c | 45 +- src/bacnet/basic/object/bitstring_value.h | 162 +- src/bacnet/basic/object/blo.c | 68 +- src/bacnet/basic/object/blo.h | 30 +- src/bacnet/basic/object/bo.c | 64 +- src/bacnet/basic/object/bo.h | 212 +- src/bacnet/basic/object/bv.c | 25 +- src/bacnet/basic/object/bv.h | 299 +- src/bacnet/basic/object/calendar.h | 4 +- src/bacnet/basic/object/channel.c | 134 +- src/bacnet/basic/object/channel.h | 25 +- .../basic/object/client/device-client.c | 168 +- src/bacnet/basic/object/color_object.c | 90 +- src/bacnet/basic/object/color_object.h | 3 +- src/bacnet/basic/object/color_temperature.c | 102 +- src/bacnet/basic/object/color_temperature.h | 16 +- src/bacnet/basic/object/command.c | 16 +- src/bacnet/basic/object/command.h | 163 +- .../basic/object/credential_data_input.c | 33 +- .../basic/object/credential_data_input.h | 108 +- src/bacnet/basic/object/csv.c | 35 +- src/bacnet/basic/object/csv.h | 107 +- src/bacnet/basic/object/device.c | 68 +- src/bacnet/basic/object/device.h | 592 ++- src/bacnet/basic/object/gateway/gw_device.c | 20 +- src/bacnet/basic/object/iv.c | 54 +- src/bacnet/basic/object/iv.h | 158 +- src/bacnet/basic/object/lc.c | 11 +- src/bacnet/basic/object/lc.h | 3 +- src/bacnet/basic/object/lo.c | 109 +- src/bacnet/basic/object/lo.h | 343 +- src/bacnet/basic/object/lsp.c | 31 +- src/bacnet/basic/object/lsp.h | 149 +- src/bacnet/basic/object/lsz.c | 56 +- src/bacnet/basic/object/lsz.h | 174 +- src/bacnet/basic/object/ms-input.c | 79 +- src/bacnet/basic/object/ms-input.h | 190 +- src/bacnet/basic/object/mso.c | 124 +- src/bacnet/basic/object/mso.h | 208 +- src/bacnet/basic/object/msv.c | 45 +- src/bacnet/basic/object/msv.h | 188 +- src/bacnet/basic/object/nc.c | 175 +- src/bacnet/basic/object/nc.h | 2 +- src/bacnet/basic/object/netport.c | 5 +- src/bacnet/basic/object/netport.h | 714 ++-- src/bacnet/basic/object/objects.h | 28 +- src/bacnet/basic/object/osv.c | 15 +- src/bacnet/basic/object/osv.h | 107 +- src/bacnet/basic/object/piv.c | 23 +- src/bacnet/basic/object/piv.h | 104 +- src/bacnet/basic/object/schedule.c | 51 +- src/bacnet/basic/object/schedule.h | 139 +- src/bacnet/basic/object/structured_view.h | 12 +- src/bacnet/basic/object/time_value.c | 53 +- src/bacnet/basic/object/time_value.h | 14 +- src/bacnet/basic/object/trendlog.c | 70 +- src/bacnet/basic/object/trendlog.h | 242 +- src/bacnet/basic/service/h_alarm_ack.c | 65 +- src/bacnet/basic/service/h_alarm_ack.h | 19 +- src/bacnet/basic/service/h_apdu.c | 47 +- src/bacnet/basic/service/h_apdu.h | 204 +- src/bacnet/basic/service/h_arf.c | 43 +- src/bacnet/basic/service/h_arf.h | 8 +- src/bacnet/basic/service/h_arf_a.c | 3 +- src/bacnet/basic/service/h_arf_a.h | 6 +- src/bacnet/basic/service/h_awf.c | 36 +- src/bacnet/basic/service/h_awf.h | 8 +- src/bacnet/basic/service/h_ccov.c | 25 +- src/bacnet/basic/service/h_ccov.h | 17 +- src/bacnet/basic/service/h_cov.c | 77 +- src/bacnet/basic/service/h_cov.h | 38 +- src/bacnet/basic/service/h_create_object.c | 30 +- src/bacnet/basic/service/h_create_object.h | 12 +- src/bacnet/basic/service/h_dcc.c | 56 +- src/bacnet/basic/service/h_dcc.h | 33 +- src/bacnet/basic/service/h_delete_object.c | 29 +- src/bacnet/basic/service/h_delete_object.h | 12 +- src/bacnet/basic/service/h_gas_a.c | 3 +- src/bacnet/basic/service/h_gas_a.h | 24 +- src/bacnet/basic/service/h_get_alarm_sum.c | 20 +- src/bacnet/basic/service/h_get_alarm_sum.h | 19 +- src/bacnet/basic/service/h_getevent.c | 47 +- src/bacnet/basic/service/h_getevent.h | 25 +- src/bacnet/basic/service/h_getevent_a.c | 3 +- src/bacnet/basic/service/h_getevent_a.h | 12 +- src/bacnet/basic/service/h_iam.c | 3 +- src/bacnet/basic/service/h_iam.h | 16 +- src/bacnet/basic/service/h_ihave.c | 3 +- src/bacnet/basic/service/h_ihave.h | 8 +- src/bacnet/basic/service/h_list_element.c | 53 +- src/bacnet/basic/service/h_list_element.h | 24 +- src/bacnet/basic/service/h_lso.c | 34 +- src/bacnet/basic/service/h_lso.h | 12 +- src/bacnet/basic/service/h_noserv.c | 8 +- src/bacnet/basic/service/h_noserv.h | 12 +- src/bacnet/basic/service/h_rd.c | 43 +- src/bacnet/basic/service/h_rd.h | 12 +- src/bacnet/basic/service/h_rp.c | 24 +- src/bacnet/basic/service/h_rp.h | 30 +- src/bacnet/basic/service/h_rp_a.c | 15 +- src/bacnet/basic/service/h_rp_a.h | 17 +- src/bacnet/basic/service/h_rpm.c | 84 +- src/bacnet/basic/service/h_rpm.h | 30 +- src/bacnet/basic/service/h_rpm_a.c | 33 +- src/bacnet/basic/service/h_rpm_a.h | 50 +- src/bacnet/basic/service/h_rr.c | 34 +- src/bacnet/basic/service/h_rr.h | 30 +- src/bacnet/basic/service/h_rr_a.c | 6 +- src/bacnet/basic/service/h_rr_a.h | 30 +- src/bacnet/basic/service/h_ts.c | 9 +- src/bacnet/basic/service/h_ts.h | 95 +- src/bacnet/basic/service/h_ucov.c | 6 +- src/bacnet/basic/service/h_ucov.h | 31 +- src/bacnet/basic/service/h_upt.c | 6 +- src/bacnet/basic/service/h_upt.h | 31 +- src/bacnet/basic/service/h_whohas.c | 13 +- src/bacnet/basic/service/h_whohas.h | 34 +- src/bacnet/basic/service/h_whois.c | 8 +- src/bacnet/basic/service/h_whois.h | 50 +- src/bacnet/basic/service/h_wp.c | 46 +- src/bacnet/basic/service/h_wp.h | 56 +- src/bacnet/basic/service/h_wpm.c | 29 +- src/bacnet/basic/service/h_wpm.h | 30 +- src/bacnet/basic/service/s_abort.c | 6 +- src/bacnet/basic/service/s_abort.h | 50 +- src/bacnet/basic/service/s_ack_alarm.c | 6 +- src/bacnet/basic/service/s_ack_alarm.h | 29 +- src/bacnet/basic/service/s_arfs.c | 17 +- src/bacnet/basic/service/s_arfs.h | 26 +- src/bacnet/basic/service/s_awfs.c | 25 +- src/bacnet/basic/service/s_awfs.h | 27 +- src/bacnet/basic/service/s_cevent.c | 9 +- src/bacnet/basic/service/s_cevent.h | 29 +- src/bacnet/basic/service/s_cov.c | 17 +- src/bacnet/basic/service/s_cov.h | 49 +- src/bacnet/basic/service/s_create_object.c | 14 +- src/bacnet/basic/service/s_dcc.c | 22 +- src/bacnet/basic/service/s_dcc.h | 21 +- src/bacnet/basic/service/s_delete_object.c | 11 +- src/bacnet/basic/service/s_error.c | 11 +- src/bacnet/basic/service/s_error.h | 54 +- src/bacnet/basic/service/s_get_alarm_sum.c | 15 +- src/bacnet/basic/service/s_get_alarm_sum.h | 18 +- src/bacnet/basic/service/s_get_event.c | 20 +- src/bacnet/basic/service/s_get_event.h | 21 +- src/bacnet/basic/service/s_getevent.c | 21 +- src/bacnet/basic/service/s_getevent.h | 23 +- src/bacnet/basic/service/s_iam.c | 22 +- src/bacnet/basic/service/s_iam.h | 42 +- src/bacnet/basic/service/s_ihave.c | 3 +- src/bacnet/basic/service/s_ihave.h | 30 +- src/bacnet/basic/service/s_list_element.c | 69 +- src/bacnet/basic/service/s_list_element.h | 12 +- src/bacnet/basic/service/s_lso.c | 18 +- src/bacnet/basic/service/s_lso.h | 22 +- src/bacnet/basic/service/s_rd.c | 24 +- src/bacnet/basic/service/s_rd.h | 23 +- src/bacnet/basic/service/s_readrange.c | 17 +- src/bacnet/basic/service/s_readrange.h | 22 +- src/bacnet/basic/service/s_rp.c | 22 +- src/bacnet/basic/service/s_rp.h | 48 +- src/bacnet/basic/service/s_rpm.c | 12 +- src/bacnet/basic/service/s_rpm.h | 30 +- src/bacnet/basic/service/s_ts.c | 13 +- src/bacnet/basic/service/s_ts.h | 54 +- src/bacnet/basic/service/s_uevent.c | 4 +- src/bacnet/basic/service/s_uevent.h | 28 +- src/bacnet/basic/service/s_upt.c | 4 +- src/bacnet/basic/service/s_upt.h | 21 +- src/bacnet/basic/service/s_whohas.c | 9 +- src/bacnet/basic/service/s_whohas.h | 36 +- src/bacnet/basic/service/s_whois.c | 3 +- src/bacnet/basic/service/s_whois.h | 50 +- src/bacnet/basic/service/s_wp.c | 29 +- src/bacnet/basic/service/s_wp.h | 56 +- src/bacnet/basic/service/s_wpm.c | 9 +- src/bacnet/basic/service/s_wpm.h | 30 +- src/bacnet/basic/sys/bacnet_stack_exports.h | 51 +- src/bacnet/basic/sys/bigend.h | 33 +- src/bacnet/basic/sys/bits.h | 24 +- src/bacnet/basic/sys/bytes.h | 2 +- src/bacnet/basic/sys/color_rgb.c | 256 +- src/bacnet/basic/sys/color_rgb.h | 54 +- src/bacnet/basic/sys/days.c | 15 +- src/bacnet/basic/sys/days.h | 19 +- src/bacnet/basic/sys/debug.c | 19 +- src/bacnet/basic/sys/debug.h | 44 +- src/bacnet/basic/sys/fifo.c | 4 +- src/bacnet/basic/sys/fifo.h | 109 +- src/bacnet/basic/sys/filename.h | 7 +- src/bacnet/basic/sys/key.h | 23 +- src/bacnet/basic/sys/keylist.h | 91 +- src/bacnet/basic/sys/linear.c | 100 +- src/bacnet/basic/sys/linear.h | 31 +- src/bacnet/basic/sys/mstimer.c | 6 +- src/bacnet/basic/sys/mstimer.h | 6 +- src/bacnet/basic/sys/platform.h | 14 +- src/bacnet/basic/sys/ringbuf.c | 7 +- src/bacnet/basic/sys/ringbuf.h | 100 +- src/bacnet/basic/sys/sbuf.c | 12 +- src/bacnet/basic/sys/sbuf.h | 79 +- src/bacnet/basic/tsm/tsm.c | 11 +- src/bacnet/basic/tsm/tsm.h | 96 +- src/bacnet/basic/ucix/ucix.c | 20 +- src/bacnet/basic/ucix/ucix.h | 43 +- src/bacnet/calendar_entry.c | 39 +- src/bacnet/calendar_entry.h | 9 +- src/bacnet/config.h | 70 +- src/bacnet/cov.c | 118 +- src/bacnet/cov.h | 61 +- src/bacnet/create_object.c | 7 +- src/bacnet/credential_authentication_factor.h | 35 +- src/bacnet/dailyschedule.c | 9 +- src/bacnet/dailyschedule.h | 35 +- src/bacnet/datalink/arcnet.h | 54 +- src/bacnet/datalink/automac.h | 48 +- src/bacnet/datalink/bacsec.c | 42 +- src/bacnet/datalink/bacsec.h | 273 +- src/bacnet/datalink/bip.h | 124 +- src/bacnet/datalink/bip6.h | 140 +- src/bacnet/datalink/bvlc.c | 111 +- src/bacnet/datalink/bvlc.h | 753 ++-- src/bacnet/datalink/bvlc6.c | 141 +- src/bacnet/datalink/bvlc6.h | 627 ++-- src/bacnet/datalink/cobs.c | 16 +- src/bacnet/datalink/cobs.h | 22 +- src/bacnet/datalink/crc.c | 106 +- src/bacnet/datalink/crc.h | 12 +- src/bacnet/datalink/datalink.c | 6 +- src/bacnet/datalink/datalink.h | 62 +- src/bacnet/datalink/dlenv.c | 53 +- src/bacnet/datalink/dlenv.h | 45 +- src/bacnet/datalink/dlmstp.c | 50 +- src/bacnet/datalink/dlmstp.h | 222 +- src/bacnet/datalink/ethernet.h | 73 +- src/bacnet/datalink/mstp.c | 236 +- src/bacnet/datalink/mstp.h | 32 +- src/bacnet/datalink/mstptext.c | 38 +- src/bacnet/datalink/mstptext.h | 20 +- src/bacnet/datetime.c | 70 +- src/bacnet/datetime.h | 52 +- src/bacnet/dcc.c | 25 +- src/bacnet/dcc.h | 93 +- src/bacnet/event.c | 267 +- src/bacnet/event.h | 86 +- src/bacnet/get_alarm_sum.c | 10 +- src/bacnet/get_alarm_sum.h | 42 +- src/bacnet/getevent.c | 40 +- src/bacnet/getevent.h | 78 +- src/bacnet/hostnport.c | 20 +- src/bacnet/hostnport.h | 207 +- src/bacnet/iam.c | 6 +- src/bacnet/iam.h | 28 +- src/bacnet/ihave.h | 22 +- src/bacnet/indtext.c | 3 +- src/bacnet/indtext.h | 73 +- src/bacnet/lighting.c | 47 +- src/bacnet/lighting.h | 169 +- src/bacnet/list_element.c | 1 - src/bacnet/list_element.h | 4 +- src/bacnet/lso.c | 12 +- src/bacnet/lso.h | 32 +- src/bacnet/memcopy.c | 3 +- src/bacnet/memcopy.h | 13 +- src/bacnet/npdu.c | 18 +- src/bacnet/npdu.h | 106 +- src/bacnet/property.c | 3219 ++++++++++++----- src/bacnet/property.h | 54 +- src/bacnet/proplist.c | 3 +- src/bacnet/proplist.h | 47 +- src/bacnet/ptransfer.c | 18 +- src/bacnet/ptransfer.h | 65 +- src/bacnet/rd.c | 12 +- src/bacnet/rd.h | 50 +- src/bacnet/readrange.c | 3 +- src/bacnet/readrange.h | 152 +- src/bacnet/reject.c | 4 +- src/bacnet/reject.h | 35 +- src/bacnet/rp.c | 9 +- src/bacnet/rp.h | 104 +- src/bacnet/rpm.h | 182 +- src/bacnet/special_event.c | 23 +- src/bacnet/special_event.h | 72 +- src/bacnet/timestamp.c | 57 +- src/bacnet/timestamp.h | 101 +- src/bacnet/timesync.c | 39 +- src/bacnet/timesync.h | 84 +- src/bacnet/version.h | 10 +- src/bacnet/weeklyschedule.h | 51 +- src/bacnet/whois.h | 35 +- src/bacnet/wp.c | 24 +- src/bacnet/wp.h | 79 +- src/bacnet/wpm.c | 29 +- src/bacnet/wpm.h | 139 +- test/bacnet/abort/src/main.c | 11 +- test/bacnet/alarm_ack/src/main.c | 27 +- test/bacnet/awf/src/main.c | 4 +- test/bacnet/bacapp/src/main.c | 9 +- test/bacnet/bacdcode/src/main.c | 27 +- test/bacnet/bacdest/src/main.c | 11 +- test/bacnet/bacint/src/main.c | 6 +- test/bacnet/bactimevalue/src/main.c | 11 +- test/bacnet/basic/object/ai/src/main.c | 4 +- test/bacnet/basic/object/ao/src/main.c | 4 +- test/bacnet/basic/object/av/src/main.c | 4 +- test/bacnet/basic/object/bi/src/main.c | 4 +- .../basic/object/bitstring_value/src/main.c | 40 +- test/bacnet/basic/object/bo/src/main.c | 4 +- test/bacnet/basic/object/bv/src/main.c | 4 +- test/bacnet/basic/object/calendar/src/main.c | 6 +- test/bacnet/basic/object/lc/src/main.c | 11 +- test/bacnet/basic/object/lsz/src/main.c | 1 - test/bacnet/basic/object/ms-input/src/main.c | 3 +- test/bacnet/basic/object/mso/src/main.c | 3 +- test/bacnet/basic/object/msv/src/main.c | 3 +- test/bacnet/basic/object/netport/src/main.c | 3 +- test/bacnet/basic/object/schedule/src/main.c | 4 +- .../basic/object/structured_view/src/main.c | 4 +- .../bacnet/basic/object/test/datetime_local.c | 3 +- test/bacnet/basic/object/test/property_test.h | 7 +- .../bacnet/basic/object/time_value/src/main.c | 4 +- test/bacnet/basic/sys/keylist/src/main.c | 3 +- test/bacnet/cov/src/main.c | 40 +- test/bacnet/datalink/bvlc/src/main.c | 4 +- test/bacnet/datalink/mock/src/bip6-mock.c | 3 +- test/bacnet/datalink/mstp/src/main.c | 20 +- test/bacnet/getevent/src/main.c | 9 +- test/bacnet/iam/src/main.c | 9 +- test/bacnet/include/bacport.h | 24 +- test/bacnet/ptransfer/src/main.c | 27 +- test/bacnet/reject/src/main.c | 6 +- test/bacnet/rpm/src/main.c | 30 +- test/bacnet/timesync/src/main.c | 13 +- test/bacnet/whohas/src/main.c | 13 +- test/bacnet/wpm/src/main.c | 4 +- .../unit/bacnet/bacerror/src/fakes/bacdcode.c | 3 +- test/unit/bacnet/bacerror/src/main.c | 87 +- test/unit/bacnet/bacint/src/main.c | 420 ++- test/unit/bacnet/bits/src/main.c | 81 +- 547 files changed, 18286 insertions(+), 16575 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index eb00be6a..f4c1023a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -47,11 +47,10 @@ repos: args: ["--whitespaces-count", "2"] files: '.*\.(yaml|yml|html|htm)|Dockerfile$' - # We will enable this in future. - # - repo: https://github.com/pre-commit/mirrors-clang-format - # rev: 3b03191b6a60cba0fc25c2dc2e30ea4854d897eb # v17.0.5 - # hooks: - # - id: clang-format + - repo: https://github.com/pre-commit/mirrors-clang-format + rev: 05241dc3def184dba136e62d54ff57f1c8a497a9 # v17.0.6 + hooks: + - id: clang-format # We might enable this in future. # - repo: https://github.com/pre-commit/mirrors-prettier diff --git a/apps/abort/main.c b/apps/abort/main.c index 7f17699a..a7af3ba2 100644 --- a/apps/abort/main.c +++ b/apps/abort/main.c @@ -46,8 +46,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { (void)src; (void)invoke_id; @@ -85,31 +85,33 @@ static void print_help(const char *filename) { printf("Send BACnet Abort message to the network.\n"); printf("--mac A\n" - "Optional destination BACnet mac address." - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional destination BACnet mac address." + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); - printf("--dnet N\n" + printf( + "--dnet N\n" "Optional destination BACnet network number N for directed requests.\n" "Valid range is from 0 to 65535 where 0 is the local connection\n" "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "Optional BACnet mac address on the destination BACnet network " - "number.\n" - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address on the destination BACnet network " + "number.\n" + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("abort-reason:\n" - " number from 0 to 65535\n" - "invoke-id:\n" - " number from 1 to 255\n" - "server:\n" - " 0=false, 1=true\n"); + " number from 0 to 65535\n" + "invoke-id:\n" + " number from 1 to 255\n" + "server:\n" + " 0=false, 1=true\n"); printf("\n"); - printf("Example:\n" + printf( + "Example:\n" "%s 3 2 1\n", filename); } @@ -214,7 +216,8 @@ int main(int argc, char *argv[]) dlenv_init(); atexit(datalink_cleanup); /* send the request */ - Send_Abort_To_Network(&Handler_Transmit_Buffer[0], &dest, Target_Invoke_ID, + Send_Abort_To_Network( + &Handler_Transmit_Buffer[0], &dest, Target_Invoke_ID, Target_Abort_Reason, Target_Server); return 0; diff --git a/apps/ack-alarm/main.c b/apps/ack-alarm/main.c index 1703c797..79f6f464 100644 --- a/apps/ack-alarm/main.c +++ b/apps/ack-alarm/main.c @@ -51,14 +51,16 @@ static bool Error_Detected = false; * @param error_class [in] the error class * @param error_code [in] the error code */ -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -90,12 +92,13 @@ static void MyAbortHandler( * @param invoke_id [in] the invokeID from the rejected message * @param reject_reason [in] the reason for the rejection */ -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -106,8 +109,8 @@ static void MyRejectHandler( * @param src [in] BACNET_ADDRESS of the source of the message * @param invoke_id [in] the invokeID from the rejected message */ -static void MyWritePropertySimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyWritePropertySimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -143,9 +146,10 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-id process-id\n" - " event-object-type event-object-instance event-state-acked\n" - " event-time-stamp ack-source-name ack-time-stamp\n", + printf( + "Usage: %s device-id process-id\n" + " event-object-type event-object-instance event-state-acked\n" + " event-time-stamp ack-source-name ack-time-stamp\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help]\n"); @@ -154,51 +158,53 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { printf("Send BACnet AcknowledgedAlarm, message to a device.\n"); - printf("device-id:\n" + printf( + "device-id:\n" "BACnet Device Object Instance number that you are trying to\n" "communicate to. This number will be used to try and bind with\n" "the device using Who-Is and I-Am services. For example, if you were\n" "notifying Device Object 123, the device-instance would be 123.\n"); printf("\n"); printf("process-id:\n" - "Process Identifier in the receiving device for which the\n" - "notification is intended.\n"); + "Process Identifier in the receiving device for which the\n" + "notification is intended.\n"); printf("\n"); - printf("event-object-type:\n" + printf( + "event-object-type:\n" "The object type is defined either as the object-type name string\n" "as defined in the BACnet specification, or as the integer value.\n"); printf("\n"); printf("event-object-instance:\n" - "The object instance number of the event object.\n"); + "The object instance number of the event object.\n"); printf("\n"); printf("event-state-acked:\n" - "The event-state that for this alarm acknowledge.\n"); + "The event-state that for this alarm acknowledge.\n"); printf("\n"); printf("event-time-stamp:\n" - "The time-stamp of the event.\n"); + "The time-stamp of the event.\n"); printf("\n"); printf("ack-source-name\n" - "The source name of the alarm acknowledge.\n"); + "The source name of the alarm acknowledge.\n"); printf("\n"); printf("ack-time-stamp\n" - "The time-stamp of the alarm acknowledge.\n"); + "The time-stamp of the alarm acknowledge.\n"); printf("\n"); printf("--mac A\n" - "Optional BACnet mac address." - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address." + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--dnet N\n" - "Optional BACnet network number N for directed requests.\n" - "Valid range is from 0 to 65535 where 0 is the local connection\n" - "and 65535 is network broadcast.\n"); + "Optional BACnet network number N for directed requests.\n" + "Valid range is from 0 to 65535 where 0 is the local connection\n" + "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "Optional BACnet mac address on the destination BACnet network.\n" - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address on the destination BACnet network.\n" + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); (void)filename; } @@ -345,7 +351,8 @@ int main(int argc, char *argv[]) dest.len = 0; } address_add(Target_Device_Object_Instance, MAX_APDU, &dest); - printf("Added Device %u to address cache\n", + printf( + "Added Device %u to address cache\n", Target_Device_Object_Instance); } /* setup my info */ diff --git a/apps/add-list-element/main.c b/apps/add-list-element/main.c index d8ab897b..1c437f44 100644 --- a/apps/add-list-element/main.c +++ b/apps/add-list-element/main.c @@ -57,7 +57,8 @@ static bool Error_Detected = false; /* Used for verbose */ static bool Verbose = false; -static void MyAddListElementErrorHandler(BACNET_ADDRESS *src, +static void MyAddListElementErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t service_choice, uint8_t *service_request, @@ -72,7 +73,8 @@ static void MyAddListElementErrorHandler(BACNET_ADDRESS *src, len = list_element_error_ack_decode( service_request, service_len, &list_element); if (len > 0) { - printf("BACnet Error: %s: %s [first-failed=%u]\n", + printf( + "BACnet Error: %s: %s [first-failed=%u]\n", bactext_error_class_name((int)list_element.error_class), bactext_error_code_name((int)list_element.error_code), (unsigned)list_element.first_failed_element_number); @@ -81,8 +83,8 @@ static void MyAddListElementErrorHandler(BACNET_ADDRESS *src, } } -static void MyAddListElementSimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyAddListElementSimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -102,13 +104,14 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -139,8 +142,9 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance " - "property array-index tag value\n", + printf( + "Usage: %s device-instance object-type object-instance " + "property array-index tag value\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help][--verbose]\n"); @@ -211,10 +215,11 @@ static void print_help(const char *filename) "the Any property type in the schedule object and the Present Value\n" "accepting REAL, BOOLEAN, NULL, etc.\n"); printf("\n"); - printf("Example:\n" - "If you want to AddListElement to the Recipient-List property in\n" - "Notification Class 1 of Device 123, send the following command:\n" - "%s 123 15 1 102 -1 4 100\n", + printf( + "Example:\n" + "If you want to AddListElement to the Recipient-List property in\n" + "Notification Class 1 of Device 123, send the following command:\n" + "%s 123 15 1 102 -1 4 100\n", filename); } @@ -287,8 +292,8 @@ int main(int argc, char *argv[]) if (target_args == 0) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", object_instance, BACNET_MAX_INSTANCE); return 1; } @@ -305,8 +310,8 @@ int main(int argc, char *argv[]) } else if (target_args == 2) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -330,7 +335,8 @@ int main(int argc, char *argv[]) property_array_index = strtol(argv[argi], NULL, 0); Target_Object_Array_Index = property_array_index; if (Verbose) { - printf("Array_Index=%i=%s\n", property_array_index, + printf( + "Array_Index=%i=%s\n", property_array_index, argv[argi]); } target_args++; @@ -357,14 +363,16 @@ int main(int argc, char *argv[]) } else if (tag_value_arg == 1) { value_string = argv[argi]; if (Verbose) { - printf("tag=%ld value=%s\n", property_tag, value_string); + printf( + "tag=%ld value=%s\n", property_tag, value_string); } if (property_tag < 0) { /* find the application tag for internal properties */ property_tag = bacapp_known_property_tag( Target_Object_Type, Target_Object_Property); } else if (property_tag >= MAX_BACNET_APPLICATION_TAG) { - fprintf(stderr, + fprintf( + stderr, "Error: tag=%ld - it must be less than %u\n", property_tag, MAX_BACNET_APPLICATION_TAG); return 1; @@ -374,13 +382,15 @@ int main(int argc, char *argv[]) status = bacapp_parse_application_data( property_tag, value_string, application_value); if (!status) { - fprintf(stderr, + fprintf( + stderr, "Error: unable to parse the tag value\n"); return 1; } } else { /* FIXME: show the expected entry format for the tag */ - fprintf(stderr, + fprintf( + stderr, "Error: unable to parse the known property" " \"%s\"\r\n", value_string); @@ -422,7 +432,8 @@ int main(int argc, char *argv[]) Target_Device_Object_Instance, &max_apdu, &Target_Address); if (found) { if (Verbose) { - printf("Found Device %u in address_cache.\n", + printf( + "Found Device %u in address_cache.\n", Target_Device_Object_Instance); } } else { @@ -435,7 +446,8 @@ int main(int argc, char *argv[]) /* device is bound! */ if (Request_Invoke_ID == 0) { if (Verbose) { - printf("Sending AddListElement to Device %u.\n", + printf( + "Sending AddListElement to Device %u.\n", Target_Device_Object_Instance); } Request_Invoke_ID = Send_Add_List_Element_Request( @@ -465,7 +477,7 @@ int main(int argc, char *argv[]) mstimer_reset(&maintenance_timer); tsm_timer_milliseconds(mstimer_interval(&maintenance_timer)); datalink_maintenance_timer( - mstimer_interval(&maintenance_timer)/1000L); + mstimer_interval(&maintenance_timer) / 1000L); } if (mstimer_expired(&apdu_timer)) { printf("\rError: APDU Timeout!\n"); diff --git a/apps/apdu/main.c b/apps/apdu/main.c index 0b9fa7f8..9c34dd27 100644 --- a/apps/apdu/main.c +++ b/apps/apdu/main.c @@ -57,13 +57,15 @@ static bool BACnet_Debug_Enabled; /** * @brief Print error messages */ -static void MyPrintHandler(const char *hex_ascii, +static void MyPrintHandler( + const char *hex_ascii, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { debug_printf("[{\n"); - debug_printf(" \"%s\": {\n" - " \"error-class\": \"%s\",\n \"error-code\": \"%s\"", + debug_printf( + " \"%s\": {\n" + " \"error-class\": \"%s\",\n \"error-code\": \"%s\"", hex_ascii, bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); debug_printf("\n }\n}]\n"); @@ -78,7 +80,8 @@ static void MyAbortHandler( (void)server; if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - MyPrintHandler(APDU_Hex_ASCII, ERROR_CLASS_SERVICES, + MyPrintHandler( + APDU_Hex_ASCII, ERROR_CLASS_SERVICES, abort_convert_to_error_code(abort_reason)); Error_Detected = true; } @@ -87,12 +90,13 @@ static void MyAbortHandler( /** * @brief Handler for reject messages */ -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - MyPrintHandler(APDU_Hex_ASCII, ERROR_CLASS_SERVICES, + MyPrintHandler( + APDU_Hex_ASCII, ERROR_CLASS_SERVICES, reject_convert_to_error_code(reject_reason)); Error_Detected = true; } @@ -178,17 +182,21 @@ static void print_help(const char *filename) "Default delay is 100ms.\n"); printf("\n"); printf("Example:\n"); - printf("Send an APDU to DNET 123:\n" - "%s 1 --dnet 123 0123456789ABCDEF\n", + printf( + "Send an APDU to DNET 123:\n" + "%s 1 --dnet 123 0123456789ABCDEF\n", filename); - printf("Send an APDU to MAC 10.0.0.1 DNET 123 DADR 05h:\n" - "%s 1 --mac 10.0.0.1 --dnet 123 --dadr 05 0123456789ABCDEF\n", + printf( + "Send an APDU to MAC 10.0.0.1 DNET 123 DADR 05h:\n" + "%s 1 --mac 10.0.0.1 --dnet 123 --dadr 05 0123456789ABCDEF\n", filename); - printf("Send APDU to MAC 10.1.2.3:47808:\n" - "%s 1 --mac 10.1.2.3:47808 0123456789ABCDEF\n", + printf( + "Send APDU to MAC 10.1.2.3:47808:\n" + "%s 1 --mac 10.1.2.3:47808 0123456789ABCDEF\n", filename); - printf("Send an APDU to Device 1:\n" - "%s 1 0123456789ABCDEF\n", + printf( + "Send an APDU to Device 1:\n" + "%s 1 0123456789ABCDEF\n", filename); } @@ -228,8 +236,8 @@ static void Send_APDU_To_Network( * @param ascii_hex [in] The string of ASCII hex. * @return number of bytes converted, or 0 if error. */ -static size_t ascii_hex_to_binary( - uint8_t *buffer, size_t buffer_size, const char *ascii_hex) +static size_t +ascii_hex_to_binary(uint8_t *buffer, size_t buffer_size, const char *ascii_hex) { unsigned index = 0; /* offset into buffer */ uint8_t value = 0; @@ -401,7 +409,8 @@ int main(int argc, char *argv[]) Target_Device_Object_Instance, &max_apdu, &Target_Address); if (found) { if (BACnet_Debug_Enabled) { - debug_printf("Found Device %u in address_cache.\n", + debug_printf( + "Found Device %u in address_cache.\n", Target_Device_Object_Instance); } } else { @@ -432,7 +441,8 @@ int main(int argc, char *argv[]) if (found) { /* device is bound! */ if (BACnet_Debug_Enabled) { - printf("Sending APDU to Device %u.\n", + printf( + "Sending APDU to Device %u.\n", Target_Device_Object_Instance); } if (mstimer_expired(&apdu_timer)) { diff --git a/apps/blinkt/blinkt.c b/apps/blinkt/blinkt.c index 5e0953a8..a7d55afe 100644 --- a/apps/blinkt/blinkt.c +++ b/apps/blinkt/blinkt.c @@ -52,8 +52,9 @@ void blinkt_clear(void) */ void blinkt_set_pixel(uint8_t led, uint8_t r, uint8_t g, uint8_t b) { - if (led >= BLINKT_NUM_LEDS) + if (led >= BLINKT_NUM_LEDS) { return; + } Blinkt_LED[led] = blinkt_rgbb(r, g, b, Blinkt_LED[led] & 0x1F); } @@ -65,8 +66,9 @@ void blinkt_set_pixel(uint8_t led, uint8_t r, uint8_t g, uint8_t b) */ void blinkt_set_pixel_brightness(uint8_t led, uint8_t brightness) { - if (led >= BLINKT_NUM_LEDS) + if (led >= BLINKT_NUM_LEDS) { return; + } Blinkt_LED[led] = (Blinkt_LED[led] & 0xFFFFFF00) | (brightness & 0x1F); } @@ -78,8 +80,9 @@ void blinkt_set_pixel_brightness(uint8_t led, uint8_t brightness) */ void blinkt_set_pixel_uint32(uint8_t led, uint32_t color) { - if (led >= BLINKT_NUM_LEDS) + if (led >= BLINKT_NUM_LEDS) { return; + } Blinkt_LED[led] = color; } @@ -206,8 +209,9 @@ void blinkt_test_task(void) } blinkt_show(); test_y += 1; - if (test_y > 254) + if (test_y > 254) { test_column++; + } test_column %= 3; test_y %= 255; } diff --git a/apps/blinkt/device.c b/apps/blinkt/device.c index 6e309054..afe28b4b 100644 --- a/apps/blinkt/device.c +++ b/apps/blinkt/device.c @@ -48,76 +48,172 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data); static object_functions_t *Object_Table; static object_functions_t My_Object_Table[] = { - { OBJECT_DEVICE, NULL /* Init - don't init Device or it will recourse! */, - Device_Count, Device_Index_To_Instance, - Device_Valid_Object_Instance_Number, Device_Object_Name, - Device_Read_Property_Local, Device_Write_Property_Local, - Device_Property_Lists, DeviceGetRRInfo, NULL /* Iterator */, - NULL /* Value_Lists */, NULL /* COV */, NULL /* COV Clear */, - NULL /* Intrinsic Reporting */, NULL /* Add_List_Element */, - NULL /* Remove_List_Element */, NULL /* Create */, NULL /* Delete */, - NULL /* Timer */ }, + { OBJECT_DEVICE, + NULL /* Init - don't init Device or it will recourse! */, + Device_Count, + Device_Index_To_Instance, + Device_Valid_Object_Instance_Number, + Device_Object_Name, + Device_Read_Property_Local, + Device_Write_Property_Local, + Device_Property_Lists, + DeviceGetRRInfo, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, #if (BACNET_PROTOCOL_REVISION >= 17) - { OBJECT_NETWORK_PORT, Network_Port_Init, Network_Port_Count, - Network_Port_Index_To_Instance, Network_Port_Valid_Instance, - Network_Port_Object_Name, Network_Port_Read_Property, - Network_Port_Write_Property, Network_Port_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, + { OBJECT_NETWORK_PORT, + Network_Port_Init, + Network_Port_Count, + Network_Port_Index_To_Instance, + Network_Port_Valid_Instance, + Network_Port_Object_Name, + Network_Port_Read_Property, + Network_Port_Write_Property, + Network_Port_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, #endif - { OBJECT_LOAD_CONTROL, Load_Control_Init, Load_Control_Count, - Load_Control_Index_To_Instance, Load_Control_Valid_Instance, - Load_Control_Object_Name, Load_Control_Read_Property, - Load_Control_Write_Property, Load_Control_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, + { OBJECT_LOAD_CONTROL, + Load_Control_Init, + Load_Control_Count, + Load_Control_Index_To_Instance, + Load_Control_Valid_Instance, + Load_Control_Object_Name, + Load_Control_Read_Property, + Load_Control_Write_Property, + Load_Control_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, #if (BACNET_PROTOCOL_REVISION >= 14) - { OBJECT_LIGHTING_OUTPUT, Lighting_Output_Init, Lighting_Output_Count, - Lighting_Output_Index_To_Instance, Lighting_Output_Valid_Instance, - Lighting_Output_Object_Name, Lighting_Output_Read_Property, - Lighting_Output_Write_Property, Lighting_Output_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - Lighting_Output_Create, Lighting_Output_Delete, Lighting_Output_Timer }, - { OBJECT_CHANNEL, Channel_Init, Channel_Count, Channel_Index_To_Instance, - Channel_Valid_Instance, Channel_Object_Name, Channel_Read_Property, - Channel_Write_Property, Channel_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - Channel_Create, Channel_Delete, NULL /* Timer */ }, + { OBJECT_LIGHTING_OUTPUT, + Lighting_Output_Init, + Lighting_Output_Count, + Lighting_Output_Index_To_Instance, + Lighting_Output_Valid_Instance, + Lighting_Output_Object_Name, + Lighting_Output_Read_Property, + Lighting_Output_Write_Property, + Lighting_Output_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + Lighting_Output_Create, + Lighting_Output_Delete, + Lighting_Output_Timer }, + { OBJECT_CHANNEL, + Channel_Init, + Channel_Count, + Channel_Index_To_Instance, + Channel_Valid_Instance, + Channel_Object_Name, + Channel_Read_Property, + Channel_Write_Property, + Channel_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + Channel_Create, + Channel_Delete, + NULL /* Timer */ }, #endif #if (BACNET_PROTOCOL_REVISION >= 24) - { OBJECT_COLOR, Color_Init, Color_Count, Color_Index_To_Instance, - Color_Valid_Instance, Color_Object_Name, Color_Read_Property, - Color_Write_Property, Color_Property_Lists, NULL /* ReadRangeInfo */, - NULL /* Iterator */, NULL /* Value_Lists */, NULL /* COV */, - NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - Color_Create, Color_Delete, Color_Timer }, - { OBJECT_COLOR_TEMPERATURE, Color_Temperature_Init, Color_Temperature_Count, - Color_Temperature_Index_To_Instance, Color_Temperature_Valid_Instance, - Color_Temperature_Object_Name, Color_Temperature_Read_Property, - Color_Temperature_Write_Property, Color_Temperature_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - Color_Temperature_Create, Color_Temperature_Delete, - Color_Temperature_Timer }, + { OBJECT_COLOR, + Color_Init, + Color_Count, + Color_Index_To_Instance, + Color_Valid_Instance, + Color_Object_Name, + Color_Read_Property, + Color_Write_Property, + Color_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + Color_Create, + Color_Delete, + Color_Timer }, + { OBJECT_COLOR_TEMPERATURE, + Color_Temperature_Init, + Color_Temperature_Count, + Color_Temperature_Index_To_Instance, + Color_Temperature_Valid_Instance, + Color_Temperature_Object_Name, + Color_Temperature_Read_Property, + Color_Temperature_Write_Property, + Color_Temperature_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + Color_Temperature_Create, + Color_Temperature_Delete, + Color_Temperature_Timer }, #endif - { MAX_BACNET_OBJECT_TYPE, NULL /* Init */, NULL /* Count */, - NULL /* Index_To_Instance */, NULL /* Valid_Instance */, - NULL /* Object_Name */, NULL /* Read_Property */, - NULL /* Write_Property */, NULL /* Property_Lists */, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ } + { MAX_BACNET_OBJECT_TYPE, + NULL /* Init */, + NULL /* Count */, + NULL /* Index_To_Instance */, + NULL /* Valid_Instance */, + NULL /* Object_Name */, + NULL /* Read_Property */, + NULL /* Write_Property */, + NULL /* Property_Lists */, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ } }; /** Glue function to let the Device object, when called by a handler, @@ -128,8 +224,8 @@ static object_functions_t My_Object_Table[] = { * @return Pointer to the group of object helper functions that implement this * type of Object. */ -static struct object_functions *Device_Objects_Find_Functions( - BACNET_OBJECT_TYPE Object_Type) +static struct object_functions * +Device_Objects_Find_Functions(BACNET_OBJECT_TYPE Object_Type) { struct object_functions *pObject = NULL; @@ -175,7 +271,8 @@ rr_info_function Device_Objects_RR_Info(BACNET_OBJECT_TYPE object_type) * list, separately, the Required, Optional, and Proprietary object * properties with their counts. */ -void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, +void Device_Objects_Property_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, struct special_property_list_t *pPropertyList) { @@ -193,8 +290,9 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, pObject = Device_Objects_Find_Functions(object_type); if ((pObject != NULL) && (pObject->Object_RPM_List != NULL)) { - pObject->Object_RPM_List(&pPropertyList->Required.pList, - &pPropertyList->Optional.pList, &pPropertyList->Proprietary.pList); + pObject->Object_RPM_List( + &pPropertyList->Required.pList, &pPropertyList->Optional.pList, + &pPropertyList->Proprietary.pList); } /* Fetch the counts if available otherwise zero them */ @@ -214,25 +312,47 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, } /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Device_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_SYSTEM_STATUS, PROP_VENDOR_NAME, - PROP_VENDOR_IDENTIFIER, PROP_MODEL_NAME, PROP_FIRMWARE_REVISION, - PROP_APPLICATION_SOFTWARE_VERSION, PROP_PROTOCOL_VERSION, - PROP_PROTOCOL_REVISION, PROP_PROTOCOL_SERVICES_SUPPORTED, - PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, PROP_OBJECT_LIST, - PROP_MAX_APDU_LENGTH_ACCEPTED, PROP_SEGMENTATION_SUPPORTED, - PROP_APDU_TIMEOUT, PROP_NUMBER_OF_APDU_RETRIES, PROP_DEVICE_ADDRESS_BINDING, - PROP_DATABASE_REVISION, -1 }; +static const int Device_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_SYSTEM_STATUS, + PROP_VENDOR_NAME, + PROP_VENDOR_IDENTIFIER, + PROP_MODEL_NAME, + PROP_FIRMWARE_REVISION, + PROP_APPLICATION_SOFTWARE_VERSION, + PROP_PROTOCOL_VERSION, + PROP_PROTOCOL_REVISION, + PROP_PROTOCOL_SERVICES_SUPPORTED, + PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, + PROP_OBJECT_LIST, + PROP_MAX_APDU_LENGTH_ACCEPTED, + PROP_SEGMENTATION_SUPPORTED, + PROP_APDU_TIMEOUT, + PROP_NUMBER_OF_APDU_RETRIES, + PROP_DEVICE_ADDRESS_BINDING, + PROP_DATABASE_REVISION, + -1 +}; static const int Device_Properties_Optional[] = { #if defined(BACDL_MSTP) - PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, + PROP_MAX_MASTER, + PROP_MAX_INFO_FRAMES, #endif - PROP_DESCRIPTION, PROP_LOCAL_TIME, PROP_UTC_OFFSET, PROP_LOCAL_DATE, - PROP_DAYLIGHT_SAVINGS_STATUS, PROP_LOCATION, PROP_ACTIVE_COV_SUBSCRIPTIONS, + PROP_DESCRIPTION, + PROP_LOCAL_TIME, + PROP_UTC_OFFSET, + PROP_LOCAL_DATE, + PROP_DAYLIGHT_SAVINGS_STATUS, + PROP_LOCATION, + PROP_ACTIVE_COV_SUBSCRIPTIONS, #if defined(BACNET_TIME_MASTER) - PROP_TIME_SYNCHRONIZATION_RECIPIENTS, PROP_TIME_SYNCHRONIZATION_INTERVAL, - PROP_ALIGN_INTERVALS, PROP_INTERVAL_OFFSET, + PROP_TIME_SYNCHRONIZATION_RECIPIENTS, + PROP_TIME_SYNCHRONIZATION_INTERVAL, + PROP_ALIGN_INTERVALS, + PROP_INTERVAL_OFFSET, #endif -1 }; @@ -803,7 +923,8 @@ int Device_Object_List_Element_Encode( * Object. * @return True on success or else False if not found. */ -bool Device_Valid_Object_Name(BACNET_CHARACTER_STRING *object_name1, +bool Device_Valid_Object_Name( + BACNET_CHARACTER_STRING *object_name1, BACNET_OBJECT_TYPE *object_type, uint32_t *object_instance) { @@ -822,7 +943,7 @@ bool Device_Valid_Object_Name(BACNET_CHARACTER_STRING *object_name1, pObject = Device_Objects_Find_Functions(type); if ((pObject != NULL) && (pObject->Object_Name != NULL) && (pObject->Object_Name(instance, &object_name2) && - characterstring_same(object_name1, &object_name2))) { + characterstring_same(object_name1, &object_name2))) { found = true; if (object_type) { *object_type = type; @@ -863,7 +984,8 @@ bool Device_Valid_Object_Id( * @param object_name [out] The Object Name found for this child Object. * @return True on success or else False if not found. */ -bool Device_Object_Name_Copy(BACNET_OBJECT_TYPE object_type, +bool Device_Object_Name_Copy( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_CHARACTER_STRING *object_name) { @@ -1081,7 +1203,8 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_init(&bit_string); for (i = 0; i < MAX_BACNET_SERVICES_SUPPORTED; i++) { /* automatic lookup based on handlers set */ - bitstring_set_bit(&bit_string, (uint8_t)i, + bitstring_set_bit( + &bit_string, (uint8_t)i, apdu_service_supported((BACNET_SERVICES_SUPPORTED)i)); } apdu_len = encode_application_bitstring(&apdu[0], &bit_string); @@ -1108,9 +1231,9 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_OBJECT_LIST: count = Device_Object_List_Count(); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Device_Object_List_Element_Encode, count, - apdu, apdu_max); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Device_Object_List_Element_Encode, count, apdu, apdu_max); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -1233,8 +1356,9 @@ static int Read_Property_Common( } else if (rpdata->object_property == PROP_PROPERTY_LIST) { Device_Objects_Property_List( rpdata->object_type, rpdata->object_instance, &property_list); - apdu_len = property_list_encode(rpdata, property_list.Required.pList, - property_list.Optional.pList, property_list.Proprietary.pList); + apdu_len = property_list_encode( + rpdata, property_list.Required.pList, property_list.Optional.pList, + property_list.Proprietary.pList); #endif } else if (pObject->Object_Read_Property) { apdu_len = pObject->Object_Read_Property(rpdata); @@ -1372,8 +1496,9 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, characterstring_capacity(&My_Object_Name)); if (status) { /* All the object names in a device must be unique */ - if (Device_Valid_Object_Name(&value.type.Character_String, - &object_type, &object_instance)) { + if (Device_Valid_Object_Name( + &value.type.Character_String, &object_type, + &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { /* writing same name to same object */ @@ -1737,7 +1862,8 @@ int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA *list_element) * @param [out] The value list * @return True if the object instance supports this feature and value changed. */ -bool Device_Encode_Value_List(BACNET_OBJECT_TYPE object_type, +bool Device_Encode_Value_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list) { @@ -1822,7 +1948,8 @@ bool Device_Create_Object(BACNET_CREATE_OBJECT_DATA *data) object for some other reason.*/ data->error_class = ERROR_CLASS_OBJECT; data->error_code = ERROR_CODE_DYNAMIC_CREATION_NOT_SUPPORTED; - } else if (pObject->Object_Valid_Instance && + } else if ( + pObject->Object_Valid_Instance && pObject->Object_Valid_Instance(data->object_instance)) { /* The object being created already exists */ data->error_class = ERROR_CLASS_OBJECT; @@ -1880,7 +2007,8 @@ bool Device_Delete_Object(BACNET_DELETE_OBJECT_DATA *data) object for some reason.*/ data->error_class = ERROR_CLASS_OBJECT; data->error_code = ERROR_CODE_OBJECT_DELETION_NOT_PERMITTED; - } else if (pObject->Object_Valid_Instance && + } else if ( + pObject->Object_Valid_Instance && pObject->Object_Valid_Instance(data->object_instance)) { /* The object being deleted must already exist */ status = pObject->Object_Delete(data->object_instance); @@ -1955,7 +2083,8 @@ void Device_Init(object_functions_t *object_table) #endif } -bool DeviceGetRRInfo(BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ +bool DeviceGetRRInfo( + BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ RR_PROP_INFO *pInfo) { /* Where to put the response */ bool status = false; /* return value */ diff --git a/apps/blinkt/main.c b/apps/blinkt/main.c index 915aa011..c7e29990 100644 --- a/apps/blinkt/main.c +++ b/apps/blinkt/main.c @@ -100,7 +100,8 @@ static void Init_Service_Handlers(void) apdu_set_unconfirmed_handler( SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); /* configure the cyclic timers */ mstimer_set(&BACnet_Task_Timer, 1000UL); @@ -141,7 +142,8 @@ static void Lighting_Output_Write_Value_Handler( brightness = 0; } blinkt_set_pixel_brightness(index, brightness); - printf("LED[%u]=%.1f%% (%u)\n", (unsigned)index, value, + printf( + "LED[%u]=%.1f%% (%u)\n", (unsigned)index, value, (unsigned)brightness); } } @@ -165,7 +167,8 @@ static void Color_Temperature_Write_Value_Handler( if (index < blinkt_led_count()) { color_rgb_from_temperature(value, &red, &green, &blue); blinkt_set_pixel(index, red, green, blue); - printf("%u Kelvin RGB[%u]=%u,%u,%u\n", (unsigned)value, (unsigned)index, + printf( + "%u Kelvin RGB[%u]=%u,%u,%u\n", (unsigned)value, (unsigned)index, (unsigned)red, (unsigned)green, (unsigned)blue); } } @@ -176,7 +179,8 @@ static void Color_Temperature_Write_Value_Handler( * @param old_value - BACnetXYColor value prior to write * @param value - BACnetXYColor value of the write */ -static void Color_Write_Value_Handler(uint32_t object_instance, +static void Color_Write_Value_Handler( + uint32_t object_instance, BACNET_XY_COLOR *old_value, BACNET_XY_COLOR *value) { @@ -189,12 +193,14 @@ static void Color_Write_Value_Handler(uint32_t object_instance, index = object_instance - 1; } if (index < blinkt_led_count()) { - color_rgb_from_xy(&red, &green, &blue, value->x_coordinate, - value->y_coordinate, brightness_percent); + color_rgb_from_xy( + &red, &green, &blue, value->x_coordinate, value->y_coordinate, + brightness_percent); blinkt_set_pixel(index, red, green, blue); - printf("x,y=%0.2f,%0.2f(%.1f%%) RGB[%u]=%u,%u,%u\n", - value->x_coordinate, value->y_coordinate, brightness_percent, - (unsigned)index, (unsigned)red, (unsigned)green, (unsigned)blue); + printf( + "x,y=%0.2f,%0.2f(%.1f%%) RGB[%u]=%u,%u,%u\n", value->x_coordinate, + value->y_coordinate, brightness_percent, (unsigned)index, + (unsigned)red, (unsigned)green, (unsigned)blue); } } @@ -315,8 +321,9 @@ static void print_help(const char *filename) printf("--test:\n" "Test the Blinkt! RGB LEDs with a cycling pattern.\n"); printf("\n"); - printf("Example:\n" - "%s 9009\n", + printf( + "Example:\n" + "%s 9009\n", filename); } @@ -375,15 +382,17 @@ int main(int argc, char *argv[]) } } if (device_id > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device=%u - not greater than %u\n", device_id, + fprintf( + stderr, "device=%u - not greater than %u\n", device_id, BACNET_MAX_INSTANCE); return 1; } Device_Set_Object_Instance_Number(device_id); - printf("BACnet Raspberry Pi Blinkt! Demo\n" - "BACnet Stack Version %s\n" - "BACnet Device ID: %u\n" - "Max APDU: %d\n", + printf( + "BACnet Raspberry Pi Blinkt! Demo\n" + "BACnet Stack Version %s\n" + "BACnet Device ID: %u\n" + "Max APDU: %d\n", BACnet_Version, Device_Object_Instance_Number(), MAX_APDU); /* load any static address bindings to show up in our device bindings list */ diff --git a/apps/create-object/main.c b/apps/create-object/main.c index 6cb38be5..3e808fef 100644 --- a/apps/create-object/main.c +++ b/apps/create-object/main.c @@ -63,22 +63,24 @@ static void MyPrintHandler( BACNET_ERROR_CODE error_code, uint32_t first_failed_element_number) { - printf("[{\n \"%s\": {\n" + printf( + "[{\n \"%s\": {\n" " \"object-type\": \"%s\",\n \"object-instance\": %lu,\n" " \"error-class\": \"%s\",\n \"error-code\": \"%s\"", bactext_confirmed_service_name(SERVICE_CONFIRMED_CREATE_OBJECT), - bactext_object_type_name(object_type), - (unsigned long)object_instance, + bactext_object_type_name(object_type), (unsigned long)object_instance, bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); if (first_failed_element_number > 0) { - printf(",\n \"first-failed-element-number\": %lu", + printf( + ",\n \"first-failed-element-number\": %lu", (unsigned long)first_failed_element_number); } printf("\n }\n}]\n"); } -static void MyCreateObjectErrorHandler(BACNET_ADDRESS *src, +static void MyCreateObjectErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t service_choice, uint8_t *service_request, @@ -90,18 +92,19 @@ static void MyCreateObjectErrorHandler(BACNET_ADDRESS *src, (void)service_choice; if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - len = create_object_error_ack_service_decode(service_request, - service_len, &data); + len = create_object_error_ack_service_decode( + service_request, service_len, &data); if (len > 0) { - MyPrintHandler(data.object_type, data.object_instance, - data.error_class, data.error_code, - data.first_failed_element_number); + MyPrintHandler( + data.object_type, data.object_instance, data.error_class, + data.error_code, data.first_failed_element_number); } Error_Detected = true; } } -static void MyCreateObjectAckHandler(uint8_t *service_request, +static void MyCreateObjectAckHandler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -114,11 +117,13 @@ static void MyCreateObjectAckHandler(uint8_t *service_request, len = create_object_ack_service_decode( service_request, service_len, &data); if (len < 0) { - MyPrintHandler(Target_Object_Type, Target_Object_Instance, + MyPrintHandler( + Target_Object_Type, Target_Object_Instance, ERROR_CLASS_SERVICES, ERROR_CODE_REJECT_OTHER, 0); } else { - MyPrintHandler(data.object_type, data.object_instance, - ERROR_CLASS_SERVICES, ERROR_CODE_SUCCESS, 0); + MyPrintHandler( + data.object_type, data.object_instance, ERROR_CLASS_SERVICES, + ERROR_CODE_SUCCESS, 0); } } else { if (Verbose) { @@ -133,20 +138,21 @@ static void MyAbortHandler( (void)server; if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - MyPrintHandler(Target_Object_Type, Target_Object_Instance, - ERROR_CLASS_SERVICES, abort_convert_to_error_code(abort_reason), 0); + MyPrintHandler( + Target_Object_Type, Target_Object_Instance, ERROR_CLASS_SERVICES, + abort_convert_to_error_code(abort_reason), 0); Error_Detected = true; } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - MyPrintHandler(Target_Object_Type, Target_Object_Instance, - ERROR_CLASS_SERVICES, + MyPrintHandler( + Target_Object_Type, Target_Object_Instance, ERROR_CLASS_SERVICES, reject_convert_to_error_code(reject_reason), 0); Error_Detected = true; } @@ -207,10 +213,11 @@ static void print_help(const char *filename) "you are creating. For example, if you were writing\n" "Analog Output 2, the object-instance would be 2.\n"); printf("\n"); - printf("Example:\n" - "If you want to CreateObject of an Analog Input 1\n" - "send the following command:\n" - "%s 123 0 1\n", + printf( + "Example:\n" + "If you want to CreateObject of an Analog Input 1\n" + "send the following command:\n" + "%s 123 0 1\n", filename); } @@ -275,8 +282,8 @@ int main(int argc, char *argv[]) if (target_args == 0) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", object_instance, BACNET_MAX_INSTANCE); return 1; } @@ -293,8 +300,8 @@ int main(int argc, char *argv[]) } else if (target_args == 2) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "object-instance=%u - not greater than %u\n", + fprintf( + stderr, "object-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -328,7 +335,8 @@ int main(int argc, char *argv[]) Target_Device_Object_Instance, &max_apdu, &Target_Address); if (found) { if (Verbose) { - printf("Found Device %u in address_cache.\n", + printf( + "Found Device %u in address_cache.\n", Target_Device_Object_Instance); } } else { @@ -341,16 +349,18 @@ int main(int argc, char *argv[]) /* device is bound! */ if (Request_Invoke_ID == 0) { if (Verbose) { - printf("Sending CreateObject to Device %u.\n", + printf( + "Sending CreateObject to Device %u.\n", Target_Device_Object_Instance); } - Request_Invoke_ID = - Send_Create_Object_Request(Target_Device_Object_Instance, - Target_Object_Type, Target_Object_Instance); + Request_Invoke_ID = Send_Create_Object_Request( + Target_Device_Object_Instance, Target_Object_Type, + Target_Object_Instance); } else if (tsm_invoke_id_free(Request_Invoke_ID)) { break; } else if (tsm_invoke_id_failed(Request_Invoke_ID)) { - MyPrintHandler(Target_Object_Type, Target_Object_Instance, + MyPrintHandler( + Target_Object_Type, Target_Object_Instance, ERROR_CLASS_COMMUNICATION, ERROR_CODE_ABORT_TSM_TIMEOUT, 0); tsm_free_invoke_id(Request_Invoke_ID); Error_Detected = true; @@ -371,10 +381,11 @@ int main(int argc, char *argv[]) mstimer_reset(&maintenance_timer); tsm_timer_milliseconds(mstimer_interval(&maintenance_timer)); datalink_maintenance_timer( - mstimer_interval(&maintenance_timer)/1000L); + mstimer_interval(&maintenance_timer) / 1000L); } if (mstimer_expired(&apdu_timer)) { - MyPrintHandler(Target_Object_Type, Target_Object_Instance, + MyPrintHandler( + Target_Object_Type, Target_Object_Instance, ERROR_CLASS_COMMUNICATION, ERROR_CODE_ABORT_APPLICATION_EXCEEDED_REPLY_TIME, 0); Error_Detected = true; diff --git a/apps/dcc/main.c b/apps/dcc/main.c index 95114c12..cd77caad 100644 --- a/apps/dcc/main.c +++ b/apps/dcc/main.c @@ -46,7 +46,8 @@ static char *Communication_Password = NULL; static bool Error_Detected = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -54,7 +55,8 @@ static void MyErrorHandler(BACNET_ADDRESS *src, /* FIXME: verify src and invoke id */ (void)src; (void)invoke_id; - printf("BACnet Error: %s: %s\n", bactext_error_class_name(error_class), + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name(error_class), bactext_error_code_name(error_code)); Error_Detected = true; } @@ -70,8 +72,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -103,7 +105,8 @@ static void Init_Service_Handlers(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); /* handle the ack coming back */ apdu_set_confirmed_simple_ack_handler( @@ -190,7 +193,8 @@ int main(int argc, char *argv[]) Communication_Password = argv[4]; } if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } diff --git a/apps/delete-object/main.c b/apps/delete-object/main.c index 16f96631..d9aae7b9 100644 --- a/apps/delete-object/main.c +++ b/apps/delete-object/main.c @@ -56,11 +56,11 @@ static bool Error_Detected = false; /* Used for verbose */ static bool Verbose = false; -static void MyPrintHandler( - BACNET_ERROR_CLASS error_class, - BACNET_ERROR_CODE error_code) +static void +MyPrintHandler(BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { - printf("[{\n \"%s\": {\n" + printf( + "[{\n \"%s\": {\n" " \"object-type\": \"%s\",\n \"object-instance\": %lu,\n" " \"error-class\": \"%s\",\n \"error-code\": \"%s\"\n }\n}]\n", bactext_confirmed_service_name(SERVICE_CONFIRMED_DELETE_OBJECT), @@ -70,7 +70,8 @@ static void MyPrintHandler( bactext_error_code_name((int)error_code)); } -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -82,8 +83,7 @@ static void MyErrorHandler(BACNET_ADDRESS *src, } } -static void MySimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void MySimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -97,19 +97,19 @@ static void MyAbortHandler( (void)server; if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - MyPrintHandler(ERROR_CLASS_SERVICES, - abort_convert_to_error_code(abort_reason)); + MyPrintHandler( + ERROR_CLASS_SERVICES, abort_convert_to_error_code(abort_reason)); Error_Detected = true; } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - MyPrintHandler(ERROR_CLASS_SERVICES, - reject_convert_to_error_code(reject_reason)); + MyPrintHandler( + ERROR_CLASS_SERVICES, reject_convert_to_error_code(reject_reason)); Error_Detected = true; } } @@ -138,8 +138,7 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance\n", - filename); + printf("Usage: %s device-instance object-type object-instance\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help][--verbose]\n"); } @@ -168,10 +167,11 @@ static void print_help(const char *filename) "you are deleting. For example, if you were deleting\n" "Analog Output 2, the object-instance would be 2.\n"); printf("\n"); - printf("Example:\n" - "If you want to DeleteObject an Analog Input 1\n" - "send the following command:\n" - "%s 123 0 1\n", + printf( + "Example:\n" + "If you want to DeleteObject an Analog Input 1\n" + "send the following command:\n" + "%s 123 0 1\n", filename); } @@ -236,8 +236,8 @@ int main(int argc, char *argv[]) if (target_args == 0) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", object_instance, BACNET_MAX_INSTANCE); return 1; } @@ -254,8 +254,8 @@ int main(int argc, char *argv[]) } else if (target_args == 2) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "object-instance=%u - not greater than %u\n", + fprintf( + stderr, "object-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -289,7 +289,8 @@ int main(int argc, char *argv[]) Target_Device_Object_Instance, &max_apdu, &Target_Address); if (found) { if (Verbose) { - printf("Found Device %u in address_cache.\n", + printf( + "Found Device %u in address_cache.\n", Target_Device_Object_Instance); } } else { @@ -302,7 +303,8 @@ int main(int argc, char *argv[]) /* device is bound! */ if (Request_Invoke_ID == 0) { if (Verbose) { - printf("Sending DeleteObject to Device %u.\n", + printf( + "Sending DeleteObject to Device %u.\n", Target_Device_Object_Instance); } Request_Invoke_ID = Send_Delete_Object_Request( @@ -311,8 +313,8 @@ int main(int argc, char *argv[]) } else if (tsm_invoke_id_free(Request_Invoke_ID)) { break; } else if (tsm_invoke_id_failed(Request_Invoke_ID)) { - MyPrintHandler(ERROR_CLASS_COMMUNICATION, - ERROR_CODE_ABORT_TSM_TIMEOUT); + MyPrintHandler( + ERROR_CLASS_COMMUNICATION, ERROR_CODE_ABORT_TSM_TIMEOUT); tsm_free_invoke_id(Request_Invoke_ID); Error_Detected = true; /* abort */ @@ -332,10 +334,11 @@ int main(int argc, char *argv[]) mstimer_reset(&maintenance_timer); tsm_timer_milliseconds(mstimer_interval(&maintenance_timer)); datalink_maintenance_timer( - mstimer_interval(&maintenance_timer)/1000L); + mstimer_interval(&maintenance_timer) / 1000L); } if (mstimer_expired(&apdu_timer)) { - MyPrintHandler(ERROR_CLASS_COMMUNICATION, + MyPrintHandler( + ERROR_CLASS_COMMUNICATION, ERROR_CODE_ABORT_APPLICATION_EXCEEDED_REPLY_TIME); Error_Detected = true; } diff --git a/apps/epics/bacepics.h b/apps/epics/bacepics.h index 7d7bcd16..bf167d5d 100644 --- a/apps/epics/bacepics.h +++ b/apps/epics/bacepics.h @@ -67,19 +67,23 @@ * @ingroup BACEPICS */ typedef enum { - /** Initial state to establish a binding with the target device. */ + /** Initial state to establish a binding with the target device. */ INITIAL_BINDING, - /** Get selected device information and put out the heading information. */ - GET_HEADING_INFO, GET_HEADING_RESPONSE, PRINT_HEADING, - /** Getting ALL properties and values at once with RPM. */ - GET_ALL_REQUEST, GET_ALL_RESPONSE, - /** Getting ALL properties with array index = 0, just to get the list. */ - GET_LIST_OF_ALL_REQUEST, GET_LIST_OF_ALL_RESPONSE, - /** Processing the properties individually with ReadProperty. */ - GET_PROPERTY_REQUEST, GET_PROPERTY_RESPONSE, - /** Done with this Object; move onto the next. */ + /** Get selected device information and put out the heading information. */ + GET_HEADING_INFO, + GET_HEADING_RESPONSE, + PRINT_HEADING, + /** Getting ALL properties and values at once with RPM. */ + GET_ALL_REQUEST, + GET_ALL_RESPONSE, + /** Getting ALL properties with array index = 0, just to get the list. */ + GET_LIST_OF_ALL_REQUEST, + GET_LIST_OF_ALL_RESPONSE, + /** Processing the properties individually with ReadProperty. */ + GET_PROPERTY_REQUEST, + GET_PROPERTY_RESPONSE, + /** Done with this Object; move onto the next. */ NEXT_OBJECT } EPICS_STATES; - #endif /* BACEPICS_H_ */ diff --git a/apps/epics/main.c b/apps/epics/main.c index e7eedf43..844d50d9 100644 --- a/apps/epics/main.c +++ b/apps/epics/main.c @@ -11,7 +11,7 @@ #include #include #include /* for time */ -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) #include #endif #include @@ -117,10 +117,12 @@ struct property_value_list_t { BACNET_APPLICATION_DATA_VALUE *value; }; static struct property_value_list_t Property_Value_List[] = { - { PROP_VENDOR_NAME, NULL }, { PROP_MODEL_NAME, NULL }, + { PROP_VENDOR_NAME, NULL }, + { PROP_MODEL_NAME, NULL }, { PROP_MAX_APDU_LENGTH_ACCEPTED, NULL }, { PROP_PROTOCOL_SERVICES_SUPPORTED, NULL }, - { PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, NULL }, { PROP_DESCRIPTION, NULL }, + { PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, NULL }, + { PROP_DESCRIPTION, NULL }, { -1, NULL } }; @@ -161,7 +163,8 @@ static bool Optional_Properties = false; #define PRINT_ERRORS 1 #endif -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -170,7 +173,8 @@ static void MyErrorHandler(BACNET_ADDRESS *src, (invoke_id == Request_Invoke_ID)) { #if PRINT_ERRORS if (ShowValues) { - fprintf(stderr, "-- BACnet Error: %s: %s\n", + fprintf( + stderr, "-- BACnet Error: %s: %s\n", bactext_error_class_name(error_class), bactext_error_code_name(error_code)); } @@ -190,7 +194,8 @@ static void MyAbortHandler( #if PRINT_ERRORS /* It is normal for this to fail, so don't print. */ if ((myState != GET_ALL_RESPONSE) && !IsLongArray && ShowValues) { - fprintf(stderr, "-- BACnet Abort: %s \n", + fprintf( + stderr, "-- BACnet Abort: %s \n", bactext_abort_reason_name(abort_reason)); } #endif @@ -205,14 +210,15 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { #if PRINT_ERRORS if (ShowValues) { - fprintf(stderr, "BACnet Reject: %s\n", + fprintf( + stderr, "BACnet Reject: %s\n", bactext_reject_reason_name(reject_reason)); } #endif @@ -227,7 +233,8 @@ static void MyRejectHandler( } } -static void MyReadPropertyAckHandler(uint8_t *service_request, +static void MyReadPropertyAckHandler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -243,7 +250,8 @@ static void MyReadPropertyAckHandler(uint8_t *service_request, service_request, service_len, rp_data); } if (len > 0) { - memmove(&Read_Property_Multiple_Data.service_data, service_data, + memmove( + &Read_Property_Multiple_Data.service_data, service_data, sizeof(BACNET_CONFIRMED_SERVICE_ACK_DATA)); Read_Property_Multiple_Data.rpm_data = rp_data; Read_Property_Multiple_Data.new_data = true; @@ -256,7 +264,8 @@ static void MyReadPropertyAckHandler(uint8_t *service_request, } } -static void MyReadPropertyMultipleAckHandler(uint8_t *service_request, +static void MyReadPropertyMultipleAckHandler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -272,7 +281,8 @@ static void MyReadPropertyMultipleAckHandler(uint8_t *service_request, service_request, service_len, rpm_data); } if (len > 0) { - memmove(&Read_Property_Multiple_Data.service_data, service_data, + memmove( + &Read_Property_Multiple_Data.service_data, service_data, sizeof(BACNET_CONFIRMED_SERVICE_ACK_DATA)); Read_Property_Multiple_Data.rpm_data = rpm_data; Read_Property_Multiple_Data.new_data = true; @@ -372,11 +382,12 @@ static bool PrettyPrintPropertyValue( property = object_value->object_property; if ((value != NULL) && (value->tag == BACNET_APPLICATION_TAG_BIT_STRING) && ((property == PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED) || - (property == PROP_PROTOCOL_SERVICES_SUPPORTED))) { + (property == PROP_PROTOCOL_SERVICES_SUPPORTED))) { len = bitstring_bits_used(&value->type.Bit_String); fprintf(stream, "( \n "); for (i = 0; i < len; i++) { - fprintf(stream, "%s", + fprintf( + stream, "%s", bitstring_bit(&value->type.Bit_String, (uint8_t)i) ? "T" : "F"); if (i < len - 1) { fprintf(stream, ","); @@ -395,7 +406,8 @@ static bool PrettyPrintPropertyValue( stream, " %s,", bactext_object_type_name(j)); } else { /* PROP_PROTOCOL_SERVICES_SUPPORTED */ - fprintf(stream, " %s,", + fprintf( + stream, " %s,", protocol_services_supported_text(j)); } } else { /* not supported */ @@ -412,7 +424,8 @@ static bool PrettyPrintPropertyValue( * clearer, international form. */ strncpy(short_month, bactext_month_name(value->type.Date.month), 3); short_month[3] = 0; - fprintf(stream, "(%u-%3s-%u, %u)", (unsigned)value->type.Date.day, + fprintf( + stream, "(%u-%3s-%u, %u)", (unsigned)value->type.Date.day, short_month, (unsigned)value->type.Date.year, (unsigned)value->type.Date.wday); } else if (value != NULL) { @@ -436,7 +449,8 @@ static bool PrettyPrintPropertyValue( * @param rpm_property [in] Points to structure holding the Property, * Value, and Error information. */ -static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, +static void PrintReadPropertyData( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_REFERENCE *rpm_property) { @@ -452,7 +466,8 @@ static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, value = rpm_property->value; if (value == NULL) { /* Then we print the error information */ - fprintf(stdout, "? -- BACnet Error: %s: %s\n", + fprintf( + stdout, "? -- BACnet Error: %s: %s\n", bactext_error_class_name((int)rpm_property->error.error_class), bactext_error_code_name((int)rpm_property->error.error_code)); return; @@ -516,7 +531,8 @@ static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, } break; } else { - assert(Walked_List_Index == + assert( + Walked_List_Index == (uint32_t)rpm_property->propertyArrayIndex); } } else { @@ -553,13 +569,14 @@ static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, } /* Store the object list so we can interrogate each object. */ - object_list_element = KEY_ENCODE(value->type.Object_Id.type, + object_list_element = KEY_ENCODE( + value->type.Object_Id.type, value->type.Object_Id.instance); /* We don't have anything to put in the data pointer * yet, so just leave it null. The key is Key here. */ Keylist_Data_Add(Object_List, object_list_element, NULL); - } else if (rpm_property->propertyIdentifier == - PROP_STATE_TEXT) { + } else if ( + rpm_property->propertyIdentifier == PROP_STATE_TEXT) { /* Make sure it fits within 31 chars for original VTS3 * limitation. If longer, take first 15 dash, and last 15 * chars. */ @@ -567,14 +584,15 @@ static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, int iLast15idx = value->type.Character_String.length - 15; value->type.Character_String.value[15] = '-'; - memmove(&value->type.Character_String.value[16], + memmove( + &value->type.Character_String.value[16], &value->type.Character_String.value[iLast15idx], 15); value->type.Character_String.value[31] = 0; value->type.Character_String.length = 31; } - } else if (rpm_property->propertyIdentifier == - PROP_SUBORDINATE_LIST) { + } else if ( + rpm_property->propertyIdentifier == PROP_SUBORDINATE_LIST) { if (value->tag != BACNET_APPLICATION_TAG_DEVICE_OBJECT_REFERENCE) { break; @@ -648,8 +666,8 @@ static void PrintReadPropertyData(BACNET_OBJECT_TYPE object_type, /* Closing brace for this multi-valued array */ fprintf(stdout, " }"); } - if (property_list_writable_member(object_type, - rpm_property->propertyIdentifier)) { + if (property_list_writable_member( + object_type, rpm_property->propertyIdentifier)) { fprintf(stdout, " Writable"); } fprintf(stdout, "\n"); @@ -709,8 +727,8 @@ static void BuildPropRequest(BACNET_READ_ACCESS_DATA *rpm_object) * @return The invokeID of the message sent, or 0 if reached the end * of the property list. */ -static uint8_t Read_Properties( - uint32_t device_instance, const BACNET_OBJECT_ID *pMyObject) +static uint8_t +Read_Properties(uint32_t device_instance, const BACNET_OBJECT_ID *pMyObject) { uint8_t invoke_id = 0; struct special_property_list_t PropertyListStruct; @@ -775,8 +793,9 @@ static uint8_t Read_Properties( break; } } - invoke_id = Send_Read_Property_Request(device_instance, pMyObject->type, - pMyObject->instance, prop, array_index); + invoke_id = Send_Read_Property_Request( + device_instance, pMyObject->type, pMyObject->instance, prop, + array_index); } return invoke_id; @@ -793,8 +812,8 @@ static uint8_t Read_Properties( * if the RPM got good data, or GET_PROPERTY_REQUEST if we have to * singly process the list of Properties. */ -static EPICS_STATES ProcessRPMData( - BACNET_READ_ACCESS_DATA *rpm_data, EPICS_STATES state) +static EPICS_STATES +ProcessRPMData(BACNET_READ_ACCESS_DATA *rpm_data, EPICS_STATES state) { BACNET_READ_ACCESS_DATA *old_rpm_data; BACNET_PROPERTY_REFERENCE *rpm_property; @@ -845,8 +864,9 @@ static EPICS_STATES ProcessRPMData( fprintf(stdout, " "); Print_Property_Identifier(rpm_property->propertyIdentifier); fprintf(stdout, ": "); - PrintReadPropertyData(rpm_data->object_type, - rpm_data->object_instance, rpm_property); + PrintReadPropertyData( + rpm_data->object_type, rpm_data->object_instance, + rpm_property); } old_rpm_property = rpm_property; rpm_property = rpm_property->next; @@ -886,8 +906,9 @@ static EPICS_STATES ProcessRPMData( static void print_usage(const char *filename) { - printf("Usage: %s [-v] [-d] [-p sport] [-t target_mac [-n dnet]]" - " device-instance\n", + printf( + "Usage: %s [-v] [-d] [-p sport] [-t target_mac [-n dnet]]" + " device-instance\n", filename); printf(" [--version][--help]\n"); } @@ -984,9 +1005,9 @@ static int CheckCommandLineArgs(int argc, char *argv[]) int count; /* loop counter */ unsigned j; - count = - sscanf(argv[i], "%2x:%2x:%2x:%2x:%2x:%2x", &mac[0], - &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[i], "%2x:%2x:%2x:%2x:%2x:%2x", &mac[0], + &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]); if (count == 6) { /* success */ Target_Address.mac_len = count; for (j = 0; j < 6; j++) { @@ -1011,8 +1032,8 @@ static int CheckCommandLineArgs(int argc, char *argv[]) /* decode the Target Device Instance parameter */ Target_Device_Object_Instance = strtol(anArg, NULL, 0); if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stdout, - "Error: device-instance=%u - not greater than %u\n", + fprintf( + stdout, "Error: device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); print_usage(filename); exit(0); @@ -1045,7 +1066,8 @@ static void PrintHeading(void) value = object_property_value(PROP_VENDOR_NAME); if ((value != NULL) && (value->tag == BACNET_APPLICATION_TAG_CHARACTER_STRING)) { - printf("Vendor Name: \"%s\"\n", + printf( + "Vendor Name: \"%s\"\n", characterstring_value(&value->type.Character_String)); } else { printf("Vendor Name: \"your vendor name here\"\n"); @@ -1055,9 +1077,11 @@ static void PrintHeading(void) /* Best we can do with Product Name and Model Number is use the same text */ if ((value != NULL) && (value->tag == BACNET_APPLICATION_TAG_CHARACTER_STRING)) { - printf("Product Name: \"%s\"\n", + printf( + "Product Name: \"%s\"\n", characterstring_value(&value->type.Character_String)); - printf("Product Model Number: \"%s\"\n", + printf( + "Product Model Number: \"%s\"\n", characterstring_value(&value->type.Character_String)); } else { printf("Product Name: \"your product name here\"\n"); @@ -1067,7 +1091,8 @@ static void PrintHeading(void) value = object_property_value(PROP_DESCRIPTION); if ((value != NULL) && (value->tag == BACNET_APPLICATION_TAG_CHARACTER_STRING)) { - printf("Product Description: \"%s\"\n\n", + printf( + "Product Description: \"%s\"\n\n", characterstring_value(&value->type.Character_String)); } else { printf("Product Description: " @@ -1093,8 +1118,9 @@ static void PrintHeading(void) printf("-- DM-UTC-B\n"); #ifdef BAC_ROUTING /* Next line only for the gateway (ie, if not addressing a subNet) */ - if (Target_Address.net == 0) + if (Target_Address.net == 0) { printf("-- NM-RC-B\n"); + } #endif printf("}\n\n"); printf("BACnet Standard Application Services Supported:\n"); @@ -1340,7 +1366,7 @@ int main(int argc, char *argv[]) address_init(); Init_Service_Handlers(); dlenv_init(); -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) /* Internationalized programs must call setlocale() * to initiate a specific language operation. * This can be done by calling setlocale() as follows. @@ -1371,8 +1397,8 @@ int main(int argc, char *argv[]) if (Target_Address.net > 0) { /* We specified a DNET; call Who-Is to find the full * routed path to this Device */ - Send_WhoIs_Remote(&Target_Address, - Target_Device_Object_Instance, + Send_WhoIs_Remote( + &Target_Address, Target_Device_Object_Instance, Target_Device_Object_Instance); } else { @@ -1418,7 +1444,8 @@ int main(int argc, char *argv[]) /* increment timer - exit if timed out */ elapsed_seconds += (current_seconds - last_seconds); if (elapsed_seconds > timeout_seconds) { - fprintf(stderr, + fprintf( + stderr, "\rError: Unable to bind to %u" " after waiting %ld seconds.\n", Target_Device_Object_Instance, @@ -1492,7 +1519,7 @@ int main(int argc, char *argv[]) if ((Read_Property_Multiple_Data.new_data) && (Request_Invoke_ID == - Read_Property_Multiple_Data.service_data.invoke_id)) { + Read_Property_Multiple_Data.service_data.invoke_id)) { Read_Property_Multiple_Data.new_data = false; myState = ProcessRPMData( Read_Property_Multiple_Data.rpm_data, myState); @@ -1516,7 +1543,8 @@ int main(int argc, char *argv[]) /* Was it because the Device can't do RPM? */ Has_RPM = false; myState = GET_PROPERTY_REQUEST; - } else if (Last_Error_Code == + } else if ( + Last_Error_Code == ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED) { myState = GET_PROPERTY_REQUEST; StartNextObject(rpm_object, &myObject); @@ -1587,7 +1615,7 @@ int main(int argc, char *argv[]) if ((Read_Property_Multiple_Data.new_data) && (Request_Invoke_ID == - Read_Property_Multiple_Data.service_data.invoke_id)) { + Read_Property_Multiple_Data.service_data.invoke_id)) { Read_Property_Multiple_Data.new_data = false; PrintReadPropertyData( Read_Property_Multiple_Data.rpm_data->object_type, @@ -1684,10 +1712,12 @@ int main(int argc, char *argv[]) do { Object_List_Index++; if (Object_List_Index < Keylist_Count(Object_List)) { - if (Keylist_Index_Key(Object_List, Object_List_Index, &nextKey)) { + if (Keylist_Index_Key( + Object_List, Object_List_Index, &nextKey)) { myObject.type = KEY_DECODE_TYPE(nextKey); myObject.instance = KEY_DECODE_ID(nextKey); - /* Don't re-list the Device Object among its objects */ + /* Don't re-list the Device Object among its objects + */ if (myObject.type == OBJECT_DEVICE) { continue; } @@ -1732,7 +1762,8 @@ int main(int argc, char *argv[]) /* increment timer - exit if timed out */ elapsed_seconds += (current_seconds - last_seconds); if (elapsed_seconds > timeout_seconds) { - fprintf(stderr, "\rError: APDU Timeout! (%lds)\n", + fprintf( + stderr, "\rError: APDU Timeout! (%lds)\n", (long int)elapsed_seconds); break; } diff --git a/apps/error/main.c b/apps/error/main.c index 33189e48..3c1fb56d 100644 --- a/apps/error/main.c +++ b/apps/error/main.c @@ -47,8 +47,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { (void)src; (void)invoke_id; @@ -77,7 +77,8 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s [error-class error-code service-number invoke-id]\n", + printf( + "Usage: %s [error-class error-code service-number invoke-id]\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help]\n"); @@ -87,32 +88,34 @@ static void print_help(const char *filename) { printf("Send BACnet Error message to the network.\n"); printf("--mac A\n" - "Optional destination BACnet mac address." - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional destination BACnet mac address." + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); - printf("--dnet N\n" + printf( + "--dnet N\n" "Optional destination BACnet network number N for directed requests.\n" "Valid range is from 0 to 65535 where 0 is the local connection\n" "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "Optional BACnet mac address on the destination BACnet network.\n" - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address on the destination BACnet network.\n" + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); - printf("error-class:\n" - " number from 0 to 65535\n" - "error-code:\n" - " number from 0 to 65535\n" - "service-number:\n" - " number from 0 to 65535 for BACnet Services\n" - "invoke-id:\n" - " number from 1 to 255\n" - "Example:\n" - "%s 3 2 1\n", + printf( + "error-class:\n" + " number from 0 to 65535\n" + "error-code:\n" + " number from 0 to 65535\n" + "service-number:\n" + " number from 0 to 65535 for BACnet Services\n" + "invoke-id:\n" + " number from 1 to 255\n" + "Example:\n" + "%s 3 2 1\n", filename); } @@ -219,8 +222,9 @@ int main(int argc, char *argv[]) dlenv_init(); atexit(datalink_cleanup); /* send the request */ - Send_Error_To_Network(&Handler_Transmit_Buffer[0], &dest, Target_Invoke_ID, - Target_Service, Target_Error_Class, Target_Error_Code); + Send_Error_To_Network( + &Handler_Transmit_Buffer[0], &dest, Target_Invoke_ID, Target_Service, + Target_Error_Class, Target_Error_Code); return 0; } diff --git a/apps/event/main.c b/apps/event/main.c index f106a27b..8924245e 100644 --- a/apps/event/main.c +++ b/apps/event/main.c @@ -50,14 +50,16 @@ static bool Error_Detected = false; * @param error_class [in] the error class * @param error_code [in] the error code */ -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -89,12 +91,13 @@ static void MyAbortHandler( * @param invoke_id [in] the invokeID from the rejected message * @param reject_reason [in] the reason for the rejection */ -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -105,8 +108,8 @@ static void MyRejectHandler( * @param src [in] BACNET_ADDRESS of the source of the message * @param invoke_id [in] the invokeID from the rejected message */ -static void MyWritePropertySimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyWritePropertySimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -143,12 +146,13 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-id process-id initiating-device-id\n" - " event-object-type event-object-instance\n" - " sequence-number notification-class priority message-text\n" - " notify-type ack-required from-state to-state event-type\n" - " [change-of-bitstring reference-bit-string status-flags]\n" - " [change-of-state new-state-tag new-state-value status-flags]\n", + printf( + "Usage: %s device-id process-id initiating-device-id\n" + " event-object-type event-object-instance\n" + " sequence-number notification-class priority message-text\n" + " notify-type ack-required from-state to-state event-type\n" + " [change-of-bitstring reference-bit-string status-flags]\n" + " [change-of-state new-state-tag new-state-value status-flags]\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help]\n"); @@ -157,69 +161,71 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { printf("Send BACnet ConfirmedEventNotification message to a device.\n"); - printf("device-id:\n" + printf( + "device-id:\n" "BACnet Device Object Instance number that you are trying to\n" "communicate to. This number will be used to try and bind with\n" "the device using Who-Is and I-Am services. For example, if you were\n" "notifying Device Object 123, the device-instance would be 123.\n"); printf("\n"); printf("process-id:\n" - "Process Identifier in the receiving device for which the\n" - "notification is intended.\n"); + "Process Identifier in the receiving device for which the\n" + "notification is intended.\n"); printf("\n"); printf("initiating-device-id: the BACnet Device Object Instance number\n" - "that initiated the ConfirmedEventNotification service request.\n"); + "that initiated the ConfirmedEventNotification service request.\n"); printf("\n"); - printf("event-object-type:\n" + printf( + "event-object-type:\n" "The object type is defined either as the object-type name string\n" "as defined in the BACnet specification, or as the integer value.\n"); printf("\n"); printf("event-object-instance:\n" - "The object instance number of the event object.\n"); + "The object instance number of the event object.\n"); printf("\n"); printf("sequence-number:\n" - "The sequence number of the event.\n"); + "The sequence number of the event.\n"); printf("\n"); printf("notification-class:\n" - "The notification-class of the event.\n"); + "The notification-class of the event.\n"); printf("\n"); printf("priority:\n" - "The priority of the event.\n"); + "The priority of the event.\n"); printf("\n"); printf("message-text:\n" - "The message text of the event.\n"); + "The message text of the event.\n"); printf("\n"); printf("notify-type:\n" - "The notify type of the event.\n"); + "The notify type of the event.\n"); printf("\n"); printf("ack-required:\n" - "The ack-required of the event (0=FALSE,1=TRUE).\n"); + "The ack-required of the event (0=FALSE,1=TRUE).\n"); printf("\n"); printf("from-state:\n" - "The from-state of the event.\n"); + "The from-state of the event.\n"); printf("\n"); printf("to-state:\n" - "The to-state of the event.\n"); + "The to-state of the event.\n"); printf("\n"); printf("event-type\n" - "The event-type of the event.\n"); + "The event-type of the event.\n"); printf("\n"); printf("--mac A\n" - "Optional BACnet mac address." - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address." + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--dnet N\n" - "Optional BACnet network number N for directed requests.\n" - "Valid range is from 0 to 65535 where 0 is the local connection\n" - "and 65535 is network broadcast.\n"); + "Optional BACnet network number N for directed requests.\n" + "Valid range is from 0 to 65535 where 0 is the local connection\n" + "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "Optional BACnet mac address on the destination BACnet network.\n" - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address on the destination BACnet network.\n" + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); (void)filename; } @@ -462,8 +468,8 @@ int main(int argc, char *argv[]) /* FIXME: add event type parameters */ } else if (event_data.eventType == EVENT_OUT_OF_RANGE) { /* FIXME: add event type parameters */ - } else if (event_data.eventType == - EVENT_CHANGE_OF_LIFE_SAFETY) { + } else if ( + event_data.eventType == EVENT_CHANGE_OF_LIFE_SAFETY) { /* FIXME: add event type parameters */ } else if (event_data.eventType == EVENT_EXTENDED) { /* FIXME: add event type parameters */ @@ -477,26 +483,27 @@ int main(int argc, char *argv[]) /* FIXME: add event type parameters */ } else if (event_data.eventType == EVENT_SIGNED_OUT_OF_RANGE) { /* FIXME: add event type parameters */ - } else if (event_data.eventType == - EVENT_UNSIGNED_OUT_OF_RANGE) { + } else if ( + event_data.eventType == EVENT_UNSIGNED_OUT_OF_RANGE) { /* FIXME: add event type parameters */ - } else if (event_data.eventType == - EVENT_CHANGE_OF_CHARACTERSTRING) { + } else if ( + event_data.eventType == EVENT_CHANGE_OF_CHARACTERSTRING) { /* FIXME: add event type parameters */ - } else if (event_data.eventType == - EVENT_CHANGE_OF_STATUS_FLAGS) { + } else if ( + event_data.eventType == EVENT_CHANGE_OF_STATUS_FLAGS) { /* FIXME: add event type parameters */ - } else if (event_data.eventType == - EVENT_CHANGE_OF_RELIABILITY) { + } else if ( + event_data.eventType == EVENT_CHANGE_OF_RELIABILITY) { /* FIXME: add event type parameters */ } else if (event_data.eventType == EVENT_NONE) { /* FIXME: add event type parameters */ - } else if (event_data.eventType == - EVENT_CHANGE_OF_DISCRETE_VALUE) { + } else if ( + event_data.eventType == EVENT_CHANGE_OF_DISCRETE_VALUE) { /* FIXME: add event type parameters */ } else if (event_data.eventType == EVENT_CHANGE_OF_TIMER) { /* FIXME: add event type parameters */ - } else if ((event_data.eventType >= EVENT_PROPRIETARY_MIN) && + } else if ( + (event_data.eventType >= EVENT_PROPRIETARY_MIN) && (event_data.eventType <= EVENT_PROPRIETARY_MAX)) { /* Enumerated values 64-65535 may be used by others subject to @@ -544,7 +551,8 @@ int main(int argc, char *argv[]) dest.len = 0; } address_add(Target_Device_Object_Instance, MAX_APDU, &dest); - printf("Added Device %u to address cache\n", + printf( + "Added Device %u to address cache\n", Target_Device_Object_Instance); } /* setup my info */ diff --git a/apps/fuzz-afl/main.c b/apps/fuzz-afl/main.c index 584a8dc9..29a1e952 100644 --- a/apps/fuzz-afl/main.c +++ b/apps/fuzz-afl/main.c @@ -40,50 +40,66 @@ static void Init_Service_Handlers() { - - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_IS, handler_who_is_unicast); + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_WHO_IS, handler_who_is_unicast); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_HAS, handler_who_has); apdu_set_unrecognized_service_handler_handler(handler_unrecognized_service); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROP_MULTIPLE, handler_read_property_multiple); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_WRITE_PROPERTY, handler_write_property); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_RANGE, handler_read_range); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_REINITIALIZE_DEVICE, handler_reinitialize_device); - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION, handler_timesync_utc); - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION, handler_timesync); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_SUBSCRIBE_COV, handler_cov_subscribe); - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_PROP_MULTIPLE, handler_read_property_multiple); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_WRITE_PROPERTY, handler_write_property); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_RANGE, handler_read_range); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_REINITIALIZE_DEVICE, handler_reinitialize_device); + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION, handler_timesync_utc); + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION, handler_timesync); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_SUBSCRIBE_COV, handler_cov_subscribe); + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + handler_device_communication_control); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_IS, handler_who_is); apdu_set_unrecognized_service_handler_handler(handler_unrecognized_service); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_I_AM, handler_i_am_add); } - /* * FIXME: This is a hack to get things linking correctly */ -extern int cov_subscribe(void) { +extern int cov_subscribe(void) +{ return 0; } -extern int Device_Value_List_Supported(void) { +extern int Device_Value_List_Supported(void) +{ return 0; } -extern int Encode_RR_payload(void) { +extern int Encode_RR_payload(void) +{ return 0; } -extern int Device_Objects_RR_Info(void) { +extern int Device_Objects_RR_Info(void) +{ return 0; } -extern int Device_Write_Property(void) { +extern int Device_Write_Property(void) +{ return 0; } -extern int Device_Reinitialize(void) { +extern int Device_Reinitialize(void) +{ return 0; } - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0 }; @@ -99,5 +115,4 @@ int main(int argc, char *argv[]) } return 0; - } diff --git a/apps/fuzz-libfuzzer/main.c b/apps/fuzz-libfuzzer/main.c index b720d777..cdd4e5f3 100644 --- a/apps/fuzz-libfuzzer/main.c +++ b/apps/fuzz-libfuzzer/main.c @@ -39,87 +39,111 @@ // Pull in all of this... #include "../router-mstp/main.c" -static void Init_Service_Handlers(void) { - - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_IS, handler_who_is_unicast); +static void Init_Service_Handlers(void) +{ + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_WHO_IS, handler_who_is_unicast); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_HAS, handler_who_has); apdu_set_unrecognized_service_handler_handler(handler_unrecognized_service); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROP_MULTIPLE, handler_read_property_multiple); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_WRITE_PROPERTY, handler_write_property); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_RANGE, handler_read_range); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_REINITIALIZE_DEVICE, handler_reinitialize_device); - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION, handler_timesync_utc); - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION, handler_timesync); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_SUBSCRIBE_COV, handler_cov_subscribe); - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_PROP_MULTIPLE, handler_read_property_multiple); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_WRITE_PROPERTY, handler_write_property); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_RANGE, handler_read_range); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_REINITIALIZE_DEVICE, handler_reinitialize_device); + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION, handler_timesync_utc); + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION, handler_timesync); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_SUBSCRIBE_COV, handler_cov_subscribe); + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + handler_device_communication_control); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_IS, handler_who_is); apdu_set_unrecognized_service_handler_handler(handler_unrecognized_service); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_I_AM, handler_i_am_add); } - /* * FIXME: This is a hack to get things linking correctly */ -extern int cov_subscribe(void) { +extern int cov_subscribe(void) +{ return 0; } -extern int Device_Value_List_Supported(void) { +extern int Device_Value_List_Supported(void) +{ return 0; } -extern int Encode_RR_payload(void) { +extern int Encode_RR_payload(void) +{ return 0; } -extern int Device_Objects_RR_Info(void) { +extern int Device_Objects_RR_Info(void) +{ return 0; } -extern int Device_Write_Property(void) { +extern int Device_Write_Property(void) +{ return 0; } -extern int Device_Reinitialize(void) { +extern int Device_Reinitialize(void) +{ return 0; } -extern bool Device_COV(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { +extern bool Device_COV(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) +{ return false; } -extern void Device_COV_Clear(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { +extern void +Device_COV_Clear(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) +{ return; } -extern bool Device_Encode_Value_List(BACNET_OBJECT_TYPE object_type, +extern bool Device_Encode_Value_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, - BACNET_PROPERTY_VALUE *value_list) { - - return false; - -} - -extern int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA * list_element) { - return BACNET_STATUS_ERROR; -} - -extern int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA * list_element) { - return BACNET_STATUS_ERROR; -} - -extern bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) { + BACNET_PROPERTY_VALUE *value_list) +{ return false; } -int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) { +extern int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA *list_element) +{ + return BACNET_STATUS_ERROR; +} + +extern int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA *list_element) +{ + return BACNET_STATUS_ERROR; +} + +extern bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) +{ + return false; +} + +int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) +{ BACNET_ADDRESS src = { 0 }; Init_Service_Handlers(); /* process fuzz input*/ - if (size>0 && size<=0xffff) { + if (size > 0 && size <= 0xffff) { my_routing_npdu_handler(BIP_Net, &src, data, (uint16_t)size); } return 0; - } diff --git a/apps/gateway/gateway.h b/apps/gateway/gateway.h index 0cf45e7f..49377af3 100644 --- a/apps/gateway/gateway.h +++ b/apps/gateway/gateway.h @@ -18,9 +18,9 @@ /* Device configuration definitions. */ #define FIRST_DEVICE_NUMBER 260001 -#define VIRTUAL_DNET 2709 /* your choice of number here */ +#define VIRTUAL_DNET 2709 /* your choice of number here */ #define DEV_NAME_BASE "Gateway Demo Device" #define DEV_DESCR_GATEWAY "Gateway Device and Router" -#define DEV_DESCR_REMOTE "Routed Remote Device" +#define DEV_DESCR_REMOTE "Routed Remote Device" #endif diff --git a/apps/gateway/main.c b/apps/gateway/main.c index 2b7f971a..27d435b8 100644 --- a/apps/gateway/main.c +++ b/apps/gateway/main.c @@ -188,7 +188,8 @@ static void Init_Service_Handlers(uint32_t first_object_instance) apdu_set_unconfirmed_handler( SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); } @@ -225,16 +226,16 @@ int main(int argc, char *argv[]) if ((first_object_instance == 0) || (first_object_instance > BACNET_MAX_INSTANCE)) { printf("Error: Invalid Object Instance %s \n", argv[1]); - printf( - "Provide a number from 1 to %ul \n", BACNET_MAX_INSTANCE); + printf("Provide a number from 1 to %ul \n", BACNET_MAX_INSTANCE); exit(1); } } - printf("BACnet Router Demo\n" - "BACnet Stack Version %s\n" - "BACnet Device ID: %u\n" - "Max APDU: %d\n" - "Max Devices: %d\n", + printf( + "BACnet Router Demo\n" + "BACnet Stack Version %s\n" + "BACnet Device ID: %u\n" + "Max APDU: %d\n" + "Max Devices: %d\n", BACnet_Version, first_object_instance, MAX_APDU, MAX_NUM_DEVICES); Init_Service_Handlers(first_object_instance); dlenv_init(); diff --git a/apps/getevent/main.c b/apps/getevent/main.c index 2d9645c2..0aaf1111 100644 --- a/apps/getevent/main.c +++ b/apps/getevent/main.c @@ -54,14 +54,16 @@ static bool Recieved_Ack = false; static bool More_Events = false; static BACNET_OBJECT_ID LastReceivedObjectIdentifier; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\r\n", + printf( + "BACnet Error: %s: %s\r\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -74,18 +76,20 @@ static void MyAbortHandler( (void)server; if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Abort: %s\r\n", + printf( + "BACnet Abort: %s\r\n", bactext_abort_reason_name((int)abort_reason)); Error_Detected = true; } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\r\n", + printf( + "BACnet Reject: %s\r\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -101,7 +105,8 @@ static void MyRejectHandler( * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -static void My_Get_Event_Ack_Handler(uint8_t *service_request, +static void My_Get_Event_Ack_Handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -115,14 +120,16 @@ static void My_Get_Event_Ack_Handler(uint8_t *service_request, data[i].next = &data[i + 1]; } - printf("Recieved Ack. Saved invoke ID was %i, service returned %i\n", + printf( + "Recieved Ack. Saved invoke ID was %i, service returned %i\n", Request_Invoke_ID, service_data->invoke_id); if (service_data->invoke_id == Request_Invoke_ID) { len = getevent_ack_decode_service_request( service_request, service_len, &data[0], &More_Events); - printf("Decode of Ack returned length %i. MoreEvents flag was %i \n", - len, More_Events); + printf( + "Decode of Ack returned length %i. MoreEvents flag was %i \n", len, + More_Events); if (len > 0) { ge_ack_print_data(&(data[0]), Target_Device_Object_Instance); if (More_Events) { @@ -162,13 +169,14 @@ static void Init_Service_Handlers(void) static int print_help(const char *exe_name) { - printf("Usage:\n" - "\n" - "%s device-instance [--help]\n" - "\n" - " Send BACnet GetEventInformation service retruequest to given " - "device, and wait\n" - " for responses.\n\n", + printf( + "Usage:\n" + "\n" + "%s device-instance [--help]\n" + "\n" + " Send BACnet GetEventInformation service retruequest to given " + "device, and wait\n" + " for responses.\n\n", exe_name); return 1; } diff --git a/apps/iam/main.c b/apps/iam/main.c index fcc9177f..69a5946b 100644 --- a/apps/iam/main.c +++ b/apps/iam/main.c @@ -50,8 +50,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { (void)src; (void)invoke_id; @@ -80,7 +80,8 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s [device-instance vendor-id max-apdu segmentation]\n", + printf( + "Usage: %s [device-instance vendor-id max-apdu segmentation]\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help]\n"); @@ -90,47 +91,49 @@ static void print_help(const char *filename) { printf("Send BACnet I-Am message for a device.\n"); printf("--mac A\n" - "Optional BACnet mac address." - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address." + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--dnet N\n" - "Optional BACnet network number N for directed requests.\n" - "Valid range is from 0 to 65535 where 0 is the local connection\n" - "and 65535 is network broadcast.\n"); + "Optional BACnet network number N for directed requests.\n" + "Valid range is from 0 to 65535 where 0 is the local connection\n" + "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "Optional BACnet mac address on the destination BACnet network number.\n" - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address on the destination BACnet network " + "number.\n" + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--repeat\n" - "Send the message repeatedly until signalled to quit.\n" - "Default is to not repeat, sending only a single message.\n"); + "Send the message repeatedly until signalled to quit.\n" + "Default is to not repeat, sending only a single message.\n"); printf("\n"); printf("--retry C\n" - "Send the message C number of times\n" - "Default is retry 0, only sending one time.\n"); + "Send the message C number of times\n" + "Default is retry 0, only sending one time.\n"); printf("\n"); printf("--delay\n" - "Delay, in milliseconds, between repeated messages.\n" - "Default delay is 100ms.\n"); + "Delay, in milliseconds, between repeated messages.\n" + "Default delay is 100ms.\n"); printf("\n"); printf("device-instance:\n" - "BACnet device-ID 0..4194303\n"); + "BACnet device-ID 0..4194303\n"); printf("\n"); printf("vendor-id:\n" - "Vendor Identifier 0..65535\n"); + "Vendor Identifier 0..65535\n"); printf("\n"); printf("max-apdu:\n" - "Maximum APDU size 50..65535\n"); + "Maximum APDU size 50..65535\n"); printf("\n"); printf("segmentation:\n" - "BACnet Segmentation 0=both, 1=transmit, 2=receive, 3=none\n"); + "BACnet Segmentation 0=both, 1=transmit, 2=receive, 3=none\n"); printf("\n"); - printf("Example:\n" + printf( + "Example:\n" "To send an I-Am message of instance=1234 vendor-id=260 max-apdu=480\n" "%s 1234 260 480\n", filename); @@ -258,8 +261,9 @@ int main(int argc, char *argv[]) atexit(datalink_cleanup); /* send the request */ do { - Send_I_Am_To_Network(&dest, Target_Device_ID, Target_Max_APDU, - Target_Segmentation, Target_Vendor_ID); + Send_I_Am_To_Network( + &dest, Target_Device_ID, Target_Max_APDU, Target_Segmentation, + Target_Vendor_ID); if (repeat_forever || retry_count) { /* returns 0 bytes on timeout */ pdu_len = datalink_receive(&src, &Rx_Buf[0], MAX_MPDU, timeout); diff --git a/apps/iamrouter/main.c b/apps/iamrouter/main.c index d942b1db..b0942773 100644 --- a/apps/iamrouter/main.c +++ b/apps/iamrouter/main.c @@ -46,8 +46,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -83,15 +83,16 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { - printf("Send BACnet I-Am-Router-To-Network message for \n" - "one or more networks.\n" - "\nDNET:\n" - "BACnet destination network number 0-65534\n" - "To send a I-Am-Router-To-Network message for DNET 86:\n" - "%s 86\n" - "To send a I-Am-Router-To-Network message for multiple DNETs\n" - "use the following command:\n" - "%s 86 42 24 14\n", + printf( + "Send BACnet I-Am-Router-To-Network message for \n" + "one or more networks.\n" + "\nDNET:\n" + "BACnet destination network number 0-65534\n" + "To send a I-Am-Router-To-Network message for DNET 86:\n" + "%s 86\n" + "To send a I-Am-Router-To-Network message for multiple DNETs\n" + "use the following command:\n" + "%s 86 42 24 14\n", filename, filename); } @@ -136,7 +137,8 @@ int main(int argc, char *argv[]) Target_Router_Networks[arg_count] = -1; /* invalid DNET? */ if (Target_Router_Networks[arg_count - 1] >= 65535) { - fprintf(stderr, "DNET=%u - it must be less than %u\n", + fprintf( + stderr, "DNET=%u - it must be less than %u\n", Target_Router_Networks[arg_count - 1], 65535); return 1; } diff --git a/apps/initrouter/main.c b/apps/initrouter/main.c index 0930af90..e21cd1b5 100644 --- a/apps/initrouter/main.c +++ b/apps/initrouter/main.c @@ -59,8 +59,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -69,7 +69,8 @@ static void MyRejectHandler( Error_Detected = true; } -static void My_Router_Handler(BACNET_ADDRESS *src, +static void My_Router_Handler( + BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, uint8_t *npdu, /* PDU data */ uint16_t npdu_len) @@ -157,7 +158,8 @@ static void My_Router_Handler(BACNET_ADDRESS *src, } } -static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ +static void My_NPDU_Handler( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t pdu_len) { /* length PDU */ @@ -168,7 +170,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ apdu_offset = bacnet_npdu_decode(pdu, pdu_len, &dest, src, &npdu_data); if (npdu_data.network_layer_message) { if (apdu_offset <= pdu_len) { - My_Router_Handler(src, &npdu_data, &pdu[apdu_offset], + My_Router_Handler( + src, &npdu_data, &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); } } else if ((apdu_offset > 0) && (apdu_offset <= pdu_len)) { @@ -183,7 +186,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ if (dest.net) { debug_printf("NPDU: DNET=%d. Discarded!\n", dest.net); } else { - debug_printf("NPDU: BACnet Protocol Version=%d. Discarded!\n", + debug_printf( + "NPDU: BACnet Protocol Version=%d. Discarded!\n", npdu_data.protocol_version); } } @@ -219,11 +223,11 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { - printf( - "Send BACnet Initialize-Routing-Table message to a network\n" - "and wait for responses. Displays their network information.\n"); + printf("Send BACnet Initialize-Routing-Table message to a network\n" + "and wait for responses. Displays their network information.\n"); printf("\n"); - printf("address:\n" + printf( + "address:\n" "MAC address in xx:xx:xx:xx:xx:xx format or IP x.x.x.x:port\n" "DNET ID Len Info:\n" "Port-info data:\n" @@ -247,8 +251,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) int index = 0; if (argc > 0) { - count = sscanf(argv[0], "%u.%u.%u.%u:%u", &mac[0], &mac[1], &mac[2], - &mac[3], &port); + count = sscanf( + argv[0], "%u.%u.%u.%u:%u", &mac[0], &mac[1], &mac[2], &mac[3], + &port); if (count == 5) { dst->mac_len = 6; for (index = 0; index < 4; index++) { @@ -256,8 +261,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) } encode_unsigned16(&dst->mac[4], port); } else { - count = sscanf(argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], - &mac[2], &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], + &mac[3], &mac[4], &mac[5]); dst->mac_len = count; for (index = 0; index < MAX_MAC_LEN; index++) { if (index < count) { diff --git a/apps/mstpcap/main.c b/apps/mstpcap/main.c index 30a657e0..57bc6a54 100644 --- a/apps/mstpcap/main.c +++ b/apps/mstpcap/main.c @@ -36,19 +36,19 @@ #define DLT_BACNET_MS_TP (165) /* local min/max macros */ #ifndef max -#define max(a,b) \ -({ \ - __typeof__ (a) _a = (a); \ - __typeof__ (b) _b = (b); \ - _a > _b ? _a : _b; \ -}) +#define max(a, b) \ + ({ \ + __typeof__(a) _a = (a); \ + __typeof__(b) _b = (b); \ + _a > _b ? _a : _b; \ + }) -#define min(a,b) \ -({ \ - __typeof__ (a) _a = (a); \ - __typeof__ (b) _b = (b); \ - _a < _b ? _a : _b; \ -}) +#define min(a, b) \ + ({ \ + __typeof__(a) _a = (a); \ + __typeof__(b) _b = (b); \ + _a < _b ? _a : _b; \ + }) #endif #define MSTP_HEADER_MAX (2 + 1 + 1 + 1 + 2 + 1) @@ -121,8 +121,8 @@ struct mstp_statistics { static struct mstp_statistics MSTP_Statistics[MAX_MSTP_DEVICES]; static uint32_t Invalid_Frame_Count; -static uint32_t timeval_diff_ms( - const struct timeval *old, const struct timeval *now) +static uint32_t +timeval_diff_ms(const struct timeval *old, const struct timeval *now) { uint32_t ms = 0; @@ -133,8 +133,7 @@ static uint32_t timeval_diff_ms( return ms; } -static void mstp_monitor_i_am( - uint8_t mac, const uint8_t *pdu, uint16_t pdu_len) +static void mstp_monitor_i_am(uint8_t mac, const uint8_t *pdu, uint16_t pdu_len) { BACNET_ADDRESS src = { 0 }; BACNET_ADDRESS dest = { 0 }; @@ -173,8 +172,7 @@ static void mstp_monitor_i_am( } static void packet_statistics( - const struct timeval *tv, - const struct mstp_port_struct_t *mstp_port) + const struct timeval *tv, const struct mstp_port_struct_t *mstp_port) { static struct timeval old_tv = { 0 }; static uint8_t old_frame = 255; @@ -211,8 +209,8 @@ static void packet_statistics( MSTP_Statistics[src].token_reply = delta; } } - } else if ((old_frame == FRAME_TYPE_POLL_FOR_MASTER) && - (old_src == src)) { + } else if ( + (old_frame == FRAME_TYPE_POLL_FOR_MASTER) && (old_src == src)) { /* Tusage_timeout */ delta = timeval_diff_ms(&old_tv, tv); if (delta > MSTP_Statistics[src].tusage_timeout) { @@ -314,7 +312,8 @@ static void packet_statistics_print(void) fprintf(stdout, "\n"); fprintf(stdout, "==== MS/TP Frame Counts ====\n"); - fprintf(stdout, "%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-7s", "MAC", "Device", + fprintf( + stdout, "%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-7s", "MAC", "Device", "Tokens", "PFM", "RPFM", "DER", "Postpd", "DNER", "TestReq", "TestRsp"); fprintf(stdout, "\n"); for (i = 0; i < MAX_MSTP_DEVICES; i++) { @@ -324,17 +323,20 @@ static void packet_statistics_print(void) node_count++; fprintf(stdout, "%-8u", i); if (MSTP_Statistics[i].device_id <= 4194303) { - fprintf(stdout, "%-8lu", + fprintf( + stdout, "%-8lu", (long unsigned int)MSTP_Statistics[i].device_id); } else { fprintf(stdout, "%-8s", "-"); } - fprintf(stdout, "%-8lu%-8lu%-8lu%-8lu", + fprintf( + stdout, "%-8lu%-8lu%-8lu%-8lu", (long unsigned int)MSTP_Statistics[i].token_count, (long unsigned int)MSTP_Statistics[i].pfm_count, (long unsigned int)MSTP_Statistics[i].rpfm_count, (long unsigned int)MSTP_Statistics[i].der_count); - fprintf(stdout, "%-8lu%-8lu%-8lu%-7lu", + fprintf( + stdout, "%-8lu%-8lu%-8lu%-7lu", (long unsigned int)MSTP_Statistics[i].reply_postponed_count, (long unsigned int)MSTP_Statistics[i].dner_count, (long unsigned int)MSTP_Statistics[i].test_request_count, @@ -346,9 +348,10 @@ static void packet_statistics_print(void) node_count = 0; fprintf(stdout, "\n"); fprintf(stdout, "==== MS/TP Usage and Timing Maximums ====\n"); - fprintf(stdout, "%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-7s", "MAC", - "MaxMstr", "Retries", "Npoll", "Self/TT", "Treply", "Tusage", "Trpfm", - "Tder", "Tpostpd"); + fprintf( + stdout, "%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-7s", "MAC", "MaxMstr", + "Retries", "Npoll", "Self/TT", "Treply", "Tusage", "Trpfm", "Tder", + "Tpostpd"); fprintf(stdout, "\n"); for (i = 0; i < MAX_MSTP_DEVICES; i++) { /* check for masters or slaves */ @@ -358,12 +361,14 @@ static void packet_statistics_print(void) self_or_ooo_count = MSTP_Statistics[i].self_token_count + MSTP_Statistics[i].ooo_token_count; fprintf(stdout, "%-8u", i); - fprintf(stdout, "%-8lu%-8lu%-8lu%-8lu%-8lu", + fprintf( + stdout, "%-8lu%-8lu%-8lu%-8lu%-8lu", (long unsigned int)MSTP_Statistics[i].max_master, (long unsigned int)MSTP_Statistics[i].token_retries, (long unsigned int)MSTP_Statistics[i].npoll, self_or_ooo_count, (long unsigned int)MSTP_Statistics[i].token_reply); - fprintf(stdout, "%-8lu%-8lu%-8lu%-7lu", + fprintf( + stdout, "%-8lu%-8lu%-8lu%-7lu", (long unsigned int)MSTP_Statistics[i].tusage_timeout, (long unsigned int)MSTP_Statistics[i].pfm_reply, (long unsigned int)MSTP_Statistics[i].der_reply, @@ -372,7 +377,8 @@ static void packet_statistics_print(void) } } fprintf(stdout, "Node Count: %u\n", node_count); - fprintf(stdout, "Invalid Frame Count: %lu\n", + fprintf( + stdout, "Invalid Frame Count: %lu\n", (long unsigned int)Invalid_Frame_Count); fflush(stdout); } @@ -410,8 +416,7 @@ uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port) /* for the MS/TP state machine to use for getting data to send */ /* Return: amount of PDU data */ -uint16_t MSTP_Get_Send( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Send(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ (void)mstp_port; (void)timeout; @@ -426,7 +431,7 @@ uint16_t MSTP_Get_Send( */ void MSTP_Send_Frame( struct mstp_port_struct_t *mstp_port, - const uint8_t * buffer, + const uint8_t *buffer, uint16_t nbytes) { (void)mstp_port; @@ -434,8 +439,7 @@ void MSTP_Send_Frame( (void)nbytes; } -uint16_t MSTP_Get_Reply( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Reply(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ (void)mstp_port; (void)timeout; @@ -454,8 +458,9 @@ static void named_pipe_create(const char *pipe_name) /* create the pipe */ while (Pipe_Handle == INVALID_HANDLE_VALUE) { /* use CreateFile rather than CreateNamedPipe */ - Pipe_Handle = CreateFile(pipe_name, GENERIC_READ | GENERIC_WRITE, 0, NULL, - OPEN_EXISTING, 0, NULL); + Pipe_Handle = CreateFile( + pipe_name, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, + NULL); if (Pipe_Handle != INVALID_HANDLE_VALUE) { break; } @@ -477,7 +482,8 @@ static size_t data_write(const void *ptr, size_t size, size_t nitems) DWORD cbWritten = 0; if (Pipe_Handle != INVALID_HANDLE_VALUE) { - (void)WriteFile(Pipe_Handle, /* handle to pipe */ + (void)WriteFile( + Pipe_Handle, /* handle to pipe */ ptr, /* buffer to write from */ size * nitems, /* number of bytes to write */ &cbWritten, /* number of bytes written */ @@ -492,13 +498,13 @@ static size_t data_write(const void *ptr, size_t size, size_t nitems) return written; } -static size_t data_write_header( - const void *ptr, size_t size, size_t nitems) +static size_t data_write_header(const void *ptr, size_t size, size_t nitems) { size_t written = 0; DWORD cbWritten = 0; if (Pipe_Handle != INVALID_HANDLE_VALUE) { - (void)WriteFile(Pipe_Handle, /* handle to pipe */ + (void)WriteFile( + Pipe_Handle, /* handle to pipe */ ptr, /* buffer to write from */ size * nitems, /* number of bytes to write */ &cbWritten, /* number of bytes written */ @@ -542,8 +548,7 @@ static size_t data_write(const void *ptr, size_t size, size_t nitems) return written; } -static size_t data_write_header( - const void *ptr, size_t size, size_t nitems) +static size_t data_write_header(const void *ptr, size_t size, size_t nitems) { ssize_t written = 0; @@ -573,14 +578,16 @@ static void filename_create_new(void) } File_Handle = NULL; datetime_local(&bdate, &btime, NULL, NULL); - snprintf(filename, filename_size, "mstp_%04d%02d%02d%02d%02d%02d.cap", + snprintf( + filename, filename_size, "mstp_%04d%02d%02d%02d%02d%02d.cap", (int)bdate.year, (int)bdate.month, (int)bdate.day, (int)btime.hour, (int)btime.min, (int)btime.sec); File_Handle = fopen(filename, "wb"); if (File_Handle) { fprintf(stdout, "mstpcap: saving capture to %s\n", filename); } else { - fprintf(stderr, "mstpcap: failed to open %s: %s\n", filename, + fprintf( + stderr, "mstpcap: failed to open %s: %s\n", filename, strerror(errno)); } } @@ -597,12 +604,9 @@ static void write_global_header(void) uint32_t network = DLT_BACNET_MS_TP; /* data link type - BACNET_MS_TP */ /* create a new file. */ - (void)data_write_header( - &magic_number, sizeof(magic_number), 1); - (void)data_write_header( - &version_major, sizeof(version_major), 1); - (void)data_write_header( - &version_minor, sizeof(version_minor), 1); + (void)data_write_header(&magic_number, sizeof(magic_number), 1); + (void)data_write_header(&version_major, sizeof(version_major), 1); + (void)data_write_header(&version_minor, sizeof(version_minor), 1); (void)data_write_header(&thiszone, sizeof(thiszone), 1); (void)data_write_header(&sigfigs, sizeof(sigfigs), 1); (void)data_write_header(&snaplen, sizeof(snaplen), 1); @@ -610,8 +614,8 @@ static void write_global_header(void) fflush(File_Handle); } -static void write_received_packet( - struct mstp_port_struct_t *mstp_port, size_t header_len) +static void +write_received_packet(struct mstp_port_struct_t *mstp_port, size_t header_len) { uint32_t ts_sec = 0; /* timestamp seconds */ uint32_t ts_usec = 0; /* timestamp microseconds */ @@ -646,8 +650,7 @@ static void write_received_packet( } } else { if (mstp_port->DataLength) { - max_data = - min(mstp_port->InputBufferSize, mstp_port->DataLength); + max_data = min(mstp_port->InputBufferSize, mstp_port->DataLength); incl_len = orig_len = header_len + max_data + data_crc_len; } else { /* header only - or at least some bytes of the header */ @@ -744,7 +747,8 @@ static bool test_global_header(const char *filename) return false; } } else { - fprintf(stderr, "mstpcap[scan]: failed to open %s: %s\n", filename, + fprintf( + stderr, "mstpcap[scan]: failed to open %s: %s\n", filename, strerror(errno)); return false; } @@ -819,20 +823,22 @@ static bool read_received_packet(struct mstp_port_struct_t *mstp_port) if (orig_len > 8) { /* packet includes data */ mstp_port->DataLength = orig_len - 8 - 2; + count = fread( + mstp_port->InputBuffer, mstp_port->DataLength, 1, File_Handle); + if (count != 1) { + fclose(File_Handle); + File_Handle = NULL; + return false; + } count = - fread(mstp_port->InputBuffer, mstp_port->DataLength, 1, File_Handle); + fread((char *)&mstp_port->DataCRCActualMSB, 1, 1, File_Handle); if (count != 1) { fclose(File_Handle); File_Handle = NULL; return false; } - count = fread((char *)&mstp_port->DataCRCActualMSB, 1, 1, File_Handle); - if (count != 1) { - fclose(File_Handle); - File_Handle = NULL; - return false; - } - count = fread((char *)&mstp_port->DataCRCActualLSB, 1, 1, File_Handle); + count = + fread((char *)&mstp_port->DataCRCActualLSB, 1, 1, File_Handle); if (count != 1) { fclose(File_Handle); File_Handle = NULL; @@ -930,14 +936,15 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { - printf("%s --scan \n" - "perform statistic analysis on MS/TP capture file.\n", + printf( + "%s --scan \n" + "perform statistic analysis on MS/TP capture file.\n", filename); printf("\n"); printf("Captures MS/TP packets from a serial interface\n" - "and writes them to a file or a pipe, or scans a file for stats." - "Filename is of the form mstp_20090123091200.cap (timestamp).\n" - "New files are created after receiving 65535 packets.\n"); + "and writes them to a file or a pipe, or scans a file for stats." + "Filename is of the form mstp_20090123091200.cap (timestamp).\n" + "New files are created after receiving 65535 packets.\n"); printf("\n"); printf("Command line options:\n" "[--extcap-interface port] - serial interface.\n" @@ -957,10 +964,11 @@ static void print_help(const char *filename) #endif " Use that name as the interface name in Wireshark.\n"); printf("\n"); - printf("%s [--extcap-interfaces][--extcap-dlts][--extcap-config]\n" - "[--capture][--baud baud][--fifo pipe]\n" - "[--extcap-interface iface]\n" - "Usage from Wireshark ExtCap interface\n", + printf( + "%s [--extcap-interfaces][--extcap-dlts][--extcap-config]\n" + "[--capture][--baud baud][--fifo pipe]\n" + "[--extcap-interface iface]\n" + "Usage from Wireshark ExtCap interface\n", filename); } @@ -1053,8 +1061,9 @@ int main(int argc, char *argv[]) printf("An interface must be provided.\n"); return 0; } - printf("dlt {number=%u}{name=BACnet MS/TP}" - "{display=BACnet MS/TP}\n", + printf( + "dlt {number=%u}{name=BACnet MS/TP}" + "{display=BACnet MS/TP}\n", DLT_BACNET_MS_TP); Exit_Requested = true; } @@ -1137,7 +1146,8 @@ int main(int argc, char *argv[]) RS485_Initialize(); mstimer_init(); if (!Wireshark_Capture) { - fprintf(stdout, "mstpcap: Using %s for capture at %ld bps.\n", + fprintf( + stdout, "mstpcap: Using %s for capture at %ld bps.\n", RS485_Interface(), (long)RS485_Get_Baud_Rate()); } #if defined(_WIN32) @@ -1194,7 +1204,8 @@ int main(int argc, char *argv[]) } if (!Wireshark_Capture) { if (!(packet_count % 100)) { - fprintf(stdout, "\r%u packets, %u invalid frames", + fprintf( + stdout, "\r%u packets, %u invalid frames", (unsigned)packet_count, (unsigned)Invalid_Frame_Count); fflush(stdout); } diff --git a/apps/mstpcrc/main.c b/apps/mstpcrc/main.c index a85ee2c6..32f689fd 100644 --- a/apps/mstpcrc/main.c +++ b/apps/mstpcrc/main.c @@ -135,7 +135,8 @@ static void filename_create(char *filename, size_t filesize) if (filename) { my_time = time(NULL); today = localtime(&my_time); - snprintf(filename, filesize, "mstp_%04d%02d%02d%02d%02d%02d.cap", + snprintf( + filename, filesize, "mstp_%04d%02d%02d%02d%02d%02d.cap", 1900 + today->tm_year, 1 + today->tm_mon, today->tm_mday, today->tm_hour, today->tm_min, today->tm_sec); } @@ -165,7 +166,8 @@ static void write_global_header(const char *filename) fflush(pFile); fprintf(stdout, "mstpcap: saving capture to %s\n", filename); } else { - fprintf(stderr, "mstpcap[header]: failed to open %s: %s\n", filename, + fprintf( + stderr, "mstpcap[header]: failed to open %s: %s\n", filename, strerror(errno)); } } @@ -189,7 +191,8 @@ static void write_received_packet(uint8_t *buffer, unsigned length) (void)fwrite(&orig_len, sizeof(orig_len), 1, pFile); (void)fwrite(buffer, length, 1, pFile); } else { - fprintf(stderr, "mstpcrc[packet]: failed to open %s: %s\n", + fprintf( + stderr, "mstpcrc[packet]: failed to open %s: %s\n", Capture_Filename, strerror(errno)); } } diff --git a/apps/netnumis/main.c b/apps/netnumis/main.c index 78a13b85..0ce3b179 100644 --- a/apps/netnumis/main.c +++ b/apps/netnumis/main.c @@ -63,8 +63,8 @@ static void MyAbortHandler( * @param invoke_id [in] the invokeID from the rejected message * @param reject_reason [in] the reason for the rejection */ -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -79,7 +79,8 @@ static void MyRejectHandler( * @param npdu - NPDU data * @param npdu_len - NPDU data length */ -static void My_Router_Handler(BACNET_ADDRESS *src, +static void My_Router_Handler( + BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, uint8_t *npdu, uint16_t npdu_len) @@ -120,7 +121,8 @@ static void My_Router_Handler(BACNET_ADDRESS *src, that are sent with a local unicast address. */ if (npdu_len >= 2) { len += decode_unsigned16(npdu, &dnet); - printf(": network number = %u. SNET=%u\n", (unsigned)dnet, + printf( + ": network number = %u. SNET=%u\n", (unsigned)dnet, (unsigned)src->net); } else { printf(": network number = missing! SNET=%u\n", src->net); @@ -142,7 +144,8 @@ static void My_Router_Handler(BACNET_ADDRESS *src, } } -static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ +static void My_NPDU_Handler( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t pdu_len) { /* length PDU */ @@ -152,7 +155,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ apdu_offset = bacnet_npdu_decode(pdu, pdu_len, &dest, src, &npdu_data); if (npdu_data.network_layer_message) { - My_Router_Handler(src, &npdu_data, &pdu[apdu_offset], + My_Router_Handler( + src, &npdu_data, &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); } else if ((apdu_offset > 0) && (apdu_offset <= pdu_len)) { if ((npdu_data.protocol_version == BACNET_PROTOCOL_VERSION) && @@ -166,7 +170,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ if (dest.net) { debug_printf("NPDU: DNET=%d. Discarded!\n", dest.net); } else { - debug_printf("NPDU: BACnet Protocol Version=%d. Discarded!\n", + debug_printf( + "NPDU: BACnet Protocol Version=%d. Discarded!\n", npdu_data.protocol_version); } } @@ -202,8 +207,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) int index = 0; if (argc > 0) { - count = sscanf(argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], - &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], &mac[3], + &mac[4], &mac[5]); dst->mac_len = count; for (index = 0; index < MAX_MAC_LEN; index++) { if (index < count) { @@ -219,8 +225,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) } if (dnet) { if (argc > 2) { - count = sscanf(argv[2], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], - &mac[2], &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[2], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], + &mac[3], &mac[4], &mac[5]); dst->len = count; for (index = 0; index < MAX_MAC_LEN; index++) { if (index < count) { @@ -257,23 +264,24 @@ int main(int argc, char *argv[]) return 0; } if ((argc > 1) && (strcmp(argv[1], "--help") == 0)) { - printf("Send BACnet What-Is-Network-Number message to a network.\r\n" - "\r\n" - "DNET:\r\n" - "BACnet destination network number 0-65535\r\n" - "To omit the BACnet destination network number, use -1.\r\n" - "Network Number Status:\r\n" - "0=learned\r\n" - "1=configured\r\n" - "MAC:\r\n" - "Optional MAC address of router for unicast message\r\n" - "Format: xx[:xx:xx:xx:xx:xx] [dnet xx[:xx:xx:xx:xx:xx]]\r\n" - "Use hexidecimal MAC addresses.\r\n" - "\r\n" - "To send a What-Is-Network-Number request to DNET 86:\r\n" - "%s 86\r\n" - "To send a What-Is-Network-Number request to all devices:\r\n" - "%s -1\r\n", + printf( + "Send BACnet What-Is-Network-Number message to a network.\r\n" + "\r\n" + "DNET:\r\n" + "BACnet destination network number 0-65535\r\n" + "To omit the BACnet destination network number, use -1.\r\n" + "Network Number Status:\r\n" + "0=learned\r\n" + "1=configured\r\n" + "MAC:\r\n" + "Optional MAC address of router for unicast message\r\n" + "Format: xx[:xx:xx:xx:xx:xx] [dnet xx[:xx:xx:xx:xx:xx]]\r\n" + "Use hexidecimal MAC addresses.\r\n" + "\r\n" + "To send a What-Is-Network-Number request to DNET 86:\r\n" + "%s 86\r\n" + "To send a What-Is-Network-Number request to all devices:\r\n" + "%s -1\r\n", filename_remove_path(argv[0]), filename_remove_path(argv[0])); return 0; } @@ -281,7 +289,8 @@ int main(int argc, char *argv[]) if (argc > 1) { Target_Network_Number = strtol(argv[1], NULL, 0); if (Target_Network_Number > UINT16_MAX) { - fprintf(stderr, "DNET=%d - it must be 0 to 65535\r\n", + fprintf( + stderr, "DNET=%d - it must be 0 to 65535\r\n", Target_Network_Number); return 1; } @@ -289,7 +298,8 @@ int main(int argc, char *argv[]) if (argc > 2) { Target_Network_Number_Status = strtol(argv[2], NULL, 0); if (Target_Network_Number_Status > UINT8_MAX) { - fprintf(stderr, "status=%d - it must be 0 to 255\r\n", + fprintf( + stderr, "status=%d - it must be 0 to 255\r\n", Target_Network_Number_Status); return 1; } @@ -309,7 +319,8 @@ int main(int argc, char *argv[]) last_seconds = time(NULL); timeout_seconds = apdu_timeout() / 1000; /* send the request */ - Send_Network_Number_Is(&Target_Router_Address, Target_Network_Number, + Send_Network_Number_Is( + &Target_Router_Address, Target_Network_Number, Target_Network_Number_Status); /* loop forever */ for (;;) { diff --git a/apps/perl/perl_bindings.c b/apps/perl/perl_bindings.c index 2c389ae4..64ad8e56 100644 --- a/apps/perl/perl_bindings.c +++ b/apps/perl/perl_bindings.c @@ -66,25 +66,28 @@ static void MyAbortHandler( if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { char msg[MAX_ERROR_STRING]; - snprintf(msg, sizeof(msg), "BACnet Abort: %s", + snprintf( + msg, sizeof(msg), "BACnet Abort: %s", bactext_abort_reason_name((int)abort_reason)); LogError(msg); } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { char msg[MAX_ERROR_STRING]; - snprintf(msg, sizeof(msg), "BACnet Reject: %s", + snprintf( + msg, sizeof(msg), "BACnet Reject: %s", bactext_reject_reason_name((int)reject_reason)); LogError(msg); } } -static void My_Error_Handler(BACNET_ADDRESS *src, +static void My_Error_Handler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -92,7 +95,8 @@ static void My_Error_Handler(BACNET_ADDRESS *src, if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { char msg[MAX_ERROR_STRING]; - snprintf(msg, sizeof(msg), "BACnet Error: %s: %s", + snprintf( + msg, sizeof(msg), "BACnet Error: %s: %s", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); LogError(msg); @@ -138,8 +142,9 @@ void rp_ack_extract_data(BACNET_READ_PROPERTY_DATA *data) object_value.object_property = data->object_property; object_value.array_index = data->array_index; object_value.value = &value; - bacapp_snprintf_value(pAckString, - MAX_ACK_STRING - (pAckString - ackString), &object_value); + bacapp_snprintf_value( + pAckString, MAX_ACK_STRING - (pAckString - ackString), + &object_value); if (len > 0) { if (len < application_data_len) { application_data += len; @@ -195,8 +200,8 @@ void rpm_ack_extract_data(BACNET_READ_ACCESS_DATA *rpm_data) object_value.array_index = listOfProperties->propertyArrayIndex; object_value.value = value; - bacapp_snprintf_value(pAckString, - MAX_ACK_STRING - (pAckString - ackString), + bacapp_snprintf_value( + pAckString, MAX_ACK_STRING - (pAckString - ackString), &object_value); if (value->next) { strncat(pAckString, ",", 1); @@ -211,7 +216,8 @@ void rpm_ack_extract_data(BACNET_READ_ACCESS_DATA *rpm_data) } } else { /* AccessError */ - snprintf(ackString, sizeof(ackString), "BACnet Error: %s: %s", + snprintf( + ackString, sizeof(ackString), "BACnet Error: %s: %s", bactext_error_class_name( (int)listOfProperties->error.error_class), bactext_error_code_name( @@ -231,7 +237,8 @@ void rpm_ack_extract_data(BACNET_READ_ACCESS_DATA *rpm_data) } } -static void AtomicReadFileAckHandler(uint8_t *service_request, +static void AtomicReadFileAckHandler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -251,7 +258,8 @@ static void AtomicReadFileAckHandler(uint8_t *service_request, uint8_t *pFileData; int i; - snprintf(msg, sizeof(msg), "EOF=%d,start=%d,", data.endOfFile, + snprintf( + msg, sizeof(msg), "EOF=%d,start=%d,", data.endOfFile, data.type.stream.fileStartPosition); __LogAnswer(msg, 0); @@ -279,7 +287,8 @@ static void AtomicReadFileAckHandler(uint8_t *service_request, * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -static void My_Read_Property_Ack_Handler(uint8_t *service_request, +static void My_Read_Property_Ack_Handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -308,7 +317,8 @@ static void My_Read_Property_Ack_Handler(uint8_t *service_request, * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -static void My_Read_Property_Multiple_Ack_Handler(uint8_t *service_request, +static void My_Read_Property_Multiple_Ack_Handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -447,8 +457,9 @@ static void Wait_For_Answer_Or_Timeout(unsigned timeout_ms, waitAction action) break; } } else if (action == waitBind) { - if (address_bind_request(Target_Device_Object_Instance, - &Target_Max_APDU, &Target_Address)) { + if (address_bind_request( + Target_Device_Object_Instance, &Target_Max_APDU, + &Target_Address)) { break; } } else { @@ -507,7 +518,8 @@ int BacnetBindToDevice(int deviceInstanceNumber) /****************************************************/ /* This is the interface to ReadProperty */ /****************************************************/ -int BacnetReadProperty(int deviceInstanceNumber, +int BacnetReadProperty( + int deviceInstanceNumber, int objectType, int objectInstanceNumber, int objectProperty, @@ -526,8 +538,9 @@ int BacnetReadProperty(int deviceInstanceNumber, isReadPropertyHandlerRegistered = true; } /* Send the message out */ - Request_Invoke_ID = Send_Read_Property_Request(deviceInstanceNumber, - objectType, objectInstanceNumber, objectProperty, objectIndex); + Request_Invoke_ID = Send_Read_Property_Request( + deviceInstanceNumber, objectType, objectInstanceNumber, objectProperty, + objectIndex); Wait_For_Answer_Or_Timeout(100, waitAnswer); int isFailure = Error_Detected; @@ -622,7 +635,8 @@ int BacnetReadPropertyMultiple(int deviceInstanceNumber, ...) if (!isReadPropertyMultipleHandlerRegistered) { /* handle the data coming back from confirmed requests */ - apdu_set_confirmed_ack_handler(SERVICE_CONFIRMED_READ_PROP_MULTIPLE, + apdu_set_confirmed_ack_handler( + SERVICE_CONFIRMED_READ_PROP_MULTIPLE, My_Read_Property_Multiple_Ack_Handler); /* handle any errors coming back */ @@ -665,7 +679,8 @@ int BacnetReadPropertyMultiple(int deviceInstanceNumber, ...) /****************************************************/ /* This is the interface to WriteProperty */ /****************************************************/ -int BacnetWriteProperty(int deviceInstanceNumber, +int BacnetWriteProperty( + int deviceInstanceNumber, int objectType, int objectInstanceNumber, int objectProperty, @@ -679,7 +694,8 @@ int BacnetWriteProperty(int deviceInstanceNumber, if (!isWritePropertyHandlerRegistered) { /* handle the ack coming back */ - apdu_set_confirmed_simple_ack_handler(SERVICE_CONFIRMED_WRITE_PROPERTY, + apdu_set_confirmed_simple_ack_handler( + SERVICE_CONFIRMED_WRITE_PROPERTY, My_Write_Property_SimpleAck_Handler); /* handle any errors coming back */ @@ -710,7 +726,8 @@ int BacnetWriteProperty(int deviceInstanceNumber, property_tag = strtol(tag, NULL, 0); if (property_tag >= MAX_BACNET_APPLICATION_TAG) { - snprintf(msg, sizeof(msg), "Error: tag=%u - it must be less than %u", + snprintf( + msg, sizeof(msg), "Error: tag=%u - it must be less than %u", property_tag, MAX_BACNET_APPLICATION_TAG); LogError(msg); break; @@ -724,9 +741,9 @@ int BacnetWriteProperty(int deviceInstanceNumber, propertyValue.next = NULL; /* Send out the message */ - Request_Invoke_ID = Send_Write_Property_Request(deviceInstanceNumber, - objectType, objectInstanceNumber, objectProperty, &propertyValue, - objectPriority, objectIndex); + Request_Invoke_ID = Send_Write_Property_Request( + deviceInstanceNumber, objectType, objectInstanceNumber, + objectProperty, &propertyValue, objectPriority, objectIndex); Wait_For_Answer_Or_Timeout(100, waitAnswer); /* If we get here, then there were no explicit failures. However, there @@ -740,7 +757,8 @@ int BacnetWriteProperty(int deviceInstanceNumber, return isFailure; } -int BacnetAtomicWriteFile(int deviceInstanceNumber, +int BacnetAtomicWriteFile( + int deviceInstanceNumber, int fileInstanceNumber, int blockStartAddr, int blockNumBytes, @@ -778,8 +796,9 @@ int BacnetAtomicWriteFile(int deviceInstanceNumber, /* Send out the message and wait for answer */ if (!Error_Detected) { - Request_Invoke_ID = Send_Atomic_Write_File_Stream(deviceInstanceNumber, - fileInstanceNumber, blockStartAddr, &fileData); + Request_Invoke_ID = Send_Atomic_Write_File_Stream( + deviceInstanceNumber, fileInstanceNumber, blockStartAddr, + &fileData); Wait_For_Answer_Or_Timeout(100, waitAnswer); } @@ -816,7 +835,8 @@ int BacnetGetMaxApdu() return requestedOctetCount; } -int BacnetTimeSync(int deviceInstanceNumber, +int BacnetTimeSync( + int deviceInstanceNumber, int year, int month, int day, @@ -871,8 +891,9 @@ int BacnetTimeSync(int deviceInstanceNumber, /* encode the NPDU portion of the packet */ npdu_encode_npdu_data(&npdu_data, false, MESSAGE_PRIORITY_NORMAL); datalink_get_my_address(&my_address); - pdu_len = npdu_encode_pdu(&Handler_Transmit_Buffer[0], &Target_Address, - &my_address, &npdu_data); + pdu_len = npdu_encode_pdu( + &Handler_Transmit_Buffer[0], &Target_Address, &my_address, + &npdu_data); /* encode the APDU portion of the packet */ len = timesync_encode_apdu( @@ -884,7 +905,8 @@ int BacnetTimeSync(int deviceInstanceNumber, &Target_Address, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { char msg[64]; - snprintf(msg, sizeof(msg), + snprintf( + msg, sizeof(msg), "Failed to Send Time-Synchronization Request (%s)!", strerror(errno)); LogError(msg); @@ -902,7 +924,8 @@ int BacnetTimeSync(int deviceInstanceNumber, /****************************************************/ /* This is the interface to AtomicReadFile */ /****************************************************/ -int BacnetAtomicReadFile(int deviceInstanceNumber, +int BacnetAtomicReadFile( + int deviceInstanceNumber, int fileInstanceNumber, int startOffset, int numBytes) diff --git a/apps/piface/device.c b/apps/piface/device.c index b14b456c..756b27b2 100644 --- a/apps/piface/device.c +++ b/apps/piface/device.c @@ -41,62 +41,128 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data); static object_functions_t *Object_Table; static object_functions_t My_Object_Table[] = { - { OBJECT_DEVICE, NULL /* Init - don't init Device or it will recourse! */, - Device_Count, Device_Index_To_Instance, - Device_Valid_Object_Instance_Number, Device_Object_Name, - Device_Read_Property_Local, Device_Write_Property_Local, - Device_Property_Lists, DeviceGetRRInfo, NULL /* Iterator */, - NULL /* Value_Lists */, NULL /* COV */, NULL /* COV Clear */, - NULL /* Intrinsic Reporting */, NULL /* Add_List_Element */, - NULL /* Remove_List_Element */, NULL /* Create */, NULL /* Delete */, - NULL /* Timer */ }, + { OBJECT_DEVICE, + NULL /* Init - don't init Device or it will recourse! */, + Device_Count, + Device_Index_To_Instance, + Device_Valid_Object_Instance_Number, + Device_Object_Name, + Device_Read_Property_Local, + Device_Write_Property_Local, + Device_Property_Lists, + DeviceGetRRInfo, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, #if (BACNET_PROTOCOL_REVISION >= 17) - { OBJECT_NETWORK_PORT, Network_Port_Init, Network_Port_Count, - Network_Port_Index_To_Instance, Network_Port_Valid_Instance, - Network_Port_Object_Name, Network_Port_Read_Property, - Network_Port_Write_Property, Network_Port_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, + { OBJECT_NETWORK_PORT, + Network_Port_Init, + Network_Port_Count, + Network_Port_Index_To_Instance, + Network_Port_Valid_Instance, + Network_Port_Object_Name, + Network_Port_Read_Property, + Network_Port_Write_Property, + Network_Port_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, #endif - { OBJECT_BINARY_INPUT, Binary_Input_Init, Binary_Input_Count, - Binary_Input_Index_To_Instance, Binary_Input_Valid_Instance, - Binary_Input_Object_Name, Binary_Input_Read_Property, - Binary_Input_Write_Property, Binary_Input_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, - Binary_Input_Encode_Value_List, Binary_Input_Change_Of_Value, - Binary_Input_Change_Of_Value_Clear, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, - { OBJECT_BINARY_LIGHTING_OUTPUT, Binary_Lighting_Output_Init, - Binary_Lighting_Output_Count, Binary_Lighting_Output_Index_To_Instance, - Binary_Lighting_Output_Valid_Instance, - Binary_Lighting_Output_Object_Name, - Binary_Lighting_Output_Read_Property, - Binary_Lighting_Output_Write_Property, - Binary_Lighting_Output_Property_Lists, NULL /* ReadRangeInfo */, - NULL /* Iterator */, NULL /* Value_Lists */, NULL /* COV */, - NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - Binary_Lighting_Output_Create, Binary_Lighting_Output_Delete, - Binary_Lighting_Output_Timer }, - { OBJECT_BINARY_OUTPUT, Binary_Output_Init, Binary_Output_Count, - Binary_Output_Index_To_Instance, Binary_Output_Valid_Instance, - Binary_Output_Object_Name, Binary_Output_Read_Property, - Binary_Output_Write_Property, Binary_Output_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - Binary_Output_Create, Binary_Output_Delete, NULL /* Timer */ }, - { MAX_BACNET_OBJECT_TYPE, NULL /* Init */, NULL /* Count */, - NULL /* Index_To_Instance */, NULL /* Valid_Instance */, - NULL /* Object_Name */, NULL /* Read_Property */, - NULL /* Write_Property */, NULL /* Property_Lists */, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ } + { OBJECT_BINARY_INPUT, + Binary_Input_Init, + Binary_Input_Count, + Binary_Input_Index_To_Instance, + Binary_Input_Valid_Instance, + Binary_Input_Object_Name, + Binary_Input_Read_Property, + Binary_Input_Write_Property, + Binary_Input_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + Binary_Input_Encode_Value_List, + Binary_Input_Change_Of_Value, + Binary_Input_Change_Of_Value_Clear, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, + { OBJECT_BINARY_LIGHTING_OUTPUT, + Binary_Lighting_Output_Init, + Binary_Lighting_Output_Count, + Binary_Lighting_Output_Index_To_Instance, + Binary_Lighting_Output_Valid_Instance, + Binary_Lighting_Output_Object_Name, + Binary_Lighting_Output_Read_Property, + Binary_Lighting_Output_Write_Property, + Binary_Lighting_Output_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + Binary_Lighting_Output_Create, + Binary_Lighting_Output_Delete, + Binary_Lighting_Output_Timer }, + { OBJECT_BINARY_OUTPUT, + Binary_Output_Init, + Binary_Output_Count, + Binary_Output_Index_To_Instance, + Binary_Output_Valid_Instance, + Binary_Output_Object_Name, + Binary_Output_Read_Property, + Binary_Output_Write_Property, + Binary_Output_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + Binary_Output_Create, + Binary_Output_Delete, + NULL /* Timer */ }, + { MAX_BACNET_OBJECT_TYPE, + NULL /* Init */, + NULL /* Count */, + NULL /* Index_To_Instance */, + NULL /* Valid_Instance */, + NULL /* Object_Name */, + NULL /* Read_Property */, + NULL /* Write_Property */, + NULL /* Property_Lists */, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ } }; /** Glue function to let the Device object, when called by a handler, @@ -107,8 +173,8 @@ static object_functions_t My_Object_Table[] = { * @return Pointer to the group of object helper functions that implement this * type of Object. */ -static struct object_functions *Device_Objects_Find_Functions( - BACNET_OBJECT_TYPE Object_Type) +static struct object_functions * +Device_Objects_Find_Functions(BACNET_OBJECT_TYPE Object_Type) { struct object_functions *pObject = NULL; @@ -154,7 +220,8 @@ rr_info_function Device_Objects_RR_Info(BACNET_OBJECT_TYPE object_type) * list, separately, the Required, Optional, and Proprietary object * properties with their counts. */ -void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, +void Device_Objects_Property_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, struct special_property_list_t *pPropertyList) { @@ -172,8 +239,9 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, pObject = Device_Objects_Find_Functions(object_type); if ((pObject != NULL) && (pObject->Object_RPM_List != NULL)) { - pObject->Object_RPM_List(&pPropertyList->Required.pList, - &pPropertyList->Optional.pList, &pPropertyList->Proprietary.pList); + pObject->Object_RPM_List( + &pPropertyList->Required.pList, &pPropertyList->Optional.pList, + &pPropertyList->Proprietary.pList); } /* Fetch the counts if available otherwise zero them */ @@ -193,25 +261,47 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, } /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Device_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_SYSTEM_STATUS, PROP_VENDOR_NAME, - PROP_VENDOR_IDENTIFIER, PROP_MODEL_NAME, PROP_FIRMWARE_REVISION, - PROP_APPLICATION_SOFTWARE_VERSION, PROP_PROTOCOL_VERSION, - PROP_PROTOCOL_REVISION, PROP_PROTOCOL_SERVICES_SUPPORTED, - PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, PROP_OBJECT_LIST, - PROP_MAX_APDU_LENGTH_ACCEPTED, PROP_SEGMENTATION_SUPPORTED, - PROP_APDU_TIMEOUT, PROP_NUMBER_OF_APDU_RETRIES, PROP_DEVICE_ADDRESS_BINDING, - PROP_DATABASE_REVISION, -1 }; +static const int Device_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_SYSTEM_STATUS, + PROP_VENDOR_NAME, + PROP_VENDOR_IDENTIFIER, + PROP_MODEL_NAME, + PROP_FIRMWARE_REVISION, + PROP_APPLICATION_SOFTWARE_VERSION, + PROP_PROTOCOL_VERSION, + PROP_PROTOCOL_REVISION, + PROP_PROTOCOL_SERVICES_SUPPORTED, + PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, + PROP_OBJECT_LIST, + PROP_MAX_APDU_LENGTH_ACCEPTED, + PROP_SEGMENTATION_SUPPORTED, + PROP_APDU_TIMEOUT, + PROP_NUMBER_OF_APDU_RETRIES, + PROP_DEVICE_ADDRESS_BINDING, + PROP_DATABASE_REVISION, + -1 +}; static const int Device_Properties_Optional[] = { #if defined(BACDL_MSTP) - PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, + PROP_MAX_MASTER, + PROP_MAX_INFO_FRAMES, #endif - PROP_DESCRIPTION, PROP_LOCAL_TIME, PROP_UTC_OFFSET, PROP_LOCAL_DATE, - PROP_DAYLIGHT_SAVINGS_STATUS, PROP_LOCATION, PROP_ACTIVE_COV_SUBSCRIPTIONS, + PROP_DESCRIPTION, + PROP_LOCAL_TIME, + PROP_UTC_OFFSET, + PROP_LOCAL_DATE, + PROP_DAYLIGHT_SAVINGS_STATUS, + PROP_LOCATION, + PROP_ACTIVE_COV_SUBSCRIPTIONS, #if defined(BACNET_TIME_MASTER) - PROP_TIME_SYNCHRONIZATION_RECIPIENTS, PROP_TIME_SYNCHRONIZATION_INTERVAL, - PROP_ALIGN_INTERVALS, PROP_INTERVAL_OFFSET, + PROP_TIME_SYNCHRONIZATION_RECIPIENTS, + PROP_TIME_SYNCHRONIZATION_INTERVAL, + PROP_ALIGN_INTERVALS, + PROP_INTERVAL_OFFSET, #endif -1 }; @@ -785,7 +875,8 @@ int Device_Object_List_Element_Encode( * Object. * @return True on success or else False if not found. */ -bool Device_Valid_Object_Name(const BACNET_CHARACTER_STRING *object_name1, +bool Device_Valid_Object_Name( + const BACNET_CHARACTER_STRING *object_name1, BACNET_OBJECT_TYPE *object_type, uint32_t *object_instance) { @@ -804,7 +895,7 @@ bool Device_Valid_Object_Name(const BACNET_CHARACTER_STRING *object_name1, pObject = Device_Objects_Find_Functions(type); if ((pObject != NULL) && (pObject->Object_Name != NULL) && (pObject->Object_Name(instance, &object_name2) && - characterstring_same(object_name1, &object_name2))) { + characterstring_same(object_name1, &object_name2))) { found = true; if (object_type) { *object_type = type; @@ -845,7 +936,8 @@ bool Device_Valid_Object_Id( * @param object_name [out] The Object Name found for this child Object. * @return True on success or else False if not found. */ -bool Device_Object_Name_Copy(BACNET_OBJECT_TYPE object_type, +bool Device_Object_Name_Copy( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_CHARACTER_STRING *object_name) { @@ -1063,7 +1155,8 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_init(&bit_string); for (i = 0; i < MAX_BACNET_SERVICES_SUPPORTED; i++) { /* automatic lookup based on handlers set */ - bitstring_set_bit(&bit_string, (uint8_t)i, + bitstring_set_bit( + &bit_string, (uint8_t)i, apdu_service_supported((BACNET_SERVICES_SUPPORTED)i)); } apdu_len = encode_application_bitstring(&apdu[0], &bit_string); @@ -1090,9 +1183,9 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_OBJECT_LIST: count = Device_Object_List_Count(); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Device_Object_List_Element_Encode, count, - apdu, apdu_max); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Device_Object_List_Element_Encode, count, apdu, apdu_max); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -1215,8 +1308,9 @@ static int Read_Property_Common( } else if (rpdata->object_property == PROP_PROPERTY_LIST) { Device_Objects_Property_List( rpdata->object_type, rpdata->object_instance, &property_list); - apdu_len = property_list_encode(rpdata, property_list.Required.pList, - property_list.Optional.pList, property_list.Proprietary.pList); + apdu_len = property_list_encode( + rpdata, property_list.Required.pList, property_list.Optional.pList, + property_list.Proprietary.pList); #endif } else if (pObject->Object_Read_Property) { apdu_len = pObject->Object_Read_Property(rpdata); @@ -1354,8 +1448,9 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, characterstring_capacity(&My_Object_Name)); if (status) { /* All the object names in a device must be unique */ - if (Device_Valid_Object_Name(&value.type.Character_String, - &object_type, &object_instance)) { + if (Device_Valid_Object_Name( + &value.type.Character_String, &object_type, + &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { /* writing same name to same object */ @@ -1719,7 +1814,8 @@ int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA *list_element) * @param [out] The value list * @return True if the object instance supports this feature and value changed. */ -bool Device_Encode_Value_List(BACNET_OBJECT_TYPE object_type, +bool Device_Encode_Value_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list) { @@ -1804,7 +1900,8 @@ bool Device_Create_Object(BACNET_CREATE_OBJECT_DATA *data) object for some other reason.*/ data->error_class = ERROR_CLASS_OBJECT; data->error_code = ERROR_CODE_DYNAMIC_CREATION_NOT_SUPPORTED; - } else if (pObject->Object_Valid_Instance && + } else if ( + pObject->Object_Valid_Instance && pObject->Object_Valid_Instance(data->object_instance)) { /* The object being created already exists */ data->error_class = ERROR_CLASS_OBJECT; @@ -1862,7 +1959,8 @@ bool Device_Delete_Object(BACNET_DELETE_OBJECT_DATA *data) object for some reason.*/ data->error_class = ERROR_CLASS_OBJECT; data->error_code = ERROR_CODE_OBJECT_DELETION_NOT_PERMITTED; - } else if (pObject->Object_Valid_Instance && + } else if ( + pObject->Object_Valid_Instance && pObject->Object_Valid_Instance(data->object_instance)) { /* The object being deleted must already exist */ status = pObject->Object_Delete(data->object_instance); @@ -1934,7 +2032,8 @@ void Device_Init(object_functions_t *object_table) } } -bool DeviceGetRRInfo(BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ +bool DeviceGetRRInfo( + BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ RR_PROP_INFO *pInfo) { /* Where to put the response */ bool status = false; /* return value */ diff --git a/apps/piface/main.c b/apps/piface/main.c index 1aec4ad0..43207ddb 100644 --- a/apps/piface/main.c +++ b/apps/piface/main.c @@ -85,7 +85,8 @@ static void piface_write_output(int index, BACNET_BINARY_LIGHTING_PV value) * @param old_value - value prior to write * @param value - value of the write */ -static void Binary_Lighting_Output_Write_Value_Handler(uint32_t object_instance, +static void Binary_Lighting_Output_Write_Value_Handler( + uint32_t object_instance, BACNET_BINARY_LIGHTING_PV old_value, BACNET_BINARY_LIGHTING_PV value) { @@ -93,7 +94,8 @@ static void Binary_Lighting_Output_Write_Value_Handler(uint32_t object_instance, index = Binary_Lighting_Output_Instance_To_Index(object_instance); if (index < PIFACE_OUTPUTS_MAX) { - printf("BLO-WRITE: OUTPUT[%u]=%d present=%d feedback=%d target=%d\n", + printf( + "BLO-WRITE: OUTPUT[%u]=%d present=%d feedback=%d target=%d\n", index, (int)value, (int)Binary_Lighting_Output_Present_Value(object_instance), (int)old_value, @@ -115,12 +117,10 @@ static void Binary_Lighting_Output_Blink_Warn_Handler(uint32_t object_instance) if (index < PIFACE_OUTPUTS_MAX) { /* blink is just toggle on/off every one second */ if (PiFace_Output_State[index]) { - printf("BLO-BLINK: OUTPUT[%u]=%d\n", index, - BINARY_LIGHTING_PV_OFF); + printf("BLO-BLINK: OUTPUT[%u]=%d\n", index, BINARY_LIGHTING_PV_OFF); piface_write_output(index, BINARY_LIGHTING_PV_OFF); } else { - printf( - "BLO-BLINK: OUTPUT[%u]=%d\n", index, BINARY_LIGHTING_PV_ON); + printf("BLO-BLINK: OUTPUT[%u]=%d\n", index, BINARY_LIGHTING_PV_ON); piface_write_output(index, BINARY_LIGHTING_PV_ON); } } @@ -166,7 +166,8 @@ static void Init_Service_Handlers(void) apdu_set_unconfirmed_handler( SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); /* configure the cyclic timers */ mstimer_set(&BACnet_Task_Timer, 1000UL); @@ -262,13 +263,15 @@ static void piface_task(void) present_value = Binary_Output_Present_Value(object_instance); if (present_value == BINARY_INACTIVE) { if (PiFace_Output_State[i]) { - printf("BO-WRITE: OUTPUT[%u]=%d\n", i, + printf( + "BO-WRITE: OUTPUT[%u]=%d\n", i, BINARY_LIGHTING_PV_OFF); piface_write_output(i, BINARY_LIGHTING_PV_OFF); } } else { if (!PiFace_Output_State[i]) { - printf("BO-WRITE: OUTPUT[%u]=%d\n", i, + printf( + "BO-WRITE: OUTPUT[%u]=%d\n", i, BINARY_LIGHTING_PV_OFF); piface_write_output(i, BINARY_LIGHTING_PV_ON); } @@ -302,10 +305,11 @@ int main(int argc, char *argv[]) if (argc > 1) { Device_Set_Object_Instance_Number(strtol(argv[1], NULL, 0)); } - printf("BACnet Raspberry Pi PiFace Digital Demo\n" - "BACnet Stack Version %s\n" - "BACnet Device ID: %u\n" - "Max APDU: %d\n", + printf( + "BACnet Raspberry Pi PiFace Digital Demo\n" + "BACnet Stack Version %s\n" + "BACnet Device ID: %u\n" + "Max APDU: %d\n", BACnet_Version, Device_Object_Instance_Number(), MAX_APDU); /* load any static address bindings to show up in our device bindings list */ diff --git a/apps/ptransfer/h_pt.c b/apps/ptransfer/h_pt.c index fe5ae891..c23aedeb 100644 --- a/apps/ptransfer/h_pt.c +++ b/apps/ptransfer/h_pt.c @@ -122,7 +122,8 @@ static void ProcessPT(BACNET_PRIVATE_TRANSFER_DATA *data) data->serviceParametersLen = 0; return; } - iLen += decode_real(&data->serviceParameters[iLen], + iLen += decode_real( + &data->serviceParameters[iLen], &MyData[(int8_t)cBlockNumber].fMyReal); tag_len = decode_tag_number_and_value( @@ -135,7 +136,8 @@ static void ProcessPT(BACNET_PRIVATE_TRANSFER_DATA *data) decode_character_string( &data->serviceParameters[iLen], len_value_type, &bsTemp); /* Only copy as much as we can accept */ - strncpy((char *)MyData[(int8_t)cBlockNumber].sMyString, + strncpy( + (char *)MyData[(int8_t)cBlockNumber].sMyString, characterstring_value(&bsTemp), MY_MAX_STR); /* Make sure it is nul terminated */ MyData[(int8_t)cBlockNumber].sMyString[MY_MAX_STR] = '\0'; @@ -160,7 +162,8 @@ static void ProcessPT(BACNET_PRIVATE_TRANSFER_DATA *data) * */ -void handler_conf_private_trans(uint8_t *service_request, +void handler_conf_private_trans( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -194,9 +197,9 @@ void handler_conf_private_trans(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "CPT: Segmented Message. Sending Abort!\n"); #endif @@ -206,8 +209,9 @@ void handler_conf_private_trans(uint8_t *service_request, len = ptransfer_decode_service_request(service_request, service_len, &data); /* bad decoding - send an abort */ if (len < 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "CPT: Bad Encoding. Sending Abort!\n"); #endif @@ -247,8 +251,9 @@ void handler_conf_private_trans(uint8_t *service_request, } if (error) { - len = ptransfer_error_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, error_class, error_code, &data); + len = ptransfer_error_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + error_class, error_code, &data); } CPT_ABORT: pdu_len += len; diff --git a/apps/ptransfer/h_pt.h b/apps/ptransfer/h_pt.h index cce52ac5..03b9936d 100644 --- a/apps/ptransfer/h_pt.h +++ b/apps/ptransfer/h_pt.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ConfirmedPrivateTransfer service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ConfirmedPrivateTransfer service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_CONFIRMED_PRIVATE_TRANSFER_H #define HANDLER_CONFIRMED_PRIVATE_TRANSFER_H @@ -24,11 +24,11 @@ extern "C" { #endif /* __cplusplus */ - void handler_conf_private_trans( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +void handler_conf_private_trans( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/apps/ptransfer/h_pt_a.c b/apps/ptransfer/h_pt_a.c index 9e2f5cb5..f36bb440 100644 --- a/apps/ptransfer/h_pt_a.c +++ b/apps/ptransfer/h_pt_a.c @@ -36,8 +36,9 @@ static void DecodeBlock(char cBlockNum, uint8_t *pData) iLen = 0; - if (cBlockNum >= MY_MAX_BLOCK) + if (cBlockNum >= MY_MAX_BLOCK) { return; + } tag_len = decode_tag_number_and_value(&pData[iLen], &tag_number, &len_value_type); @@ -136,12 +137,14 @@ static void ProcessPTA(BACNET_PRIVATE_TRANSFER_DATA *data) cBlockNumber = (char)ulTemp; DecodeBlock(cBlockNumber, &data->serviceParameters[iLen]); } else { /* Read error */ - printf("Private Transfer read operation returned error code: %lu\n", + printf( + "Private Transfer read operation returned error code: %lu\n", (unsigned long)uiErrorCode); return; } } else { /* Write I/O block - should just be an OK type message */ - printf("Private Transfer write operation returned error code: %lu\n", + printf( + "Private Transfer write operation returned error code: %lu\n", (unsigned long)uiErrorCode); } } @@ -152,7 +155,8 @@ static void ProcessPTA(BACNET_PRIVATE_TRANSFER_DATA *data) * and decide what to do next... */ -void handler_conf_private_trans_ack(uint8_t *service_request, +void handler_conf_private_trans_ack( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -176,7 +180,8 @@ void handler_conf_private_trans_ack(uint8_t *service_request, printf("Received Confirmed Private Transfer Ack!\n"); #endif - len = ptransfer_decode_service_request(service_request, service_len, + len = ptransfer_decode_service_request( + service_request, service_len, &data); /* Same decode for ack as for service request! */ if (len < 0) { #if PRINT_ENABLED diff --git a/apps/ptransfer/h_pt_a.h b/apps/ptransfer/h_pt_a.h index 6ce58ace..ff3d916e 100644 --- a/apps/ptransfer/h_pt_a.h +++ b/apps/ptransfer/h_pt_a.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ConfirmedPrivateTransfer-Ack service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ConfirmedPrivateTransfer-Ack service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_CONFIRMED_PRIVATE_TRANSFER_ACK_H #define HANDLER_CONFIRMED_PRIVATE_TRANSFER_ACK_H @@ -25,11 +25,11 @@ extern "C" { #endif /* __cplusplus */ - void handler_conf_private_trans_ack( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_ACK_DATA * service_data); +void handler_conf_private_trans_ack( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); #ifdef __cplusplus } diff --git a/apps/ptransfer/main.c b/apps/ptransfer/main.c index c1ae476c..b3909fa7 100644 --- a/apps/ptransfer/main.c +++ b/apps/ptransfer/main.c @@ -68,7 +68,8 @@ static int Target_Mode = 0; static BACNET_ADDRESS Target_Address; static bool Error_Detected = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -76,14 +77,15 @@ static void MyErrorHandler(BACNET_ADDRESS *src, /* FIXME: verify src and invoke id */ (void)src; (void)invoke_id; - printf("BACnet Error: %s: %s\r\n", - bactext_error_class_name((int)error_class), + printf( + "BACnet Error: %s: %s\r\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); /* Error_Detected = true; */ } /* complex error reply function */ -static void MyPrivateTransferErrorHandler(BACNET_ADDRESS *src, +static void MyPrivateTransferErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t service_choice, uint8_t *service_request, @@ -108,13 +110,14 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; (void)invoke_id; - printf("BACnet Reject: %s\r\n", + printf( + "BACnet Reject: %s\r\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -184,8 +187,9 @@ int main(int argc, char *argv[]) if (((argc != 2) && (argc != 3)) || ((argc >= 2) && (strcmp(argv[1], "--help") == 0))) { printf("%s\n", argv[0]); - printf("Usage: %s server local-device-instance\r\n or\r\n" - " %s remote-device-instance\r\n", + printf( + "Usage: %s server local-device-instance\r\n or\r\n" + " %s remote-device-instance\r\n", filename_remove_path(argv[0]), filename_remove_path(argv[0])); if ((argc > 1) && (strcmp(argv[1], "--help") == 0)) { printf( @@ -220,7 +224,8 @@ int main(int argc, char *argv[]) Target_Device_Object_Instance = strtol(argv[1 + Target_Mode], NULL, 0); if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\r\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\r\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -349,8 +354,9 @@ int main(int argc, char *argv[]) case 3: case 5: case 7: - printf("Requesting block %d with invalid " - "Vendor ID\n", + printf( + "Requesting block %d with invalid " + "Vendor ID\n", iCount); invoke_id = Send_Private_Transfer_Request( Target_Device_Object_Instance, diff --git a/apps/ptransfer/s_ptransfer.c b/apps/ptransfer/s_ptransfer.c index 494bad81..f102920e 100644 --- a/apps/ptransfer/s_ptransfer.c +++ b/apps/ptransfer/s_ptransfer.c @@ -25,7 +25,8 @@ #include "bacnet/datalink/datalink.h" #include "bacnet/basic/services.h" -uint8_t Send_Private_Transfer_Request(uint32_t device_id, +uint8_t Send_Private_Transfer_Request( + uint32_t device_id, uint16_t vendor_id, uint32_t service_number, unsigned int block_number, @@ -81,21 +82,25 @@ uint8_t Send_Private_Transfer_Request(uint32_t device_id, max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); bytes_sent = datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send Private Transfer Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send Private Transfer Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/apps/ptransfer/s_ptransfer.h b/apps/ptransfer/s_ptransfer.h index c7579b82..2cb336f2 100644 --- a/apps/ptransfer/s_ptransfer.h +++ b/apps/ptransfer/s_ptransfer.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WritePropertyMultiple service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WritePropertyMultiple service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_WRITE_PROPERTY_MULTIPLE_H #define SEND_WRITE_PROPERTY_MULTIPLE_H @@ -25,9 +25,12 @@ extern "C" { #endif /* __cplusplus */ -uint8_t Send_Private_Transfer_Request(uint32_t device_id, uint16_t vendor_id, - uint32_t service_number, - char block_number, DATABLOCK *block); +uint8_t Send_Private_Transfer_Request( + uint32_t device_id, + uint16_t vendor_id, + uint32_t service_number, + char block_number, + DATABLOCK *block); #ifdef __cplusplus } diff --git a/apps/readbdt/main.c b/apps/readbdt/main.c index 3b0bad2e..2c92f5d2 100644 --- a/apps/readbdt/main.c +++ b/apps/readbdt/main.c @@ -52,8 +52,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; diff --git a/apps/readfdt/main.c b/apps/readfdt/main.c index d6ca3697..4e6dbe5c 100644 --- a/apps/readfdt/main.c +++ b/apps/readfdt/main.c @@ -52,8 +52,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -98,16 +98,17 @@ int main(int argc, char *argv[]) return 0; } if ((argc > 1) && (strcmp(argv[1], "--help") == 0)) { - printf("Send a Read-Foreign-Device-Table message to a BBMD.\r\n" - "\r\n" - "IP:\r\n" - "IP address of the BBMD in dotted decimal notation\r\n" - "[port]\r\n" - "optional BACnet/IP port number (default=47808=0xBAC0)\r\n" - "\r\n" - "To send a Read-Foreign-Device-Table message to a BBMD\r\n" - "at 192.168.0.1 using port 47808:\r\n" - "%s 192.168.0.1 47808\r\n", + printf( + "Send a Read-Foreign-Device-Table message to a BBMD.\r\n" + "\r\n" + "IP:\r\n" + "IP address of the BBMD in dotted decimal notation\r\n" + "[port]\r\n" + "optional BACnet/IP port number (default=47808=0xBAC0)\r\n" + "\r\n" + "To send a Read-Foreign-Device-Table message to a BBMD\r\n" + "at 192.168.0.1 using port 47808:\r\n" + "%s 192.168.0.1 47808\r\n", filename_remove_path(argv[0])); return 0; } diff --git a/apps/readfile/main.c b/apps/readfile/main.c index 4b8f4b3c..e4894da1 100644 --- a/apps/readfile/main.c +++ b/apps/readfile/main.c @@ -50,14 +50,16 @@ static bool End_Of_File_Detected = false; static bool Error_Detected = false; static uint8_t Request_Invoke_ID = 0; -static void Atomic_Read_File_Error_Handler(BACNET_ADDRESS *src, +static void Atomic_Read_File_Error_Handler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -76,18 +78,20 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } } -static void AtomicReadFileAckHandler(uint8_t *service_request, +static void AtomicReadFileAckHandler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -128,7 +132,8 @@ static void AtomicReadFileAckHandler(uint8_t *service_request, octets_written = fwrite(octet_buffer, 1, octet_count, pFile); if (octets_written != octet_count) { - fprintf(stderr, + fprintf( + stderr, "Unable to write data to file \"%s\".\n", Local_File_Name); } else { @@ -140,7 +145,8 @@ static void AtomicReadFileAckHandler(uint8_t *service_request, } fflush(pFile); } else { - fprintf(stderr, "Unable to seek to %d!\n", + fprintf( + stderr, "Unable to seek to %d!\n", data.type.stream.fileStartPosition); } } @@ -154,7 +160,8 @@ static void AtomicReadFileAckHandler(uint8_t *service_request, fprintf(stderr, "Decode error! %d bytes decoded.\n", len); } } else { - fprintf(stderr, "Address & Invoke ID mismatch! Invoke ID=%d\n", + fprintf( + stderr, "Address & Invoke ID mismatch! Invoke ID=%d\n", Request_Invoke_ID); } } @@ -213,24 +220,26 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { - printf( - "Read a file from a BACnet device and save it locally.\n"); + printf("Read a file from a BACnet device and save it locally.\n"); printf("\n"); - printf("device-instance:\n" + printf( + "device-instance:\n" "BACnet Device Object Instance number that you are trying to\n" "communicate to. This number will be used to try and bind with\n" "the device using Who-Is and I-Am services. For example, if you were\n" "reading from Device Object 123, the device-instance would be 123.\n"); printf("\n"); - printf("file-instance:\n" + printf( + "file-instance:\n" "This is the file object instance number that you are reading from.\n" "For example, if you were reading from File 2, \n" "the file-instance would be 2.\n"); printf("\n"); printf("local-name:\n" - "The name of the file that will be stored locally.\n"); + "The name of the file that will be stored locally.\n"); printf("\n"); - printf("Example:\n" + printf( + "Example:\n" "If you want read File 2 from Device 123 and save it to temp.txt,\n" "use the following command:\n" "%s 123 2 temp.txt\n", @@ -280,12 +289,14 @@ int main(int argc, char *argv[]) Target_File_Object_Instance = strtol(argv[2], NULL, 0); Local_File_Name = argv[3]; if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } if (Target_File_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "file-instance=%u - not greater than %u\n", + fprintf( + stderr, "file-instance=%u - not greater than %u\n", Target_File_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -356,10 +367,10 @@ int main(int argc, char *argv[]) /* the ACK will increment the start position if OK */ /* we'll read the file in chunks less than max_apdu to keep unsegmented */ - invoke_id = - Send_Atomic_Read_File_Stream(Target_Device_Object_Instance, - Target_File_Object_Instance, Target_File_Start_Position, - Target_File_Requested_Octet_Count); + invoke_id = Send_Atomic_Read_File_Stream( + Target_Device_Object_Instance, Target_File_Object_Instance, + Target_File_Start_Position, + Target_File_Requested_Octet_Count); Request_Invoke_ID = invoke_id; } else if (tsm_invoke_id_failed(invoke_id)) { fprintf(stderr, "\rError: TSM Timeout!\n"); diff --git a/apps/readprop/main.c b/apps/readprop/main.c index fa7b994b..e722cbe5 100644 --- a/apps/readprop/main.c +++ b/apps/readprop/main.c @@ -13,7 +13,7 @@ #include #include #include /* for time */ -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) #include #endif #define PRINT_ENABLED 1 @@ -56,14 +56,16 @@ static uint8_t Request_Invoke_ID = 0; static BACNET_ADDRESS Target_Address; static bool Error_Detected = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -82,12 +84,13 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -104,7 +107,8 @@ static void MyRejectHandler( * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -static void My_Read_Property_Ack_Handler(uint8_t *service_request, +static void My_Read_Property_Ack_Handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -149,8 +153,9 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance " - "property [index]\n", + printf( + "Usage: %s device-instance object-type object-instance " + "property [index]\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help]\n"); @@ -166,14 +171,12 @@ static void print_help(const char *filename) "or an IP string with optional port number like 10.1.2.3:47808\n" "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); - printf( - "--dnet N\n" + printf("--dnet N\n" "Optional BACnet network number N for directed requests.\n" "Valid range is from 0 to 65535 where 0 is the local connection\n" "and 65535 is network broadcast.\n"); printf("\n"); - printf( - "--dadr A\n" + printf("--dadr A\n" "Optional BACnet mac address on the destination BACnet network " "number.\n" "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" @@ -187,8 +190,7 @@ static void print_help(const char *filename) "I-Am services. For example, if you were reading\n" "Device Object 123, the device-instance would be 123.\n"); printf("\n"); - printf( - "object-type:\n" + printf("object-type:\n" "The object type is object that you are reading. It\n" "can be defined either as the object-type name string\n" "as defined in the BACnet specification, or as the\n" @@ -196,14 +198,12 @@ static void print_help(const char *filename) "in bacenum.h. For example if you were reading Analog\n" "Output 2, the object-type would be analog-output or 1.\n"); printf("\n"); - printf( - "object-instance:\n" + printf("object-instance:\n" "This is the object instance number of the object that\n" "you are reading. For example, if you were reading\n" "Analog Output 2, the object-instance would be 2.\n"); printf("\n"); - printf( - "property:\n" + printf("property:\n" "The property of the object that you are reading. It\n" "can be defined either as the property name string as\n" "defined in the BACnet specification, or as an integer\n" @@ -211,27 +211,26 @@ static void print_help(const char *filename) "bacenum.h. For example, if you were reading the Present\n" "Value property, use present-value or 85 as the property.\n"); printf("\n"); - printf( - "index:\n" + printf("index:\n" "This integer parameter is the index number of an array.\n" "If the property is an array, individual elements can\n" "be read. If this parameter is missing and the property\n" "is an array, the entire array will be read.\n"); printf("\n"); printf( - "Example:\n" - "If you want read the Present-Value of Analog Output 101\n" - "in Device 123, you could send either of the following\n" - "commands:\n" - "%s 123 analog-output 101 present-value\n" - "%s 123 1 101 85\n", + "Example:\n" + "If you want read the Present-Value of Analog Output 101\n" + "in Device 123, you could send either of the following\n" + "commands:\n" + "%s 123 analog-output 101 present-value\n" + "%s 123 1 101 85\n", filename, filename); printf( - "If you want read the Priority-Array of Analog Output 101\n" - "in Device 123, you could send either of the following\n" - "commands:\n" - "%s 123 analog-output 101 priority-array\n" - "%s 123 1 101 87\n", + "If you want read the Priority-Array of Analog Output 101\n" + "in Device 123, you could send either of the following\n" + "commands:\n" + "%s 123 analog-output 101 priority-array\n" + "%s 123 1 101 87\n", filename, filename); } @@ -329,7 +328,8 @@ int main(int argc, char *argv[]) return 0; } if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -370,7 +370,7 @@ int main(int argc, char *argv[]) Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); Init_Service_Handlers(); dlenv_init(); -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) /* Internationalized programs must call setlocale() * to initiate a specific language operation. * This can be done by calling setlocale() as follows. @@ -413,10 +413,10 @@ int main(int argc, char *argv[]) } if (found) { if (Request_Invoke_ID == 0) { - Request_Invoke_ID = - Send_Read_Property_Request(Target_Device_Object_Instance, - Target_Object_Type, Target_Object_Instance, - Target_Object_Property, Target_Object_Index); + Request_Invoke_ID = Send_Read_Property_Request( + Target_Device_Object_Instance, Target_Object_Type, + Target_Object_Instance, Target_Object_Property, + Target_Object_Index); } else if (tsm_invoke_id_free(Request_Invoke_ID)) { break; } else if (tsm_invoke_id_failed(Request_Invoke_ID)) { diff --git a/apps/readpropm/main.c b/apps/readpropm/main.c index 26f115e6..2f92b9e6 100644 --- a/apps/readpropm/main.c +++ b/apps/readpropm/main.c @@ -13,7 +13,7 @@ #include #include #include /* for time */ -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) #include #endif #define PRINT_ENABLED 1 @@ -43,7 +43,6 @@ #error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" #endif - /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -56,14 +55,16 @@ static BACNET_ADDRESS Target_Address; /* needed for return value of main application */ static bool Error_Detected = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -82,13 +83,14 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -105,7 +107,8 @@ static void MyRejectHandler( * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -static void My_Read_Property_Multiple_Ack_Handler(uint8_t *service_request, +static void My_Read_Property_Multiple_Ack_Handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -168,7 +171,8 @@ static void Init_Service_Handlers(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); /* handle the data coming back from confirmed requests */ - apdu_set_confirmed_ack_handler(SERVICE_CONFIRMED_READ_PROP_MULTIPLE, + apdu_set_confirmed_ack_handler( + SERVICE_CONFIRMED_READ_PROP_MULTIPLE, My_Read_Property_Multiple_Ack_Handler); /* handle any errors coming back */ apdu_set_error_handler(SERVICE_CONFIRMED_READ_PROPERTY, MyErrorHandler); @@ -236,8 +240,9 @@ static void target_address_add( static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance " - "property[index][,property[index]] [object-type ...]\n", + printf( + "Usage: %s device-instance object-type object-instance " + "property[index][,property[index]] [object-type ...]\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help]\n"); @@ -298,29 +303,39 @@ static void print_help(const char *filename) "be read. If this parameter is missing and the property\n" "is an array, the entire array will be read.\n"); printf("\n"); - printf("Example:\n" - "If you want read the PRESENT_VALUE property and various\n" - "array elements of the PRIORITY_ARRAY in Device 123\n" - "Analog Output object 99, use one of the following commands:\n" - "%s 123 analog-output 99 85,87[0],87\n" - "%s 123 1 99 85,87[0],87\n", filename, filename); - printf("If you want read the PRESENT_VALUE property in objects\n" - "Analog Input 77 and Analog Input 78 in Device 123\n" - "use one of the following commands:\n" - "%s 123 analog-input 77 85 analog-input 78 85\n" - "%s 123 0 77 85 0 78 85\n", filename, filename); - printf("If you want read the ALL property in\n" - "Device object 123, you would use one of the following commands:\n" - "%s 123 device 123 8\n" - "%s 123 8 123 8\n", filename, filename); - printf("If you want read the OPTIONAL property in\n" - "Device object 123, you would use one of the following commands:\n" - "%s 123 device 123 80\n" - "%s 123 8 123 80\n", filename, filename); - printf("If you want read the REQUIRED property in\n" - "Device object 123, you would one of use the following commands:\n" - "%s 123 device 123 105\n" - "%s 123 8 123 105\n", filename, filename); + printf( + "Example:\n" + "If you want read the PRESENT_VALUE property and various\n" + "array elements of the PRIORITY_ARRAY in Device 123\n" + "Analog Output object 99, use one of the following commands:\n" + "%s 123 analog-output 99 85,87[0],87\n" + "%s 123 1 99 85,87[0],87\n", + filename, filename); + printf( + "If you want read the PRESENT_VALUE property in objects\n" + "Analog Input 77 and Analog Input 78 in Device 123\n" + "use one of the following commands:\n" + "%s 123 analog-input 77 85 analog-input 78 85\n" + "%s 123 0 77 85 0 78 85\n", + filename, filename); + printf( + "If you want read the ALL property in\n" + "Device object 123, you would use one of the following commands:\n" + "%s 123 device 123 8\n" + "%s 123 8 123 8\n", + filename, filename); + printf( + "If you want read the OPTIONAL property in\n" + "Device object 123, you would use one of the following commands:\n" + "%s 123 device 123 80\n" + "%s 123 8 123 80\n", + filename, filename); + printf( + "If you want read the REQUIRED property in\n" + "Device object 123, you would one of use the following commands:\n" + "%s 123 device 123 105\n" + "%s 123 8 123 105\n", + filename, filename); } int main(int argc, char *argv[]) @@ -391,8 +406,8 @@ int main(int argc, char *argv[]) if (target_args == 0) { Target_Device_Object_Instance = strtol(argv[argi], NULL, 0); if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -413,13 +428,15 @@ int main(int argc, char *argv[]) status = bactext_object_type_strtol(argv[argi], &object_type); if (status == false) { - fprintf(stderr, "Error: object-type=%s invalid\n", + fprintf( + stderr, "Error: object-type=%s invalid\n", argv[argi]); return 1; } rpm_object->object_type = object_type; if (rpm_object->object_type >= MAX_BACNET_OBJECT_TYPE) { - fprintf(stderr, + fprintf( + stderr, "object-type=%u - it must be less than %u\n", rpm_object->object_type, MAX_BACNET_OBJECT_TYPE); return 1; @@ -428,10 +445,10 @@ int main(int argc, char *argv[]) } else if (tag_value_arg == 1) { rpm_object->object_instance = strtol(argv[argi], NULL, 0); if (rpm_object->object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, + fprintf( + stderr, "object-instance=%u - not greater than %u\n", - rpm_object->object_instance, - BACNET_MAX_INSTANCE); + rpm_object->object_instance, BACNET_MAX_INSTANCE); return 1; } tag_value_arg++; @@ -441,13 +458,15 @@ int main(int argc, char *argv[]) property_token = strtok(argv[argi], ","); /* add all the properties and optional index to our list */ while (rpm_property) { - scan_count = sscanf(property_token, "%u[%u]", - &property_id, &property_array_index); + scan_count = sscanf( + property_token, "%u[%u]", &property_id, + &property_array_index); if (scan_count > 0) { rpm_property->propertyIdentifier = property_id; if (rpm_property->propertyIdentifier > MAX_BACNET_PROPERTY_ID) { - fprintf(stderr, + fprintf( + stderr, "property=%u - it must be less than %u\n", rpm_property->propertyIdentifier, MAX_BACNET_PROPERTY_ID + 1); @@ -489,7 +508,7 @@ int main(int argc, char *argv[]) } Init_Service_Handlers(); dlenv_init(); -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) /* Internationalized programs must call setlocale() * to initiate a specific language operation. * This can be done by calling setlocale() as follows. diff --git a/apps/readrange/main.c b/apps/readrange/main.c index b8c19afa..30a99fec 100644 --- a/apps/readrange/main.c +++ b/apps/readrange/main.c @@ -14,7 +14,7 @@ #include #include #include /* for time */ -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) #include #endif /* BACnet Stack defines - first */ @@ -60,14 +60,16 @@ static bool Error_Detected = false; /* specific request data */ static BACNET_READ_RANGE_DATA RR_Request; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\r\n", + printf( + "BACnet Error: %s: %s\r\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -86,12 +88,13 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -123,7 +126,8 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance property\n", + printf( + "Usage: %s device-instance object-type object-instance property\n", filename); printf(" range-type > count\n"); printf(" [--version][--help]\n"); @@ -132,48 +136,48 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { printf("Read a range of properties from an array or list property\n" - "in an object in a BACnet device and print the values.\n"); + "in an object in a BACnet device and print the values.\n"); printf("\n"); printf("device-instance:\n" - "BACnet Device Object Instance number that you are\n" - "trying to communicate to. This number will be used\n" - "to try and bind with the device using Who-Is and\n" - "I-Am services. For example, if you were reading\n" - "Device Object 123, the device-instance would be 123.\n"); + "BACnet Device Object Instance number that you are\n" + "trying to communicate to. This number will be used\n" + "to try and bind with the device using Who-Is and\n" + "I-Am services. For example, if you were reading\n" + "Device Object 123, the device-instance would be 123.\n"); printf("\n"); printf("object-type:\n" - "The object type is the integer value of the enumeration\n" - "BACNET_OBJECT_TYPE in bacenum.h. It is the object\n" - "that you are reading. For example if you were\n" - "reading Trend Log 2, the object-type would be 20.\n"); + "The object type is the integer value of the enumeration\n" + "BACNET_OBJECT_TYPE in bacenum.h. It is the object\n" + "that you are reading. For example if you were\n" + "reading Trend Log 2, the object-type would be 20.\n"); printf("\n"); printf("object-instance:\n" - "This is the object instance number of the object that\n" - "you are reading. For example, if you were reading\n" - "Trend Log 2, the object-instance would be 2.\n"); + "This is the object instance number of the object that\n" + "you are reading. For example, if you were reading\n" + "Trend Log 2, the object-instance would be 2.\n"); printf("\n"); printf("property:\n" - "The property is an integer value of the enumeration\n" - "BACNET_PROPERTY_ID in bacenum.h. It is the property\n" - "you are reading. For example, if you were reading the\n" - "Log_Buffer property, use 131 as the property.\n"); + "The property is an integer value of the enumeration\n" + "BACNET_PROPERTY_ID in bacenum.h. It is the property\n" + "you are reading. For example, if you were reading the\n" + "Log_Buffer property, use 131 as the property.\n"); printf("\n"); printf("range-type:\n" - "1=By Position\n" - "2=By Sequence\n" - "3=By Time\n" - "4=All\n"); + "1=By Position\n" + "2=By Sequence\n" + "3=By Time\n" + "4=All\n"); printf("\n"); printf("index or date/time:\n" - "This integer parameter is the starting index, or date & time.\n"); + "This integer parameter is the starting index, or date & time.\n"); printf("\n"); printf("count:\n" - "This integer parameter is the number of elements to read.\n"); + "This integer parameter is the number of elements to read.\n"); printf("\n"); printf("Example:\n" - "If you want read the Log_Buffer of Trend Log 2\n" - "in Device 123, from starting position 1 and read 10 entries,\n" - "you could send the following commands:\n"); + "If you want read the Log_Buffer of Trend Log 2\n" + "in Device 123, from starting position 1 and read 10 entries,\n" + "you could send the following commands:\n"); printf("%s 123 trend-log 2 log-buffer 1 1 10\n", filename); printf("%s 123 trend-log 2 log-buffer 2 1 10\n", filename); printf("%s 123 trend-log 2 log-buffer 3 1/1/2014 00:00:01 10\n", filename); @@ -238,7 +242,8 @@ int main(int argc, char *argv[]) Target_Object_Range_Type = strtol(argv[5], NULL, 0); /* some bounds checking */ if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\r\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\r\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -270,8 +275,9 @@ int main(int argc, char *argv[]) RR_Request.RequestType = RR_BY_TIME; count = sscanf(argv[6], "%4d/%3d/%3d:%3d", &year, &month, &day, &wday); if (count == 3) { - datetime_set_date(&RR_Request.Range.RefTime.date, (uint16_t)year, - (uint8_t)month, (uint8_t)day); + datetime_set_date( + &RR_Request.Range.RefTime.date, (uint16_t)year, (uint8_t)month, + (uint8_t)day); } else if (count == 4) { RR_Request.Range.RefTime.date.year = (uint16_t)year; RR_Request.Range.RefTime.date.month = (uint8_t)month; @@ -320,7 +326,7 @@ int main(int argc, char *argv[]) address_init(); Init_Service_Handlers(); dlenv_init(); -#if (__STDC_VERSION__ >= 199901L) && defined (__STDC_ISO_10646__) +#if (__STDC_VERSION__ >= 199901L) && defined(__STDC_ISO_10646__) /* Internationalized programs must call setlocale() * to initiate a specific language operation. * This can be done by calling setlocale() as follows. diff --git a/apps/reinit/main.c b/apps/reinit/main.c index ca2517eb..470f63d4 100644 --- a/apps/reinit/main.c +++ b/apps/reinit/main.c @@ -44,7 +44,8 @@ static char *Reinitialize_Password = NULL; static bool Error_Detected = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -52,7 +53,8 @@ static void MyErrorHandler(BACNET_ADDRESS *src, /* FIXME: verify src and invoke id */ (void)src; (void)invoke_id; - printf("BACnet Error: %s: %s\r\n", bactext_error_class_name(error_class), + printf( + "BACnet Error: %s: %s\r\n", bactext_error_class_name(error_class), bactext_error_code_name(error_code)); Error_Detected = true; } @@ -68,8 +70,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -78,8 +80,8 @@ static void MyRejectHandler( Error_Detected = true; } -static void MyReinitializeDeviceSimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyReinitializeDeviceSimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { (void)src; (void)invoke_id; @@ -101,7 +103,8 @@ static void Init_Service_Handlers(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); /* handle the ack coming back */ - apdu_set_confirmed_simple_ack_handler(SERVICE_CONFIRMED_REINITIALIZE_DEVICE, + apdu_set_confirmed_simple_ack_handler( + SERVICE_CONFIRMED_REINITIALIZE_DEVICE, MyReinitializeDeviceSimpleAckHandler); /* handle any errors coming back */ apdu_set_error_handler( @@ -125,20 +128,21 @@ int main(int argc, char *argv[]) if (argc < 3) { /* note: priority 16 and 0 should produce the same end results... */ - printf("Usage: %s device-instance state [password]\r\n" - "Send BACnet ReinitializeDevice service to device.\r\n" - "\r\n" - "The device-instance can be 0 to %d.\r\n" - "Possible state values:\r\n" - " 0=coldstart\r\n" - " 1=warmstart\r\n" - " 2=startbackup\r\n" - " 3=endbackup\r\n" - " 4=startrestore\r\n" - " 5=endrestore\r\n" - " 6=abortrestore\r\n" - "The optional password is a character string of 1 to 20 " - "characters.\r\n", + printf( + "Usage: %s device-instance state [password]\r\n" + "Send BACnet ReinitializeDevice service to device.\r\n" + "\r\n" + "The device-instance can be 0 to %d.\r\n" + "Possible state values:\r\n" + " 0=coldstart\r\n" + " 1=warmstart\r\n" + " 2=startbackup\r\n" + " 3=endbackup\r\n" + " 4=startrestore\r\n" + " 5=endrestore\r\n" + " 6=abortrestore\r\n" + "The optional password is a character string of 1 to 20 " + "characters.\r\n", filename_remove_path(argv[0]), BACNET_MAX_INSTANCE - 1); return 0; } @@ -151,7 +155,8 @@ int main(int argc, char *argv[]) } if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\r\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\r\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } diff --git a/apps/remove-list-element/main.c b/apps/remove-list-element/main.c index 24b6e117..3d19ff4b 100644 --- a/apps/remove-list-element/main.c +++ b/apps/remove-list-element/main.c @@ -57,7 +57,8 @@ static bool Error_Detected = false; /* Used for verbose */ static bool Verbose = false; -static void MyRemoveListElementErrorHandler(BACNET_ADDRESS *src, +static void MyRemoveListElementErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t service_choice, uint8_t *service_request, @@ -72,7 +73,8 @@ static void MyRemoveListElementErrorHandler(BACNET_ADDRESS *src, len = list_element_error_ack_decode( service_request, service_len, &list_element); if (len > 0) { - printf("BACnet Error: %s: %s [first-failed=%u]\n", + printf( + "BACnet Error: %s: %s [first-failed=%u]\n", bactext_error_class_name((int)list_element.error_class), bactext_error_code_name((int)list_element.error_code), (unsigned)list_element.first_failed_element_number); @@ -81,8 +83,8 @@ static void MyRemoveListElementErrorHandler(BACNET_ADDRESS *src, } } -static void MyRemoveListElementSimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyRemoveListElementSimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -102,13 +104,14 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -130,7 +133,8 @@ static void Init_Service_Handlers(void) SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); /* handle the ack or error coming back from confirmed request */ apdu_set_confirmed_simple_ack_handler( - SERVICE_CONFIRMED_ADD_LIST_ELEMENT, MyRemoveListElementSimpleAckHandler); + SERVICE_CONFIRMED_ADD_LIST_ELEMENT, + MyRemoveListElementSimpleAckHandler); apdu_set_complex_error_handler( SERVICE_CONFIRMED_ADD_LIST_ELEMENT, MyRemoveListElementErrorHandler); apdu_set_abort_handler(MyAbortHandler); @@ -139,8 +143,9 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance " - "property array-index tag value\n", + printf( + "Usage: %s device-instance object-type object-instance " + "property array-index tag value\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help][--verbose]\n"); @@ -211,10 +216,11 @@ static void print_help(const char *filename) "the Any property type in the schedule object and the Present Value\n" "accepting REAL, BOOLEAN, NULL, etc.\n"); printf("\n"); - printf("Example:\n" - "If you want to RemoveListElement to the Recipient-List property in\n" - "Notification Class 1 of Device 123, send the following command:\n" - "%s 123 15 1 102 -1 4 100\n", + printf( + "Example:\n" + "If you want to RemoveListElement to the Recipient-List property in\n" + "Notification Class 1 of Device 123, send the following command:\n" + "%s 123 15 1 102 -1 4 100\n", filename); } @@ -287,8 +293,8 @@ int main(int argc, char *argv[]) if (target_args == 0) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", object_instance, BACNET_MAX_INSTANCE); return 1; } @@ -305,8 +311,8 @@ int main(int argc, char *argv[]) } else if (target_args == 2) { object_instance = strtoul(argv[argi], NULL, 0); if (object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, - "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -330,7 +336,8 @@ int main(int argc, char *argv[]) property_array_index = strtol(argv[argi], NULL, 0); Target_Object_Array_Index = property_array_index; if (Verbose) { - printf("Array_Index=%i=%s\n", property_array_index, + printf( + "Array_Index=%i=%s\n", property_array_index, argv[argi]); } target_args++; @@ -357,14 +364,16 @@ int main(int argc, char *argv[]) } else if (tag_value_arg == 1) { value_string = argv[argi]; if (Verbose) { - printf("tag=%ld value=%s\n", property_tag, value_string); + printf( + "tag=%ld value=%s\n", property_tag, value_string); } if (property_tag < 0) { /* find the application tag for internal properties */ property_tag = bacapp_known_property_tag( Target_Object_Type, Target_Object_Property); } else if (property_tag >= MAX_BACNET_APPLICATION_TAG) { - fprintf(stderr, + fprintf( + stderr, "Error: tag=%ld - it must be less than %u\n", property_tag, MAX_BACNET_APPLICATION_TAG); return 1; @@ -374,13 +383,15 @@ int main(int argc, char *argv[]) status = bacapp_parse_application_data( property_tag, value_string, application_value); if (!status) { - fprintf(stderr, + fprintf( + stderr, "Error: unable to parse the tag value\n"); return 1; } } else { /* FIXME: show the expected entry format for the tag */ - fprintf(stderr, + fprintf( + stderr, "Error: unable to parse the known property" " \"%s\"\r\n", value_string); @@ -400,8 +411,7 @@ int main(int argc, char *argv[]) return 0; } if (tag_value_arg != 0) { - fprintf( - stderr, "Error: invalid tag+value pair (%i).\n", tag_value_arg); + fprintf(stderr, "Error: invalid tag+value pair (%i).\n", tag_value_arg); return 1; } /* setup my info */ @@ -422,7 +432,8 @@ int main(int argc, char *argv[]) Target_Device_Object_Instance, &max_apdu, &Target_Address); if (found) { if (Verbose) { - printf("Found Device %u in address_cache.\n", + printf( + "Found Device %u in address_cache.\n", Target_Device_Object_Instance); } } else { @@ -435,7 +446,8 @@ int main(int argc, char *argv[]) /* device is bound! */ if (Request_Invoke_ID == 0) { if (Verbose) { - printf("Sending RemoveListElement to Device %u.\n", + printf( + "Sending RemoveListElement to Device %u.\n", Target_Device_Object_Instance); } Request_Invoke_ID = Send_Remove_List_Element_Request( diff --git a/apps/router-ipv6/main.c b/apps/router-ipv6/main.c index 290ff783..e7c8eaaa 100644 --- a/apps/router-ipv6/main.c +++ b/apps/router-ipv6/main.c @@ -303,7 +303,8 @@ static void datalink_get_broadcast_address(BACNET_ADDRESS *dest) * * @return number of bytes sent */ -static int datalink_send_pdu(uint16_t snet, +static int datalink_send_pdu( + uint16_t snet, BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, @@ -347,7 +348,8 @@ static void send_i_am_router_to_network(uint16_t snet, uint16_t net) DNET *dnet = NULL; datalink_get_broadcast_address(&dest); - npdu_encode_npdu_network(&npdu_data, NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK, + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK, data_expecting_reply, MESSAGE_PRIORITY_NORMAL); /* We don't need src information, since a message can't originate from our downstream BACnet network. */ @@ -398,8 +400,8 @@ static void send_i_am_router_to_network(uint16_t snet, uint16_t net) * Optionally may designate a particular router destination, * especially when ACKing receipt of this message type. */ -static void send_initialize_routing_table_ack( - uint8_t snet, const BACNET_ADDRESS *dst) +static void +send_initialize_routing_table_ack(uint8_t snet, const BACNET_ADDRESS *dst) { BACNET_ADDRESS dest; bool data_expecting_reply = false; @@ -415,8 +417,9 @@ static void send_initialize_routing_table_ack( } else { datalink_get_broadcast_address(&dest); } - npdu_encode_npdu_network(&npdu_data, NETWORK_MESSAGE_INIT_RT_TABLE_ACK, - data_expecting_reply, MESSAGE_PRIORITY_NORMAL); + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_INIT_RT_TABLE_ACK, data_expecting_reply, + MESSAGE_PRIORITY_NORMAL); /* We don't need src information, since a message can't originate from our downstream BACnet network. */ pdu_len = npdu_encode_pdu(&Tx_Buffer[0], &dest, NULL, &npdu_data); @@ -475,9 +478,9 @@ static void send_reject_message_to_network( } else { datalink_get_broadcast_address(&dest); } - npdu_encode_npdu_network(&npdu_data, - NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK, data_expecting_reply, - MESSAGE_PRIORITY_NORMAL); + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK, + data_expecting_reply, MESSAGE_PRIORITY_NORMAL); /* We don't need src information, since a message can't originate from our downstream BACnet network. */ pdu_len = npdu_encode_pdu(&Tx_Buffer[0], &dest, NULL, &npdu_data); @@ -506,9 +509,9 @@ static void send_who_is_router_to_network(uint16_t snet, uint16_t dnet) int len = 0; datalink_get_broadcast_address(&dest); - npdu_encode_npdu_network(&npdu_data, - NETWORK_MESSAGE_WHO_IS_ROUTER_TO_NETWORK, data_expecting_reply, - MESSAGE_PRIORITY_NORMAL); + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_WHO_IS_ROUTER_TO_NETWORK, + data_expecting_reply, MESSAGE_PRIORITY_NORMAL); pdu_len = npdu_encode_pdu(&Tx_Buffer[0], &dest, NULL, &npdu_data); if (dnet) { len = encode_unsigned16(&Tx_Buffer[pdu_len], dnet); @@ -574,7 +577,8 @@ static void send_who_is_router_to_network(uint16_t snet, uint16_t dnet) * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. */ -static void who_is_router_to_network_handler(uint16_t snet, +static void who_is_router_to_network_handler( + uint16_t snet, const BACNET_ADDRESS *src, const BACNET_NPDU_DATA *npdu_data, const uint8_t *npdu, @@ -627,7 +631,8 @@ static void who_is_router_to_network_handler(uint16_t snet, * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. */ -static void network_control_handler(uint16_t snet, +static void network_control_handler( + uint16_t snet, BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, uint8_t *npdu, @@ -803,7 +808,8 @@ static void routed_src_address( * @param apdu [in] The apdu portion of the request, to be processed. * @param apdu_len [in] The total (remaining) length of the apdu. */ -static void routed_apdu_handler(uint16_t snet, +static void routed_apdu_handler( + uint16_t snet, BACNET_NPDU_DATA *npdu, BACNET_ADDRESS *src, BACNET_ADDRESS *dest, @@ -842,7 +848,8 @@ static void routed_apdu_handler(uint16_t snet, port = Router_Table_Head; while (port != NULL) { if (port->net != snet) { - datalink_send_pdu(port->net, &local_dest, npdu, &Tx_Buffer[0], + datalink_send_pdu( + port->net, &local_dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } port = port->next; @@ -869,7 +876,8 @@ static void routed_apdu_handler(uint16_t snet, npdu_len = npdu_encode_pdu(&Tx_Buffer[0], &local_dest, &router_src, npdu); memmove(&Tx_Buffer[npdu_len], apdu, apdu_len); - datalink_send_pdu(port->net, &local_dest, npdu, &Tx_Buffer[0], + datalink_send_pdu( + port->net, &local_dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } else { debug_printf( @@ -886,7 +894,8 @@ static void routed_apdu_handler(uint16_t snet, npdu_len = npdu_encode_pdu(&Tx_Buffer[0], &remote_dest, &router_src, npdu); memmove(&Tx_Buffer[npdu_len], apdu, apdu_len); - datalink_send_pdu(port->net, &remote_dest, npdu, &Tx_Buffer[0], + datalink_send_pdu( + port->net, &remote_dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } } else if (dest->net) { @@ -902,8 +911,8 @@ static void routed_apdu_handler(uint16_t snet, port = Router_Table_Head; while (port != NULL) { if (port->net != snet) { - datalink_send_pdu(port->net, dest, npdu, &Tx_Buffer[0], - npdu_len + apdu_len); + datalink_send_pdu( + port->net, dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } port = port->next; } @@ -947,8 +956,9 @@ static void my_routing_npdu_handler( fprintf(stderr, "NPDU: Decoding failed; Discarded!\n"); } else if (npdu_data.network_layer_message) { if ((dest.net == 0) || (dest.net == BACNET_BROADCAST_NETWORK)) { - network_control_handler(snet, src, &npdu_data, - &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); + network_control_handler( + snet, src, &npdu_data, &pdu[apdu_offset], + (uint16_t)(pdu_len - apdu_offset)); } else { /* The DNET is set, but we don't support downstream routers, * so we just silently drop this network layer message, @@ -962,17 +972,19 @@ static void my_routing_npdu_handler( routing information cause they are not for us */ if ((dest.net == BACNET_BROADCAST_NETWORK) && ((pdu[apdu_offset] & 0xF0) == - PDU_TYPE_CONFIRMED_SERVICE_REQUEST)) { + PDU_TYPE_CONFIRMED_SERVICE_REQUEST)) { /* hack for 5.4.5.1 - IDLE */ /* ConfirmedBroadcastReceived */ /* then enter IDLE - ignore the PDU */ } else { - routed_apdu_handler(snet, &npdu_data, src, &dest, - &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); + routed_apdu_handler( + snet, &npdu_data, src, &dest, &pdu[apdu_offset], + (uint16_t)(pdu_len - apdu_offset)); /* add a Device object and application layer */ if ((dest.net == 0) || (dest.net == BACNET_BROADCAST_NETWORK)) { - apdu_handler(src, &pdu[apdu_offset], + apdu_handler( + src, &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); } } @@ -984,7 +996,7 @@ static void my_routing_npdu_handler( } else { fprintf( stderr, "NPDU: unsupported protocol version %u. Discarded!\n", - protocol_version); + protocol_version); } return; @@ -1026,8 +1038,9 @@ static void datalink_init(void) pEnv = getenv("BACNET_BIP6_BROADCAST"); if (pEnv) { BACNET_IP6_ADDRESS addr; - bvlc6_address_set(&addr, (uint16_t)strtol(pEnv, NULL, 0), 0, 0, 0, 0, 0, - 0, BIP6_MULTICAST_GROUP_ID); + bvlc6_address_set( + &addr, (uint16_t)strtol(pEnv, NULL, 0), 0, 0, 0, 0, 0, 0, + BIP6_MULTICAST_GROUP_ID); bip6_set_broadcast_addr(&addr); } if (!bip6_init(getenv("BACNET_BIP6_IFACE"))) { diff --git a/apps/router-mstp/main.c b/apps/router-mstp/main.c index a9b223eb..f8d49c9a 100644 --- a/apps/router-mstp/main.c +++ b/apps/router-mstp/main.c @@ -324,7 +324,8 @@ static void datalink_get_broadcast_address(BACNET_ADDRESS *dest) * * @return number of bytes sent */ -static int datalink_send_pdu(uint16_t snet, +static int datalink_send_pdu( + uint16_t snet, BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, @@ -368,7 +369,8 @@ static void send_i_am_router_to_network(uint16_t snet, uint16_t net) DNET *dnet = NULL; datalink_get_broadcast_address(&dest); - npdu_encode_npdu_network(&npdu_data, NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK, + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK, data_expecting_reply, MESSAGE_PRIORITY_NORMAL); /* We don't need src information, since a message can't originate from our downstream BACnet network. */ @@ -419,8 +421,8 @@ static void send_i_am_router_to_network(uint16_t snet, uint16_t net) * Optionally may designate a particular router destination, * especially when ACKing receipt of this message type. */ -static void send_initialize_routing_table_ack( - uint8_t snet, const BACNET_ADDRESS *dst) +static void +send_initialize_routing_table_ack(uint8_t snet, const BACNET_ADDRESS *dst) { BACNET_ADDRESS dest; bool data_expecting_reply = false; @@ -436,8 +438,9 @@ static void send_initialize_routing_table_ack( } else { datalink_get_broadcast_address(&dest); } - npdu_encode_npdu_network(&npdu_data, NETWORK_MESSAGE_INIT_RT_TABLE_ACK, - data_expecting_reply, MESSAGE_PRIORITY_NORMAL); + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_INIT_RT_TABLE_ACK, data_expecting_reply, + MESSAGE_PRIORITY_NORMAL); /* We don't need src information, since a message can't originate from our downstream BACnet network. */ pdu_len = npdu_encode_pdu(&Tx_Buffer[0], &dest, NULL, &npdu_data); @@ -496,9 +499,9 @@ static void send_reject_message_to_network( } else { datalink_get_broadcast_address(&dest); } - npdu_encode_npdu_network(&npdu_data, - NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK, data_expecting_reply, - MESSAGE_PRIORITY_NORMAL); + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK, + data_expecting_reply, MESSAGE_PRIORITY_NORMAL); /* We don't need src information, since a message can't originate from our downstream BACnet network. */ pdu_len = npdu_encode_pdu(&Tx_Buffer[0], &dest, NULL, &npdu_data); @@ -527,9 +530,9 @@ static void send_who_is_router_to_network(uint16_t snet, uint16_t dnet) int len = 0; datalink_get_broadcast_address(&dest); - npdu_encode_npdu_network(&npdu_data, - NETWORK_MESSAGE_WHO_IS_ROUTER_TO_NETWORK, data_expecting_reply, - MESSAGE_PRIORITY_NORMAL); + npdu_encode_npdu_network( + &npdu_data, NETWORK_MESSAGE_WHO_IS_ROUTER_TO_NETWORK, + data_expecting_reply, MESSAGE_PRIORITY_NORMAL); pdu_len = npdu_encode_pdu(&Tx_Buffer[0], &dest, NULL, &npdu_data); if (dnet) { len = encode_unsigned16(&Tx_Buffer[pdu_len], dnet); @@ -595,7 +598,8 @@ static void send_who_is_router_to_network(uint16_t snet, uint16_t dnet) * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. */ -static void who_is_router_to_network_handler(uint16_t snet, +static void who_is_router_to_network_handler( + uint16_t snet, const BACNET_ADDRESS *src, const BACNET_NPDU_DATA *npdu_data, const uint8_t *npdu, @@ -648,7 +652,8 @@ static void who_is_router_to_network_handler(uint16_t snet, * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. */ -static void network_control_handler(uint16_t snet, +static void network_control_handler( + uint16_t snet, BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, uint8_t *npdu, @@ -826,7 +831,8 @@ static void routed_src_address( * @param apdu [in] The apdu portion of the request, to be processed. * @param apdu_len [in] The total (remaining) length of the apdu. */ -static void routed_apdu_handler(uint16_t snet, +static void routed_apdu_handler( + uint16_t snet, BACNET_NPDU_DATA *npdu, BACNET_ADDRESS *src, BACNET_ADDRESS *dest, @@ -865,7 +871,8 @@ static void routed_apdu_handler(uint16_t snet, port = Router_Table_Head; while (port != NULL) { if (port->net != snet) { - datalink_send_pdu(port->net, &local_dest, npdu, &Tx_Buffer[0], + datalink_send_pdu( + port->net, &local_dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } port = port->next; @@ -892,7 +899,8 @@ static void routed_apdu_handler(uint16_t snet, npdu_len = npdu_encode_pdu(&Tx_Buffer[0], &local_dest, &router_src, npdu); memmove(&Tx_Buffer[npdu_len], apdu, apdu_len); - datalink_send_pdu(port->net, &local_dest, npdu, &Tx_Buffer[0], + datalink_send_pdu( + port->net, &local_dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } else { log_printf( @@ -909,7 +917,8 @@ static void routed_apdu_handler(uint16_t snet, npdu_len = npdu_encode_pdu(&Tx_Buffer[0], &remote_dest, &router_src, npdu); memmove(&Tx_Buffer[npdu_len], apdu, apdu_len); - datalink_send_pdu(port->net, &remote_dest, npdu, &Tx_Buffer[0], + datalink_send_pdu( + port->net, &remote_dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } } else if (dest->net) { @@ -925,8 +934,8 @@ static void routed_apdu_handler(uint16_t snet, port = Router_Table_Head; while (port != NULL) { if (port->net != snet) { - datalink_send_pdu(port->net, dest, npdu, &Tx_Buffer[0], - npdu_len + apdu_len); + datalink_send_pdu( + port->net, dest, npdu, &Tx_Buffer[0], npdu_len + apdu_len); } port = port->next; } @@ -966,8 +975,9 @@ static void my_routing_npdu_handler( fprintf(stderr, "NPDU: Decoding failed; Discarded!\n"); } else if (npdu_data.network_layer_message) { if ((dest.net == 0) || (dest.net == BACNET_BROADCAST_NETWORK)) { - network_control_handler(snet, src, &npdu_data, - &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); + network_control_handler( + snet, src, &npdu_data, &pdu[apdu_offset], + (uint16_t)(pdu_len - apdu_offset)); } else { /* The DNET is set, but we don't support downstream routers, * so we just silently drop this network layer message, @@ -981,17 +991,19 @@ static void my_routing_npdu_handler( routing information cause they are not for us */ if ((dest.net == BACNET_BROADCAST_NETWORK) && ((pdu[apdu_offset] & 0xF0) == - PDU_TYPE_CONFIRMED_SERVICE_REQUEST)) { + PDU_TYPE_CONFIRMED_SERVICE_REQUEST)) { /* hack for 5.4.5.1 - IDLE */ /* ConfirmedBroadcastReceived */ /* then enter IDLE - ignore the PDU */ } else { - routed_apdu_handler(snet, &npdu_data, src, &dest, - &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); + routed_apdu_handler( + snet, &npdu_data, src, &dest, &pdu[apdu_offset], + (uint16_t)(pdu_len - apdu_offset)); /* add a Device object and application layer */ if ((dest.net == 0) || (dest.net == BACNET_BROADCAST_NETWORK)) { - apdu_handler(src, &pdu[apdu_offset], + apdu_handler( + src, &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); } } @@ -1151,7 +1163,6 @@ static void control_c_hooks(void) } #endif - #ifndef FUZZING /** * Main function of simple router demo. diff --git a/apps/router/ipmodule.c b/apps/router/ipmodule.c index 3489dffb..2cdd722e 100644 --- a/apps/router/ipmodule.c +++ b/apps/router/ipmodule.c @@ -17,9 +17,9 @@ #ifdef TEST_PACKET uint8_t test_packet[] = { 0x81, 0x0a, 0x00, 0x16, /* BVLC header */ - 0x01, 0x24, 0x00, 0x01, 0x01, 0x0b, 0xff, /* NPDU */ - 0x00, 0x03, 0x01, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x19, - 0x55 }; /* APDU */ + 0x01, 0x24, 0x00, 0x01, 0x01, 0x0b, 0xff, /* NPDU */ + 0x00, 0x03, 0x01, 0x0c, 0x0c, 0x00, 0x00, + 0x00, 0x02, 0x19, 0x55 }; /* APDU */ #endif void *dl_ip_thread(void *pArgs) @@ -146,14 +146,16 @@ bool dl_ip_init(ROUTER_PORT *port, IP_DATA *ip_data) /* setup socket options */ socket_opt = 1; - status = setsockopt(ip_data->socket, SOL_SOCKET, SO_REUSEADDR, &socket_opt, + status = setsockopt( + ip_data->socket, SOL_SOCKET, SO_REUSEADDR, &socket_opt, sizeof(socket_opt)); if (status < 0) { close(ip_data->socket); return false; } - status = setsockopt(ip_data->socket, SOL_SOCKET, SO_BROADCAST, &socket_opt, + status = setsockopt( + ip_data->socket, SOL_SOCKET, SO_BROADCAST, &socket_opt, sizeof(socket_opt)); if (status < 0) { close(ip_data->socket); @@ -162,8 +164,9 @@ bool dl_ip_init(ROUTER_PORT *port, IP_DATA *ip_data) /* Bind to device so we don't get routing loops between our different ports. */ - status = setsockopt(ip_data->socket, SOL_SOCKET, SO_BINDTODEVICE, - port->iface, strlen(port->iface)); + status = setsockopt( + ip_data->socket, SOL_SOCKET, SO_BINDTODEVICE, port->iface, + strlen(port->iface)); if (status < 0) { close(ip_data->socket); return false; @@ -176,7 +179,8 @@ bool dl_ip_init(ROUTER_PORT *port, IP_DATA *ip_data) sin.sin_addr.s_addr = htonl(INADDR_ANY); sin.sin_port = ip_data->port; - status = bind(ip_data->socket, (const struct sockaddr *)&sin, + status = bind( + ip_data->socket, (const struct sockaddr *)&sin, sizeof(struct sockaddr)); if (status < 0) { close(ip_data->socket); @@ -192,7 +196,8 @@ bool dl_ip_init(ROUTER_PORT *port, IP_DATA *ip_data) PRINT(INFO, "IP Address: %s\n", inet_ntoa(ip_data->local_addr)); PRINT( INFO, "IP Broadcast Address: %s\n", inet_ntoa(ip_data->broadcast_addr)); - PRINT(INFO, "UDP Port: 0x%04X [%hu]\n", (port->params.bip_params.port), + PRINT( + INFO, "UDP Port: 0x%04X [%hu]\n", (port->params.bip_params.port), (port->params.bip_params.port)); return true; @@ -235,7 +240,8 @@ int dl_ip_send( buff_len += pdu_len; /* send the packet */ - bytes_sent = sendto(data->socket, (char *)data->buff, buff_len, 0, + bytes_sent = sendto( + data->socket, (char *)data->buff, buff_len, 0, (struct sockaddr *)&bip_dest, sizeof(struct sockaddr)); PRINT(DEBUG, "send to %s\n", inet_ntoa(bip_dest.sin_addr)); @@ -279,8 +285,9 @@ int dl_ip_recv( int ret = select(data->socket + 1, &read_fds, NULL, NULL, &select_timeout); /* see if there is a packet for us */ if (ret > 0) { - received_bytes = recvfrom(data->socket, (char *)&data->buff[0], - data->max_buff, 0, (struct sockaddr *)&sin, &sin_len); + received_bytes = recvfrom( + data->socket, (char *)&data->buff[0], data->max_buff, 0, + (struct sockaddr *)&sin, &sin_len); } else { return 0; } @@ -319,7 +326,8 @@ int dl_ip_recv( (*msg_data)->pdu_len = buff_len; (*msg_data)->pdu = (uint8_t *)malloc((*msg_data)->pdu_len); /* fill up data message structure */ - memmove(&(*msg_data)->pdu[0], &data->buff[4], + memmove( + &(*msg_data)->pdu[0], &data->buff[4], (*msg_data)->pdu_len); memmove(&(*msg_data)->src, src, sizeof(BACNET_ADDRESS)); } @@ -352,7 +360,8 @@ int dl_ip_recv( (*msg_data)->pdu_len = buff_len; (*msg_data)->pdu = (uint8_t *)malloc((*msg_data)->pdu_len); /* fill up data message structure */ - memmove(&(*msg_data)->pdu[0], &data->buff[4 + 6], + memmove( + &(*msg_data)->pdu[0], &data->buff[4 + 6], (*msg_data)->pdu_len); memmove(&(*msg_data)->src, src, sizeof(BACNET_ADDRESS)); } else { diff --git a/apps/router/ipmodule.h b/apps/router/ipmodule.h index d9b97068..085daf69 100644 --- a/apps/router/ipmodule.h +++ b/apps/router/ipmodule.h @@ -1,13 +1,13 @@ /** -* @file -* @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv -* @date 2012 -* @brief Datalink IP module -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv + * @date 2012 + * @brief Datalink IP module + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef UDPMODULE_H #define UDPMODULE_H @@ -17,9 +17,9 @@ #include "portthread.h" #include "bacnet/datalink/bip.h" -#define MAX_BIP_APDU 1476 -#define MAX_BIP_PDU (MAX_NPDU + MAX_BIP_APDU) -#define MAX_BIP_MPDU (BIP_HEADER_MAX + MAX_BIP_PDU) +#define MAX_BIP_APDU 1476 +#define MAX_BIP_PDU (MAX_NPDU + MAX_BIP_APDU) +#define MAX_BIP_MPDU (BIP_HEADER_MAX + MAX_BIP_PDU) /* Yes, we know this is longer than an Ethernet Frame, a UDP payload and an IPv6 packet. Grandfathered in from BACnet Ethernet days, @@ -35,27 +35,22 @@ typedef struct ip_data { uint16_t max_buff; } IP_DATA; +void *dl_ip_thread(void *pArgs); -void *dl_ip_thread( - void *pArgs); - -bool dl_ip_init( - ROUTER_PORT * port, - IP_DATA * data); +bool dl_ip_init(ROUTER_PORT *port, IP_DATA *data); int dl_ip_send( - IP_DATA * data, - const BACNET_ADDRESS * dest, - const uint8_t * pdu, + IP_DATA *data, + const BACNET_ADDRESS *dest, + const uint8_t *pdu, unsigned pdu_len); int dl_ip_recv( - IP_DATA * data, - MSG_DATA ** msg, /* on recieve fill up message */ - BACNET_ADDRESS * src, + IP_DATA *data, + MSG_DATA **msg, /* on recieve fill up message */ + BACNET_ADDRESS *src, unsigned timeout); -void dl_ip_cleanup( - IP_DATA * data); +void dl_ip_cleanup(IP_DATA *data); #endif /* end of UDPMODULE_H */ diff --git a/apps/router/main.c b/apps/router/main.c index 41e1038e..16d49a1b 100644 --- a/apps/router/main.c +++ b/apps/router/main.c @@ -140,8 +140,8 @@ int main(int argc, char *argv[]) if (is_network_msg(bacmsg)) { msg_data->ref_count = 1; send_to_msgbox(msg_src, &msg_storage); - } else if (msg_data->dest.net != - BACNET_BROADCAST_NETWORK) { + } else if ( + msg_data->dest.net != BACNET_BROADCAST_NETWORK) { msg_data->ref_count = 1; port = find_dnet(msg_data->dest.net, &msg_data->dest); @@ -212,7 +212,8 @@ bool read_config(const char *filepath) /* open configuration file */ if (!config_read_file(&cfg, filepath)) { - PRINT(ERROR, "Config file error: %d - %s\n", config_error_line(&cfg), + PRINT( + ERROR, "Config file error: %d - %s\n", config_error_line(&cfg), config_error_text(&cfg)); config_destroy(&cfg); return false; @@ -261,13 +262,15 @@ bool read_config(const char *filepath) fd = socket(AF_INET, SOCK_DGRAM, 0); if (fd) { struct ifreq ifr; - strncpy(ifr.ifr_name, current->iface, + strncpy( + ifr.ifr_name, current->iface, sizeof(ifr.ifr_name) - 1); result = ioctl(fd, SIOCGIFADDR, &ifr); if (result != -1) { close(fd); } else { - PRINT(ERROR, + PRINT( + ERROR, "Error: Invalid interface for BIP device\n"); return false; } @@ -304,7 +307,8 @@ bool read_config(const char *filepath) if (fd != -1) { close(fd); } else { - PRINT(ERROR, + PRINT( + ERROR, "Error: Invalid interface for MSTP device\n"); return false; } @@ -465,13 +469,15 @@ bool parse_cmd(int argc, char *argv[]) fd = socket(AF_INET, SOCK_DGRAM, 0); if (fd) { struct ifreq ifr; - strncpy(ifr.ifr_name, current->iface, + strncpy( + ifr.ifr_name, current->iface, sizeof(ifr.ifr_name) - 1); result = ioctl(fd, SIOCGIFADDR, &ifr); if (result != -1) { close(fd); } else { - PRINT(ERROR, + PRINT( + ERROR, "Error: Invalid interface for BIP device \n"); return false; } @@ -520,7 +526,8 @@ bool parse_cmd(int argc, char *argv[]) if (fd != -1) { close(fd); } else { - PRINT(ERROR, + PRINT( + ERROR, "Error: Invalid interface for MSTP device\n"); return false; } @@ -755,8 +762,8 @@ uint16_t process_msg(BACMSG *msg, MSG_DATA *data, uint8_t **buff) memmove(data, msg->data, sizeof(MSG_DATA)); - apdu_offset = bacnet_npdu_decode(data->pdu, data->pdu_len, &data->dest, - &addr, &npdu_data); + apdu_offset = bacnet_npdu_decode( + data->pdu, data->pdu_len, &data->dest, &addr, &npdu_data); apdu_len = data->pdu_len - apdu_offset; srcport = find_snet(msg->origin); @@ -787,7 +794,8 @@ uint16_t process_msg(BACMSG *msg, MSG_DATA *data, uint8_t **buff) *buff = (uint8_t *)malloc(buff_len); memmove(*buff, npdu, npdu_len); /* copy newly formed NPDU */ - memmove(*buff + npdu_len, &data->pdu[apdu_offset], + memmove( + *buff + npdu_len, &data->pdu[apdu_offset], apdu_len); /* copy APDU */ } else { diff --git a/apps/router/msgqueue.h b/apps/router/msgqueue.h index f572b743..d031f9db 100644 --- a/apps/router/msgqueue.h +++ b/apps/router/msgqueue.h @@ -1,13 +1,13 @@ /** -* @file -* @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv -* @date 2012 -* @brief Message queue module -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv + * @date 2012 + * @brief Message queue module + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef MSGQUEUE_H #define MSGQUEUE_H @@ -27,16 +27,9 @@ extern pthread_mutex_t msg_lock; typedef int MSGBOX_ID; -typedef enum { - DATA = 1, - SERVICE -} MSGTYPE; +typedef enum { DATA = 1, SERVICE } MSGTYPE; -typedef enum { - SHUTDOWN, - CHG_IP, - CHG_MAC -} MSGSUBTYPE; +typedef enum { SHUTDOWN, CHG_IP, CHG_MAC } MSGSUBTYPE; typedef struct _message { MSGTYPE type; @@ -58,25 +51,17 @@ typedef struct _msg_data { MSGBOX_ID create_msgbox(void); /* returns sent byte count */ -bool send_to_msgbox( - MSGBOX_ID dest, - BACMSG * msg); +bool send_to_msgbox(MSGBOX_ID dest, BACMSG *msg); /* returns received message */ -BACMSG *recv_from_msgbox( - MSGBOX_ID src, - BACMSG * msg, - int flags); +BACMSG *recv_from_msgbox(MSGBOX_ID src, BACMSG *msg, int flags); -void del_msgbox( - MSGBOX_ID msgboxid); +void del_msgbox(MSGBOX_ID msgboxid); /* free message data structure */ -void free_data( - MSG_DATA * data); +void free_data(MSG_DATA *data); /* check message reference counter and delete data if needed */ -void check_data( - MSG_DATA * data); +void check_data(MSG_DATA *data); #endif /* end of MSGQUEUE_H */ diff --git a/apps/router/mstpmodule.c b/apps/router/mstpmodule.c index a458cdaa..0878ec97 100644 --- a/apps/router/mstpmodule.c +++ b/apps/router/mstpmodule.c @@ -105,8 +105,9 @@ void *dl_mstp_thread(void *pArgs) msg_data->dest.mac_len = 1; } - dlmstp_send_pdu(&mstp_port, &(msg_data->dest), - msg_data->pdu, msg_data->pdu_len); + dlmstp_send_pdu( + &mstp_port, &(msg_data->dest), msg_data->pdu, + msg_data->pdu_len); check_data(msg_data); @@ -129,13 +130,15 @@ void *dl_mstp_thread(void *pArgs) if (pdu_len > 0) { msg_data = (MSG_DATA *)malloc(sizeof(MSG_DATA)); - memmove(&(msg_data->src), + memmove( + &(msg_data->src), (const void *)&(shared_port_data.Receive_Packet.address), sizeof(shared_port_data.Receive_Packet.address)); msg_data->src.adr[0] = msg_data->src.mac[0]; msg_data->src.len = 1; msg_data->pdu = (uint8_t *)malloc(pdu_len); - memmove(msg_data->pdu, + memmove( + msg_data->pdu, (const void *)&(shared_port_data.Receive_Packet.pdu), pdu_len); msg_data->pdu_len = pdu_len; diff --git a/apps/router/mstpmodule.h b/apps/router/mstpmodule.h index 8eb3b779..b3bd6ef9 100644 --- a/apps/router/mstpmodule.h +++ b/apps/router/mstpmodule.h @@ -1,19 +1,18 @@ /** -* @file -* @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv -* @date 2012 -* @brief Datalink for MS/TP module -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv + * @date 2012 + * @brief Datalink for MS/TP module + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef MSTPMODULE_H #define MSTPMODULE_H #include "portthread.h" -void *dl_mstp_thread( - void *pArgs); +void *dl_mstp_thread(void *pArgs); #endif /* end of MSTPMODULE_H */ diff --git a/apps/router/network_layer.c b/apps/router/network_layer.c index 20c0d51c..3bdd7c69 100644 --- a/apps/router/network_layer.c +++ b/apps/router/network_layer.c @@ -14,8 +14,8 @@ #include "network_layer.h" #include "bacnet/bacint.h" -uint16_t process_network_message( - const BACMSG *msg, MSG_DATA *data, uint8_t **buff) +uint16_t +process_network_message(const BACMSG *msg, MSG_DATA *data, uint8_t **buff) { BACNET_NPDU_DATA npdu_data; ROUTER_PORT *srcport; @@ -28,8 +28,8 @@ uint16_t process_network_message( memmove(data, msg->data, sizeof(MSG_DATA)); - apdu_offset = bacnet_npdu_decode(data->pdu, data->pdu_len, &data->dest, - NULL, &npdu_data); + apdu_offset = bacnet_npdu_decode( + data->pdu, data->pdu_len, &data->dest, NULL, &npdu_data); apdu_len = data->pdu_len - apdu_offset; srcport = find_snet(msg->origin); @@ -71,9 +71,11 @@ uint16_t process_network_message( int net_count = apdu_len / 2; int i; for (i = 0; i < net_count; i++) { - decode_unsigned16(&data->pdu[apdu_offset + 2 * i], + decode_unsigned16( + &data->pdu[apdu_offset + 2 * i], &net); /* decode received NET values */ - add_dnet(&srcport->route_info, net, + add_dnet( + &srcport->route_info, net, data->src); /* and update routing table */ } break; @@ -110,9 +112,11 @@ uint16_t process_network_message( int net_count = data->pdu[apdu_offset]; while (net_count--) { int i = 1; - decode_unsigned16(&data->pdu[apdu_offset + i], + decode_unsigned16( + &data->pdu[apdu_offset + i], &net); /* decode received NET values */ - add_dnet(&srcport->route_info, net, + add_dnet( + &srcport->route_info, net, data->src); /* and update routing table */ if (data->pdu[apdu_offset + i + 3] > 0) { /* find next NET value */ @@ -135,9 +139,11 @@ uint16_t process_network_message( int net_count = data->pdu[apdu_offset]; while (net_count--) { int i = 1; - decode_unsigned16(&data->pdu[apdu_offset + i], + decode_unsigned16( + &data->pdu[apdu_offset + i], &net); /* decode received NET values */ - add_dnet(&srcport->route_info, net, + add_dnet( + &srcport->route_info, net, data->src); /* and update routing table */ if (data->pdu[apdu_offset + i + 3] > 0) { /* find next NET value */ @@ -299,7 +305,8 @@ uint16_t create_network_message( return buff_len; } -void send_network_message(BACNET_NETWORK_MESSAGE_TYPE network_message_type, +void send_network_message( + BACNET_NETWORK_MESSAGE_TYPE network_message_type, MSG_DATA *data, uint8_t **buff, void *val) @@ -334,7 +341,8 @@ void send_network_message(BACNET_NETWORK_MESSAGE_TYPE network_message_type, } } -void init_npdu(BACNET_NPDU_DATA *npdu_data, +void init_npdu( + BACNET_NPDU_DATA *npdu_data, BACNET_NETWORK_MESSAGE_TYPE network_message_type, bool data_expecting_reply) { diff --git a/apps/router/network_layer.h b/apps/router/network_layer.h index 39f1db05..2ef82ba5 100644 --- a/apps/router/network_layer.h +++ b/apps/router/network_layer.h @@ -1,13 +1,13 @@ /** -* @file -* @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv -* @date 2012 -* @brief Network layer for BACnet routing -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv + * @date 2012 + * @brief Network layer for BACnet routing + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef NETWORK_LAYER_H #define NETWORK_LAYER_H @@ -24,25 +24,23 @@ #include "bacport.h" #include "portthread.h" -uint16_t process_network_message( - const BACMSG * msg, - MSG_DATA * data, - uint8_t ** buff); +uint16_t +process_network_message(const BACMSG *msg, MSG_DATA *data, uint8_t **buff); uint16_t create_network_message( BACNET_NETWORK_MESSAGE_TYPE network_message_type, - MSG_DATA * data, - uint8_t ** buff, + MSG_DATA *data, + uint8_t **buff, void *val); void send_network_message( BACNET_NETWORK_MESSAGE_TYPE network_message_type, - MSG_DATA * data, - uint8_t ** buff, + MSG_DATA *data, + uint8_t **buff, void *val); void init_npdu( - BACNET_NPDU_DATA * npdu_data, + BACNET_NPDU_DATA *npdu_data, BACNET_NETWORK_MESSAGE_TYPE network_message_type, bool data_expecting_reply); diff --git a/apps/router/portthread.h b/apps/router/portthread.h index 713cf768..79c9a47f 100644 --- a/apps/router/portthread.h +++ b/apps/router/portthread.h @@ -1,13 +1,13 @@ /** -* @file -* @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv -* @date 2012 -* @brief Network port storage and handling -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Andriy Sukhynyuk, Vasyl Tkhir, Andriy Ivasiv + * @date 2012 + * @brief Network port storage and handling + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef PORTTHREAD_H #define PORTTHREAD_H @@ -27,33 +27,21 @@ #define DEBUG_LEVEL 3 #ifdef DEBUG_LEVEL -#define PRINT(debug_level, ...) if(debug_level <= DEBUG_LEVEL) fprintf(stderr, __VA_ARGS__) +#define PRINT(debug_level, ...) \ + if (debug_level <= DEBUG_LEVEL) \ + fprintf(stderr, __VA_ARGS__) #else #define PRINT(...) #endif -typedef enum { - BIP = 1, - MSTP = 2 -} DL_TYPE; +typedef enum { BIP = 1, MSTP = 2 } DL_TYPE; -typedef enum { - INIT, - INIT_FAILED, - RUNNING, - FINISHED -} PORT_STATE; +typedef enum { INIT, INIT_FAILED, RUNNING, FINISHED } PORT_STATE; /* router port thread function */ -typedef void *( - *PORT_FUNC) ( - void *); +typedef void *(*PORT_FUNC)(void *); -typedef enum { - PARITY_NONE, - PARITY_EVEN, - PARITY_ODD -} PARITY; +typedef enum { PARITY_NONE, PARITY_EVEN, PARITY_ODD } PARITY; /* port specific parameters */ typedef union _port_params { @@ -90,8 +78,8 @@ typedef struct _routing_table_entry { typedef struct _port { DL_TYPE type; PORT_STATE state; - MSGBOX_ID main_id; /* same for every router port */ - MSGBOX_ID port_id; /* different for every router port */ + MSGBOX_ID main_id; /* same for every router port */ + MSGBOX_ID port_id; /* different for every router port */ char *iface; PORT_FUNC func; RT_ENTRY route_info; @@ -103,21 +91,14 @@ extern ROUTER_PORT *head; extern int port_count; /* get recieving router port */ -ROUTER_PORT *find_snet( - MSGBOX_ID id); +ROUTER_PORT *find_snet(MSGBOX_ID id); /* get sending router port */ -ROUTER_PORT *find_dnet( - uint16_t net, - BACNET_ADDRESS * addr); +ROUTER_PORT *find_dnet(uint16_t net, BACNET_ADDRESS *addr); /* add reacheble network for specified router port */ -void add_dnet( - RT_ENTRY * route_info, - uint16_t net, - BACNET_ADDRESS addr); +void add_dnet(RT_ENTRY *route_info, uint16_t net, BACNET_ADDRESS addr); -void cleanup_dnets( - DNET * dnets); +void cleanup_dnets(DNET *dnets); #endif /* end of PORTTHREAD_H */ diff --git a/apps/scov/main.c b/apps/scov/main.c index 8f9d6462..6b1b9a68 100644 --- a/apps/scov/main.c +++ b/apps/scov/main.c @@ -59,14 +59,16 @@ BACNET_SUBSCRIBE_COV_DATA *COV_Subscribe_Data = NULL; static bool Simple_Ack_Detected = false; static bool Cancel_Requested = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -79,18 +81,19 @@ static void MyAbortHandler( (void)server; if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Abort: %s\n", - bactext_abort_reason_name((int)abort_reason)); + printf( + "BACnet Abort: %s\n", bactext_abort_reason_name((int)abort_reason)); Error_Detected = true; } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -102,7 +105,8 @@ static void My_Unconfirmed_COV_Notification_Handler( handler_ucov_notification(service_request, service_len, src); } -static void My_Confirmed_COV_Notification_Handler(uint8_t *service_request, +static void My_Confirmed_COV_Notification_Handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -110,8 +114,8 @@ static void My_Confirmed_COV_Notification_Handler(uint8_t *service_request, handler_ccov_notification(service_request, service_len, src, service_data); } -static void MyWritePropertySimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyWritePropertySimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -135,9 +139,11 @@ static void Init_Service_Handlers(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); /* handle the data coming back from COV subscriptions */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_COV_NOTIFICATION, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_COV_NOTIFICATION, My_Confirmed_COV_Notification_Handler); - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_COV_NOTIFICATION, + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_COV_NOTIFICATION, My_Unconfirmed_COV_Notification_Handler); /* handle the Simple ack coming back from SubscribeCOV */ apdu_set_confirmed_simple_ack_handler( @@ -163,55 +169,62 @@ static void cleanup(void) static void print_usage(const char *filename) { - printf("Usage: %s device-id object-type object-instance " - "process-id <[un]confirmed lifetime|cancel>\n", + printf( + "Usage: %s device-id object-type object-instance " + "process-id <[un]confirmed lifetime|cancel>\n", filename); } static void print_help(const char *filename) { printf("Subscribe to a BACnet object for Change-of-Value notifications\n" - "in a BACnet device and print the Change-of-Value notifications.\n"); + "in a BACnet device and print the Change-of-Value notifications.\n"); printf("\n"); printf("device-id:\n" - "The subscriber BACnet Device Object Instance number.\n"); + "The subscriber BACnet Device Object Instance number.\n"); printf("\n"); printf("object-type:\n" - "The object type is object that you are reading. It\n" - "can be defined either as the object-type name string\n" - "as defined in the BACnet specification, or as the\n" - "integer value of the enumeration BACNET_OBJECT_TYPE\n" - "in bacenum.h. For example if you were reading Analog\n" - "Output 2, the object-type would be analog-output or 1.\n"); + "The object type is object that you are reading. It\n" + "can be defined either as the object-type name string\n" + "as defined in the BACnet specification, or as the\n" + "integer value of the enumeration BACNET_OBJECT_TYPE\n" + "in bacenum.h. For example if you were reading Analog\n" + "Output 2, the object-type would be analog-output or 1.\n"); printf("\n"); printf("object-instance:\n" - "The monitored object instance number.\n"); + "The monitored object instance number.\n"); printf("\n"); printf("process-id:\n" - "Process Identifier for this COV subscription.\n"); + "Process Identifier for this COV subscription.\n"); printf("\n"); printf("confirmed:\n" - "Optional flag to subscribe using Confirmed notifications.\n" - "Use the word \'confirmed\' or \'unconfirmed\'.\n"); + "Optional flag to subscribe using Confirmed notifications.\n" + "Use the word \'confirmed\' or \'unconfirmed\'.\n"); printf("\n"); printf("lifetime:\n" - "Optional subscription lifetime is conveyed in seconds.\n"); + "Optional subscription lifetime is conveyed in seconds.\n"); printf("\n"); printf("cancel:\n" - "Use the word \'cancel\' instead of confirm and lifetime.\n" - "This shall indicate a cancellation request.\n"); + "Use the word \'cancel\' instead of confirm and lifetime.\n" + "This shall indicate a cancellation request.\n"); printf("\n"); printf("Examples:\n"); - printf("If you want subscribe to Device 123 Analog Input 9 object\n" + printf( + "If you want subscribe to Device 123 Analog Input 9 object\n" "using confirmed COV notifications for 5 minutes,\n" "you could send the following command:\n" - "%s 123 0 9 1 confirmed 600\n", filename); - printf("To send the same COV subscription request for unconfirmed\n" + "%s 123 0 9 1 confirmed 600\n", + filename); + printf( + "To send the same COV subscription request for unconfirmed\n" "notifications, send the following command:\n" - "%s 123 0 9 1 unconfirmed 600\n", filename); - printf("To cancel the same COV subscription request,\n" + "%s 123 0 9 1 unconfirmed 600\n", + filename); + printf( + "To cancel the same COV subscription request,\n" "send the following command:\n" - "%s 123 0 9 1 cancel\n", filename); + "%s 123 0 9 1 cancel\n", + filename); } int main(int argc, char *argv[]) @@ -255,7 +268,8 @@ int main(int argc, char *argv[]) /* decode the command line parameters */ Target_Device_Object_Instance = strtol(argv[1], NULL, 0); if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -271,7 +285,8 @@ int main(int argc, char *argv[]) cov_data->monitoredObjectIdentifier.type = (uint16_t)uint; if (cov_data->monitoredObjectIdentifier.type >= MAX_BACNET_OBJECT_TYPE) { - fprintf(stderr, "object-type=%u - it must be less than %u\n", + fprintf( + stderr, "object-type=%u - it must be less than %u\n", cov_data->monitoredObjectIdentifier.type, MAX_BACNET_OBJECT_TYPE); return 1; @@ -281,7 +296,8 @@ int main(int argc, char *argv[]) strtol(argv[argi], NULL, 0); if (cov_data->monitoredObjectIdentifier.instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "object-instance=%u - not greater than %u\n", + fprintf( + stderr, "object-instance=%u - not greater than %u\n", cov_data->monitoredObjectIdentifier.instance, BACNET_MAX_INSTANCE); return 1; @@ -376,8 +392,9 @@ int main(int argc, char *argv[]) /* increase the timeout to the longest lifetime */ timeout_seconds = cov_data->lifetime; } - printf("Sent SubscribeCOV request. " - " Waiting up to %u seconds....\n", + printf( + "Sent SubscribeCOV request. " + " Waiting up to %u seconds....\n", (unsigned)(timeout_seconds - elapsed_seconds)); } else if (tsm_invoke_id_free(Request_Invoke_ID)) { if (cov_data->next) { diff --git a/apps/server-client/main.c b/apps/server-client/main.c index bcaeb835..cd0c4d35 100644 --- a/apps/server-client/main.c +++ b/apps/server-client/main.c @@ -68,17 +68,18 @@ static void print_help(const char *filename) "you are reading. For example, if you were reading\n" "Analog Output 2, the object-instance would be 2.\n"); PRINTF("\n"); - PRINTF("Example:\n" - "If you want read the Present-Value of Analog Output 101\n" - "in Device 123, you could send either of the following\n" - "commands:\n" - "%s 123 analog-output 101\n" - "%s 123 1 101\n" - "If you want read the Present-Value of Binary Input 1\n" - "in Device 123, you could send either of the following\n" - "commands:\n" - "%s 123 binary-input 1\n" - "%s 123 3 1\n", + PRINTF( + "Example:\n" + "If you want read the Present-Value of Analog Output 101\n" + "in Device 123, you could send either of the following\n" + "commands:\n" + "%s 123 analog-output 101\n" + "%s 123 1 101\n" + "If you want read the Present-Value of Binary Input 1\n" + "in Device 123, you could send either of the following\n" + "commands:\n" + "%s 123 binary-input 1\n" + "%s 123 3 1\n", filename, filename, filename, filename); } @@ -125,8 +126,9 @@ int main(int argc, char *argv[]) if (++argi < argc) { device_id = strtol(argv[argi], NULL, 0); if (device_id > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device=%u - not greater than %u\n", - device_id, BACNET_MAX_INSTANCE); + fprintf( + stderr, "device=%u - not greater than %u\n", device_id, + BACNET_MAX_INSTANCE); return 1; } } @@ -161,22 +163,25 @@ int main(int argc, char *argv[]) } Device_Set_Object_Instance_Number(device_id); if (target_device_object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", target_device_object_instance, BACNET_MAX_INSTANCE); return 1; } - PRINTF("BACnet Server-Client Demo\n" - "BACnet Stack Version %s\n" - "BACnet Device ID: %u\n" - "Max APDU: %d\n", + PRINTF( + "BACnet Server-Client Demo\n" + "BACnet Stack Version %s\n" + "BACnet Device ID: %u\n" + "Max APDU: %d\n", BACnet_Version, Device_Object_Instance_Number(), MAX_APDU); fflush(stdout); dlenv_init(); atexit(datalink_cleanup); bacnet_task_init(); bacnet_data_poll_seconds_set(print_seconds); - if (!bacnet_data_object_add(target_device_object_instance, - target_object_type, target_object_instance)) { + if (!bacnet_data_object_add( + target_device_object_instance, target_object_type, + target_object_instance)) { return 1; } mstimer_set(&print_value_timer, print_seconds * 1000); @@ -192,7 +197,8 @@ int main(int argc, char *argv[]) if (bacnet_data_analog_present_value( target_device_object_instance, target_object_type, target_object_instance, &float_value)) { - PRINTF("Device %u %s-%u=%f\n", + PRINTF( + "Device %u %s-%u=%f\n", (unsigned)target_device_object_instance, bactext_object_type_name(target_object_type), (unsigned)target_object_instance, float_value); @@ -204,7 +210,8 @@ int main(int argc, char *argv[]) if (bacnet_data_binary_present_value( target_device_object_instance, target_object_type, target_object_instance, &bool_value)) { - PRINTF("Device %u %s-%u=%s\n", + PRINTF( + "Device %u %s-%u=%s\n", (unsigned)target_device_object_instance, bactext_object_type_name(target_object_type), (unsigned)target_object_instance, @@ -217,7 +224,8 @@ int main(int argc, char *argv[]) if (bacnet_data_multistate_present_value( target_device_object_instance, target_object_type, target_object_instance, &unsigned_value)) { - PRINTF("Device %u %s-%u=%u\n", + PRINTF( + "Device %u %s-%u=%u\n", (unsigned)target_device_object_instance, bactext_object_type_name(target_object_type), (unsigned)target_object_instance, diff --git a/apps/server-discover/main.c b/apps/server-discover/main.c index 4748815d..c6b797df 100644 --- a/apps/server-discover/main.c +++ b/apps/server-discover/main.c @@ -80,8 +80,9 @@ static void print_discovered_devices(void) milliseconds = bacnet_discover_device_elapsed_milliseconds(device_id); heap_ram = bacnet_discover_device_memory(device_id); /* convert to KB next highest value */ - bacnet_discover_property_name(device_id, OBJECT_DEVICE, device_id, - PROP_MODEL_NAME, model_name, sizeof(model_name), ""); + bacnet_discover_property_name( + device_id, OBJECT_DEVICE, device_id, PROP_MODEL_NAME, model_name, + sizeof(model_name), ""); printf( "device[%u] %7u \"%s\" object_list[%d] in %lums using %lu bytes\n", device_index, device_id, model_name, object_count, milliseconds, @@ -94,10 +95,11 @@ static void print_discovered_devices(void) device_id, object_index, &object_id)) { property_count = bacnet_discover_object_property_count( device_id, object_id.type, object_id.instance); - bacnet_discover_property_name(device_id, object_id.type, - object_id.instance, PROP_OBJECT_NAME, object_name, - sizeof(object_name), ""); - printf(" object_list[%d] %s %u \"%s\" has %u properties\n", + bacnet_discover_property_name( + device_id, object_id.type, object_id.instance, + PROP_OBJECT_NAME, object_name, sizeof(object_name), ""); + printf( + " object_list[%d] %s %u \"%s\" has %u properties\n", object_index, bactext_object_type_name(object_id.type), object_id.instance, object_name, property_count); } @@ -160,7 +162,8 @@ static void bacnet_server_init(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROP_MULTIPLE, handler_read_property_multiple); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); mstimer_set(&BACnet_Task_Timer, 1000); mstimer_set(&BACnet_TSM_Timer, 50); @@ -254,17 +257,19 @@ int main(int argc, char *argv[]) } } if (device_id > BACNET_MAX_INSTANCE) { - debug_perror("device-instance=%u - not greater than %u\n", - device_id, BACNET_MAX_INSTANCE); + debug_perror( + "device-instance=%u - not greater than %u\n", device_id, + BACNET_MAX_INSTANCE); return 1; } Device_Set_Object_Instance_Number(device_id); - debug_aprintf("BACnet Server-Discovery Demo\n" - "BACnet Stack Version %s\n" - "BACnet Device ID: %u\n" - "DNET: %u every %lu seconds\n" - "Print Devices: every %lu seconds (0=none)\n" - "Max APDU: %d\n", + debug_aprintf( + "BACnet Server-Discovery Demo\n" + "BACnet Stack Version %s\n" + "BACnet Device ID: %u\n" + "DNET: %u every %lu seconds\n" + "Print Devices: every %lu seconds (0=none)\n" + "Max APDU: %d\n", BACnet_Version, Device_Object_Instance_Number(), dnet, discover_seconds, print_seconds, MAX_APDU); dlenv_init(); diff --git a/apps/server/main.c b/apps/server/main.c index 416986b7..f92a86bc 100644 --- a/apps/server/main.c +++ b/apps/server/main.c @@ -106,16 +106,15 @@ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; #define LIGHTING_OBJECT_RELAY OBJECT_BINARY_OUTPUT #endif -static BACNET_SUBORDINATE_DATA Lighting_Subordinate[] = -{ - {0, LIGHTING_OBJECT_WATTS, 1, "watt-hours", 0, 0, NULL}, - {0, LIGHTING_OBJECT_ADR, 1, "demand-response", 0, 0, NULL}, - {0, LIGHTING_OBJECT_SCENE, 1, "scene", 0, 0, NULL}, - {0, LIGHTING_OBJECT_LIGHT, 1, "light", 0, 0, NULL}, - {0, LIGHTING_OBJECT_RELAY, 1, "relay", 0, 0, NULL}, +static BACNET_SUBORDINATE_DATA Lighting_Subordinate[] = { + { 0, LIGHTING_OBJECT_WATTS, 1, "watt-hours", 0, 0, NULL }, + { 0, LIGHTING_OBJECT_ADR, 1, "demand-response", 0, 0, NULL }, + { 0, LIGHTING_OBJECT_SCENE, 1, "scene", 0, 0, NULL }, + { 0, LIGHTING_OBJECT_LIGHT, 1, "light", 0, 0, NULL }, + { 0, LIGHTING_OBJECT_RELAY, 1, "relay", 0, 0, NULL }, #if (BACNET_PROTOCOL_REVISION >= 24) - {0, OBJECT_COLOR, 1, "color", 0, 0, NULL}, - {0, OBJECT_COLOR_TEMPERATURE, 1, "color-temperature", 0, 0, NULL}, + { 0, OBJECT_COLOR, 1, "color", 0, 0, NULL }, + { 0, OBJECT_COLOR_TEMPERATURE, 1, "color-temperature", 0, 0, NULL }, #endif }; @@ -132,8 +131,8 @@ static void Structured_View_Update(void) device_id = Device_Object_Instance_Number(); for (i = 0; i < ARRAY_SIZE(Lighting_Subordinate); i++) { /* link the lists */ - if (i < (ARRAY_SIZE(Lighting_Subordinate)-1)) { - Lighting_Subordinate[i].next = &Lighting_Subordinate[i+1]; + if (i < (ARRAY_SIZE(Lighting_Subordinate) - 1)) { + Lighting_Subordinate[i].next = &Lighting_Subordinate[i + 1]; } /* update the device instance to internal */ Lighting_Subordinate[i].Device_Instance = device_id; @@ -168,7 +167,8 @@ static void Init_Service_Handlers(void) for (i = 0; i <= BACNET_OBJECT_TYPE_LAST; i++) { object_data.object_type = i; if (Device_Create_Object(&object_data)) { - printf("Created object %s-%u\n", bactext_object_type_name(i), + printf( + "Created object %s-%u\n", bactext_object_type_name(i), (unsigned)object_data.object_instance); } } @@ -224,10 +224,12 @@ static void Init_Service_Handlers(void) apdu_set_unconfirmed_handler( SERVICE_UNCONFIRMED_COV_NOTIFICATION, handler_ucov_notification); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); /* handle the data coming back from private requests */ - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_PRIVATE_TRANSFER, + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_PRIVATE_TRANSFER, handler_unconfirmed_private_transfer); #if defined(INTRINSIC_REPORTING) apdu_set_confirmed_handler( @@ -247,10 +249,10 @@ static void Init_Service_Handlers(void) /* configure the cyclic timers */ mstimer_set(&BACnet_Task_Timer, 1000UL); mstimer_set(&BACnet_TSM_Timer, 50UL); - mstimer_set(&BACnet_Address_Timer, 60UL*1000UL); + mstimer_set(&BACnet_Address_Timer, 60UL * 1000UL); mstimer_set(&BACnet_Object_Timer, 100UL); #if defined(INTRINSIC_REPORTING) - mstimer_set(&BACnet_Notification_Timer, NC_RESCAN_RECIPIENTS_SECS*1000UL); + mstimer_set(&BACnet_Notification_Timer, NC_RESCAN_RECIPIENTS_SECS * 1000UL); #endif } @@ -269,11 +271,13 @@ static void print_help(const char *filename) "device-name:\n" "The Device object-name is the text name for the device.\n" "\nExample:\n"); - printf("To simulate Device 123, use the following command:\n" - "%s 123\n", + printf( + "To simulate Device 123, use the following command:\n" + "%s 123\n", filename); - printf("To simulate Device 123 named Fred, use following command:\n" - "%s 123 Fred\n", + printf( + "To simulate Device 123 named Fred, use following command:\n" + "%s 123 Fred\n", filename); } @@ -325,8 +329,9 @@ int main(int argc, char *argv[]) } #if defined(BAC_UCI) ctx = ucix_init("bacnet_dev"); - if (!ctx) + if (!ctx) { fprintf(stderr, "Failed to load config file bacnet_dev\n"); + } uciId = ucix_get_option_int(ctx, "bacnet_dev", "0", "Id", 0); if (uciId != 0) { Device_Set_Object_Instance_Number(uciId); @@ -342,10 +347,11 @@ int main(int argc, char *argv[]) ucix_cleanup(ctx); #endif /* defined(BAC_UCI) */ - printf("BACnet Server Demo\n" - "BACnet Stack Version %s\n" - "BACnet Device ID: %u\n" - "Max APDU: %d\n", + printf( + "BACnet Server Demo\n" + "BACnet Stack Version %s\n" + "BACnet Device ID: %u\n" + "Max APDU: %d\n", BACnet_Version, Device_Object_Instance_Number(), MAX_APDU); /* load any static address bindings to show up in our device bindings list */ @@ -357,8 +363,9 @@ int main(int argc, char *argv[]) #if defined(BAC_UCI) const char *uciname; ctx = ucix_init("bacnet_dev"); - if (!ctx) + if (!ctx) { fprintf(stderr, "Failed to load config file bacnet_dev\n"); + } uciname = ucix_get_option(ctx, "bacnet_dev", "0", "Name"); if (uciname != 0) { Device_Object_Name_ANSI_Init(uciname); @@ -390,7 +397,7 @@ int main(int argc, char *argv[]) if (mstimer_expired(&BACnet_Task_Timer)) { mstimer_reset(&BACnet_Task_Timer); elapsed_milliseconds = mstimer_interval(&BACnet_Task_Timer); - elapsed_seconds = elapsed_milliseconds/1000; + elapsed_seconds = elapsed_milliseconds / 1000; /* 1 second tasks */ dcc_timer_seconds(elapsed_seconds); datalink_maintenance_timer(elapsed_seconds); @@ -413,7 +420,7 @@ int main(int argc, char *argv[]) if (mstimer_expired(&BACnet_Address_Timer)) { mstimer_reset(&BACnet_Address_Timer); elapsed_milliseconds = mstimer_interval(&BACnet_Address_Timer); - elapsed_seconds = elapsed_milliseconds/1000; + elapsed_seconds = elapsed_milliseconds / 1000; address_cache_timer(elapsed_seconds); } handler_cov_task(); diff --git a/apps/timesync/main.c b/apps/timesync/main.c index 56d26f7d..26cfa6d2 100644 --- a/apps/timesync/main.c +++ b/apps/timesync/main.c @@ -50,8 +50,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -94,35 +94,36 @@ static void print_help(const char *filename) printf("Send BACnet TimeSynchronization request.\n"); printf("\n"); printf("--date year/month/day[:weekday]\n" - "Date formatted 2021/12/31 or 2021/12/31:1\n" - "where day is 1..31,\n" - "where month is 1=January..12=December,\n" - "where weekday is 1=Monday..7=Sunday\n"); + "Date formatted 2021/12/31 or 2021/12/31:1\n" + "where day is 1..31,\n" + "where month is 1=January..12=December,\n" + "where weekday is 1=Monday..7=Sunday\n"); printf("\n"); printf("--time hours:minutes:seconds.hundredths\n" - "Time formatted 23:59:59.99 or 23:59:59 or 23:59\n"); + "Time formatted 23:59:59.99 or 23:59:59 or 23:59\n"); printf("\n"); printf("--utc\n" - "Send BACnet UTCTimeSynchronization request.\n"); + "Send BACnet UTCTimeSynchronization request.\n"); printf("\n"); printf("--mac A\n" - "BACnet mac address." - "Valid ranges are from 0 to 255\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "BACnet mac address." + "Valid ranges are from 0 to 255\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--dnet N\n" - "BACnet network number N for directed requests.\n" - "Valid range is from 0 to 65535 where 0 is the local connection\n" - "and 65535 is network broadcast.\n"); + "BACnet network number N for directed requests.\n" + "Valid range is from 0 to 65535 where 0 is the local connection\n" + "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "BACnet mac address on the destination BACnet network number.\n" - "Valid ranges are from 0 to 255\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "BACnet mac address on the destination BACnet network number.\n" + "Valid ranges are from 0 to 255\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); - printf("Examples:\n" + printf( + "Examples:\n" "Send a TimeSynchronization request to DNET 123:\n" "%s --dnet 123\n", filename); @@ -130,8 +131,9 @@ static void print_help(const char *filename) "Send a TimeSynchronization request to MAC 10.0.0.1 DNET 123 DADR 5:\n" "%s --mac 10.0.0.1 --dnet 123 --dadr 5\n", filename); - printf("Send a TimeSynchronization request to MAC 10.1.2.3:47808:\n" - "%s --mac 10.1.2.3:47808\n", + printf( + "Send a TimeSynchronization request to MAC 10.1.2.3:47808:\n" + "%s --mac 10.1.2.3:47808\n", filename); } @@ -255,7 +257,8 @@ int main(int argc, char *argv[]) atexit(datalink_cleanup); mstimer_init(); /* send the request */ - datetime_local(override_date ? NULL : &bdate, override_time ? NULL : &btime, + datetime_local( + override_date ? NULL : &bdate, override_time ? NULL : &btime, &utc_offset_minutes, &dst_active); if (use_utc) { /* convert to UTC */ @@ -263,8 +266,8 @@ int main(int argc, char *argv[]) dst_adjust_minutes = -60; } datetime_set(&local_time, &bdate, &btime); - datetime_local_to_utc(&utc_time, &local_time, utc_offset_minutes, - dst_adjust_minutes); + datetime_local_to_utc( + &utc_time, &local_time, utc_offset_minutes, dst_adjust_minutes); Send_TimeSyncUTC_Remote(&dest, &utc_time.date, &utc_time.time); } else { Send_TimeSync_Remote(&dest, &bdate, &btime); diff --git a/apps/ucov/main.c b/apps/ucov/main.c index ad3757fe..2036d005 100644 --- a/apps/ucov/main.c +++ b/apps/ucov/main.c @@ -50,62 +50,68 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { printf("Sends a BACnet Unconfirmed Change-of-Value Notification\n" - "to the network.\n"); + "to the network.\n"); printf("\n"); - printf("Usage: %s pid device-id object-type object-instance " - "time property tag value [priority] [index]\n", filename); + printf( + "Usage: %s pid device-id object-type object-instance " + "time property tag value [priority] [index]\n", + filename); printf("\n"); printf("pid:\n" - "Process Identifier for this broadcast.\n"); + "Process Identifier for this broadcast.\n"); printf("\n"); printf("device-id:\n" - "The Initiating BACnet Device Object Instance number.\n"); + "The Initiating BACnet Device Object Instance number.\n"); printf("\n"); printf("object-type:\n" - "The object type is object that you are reading. It\n" - "can be defined either as the object-type name string\n" - "as defined in the BACnet specification, or as the\n" - "integer value of the enumeration BACNET_OBJECT_TYPE\n" - "in bacenum.h. For example if you were reading Analog\n" - "Output 2, the object-type would be analog-output or 1.\n"); + "The object type is object that you are reading. It\n" + "can be defined either as the object-type name string\n" + "as defined in the BACnet specification, or as the\n" + "integer value of the enumeration BACNET_OBJECT_TYPE\n" + "in bacenum.h. For example if you were reading Analog\n" + "Output 2, the object-type would be analog-output or 1.\n"); printf("\n"); printf("object-instance:\n" - "The monitored object instance number.\n"); + "The monitored object instance number.\n"); printf("\n"); printf("time:\n" - "The subscription time remaining is conveyed in seconds.\n"); + "The subscription time remaining is conveyed in seconds.\n"); printf("\n"); printf("property:\n" - "The property of the object that you are reading. It\n" - "can be defined either as the property name string as\n" - "defined in the BACnet specification, or as an integer\n" - "value of the enumeration BACNET_PROPERTY_ID in\n" - "bacenum.h. For example, if you were reading the Present\n" - "Value property, use present-value or 85 as the property.\n"); + "The property of the object that you are reading. It\n" + "can be defined either as the property name string as\n" + "defined in the BACnet specification, or as an integer\n" + "value of the enumeration BACNET_PROPERTY_ID in\n" + "bacenum.h. For example, if you were reading the Present\n" + "Value property, use present-value or 85 as the property.\n"); printf("\n"); - printf("tag:\n" + printf( + "tag:\n" "Tag is the integer value of the enumeration BACNET_APPLICATION_TAG \n" "in bacenum.h. It is the data type of the value that you are\n" "monitoring. For example, if you were monitoring a REAL value,\n" "you would use a tag of 4.\n"); printf("\n"); - printf("value:\n" + printf( + "value:\n" "The value is an ASCII representation of some type of data that you\n" "are monitoring. It is encoded using the tag information provided.\n" "For example, if you were writing a REAL value of 100.0,\n" "you would use 100.0 as the value.\n"); printf("\n"); printf("[priority]:\n" - "This optional parameter is used for reporting the priority of the\n" - "value. If no priority is given, none is sent, and the BACnet \n" - "standard requires that the value is reported at the lowest \n" - "priority (16) if the object property supports priorities.\n"); + "This optional parameter is used for reporting the priority of the\n" + "value. If no priority is given, none is sent, and the BACnet \n" + "standard requires that the value is reported at the lowest \n" + "priority (16) if the object property supports priorities.\n"); printf("\n"); - printf("[index]\n" + printf( + "[index]\n" "This optional integer parameter is the index number of an array.\n" "If the property is an array, individual elements can be reported.\n"); printf("\n"); - printf("Example:\n" + printf( + "Example:\n" "If you want generate an unconfirmed COV,\n" "you could send one of the following command:\n" "%s 1 2 analog-value 4 5 present-value 4 100.0\n" @@ -162,29 +168,32 @@ int main(int argc, char *argv[]) } if (cov_data.initiatingDeviceIdentifier > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", cov_data.initiatingDeviceIdentifier, BACNET_MAX_INSTANCE); return 1; } if (cov_data.monitoredObjectIdentifier.type >= MAX_BACNET_OBJECT_TYPE) { - fprintf(stderr, "object-type=%u - it must be less than %u\n", + fprintf( + stderr, "object-type=%u - it must be less than %u\n", cov_data.monitoredObjectIdentifier.type, MAX_BACNET_OBJECT_TYPE); return 1; } if (cov_data.monitoredObjectIdentifier.instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "object-instance=%u - not greater than %u\n", - cov_data.monitoredObjectIdentifier.instance, - BACNET_MAX_INSTANCE); + fprintf( + stderr, "object-instance=%u - not greater than %u\n", + cov_data.monitoredObjectIdentifier.instance, BACNET_MAX_INSTANCE); return 1; } if (cov_data.listOfValues->propertyIdentifier > MAX_BACNET_PROPERTY_ID) { - fprintf(stderr, "property-identifier=%u - not greater than %u\n", - cov_data.listOfValues->propertyIdentifier, - MAX_BACNET_PROPERTY_ID); + fprintf( + stderr, "property-identifier=%u - not greater than %u\n", + cov_data.listOfValues->propertyIdentifier, MAX_BACNET_PROPERTY_ID); return 1; } if (tag >= MAX_BACNET_APPLICATION_TAG) { - fprintf(stderr, "tag=%u - it must be less than %u\n", tag, + fprintf( + stderr, "tag=%u - it must be less than %u\n", tag, MAX_BACNET_APPLICATION_TAG); return 1; } @@ -200,8 +209,9 @@ int main(int argc, char *argv[]) Init_Service_Handlers(); dlenv_init(); atexit(datalink_cleanup); - Send_UCOV_Notify(&Handler_Transmit_Buffer[0], - sizeof(Handler_Transmit_Buffer), &cov_data); + Send_UCOV_Notify( + &Handler_Transmit_Buffer[0], sizeof(Handler_Transmit_Buffer), + &cov_data); return 0; } diff --git a/apps/uevent/main.c b/apps/uevent/main.c index 94784a09..5c8eac8c 100644 --- a/apps/uevent/main.c +++ b/apps/uevent/main.c @@ -51,13 +51,14 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s pid object-type object-instance \n" - " event-object-type event-object-instance \n" - " sequence-number notification-class priority event-type\n" - " [reference-bit-string status-flags message notify-type\n" - " ack-required from-state to-state]\n" - " [new-state status-flags message notify-type\n" - " ack-required from-state to-state]\n", + printf( + "Usage: %s pid object-type object-instance \n" + " event-object-type event-object-instance \n" + " sequence-number notification-class priority event-type\n" + " [reference-bit-string status-flags message notify-type\n" + " ack-required from-state to-state]\n" + " [new-state status-flags message notify-type\n" + " ack-required from-state to-state]\n", filename); printf(" [--dnet][--dadr][--mac]\n"); printf(" [--version][--help]\n"); @@ -67,21 +68,21 @@ static void print_help(const char *filename) { printf("Send BACnet UnconfirmedEventNotification message for a device.\n"); printf("--mac A\n" - "Optional BACnet mac address." - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address." + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--dnet N\n" - "Optional BACnet network number N for directed requests.\n" - "Valid range is from 0 to 65535 where 0 is the local connection\n" - "and 65535 is network broadcast.\n"); + "Optional BACnet network number N for directed requests.\n" + "Valid range is from 0 to 65535 where 0 is the local connection\n" + "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "Optional BACnet mac address on the destination BACnet network\n" - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "Optional BACnet mac address on the destination BACnet network\n" + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); (void)filename; } @@ -296,8 +297,8 @@ int main(int argc, char *argv[]) } else if (event_data.eventType == EVENT_COMMAND_FAILURE) { } else if (event_data.eventType == EVENT_FLOATING_LIMIT) { } else if (event_data.eventType == EVENT_OUT_OF_RANGE) { - } else if (event_data.eventType == - EVENT_CHANGE_OF_LIFE_SAFETY) { + } else if ( + event_data.eventType == EVENT_CHANGE_OF_LIFE_SAFETY) { } else if (event_data.eventType == EVENT_EXTENDED) { } else if (event_data.eventType == EVENT_BUFFER_READY) { } else if (event_data.eventType == EVENT_UNSIGNED_RANGE) { diff --git a/apps/uptransfer/main.c b/apps/uptransfer/main.c index ef2cd791..82668dc9 100644 --- a/apps/uptransfer/main.c +++ b/apps/uptransfer/main.c @@ -57,14 +57,16 @@ static uint8_t Request_Invoke_ID = 0; static BACNET_ADDRESS Target_Address; static bool Error_Detected = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -77,18 +79,19 @@ static void MyAbortHandler( (void)server; if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Abort: %s\n", - bactext_abort_reason_name((int)abort_reason)); + printf( + "BACnet Abort: %s\n", bactext_abort_reason_name((int)abort_reason)); Error_Detected = true; } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -109,7 +112,8 @@ static void Init_Service_Handlers(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); /* handle the data coming back from requests */ - apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_PRIVATE_TRANSFER, + apdu_set_unconfirmed_handler( + SERVICE_UNCONFIRMED_PRIVATE_TRANSFER, handler_unconfirmed_private_transfer); /* handle any errors coming back */ apdu_set_error_handler(SERVICE_CONFIRMED_READ_PROPERTY, MyErrorHandler); @@ -119,7 +123,8 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s vendor-id" + printf( + "Usage: %s vendor-id" " service-number tag value [tag value...]\n", filename); } @@ -128,41 +133,42 @@ static void print_help(const char *filename) { printf("Send BACnet UnconfirmedPrivateTransfer message to the network.\n"); printf("device-instance:\n" - "BACnet Device Object Instance number that you are\n" - "trying to communicate to. This number will be used\n" - "to try and bind with the device using Who-Is and\n" - "I-Am services. For example, if you were transferring to\n" - "Device Object 123, the device-instance would be 123.\n" - "For Global Broadcast, use the word 'broadcast'.\n" - "For Local Broadcast to a particular DNET n, use 'dnet=n'.\n"); + "BACnet Device Object Instance number that you are\n" + "trying to communicate to. This number will be used\n" + "to try and bind with the device using Who-Is and\n" + "I-Am services. For example, if you were transferring to\n" + "Device Object 123, the device-instance would be 123.\n" + "For Global Broadcast, use the word 'broadcast'.\n" + "For Local Broadcast to a particular DNET n, use 'dnet=n'.\n"); printf("\n"); printf("vendor_id:\n" - "the unique vendor identification code for the type of\n" - "vendor proprietary service to be performed.\n"); + "the unique vendor identification code for the type of\n" + "vendor proprietary service to be performed.\n"); printf("\n"); printf("service-number (Unsigned32):\n" - "the desired proprietary service to be performed.\n"); + "the desired proprietary service to be performed.\n"); printf("\n"); printf("tag:\n" - "Tag is the integer value of the enumeration \n" - "BACNET_APPLICATION_TAG in bacenum.h.\n" - "It is the data type of the value that you are sending.\n" - "For example, if you were transfering a REAL value, you would\n" - "use a tag of 4.\n" - "Context tags are created using two tags in a row.\n" - "The context tag is preceded by a C. Ctag tag.\n" - "C2 4 creates a context 2 tagged REAL.\n"); + "Tag is the integer value of the enumeration \n" + "BACNET_APPLICATION_TAG in bacenum.h.\n" + "It is the data type of the value that you are sending.\n" + "For example, if you were transfering a REAL value, you would\n" + "use a tag of 4.\n" + "Context tags are created using two tags in a row.\n" + "The context tag is preceded by a C. Ctag tag.\n" + "C2 4 creates a context 2 tagged REAL.\n"); printf("\n"); printf("value:\n" - "The value is an ASCII representation of some type of data\n" - "that you are transfering.\n" - "It is encoded using the tag information provided.\n" - "For example, if you were transferring a REAL value of 100.0,\n" - "you would use 100.0 as the value.\n" - "If you were transferring an object identifier for Device 123,\n" - "you would use 8:123 as the value.\n"); + "The value is an ASCII representation of some type of data\n" + "that you are transfering.\n" + "It is encoded using the tag information provided.\n" + "For example, if you were transferring a REAL value of 100.0,\n" + "you would use 100.0 as the value.\n" + "If you were transferring an object identifier for Device 123,\n" + "you would use 8:123 as the value.\n"); printf("\n"); - printf("Example:\n" + printf( + "Example:\n" "If you want to transfer a REAL value of 1.1 to service 23 of \n" "vendor 260 in Device 99, you could send the following command:\n" "%s 99 260 23 4 1.1\n", @@ -213,7 +219,8 @@ int main(int argc, char *argv[]) Target_Service_Number = strtol(argv[3], NULL, 0); if ((!Target_Broadcast) && (Target_Device_Object_Instance > BACNET_MAX_INSTANCE)) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -241,7 +248,8 @@ int main(int argc, char *argv[]) /* printf("tag[%d]=%u value[%d]=%s\n", i, property_tag, i, value_string); */ if (property_tag >= MAX_BACNET_APPLICATION_TAG) { - fprintf(stderr, "Error: tag=%u - it must be less than %u\n", + fprintf( + stderr, "Error: tag=%u - it must be less than %u\n", property_tag, MAX_BACNET_APPLICATION_TAG); return 1; } @@ -262,7 +270,8 @@ int main(int argc, char *argv[]) } } if (args_remaining > 0) { - fprintf(stderr, "Error: Exceeded %d tag-value pairs.\n", + fprintf( + stderr, "Error: Exceeded %d tag-value pairs.\n", MAX_PROPERTY_VALUES); return 1; } @@ -320,7 +329,8 @@ int main(int argc, char *argv[]) Send_UnconfirmedPrivateTransfer(&Target_Address, &private_data); printf("Sent PrivateTransfer."); if (timeout_seconds) { - printf(" Waiting %u seconds.\n", + printf( + " Waiting %u seconds.\n", (unsigned)(timeout_seconds - elapsed_seconds)); } else { printf("\n"); diff --git a/apps/whatisnetnum/main.c b/apps/whatisnetnum/main.c index e39cb242..5a4a3aa1 100644 --- a/apps/whatisnetnum/main.c +++ b/apps/whatisnetnum/main.c @@ -61,8 +61,8 @@ static void MyAbortHandler( * @param invoke_id [in] the invokeID from the rejected message * @param reject_reason [in] the reason for the rejection */ -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -71,7 +71,8 @@ static void MyRejectHandler( Error_Detected = true; } -static void My_Router_Handler(BACNET_ADDRESS *src, +static void My_Router_Handler( + BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, uint8_t *npdu, uint16_t npdu_len) @@ -104,7 +105,8 @@ static void My_Router_Handler(BACNET_ADDRESS *src, that are sent with a local unicast address. */ if (npdu_len >= 2) { (void)decode_unsigned16(npdu, &dnet); - printf(": network number = %u. SNET=%u\n", (unsigned)dnet, + printf( + ": network number = %u. SNET=%u\n", (unsigned)dnet, (unsigned)src->net); } else { printf(": network number = missing! SNET=%u\n", src->net); @@ -126,7 +128,8 @@ static void My_Router_Handler(BACNET_ADDRESS *src, } } -static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ +static void My_NPDU_Handler( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t pdu_len) { /* length PDU */ @@ -136,7 +139,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ apdu_offset = bacnet_npdu_decode(pdu, pdu_len, &dest, src, &npdu_data); if (npdu_data.network_layer_message) { - My_Router_Handler(src, &npdu_data, &pdu[apdu_offset], + My_Router_Handler( + src, &npdu_data, &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); } else if ((apdu_offset > 0) && (apdu_offset <= pdu_len)) { if ((npdu_data.protocol_version == BACNET_PROTOCOL_VERSION) && @@ -150,7 +154,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ if (dest.net) { debug_printf("NPDU: DNET=%d. Discarded!\n", dest.net); } else { - debug_printf("NPDU: BACnet Protocol Version=%d. Discarded!\n", + debug_printf( + "NPDU: BACnet Protocol Version=%d. Discarded!\n", npdu_data.protocol_version); } } @@ -186,8 +191,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) int index = 0; if (argc > 0) { - count = sscanf(argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], - &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], &mac[3], + &mac[4], &mac[5]); dst->mac_len = count; for (index = 0; index < MAX_MAC_LEN; index++) { if (index < count) { @@ -203,8 +209,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) } if (dnet) { if (argc > 2) { - count = sscanf(argv[2], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], - &mac[2], &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[2], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], + &mac[3], &mac[4], &mac[5]); dst->len = count; for (index = 0; index < MAX_MAC_LEN; index++) { if (index < count) { @@ -236,17 +243,18 @@ int main(int argc, char *argv[]) time_t timeout_seconds = 0; if ((argc > 1) && (strcmp(argv[1], "--help") == 0)) { - printf("Send BACnet What-Is-Network-Number message to a network.\r\n" - "\r\n" - "MAC:\r\n" - "Optional MAC address of router for unicast message\r\n" - "Format: xx[:xx:xx:xx:xx:xx] [dnet xx[:xx:xx:xx:xx:xx]]\r\n" - "Use hexidecimal MAC addresses.\r\n" - "\r\n" - "To send a What-Is-Network-Number request to DNET 86:\r\n" - "%s 86\r\n" - "To send a What-Is-Network-Number request to all devices:\r\n" - "%s -1\r\n", + printf( + "Send BACnet What-Is-Network-Number message to a network.\r\n" + "\r\n" + "MAC:\r\n" + "Optional MAC address of router for unicast message\r\n" + "Format: xx[:xx:xx:xx:xx:xx] [dnet xx[:xx:xx:xx:xx:xx]]\r\n" + "Use hexidecimal MAC addresses.\r\n" + "\r\n" + "To send a What-Is-Network-Number request to DNET 86:\r\n" + "%s 86\r\n" + "To send a What-Is-Network-Number request to all devices:\r\n" + "%s -1\r\n", filename_remove_path(argv[0]), filename_remove_path(argv[0])); return 0; } diff --git a/apps/whohas/main.c b/apps/whohas/main.c index c77a6c56..73237a88 100644 --- a/apps/whohas/main.c +++ b/apps/whohas/main.c @@ -56,8 +56,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -87,23 +87,25 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s [device-instance-min device-instance-min] " - " [--help]\r\n", + printf( + "Usage: %s [device-instance-min device-instance-min] " + " [--help]\r\n", filename); } static void print_help(const char *filename) { print_usage(filename); - printf("Send BACnet WhoHas request to devices, \r\n" - "and wait %u milliseconds (BACNET_APDU_TIMEOUT) for responses.\r\n" - "The device-instance-min or max can be 0 to %d.\r\n" - "\r\n" - "Use either:\r\n" - "The object-type can be 0 to %d, or a string e.g. analog-output.\r\n" - "The object-instance can be 0 to %d.\r\n" - "or:\r\n" - "The object-name can be any string of characters.\r\n", + printf( + "Send BACnet WhoHas request to devices, \r\n" + "and wait %u milliseconds (BACNET_APDU_TIMEOUT) for responses.\r\n" + "The device-instance-min or max can be 0 to %d.\r\n" + "\r\n" + "Use either:\r\n" + "The object-type can be 0 to %d, or a string e.g. analog-output.\r\n" + "The object-instance can be 0 to %d.\r\n" + "or:\r\n" + "The object-name can be any string of characters.\r\n", BACNET_MAX_INSTANCE, (unsigned)apdu_timeout(), BACNET_MAX_OBJECT, BACNET_MAX_INSTANCE); } @@ -180,23 +182,27 @@ int main(int argc, char *argv[]) } } else { if (Target_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "object-instance=%u - not greater than %u\r\n", + fprintf( + stderr, "object-instance=%u - not greater than %u\r\n", Target_Object_Instance, BACNET_MAX_INSTANCE); return 1; } if (Target_Object_Type > BACNET_MAX_OBJECT) { - fprintf(stderr, "object-type=%u - not greater than %u\r\n", + fprintf( + stderr, "object-type=%u - not greater than %u\r\n", Target_Object_Type, BACNET_MAX_OBJECT); return 1; } } if (Target_Object_Instance_Min > BACNET_MAX_INSTANCE) { - fprintf(stderr, "object-instance-min=%u - not greater than %u\r\n", + fprintf( + stderr, "object-instance-min=%u - not greater than %u\r\n", Target_Object_Instance_Min, BACNET_MAX_INSTANCE); return 1; } if (Target_Object_Instance_Max > BACNET_MAX_INSTANCE) { - fprintf(stderr, "object-instance-max=%u - not greater than %u\r\n", + fprintf( + stderr, "object-instance-max=%u - not greater than %u\r\n", Target_Object_Instance_Max, BACNET_MAX_INSTANCE); return 1; } @@ -210,12 +216,13 @@ int main(int argc, char *argv[]) timeout_seconds = apdu_timeout() / 1000; /* send the request */ if (by_name) { - Send_WhoHas_Name(Target_Object_Instance_Min, Target_Object_Instance_Max, + Send_WhoHas_Name( + Target_Object_Instance_Min, Target_Object_Instance_Max, Target_Object_Name); } else { - Send_WhoHas_Object(Target_Object_Instance_Min, - Target_Object_Instance_Max, Target_Object_Type, - Target_Object_Instance); + Send_WhoHas_Object( + Target_Object_Instance_Min, Target_Object_Instance_Max, + Target_Object_Type, Target_Object_Instance); } /* loop forever */ for (;;) { diff --git a/apps/whois/main.c b/apps/whois/main.c index a5be4073..fd6b7811 100644 --- a/apps/whois/main.c +++ b/apps/whois/main.c @@ -120,7 +120,8 @@ static void my_i_am_handler( if (BACnet_Debug_Enabled) { fprintf(stderr, " from %lu, MAC = ", (unsigned long)device_id); if ((src->mac_len == 6) && (src->len == 0)) { - fprintf(stderr, "%u.%u.%u.%u %02X%02X\n", (unsigned)src->mac[0], + fprintf( + stderr, "%u.%u.%u.%u %02X%02X\n", (unsigned)src->mac[0], (unsigned)src->mac[1], (unsigned)src->mac[2], (unsigned)src->mac[3], (unsigned)src->mac[4], (unsigned)src->mac[5]); @@ -156,13 +157,14 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; (void)invoke_id; - fprintf(stderr, "BACnet Reject: %s\n", + fprintf( + stderr, "BACnet Reject: %s\n", bactext_reject_reason_name(reject_reason)); Error_Detected = true; } @@ -213,7 +215,8 @@ static void print_address_cache(void) /* NOTE: this string format is parsed by src/address.c, so these must be compatible. */ - printf(";%-7s %-20s %-5s %-20s %-4s\n", "Device", "MAC (hex)", "SNET", + printf( + ";%-7s %-20s %-5s %-20s %-4s\n", "Device", "MAC (hex)", "SNET", "SADR (hex)", "APDU"); printf(";-------- -------------------- ----- -------------------- ----\n"); @@ -257,68 +260,75 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { printf("Send BACnet WhoIs service request to a device or multiple\n" - "devices, and wait for responses. Displays any devices found\n" - "and their network information.\n"); + "devices, and wait for responses. Displays any devices found\n" + "and their network information.\n"); printf("\n"); printf("device-instance:\n" - "BACnet Device Object Instance number that you are trying\n" - "to send a Who-Is service request. The value should be in\n" - "the range of 0 to 4194303. A range of values can also be\n" - "specified by using a minimum value and a maximum value.\n"); + "BACnet Device Object Instance number that you are trying\n" + "to send a Who-Is service request. The value should be in\n" + "the range of 0 to 4194303. A range of values can also be\n" + "specified by using a minimum value and a maximum value.\n"); printf("\n"); printf("--mac A\n" - "BACnet mac address." - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "BACnet mac address." + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--dnet N\n" - "BACnet network number N for directed requests.\n" - "Valid range is from 0 to 65535 where 0 is the local connection\n" - "and 65535 is network broadcast.\n"); + "BACnet network number N for directed requests.\n" + "Valid range is from 0 to 65535 where 0 is the local connection\n" + "and 65535 is network broadcast.\n"); printf("\n"); printf("--dadr A\n" - "BACnet mac address on the destination BACnet network number.\n" - "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" - "or an IP string with optional port number like 10.1.2.3:47808\n" - "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); + "BACnet mac address on the destination BACnet network number.\n" + "Valid ranges are from 00 to FF (hex) for MS/TP or ARCNET,\n" + "or an IP string with optional port number like 10.1.2.3:47808\n" + "or an Ethernet MAC in hex like 00:21:70:7e:32:bb\n"); printf("\n"); printf("--repeat\n" - "Send the message repeatedly until signalled to quit.\n" - "Default is disabled, using the APDU timeout as time to quit.\n"); + "Send the message repeatedly until signalled to quit.\n" + "Default is disabled, using the APDU timeout as time to quit.\n"); printf("\n"); printf("--retry C\n" - "Send the message C number of times\n" - "Default is retry 0, only sending one time.\n"); + "Send the message C number of times\n" + "Default is retry 0, only sending one time.\n"); printf("\n"); printf("--timeout T\n" - "Wait T milliseconds after sending before retry\n" - "Default delay is 3000ms.\n"); + "Wait T milliseconds after sending before retry\n" + "Default delay is 3000ms.\n"); printf("\n"); printf("--delay M\n" - "Wait M milliseconds for responses after sending\n" - "Default delay is 100ms.\n"); + "Wait M milliseconds for responses after sending\n" + "Default delay is 100ms.\n"); printf("\n"); printf("Example:\n"); - printf("Send a WhoIs request to DNET 123:\n" + printf( + "Send a WhoIs request to DNET 123:\n" "%s --dnet 123\n", filename); - printf("Send a WhoIs request to MAC 10.0.0.1 DNET 123 DADR 05h:\n" + printf( + "Send a WhoIs request to MAC 10.0.0.1 DNET 123 DADR 05h:\n" "%s --mac 10.0.0.1 --dnet 123 --dadr 05\n", filename); - printf("Send a WhoIs request to MAC 10.1.2.3:47808:\n" + printf( + "Send a WhoIs request to MAC 10.1.2.3:47808:\n" "%s --mac 10.1.2.3:47808\n", filename); - printf("Send a WhoIs request to Device 123:\n" + printf( + "Send a WhoIs request to Device 123:\n" "%s 123\n", filename); - printf("Send a WhoIs request to Devices from 1000 to 9000:\n" + printf( + "Send a WhoIs request to Devices from 1000 to 9000:\n" "%s 1000 9000\n", filename); - printf("Send a WhoIs request to Devices from 1000 to 9000 on DNET 123:\n" + printf( + "Send a WhoIs request to Devices from 1000 to 9000 on DNET 123:\n" "%s 1000 9000 --dnet 123\n", filename); - printf("Send a WhoIs request to all devices:\n" + printf( + "Send a WhoIs request to all devices:\n" "%s\n", filename); } @@ -446,12 +456,14 @@ int main(int argc, char *argv[]) } } if (Target_Object_Instance_Min > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance-min=%u - not greater than %u\n", + fprintf( + stderr, "device-instance-min=%u - not greater than %u\n", Target_Object_Instance_Min, BACNET_MAX_INSTANCE); return 1; } if (Target_Object_Instance_Max > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance-max=%u - not greater than %u\n", + fprintf( + stderr, "device-instance-max=%u - not greater than %u\n", Target_Object_Instance_Max, BACNET_MAX_INSTANCE); return 1; } @@ -491,7 +503,8 @@ int main(int argc, char *argv[]) } if (mstimer_expired(&apdu_timer)) { if (repeat_forever || retry_count) { - Send_WhoIs_To_Network(&dest, Target_Object_Instance_Min, + Send_WhoIs_To_Network( + &dest, Target_Object_Instance_Min, Target_Object_Instance_Max); retry_count--; } else { diff --git a/apps/whoisrouter/main.c b/apps/whoisrouter/main.c index c4f9e43b..8e0845e6 100644 --- a/apps/whoisrouter/main.c +++ b/apps/whoisrouter/main.c @@ -50,8 +50,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -60,7 +60,8 @@ static void MyRejectHandler( Error_Detected = true; } -static void My_Router_Handler(BACNET_ADDRESS *src, +static void My_Router_Handler( + BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, uint8_t *npdu, /* PDU data */ uint16_t npdu_len) @@ -108,7 +109,8 @@ static void My_Router_Handler(BACNET_ADDRESS *src, } } -static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ +static void My_NPDU_Handler( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t pdu_len) { /* length PDU */ @@ -118,7 +120,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ apdu_offset = bacnet_npdu_decode(pdu, pdu_len, &dest, src, &npdu_data); if (npdu_data.network_layer_message) { - My_Router_Handler(src, &npdu_data, &pdu[apdu_offset], + My_Router_Handler( + src, &npdu_data, &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); } else if ((apdu_offset > 0) && (apdu_offset <= pdu_len)) { if ((npdu_data.protocol_version == BACNET_PROTOCOL_VERSION) && @@ -132,7 +135,8 @@ static void My_NPDU_Handler(BACNET_ADDRESS *src, /* source address */ if (dest.net) { debug_printf("NPDU: DNET=%d. Discarded!\n", dest.net); } else { - debug_printf("NPDU: BACnet Protocol Version=%d. Discarded!\n", + debug_printf( + "NPDU: BACnet Protocol Version=%d. Discarded!\n", npdu_data.protocol_version); } } @@ -168,8 +172,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) int index = 0; if (argc > 0) { - count = sscanf(argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], - &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[0], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], &mac[3], + &mac[4], &mac[5]); dst->mac_len = count; for (index = 0; index < MAX_MAC_LEN; index++) { if (index < count) { @@ -185,8 +190,9 @@ static void address_parse(BACNET_ADDRESS *dst, int argc, char *argv[]) } if (dnet) { if (argc > 2) { - count = sscanf(argv[2], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], - &mac[2], &mac[3], &mac[4], &mac[5]); + count = sscanf( + argv[2], "%x:%x:%x:%x:%x:%x", &mac[0], &mac[1], &mac[2], + &mac[3], &mac[4], &mac[5]); dst->len = count; for (index = 0; index < MAX_MAC_LEN; index++) { if (index < count) { @@ -222,20 +228,21 @@ int main(int argc, char *argv[]) return 0; } if ((argc > 1) && (strcmp(argv[1], "--help") == 0)) { - printf("Send BACnet Who-Is-Router-To-Network message to a network.\r\n" - "\r\n" - "DNET:\r\n" - "BACnet destination network number 0-65535\r\n" - "To omit the BACnet destination network number, use -1.\r\n" - "MAC:\r\n" - "Optional MAC address of router for unicast message\r\n" - "Format: xx[:xx:xx:xx:xx:xx] [dnet xx[:xx:xx:xx:xx:xx]]\r\n" - "Use hexidecimal MAC addresses.\r\n" - "\r\n" - "To send a Who-Is-Router-To-Network request to DNET 86:\r\n" - "%s 86\r\n" - "To send a Who-Is-Router-To-Network request to all devices:\r\n" - "%s -1\r\n", + printf( + "Send BACnet Who-Is-Router-To-Network message to a network.\r\n" + "\r\n" + "DNET:\r\n" + "BACnet destination network number 0-65535\r\n" + "To omit the BACnet destination network number, use -1.\r\n" + "MAC:\r\n" + "Optional MAC address of router for unicast message\r\n" + "Format: xx[:xx:xx:xx:xx:xx] [dnet xx[:xx:xx:xx:xx:xx]]\r\n" + "Use hexidecimal MAC addresses.\r\n" + "\r\n" + "To send a Who-Is-Router-To-Network request to DNET 86:\r\n" + "%s 86\r\n" + "To send a Who-Is-Router-To-Network request to all devices:\r\n" + "%s -1\r\n", filename_remove_path(argv[0]), filename_remove_path(argv[0])); return 0; } @@ -243,7 +250,8 @@ int main(int argc, char *argv[]) if (argc > 1) { Target_Router_Network = strtol(argv[1], NULL, 0); if (Target_Router_Network > 65535) { - fprintf(stderr, "DNET=%u - it must be 0 to 65535\r\n", + fprintf( + stderr, "DNET=%u - it must be 0 to 65535\r\n", Target_Router_Network); return 1; } diff --git a/apps/writebdt/main.c b/apps/writebdt/main.c index 7c7d3529..212dc024 100644 --- a/apps/writebdt/main.c +++ b/apps/writebdt/main.c @@ -58,8 +58,8 @@ static void MyAbortHandler( Error_Detected = true; } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ (void)src; @@ -106,7 +106,8 @@ int main(int argc, char *argv[]) uint16_t result_code = 0; if (argc < 2) { - printf("Usage: %s IP port []\r\n", + printf( + "Usage: %s IP port []\r\n", filename_remove_path(argv[0])); return 0; } @@ -153,8 +154,9 @@ int main(int argc, char *argv[]) argi = 3; while (argc > argi) { bdt_entry = &BBMD_Table_Entry[bdti]; - c = sscanf(argv[argi], "%3u.%3u.%3u.%3u:%5u:%3u.%3u.%3u.%3u", &a[0], - &a[1], &a[2], &a[3], &p, &m[0], &m[1], &m[2], &m[3]); + c = sscanf( + argv[argi], "%3u.%3u.%3u.%3u:%5u:%3u.%3u.%3u.%3u", &a[0], &a[1], + &a[2], &a[3], &p, &m[0], &m[1], &m[2], &m[3]); if ((c == 4) || (c == 5) || (c == 9)) { bvlc_address_set(&bdt_entry->dest_address, a[0], a[1], a[2], a[3]); if ((c == 5) || (c == 9)) { diff --git a/apps/writefile/main.c b/apps/writefile/main.c index d7dd3767..93c48628 100644 --- a/apps/writefile/main.c +++ b/apps/writefile/main.c @@ -46,7 +46,8 @@ static bool End_Of_File_Detected = false; static bool Error_Detected = false; static uint8_t Current_Invoke_ID = 0; -static void Atomic_Write_File_Error_Handler(BACNET_ADDRESS *src, +static void Atomic_Write_File_Error_Handler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -66,18 +67,20 @@ static void MyAbortHandler( (void)server; if (address_match(&Target_Address, src) && (invoke_id == Current_Invoke_ID)) { - printf("BACnet Abort: %s\r\n", + printf( + "BACnet Abort: %s\r\n", bactext_abort_reason_name((int)abort_reason)); Error_Detected = true; } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Current_Invoke_ID)) { - printf("BACnet Reject: %s\r\n", + printf( + "BACnet Reject: %s\r\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } @@ -148,8 +151,9 @@ int main(int argc, char *argv[]) if (argc < 4) { /* FIXME: what about access method - record or stream? */ - printf("%s device-instance file-instance local-name [octet count] [pad " - "value]\r\n", + printf( + "%s device-instance file-instance local-name [octet count] [pad " + "value]\r\n", filename_remove_path(argv[0])); return 0; } @@ -158,12 +162,14 @@ int main(int argc, char *argv[]) Target_File_Object_Instance = strtol(argv[2], NULL, 0); Local_File_Name = argv[3]; if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\r\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\r\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } if (Target_File_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "file-instance=%u - not greater than %u\r\n", + fprintf( + stderr, "file-instance=%u - not greater than %u\r\n", Target_File_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -251,12 +257,14 @@ int main(int argc, char *argv[]) pFile = fopen(Local_File_Name, "rb"); if (pFile) { (void)fseek(pFile, fileStartPosition, SEEK_SET); - len = fread(octetstring_value(&fileData), 1, - requestedOctetCount, pFile); + len = fread( + octetstring_value(&fileData), 1, requestedOctetCount, + pFile); if (len < requestedOctetCount) { End_Of_File_Detected = true; if (pad_byte) { - memset(octetstring_value(&fileData) + len + 1, + memset( + octetstring_value(&fileData) + len + 1, (int)Target_File_Requested_Octet_Pad_Byte, requestedOctetCount - len); len = requestedOctetCount; diff --git a/apps/writeprop/main.c b/apps/writeprop/main.c index ac1dd4d9..5269f1bc 100644 --- a/apps/writeprop/main.c +++ b/apps/writeprop/main.c @@ -67,14 +67,16 @@ static BACNET_ADDRESS Target_Address; /* needed for return value of main application */ static bool Error_Detected = false; -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)error_class), bactext_error_code_name((int)error_code)); Error_Detected = true; @@ -93,19 +95,20 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } } -static void MyWritePropertySimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyWritePropertySimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -138,8 +141,9 @@ static void Init_Service_Handlers(void) static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance " - "property priority index tag value [tag value...]\n", + printf( + "Usage: %s device-instance object-type object-instance " + "property priority index tag value [tag value...]\n", filename); } @@ -152,14 +156,13 @@ static void print_help(const char *filename) "the device using Who-Is and I-Am services. For example, if you were\n" "writing to Device Object 123, the device-instance would be 123.\n"); printf("\n"); - printf( - "object-type:\n" - "The object type is object that you are writing. It\n" - "can be defined either as the object-type name string\n" - "as defined in the BACnet specification, or as the\n" - "integer value of the enumeration BACNET_OBJECT_TYPE\n" - "in bacenum.h. For example if you were writing Analog\n" - "Output 2, the object-type would be analog-output or 1.\n"); + printf("object-type:\n" + "The object type is object that you are writing. It\n" + "can be defined either as the object-type name string\n" + "as defined in the BACnet specification, or as the\n" + "integer value of the enumeration BACNET_OBJECT_TYPE\n" + "in bacenum.h. For example if you were writing Analog\n" + "Output 2, the object-type would be analog-output or 1.\n"); printf("\n"); printf( "object-instance:\n" @@ -167,22 +170,20 @@ static void print_help(const char *filename) "writing to. For example, if you were writing to Analog Output 2, \n" "the object-instance would be 2.\n"); printf("\n"); - printf( - "property:\n" - "The property of the object that you are writing. It\n" - "can be defined either as the property name string as\n" - "defined in the BACnet specification, or as an integer\n" - "value of the enumeration BACNET_PROPERTY_ID in\n" - "bacenum.h. For example, if you were writing the Present\n" - "Value property, use present-value or 85 as the property.\n"); + printf("property:\n" + "The property of the object that you are writing. It\n" + "can be defined either as the property name string as\n" + "defined in the BACnet specification, or as an integer\n" + "value of the enumeration BACNET_PROPERTY_ID in\n" + "bacenum.h. For example, if you were writing the Present\n" + "Value property, use present-value or 85 as the property.\n"); printf("\n"); - printf( - "priority:\n" - "This parameter is used for setting the priority of the\n" - "write. If Priority 0 is given, no priority is sent. The BACnet \n" - "standard states that the value is written at the lowest \n" - "priority (16) if the object property supports priorities\n" - "when no priority is sent.\n"); + printf("priority:\n" + "This parameter is used for setting the priority of the\n" + "write. If Priority 0 is given, no priority is sent. The BACnet \n" + "standard states that the value is written at the lowest \n" + "priority (16) if the object property supports priorities\n" + "when no priority is sent.\n"); printf("\n"); printf( "index\n" @@ -199,10 +200,9 @@ static void print_help(const char *filename) "Context tags are created using two tags in a row. The context tag\n" "is preceded by a C, and followed by the application tag.\n" "Ctag atag. C2 4 creates a context 2 tagged REAL.\n"); - printf( - "Complex data use the property argument and a tag number -1 to\n" - "lookup the appropriate internal application tag for the value.\n" - "The complex data value argument varies in its construction.\n"); + printf("Complex data use the property argument and a tag number -1 to\n" + "lookup the appropriate internal application tag for the value.\n" + "The complex data value argument varies in its construction.\n"); printf("\n"); printf( "value:\n" @@ -283,8 +283,7 @@ int main(int argc, char *argv[]) } Target_Object_Property = object_property; priority = strtol(argv[5], NULL, 0); - if ((priority < BACNET_MIN_PRIORITY) || - (priority > BACNET_MAX_PRIORITY)) { + if ((priority < BACNET_MIN_PRIORITY) || (priority > BACNET_MAX_PRIORITY)) { priority = BACNET_NO_PRIORITY; } Target_Object_Property_Priority = priority; @@ -293,22 +292,26 @@ int main(int argc, char *argv[]) Target_Object_Property_Index = BACNET_ARRAY_ALL; } if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } if (Target_Object_Type > MAX_BACNET_OBJECT_TYPE) { - fprintf(stderr, "object-type=%u - it must be less than %u\n", + fprintf( + stderr, "object-type=%u - it must be less than %u\n", Target_Object_Type, MAX_BACNET_OBJECT_TYPE + 1); return 1; } if (Target_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "object-instance=%u - not greater than %u\n", + fprintf( + stderr, "object-instance=%u - not greater than %u\n", Target_Object_Instance, BACNET_MAX_INSTANCE); return 1; } if (Target_Object_Property > MAX_BACNET_PROPERTY_ID) { - fprintf(stderr, "property=%u - it must be less than %u\n", + fprintf( + stderr, "property=%u - it must be less than %u\n", Target_Object_Property, MAX_BACNET_PROPERTY_ID + 1); return 1; } @@ -340,7 +343,8 @@ int main(int argc, char *argv[]) property_tag = bacapp_known_property_tag( Target_Object_Type, Target_Object_Property); } else if (property_tag >= MAX_BACNET_APPLICATION_TAG) { - fprintf(stderr, "Error: tag=%ld - it must be less than %u\n", + fprintf( + stderr, "Error: tag=%ld - it must be less than %u\n", property_tag, MAX_BACNET_APPLICATION_TAG); return 1; } @@ -353,8 +357,8 @@ int main(int argc, char *argv[]) return 1; } } else { - fprintf(stderr, - "Error: parser for property %s is not implemented\n", + fprintf( + stderr, "Error: parser for property %s is not implemented\n", bactext_property_name(Target_Object_Property)); return 1; } @@ -387,7 +391,8 @@ int main(int argc, char *argv[]) } } if (args_remaining > 0) { - fprintf(stderr, "Error: Exceeded %d tag-value pairs.\n", + fprintf( + stderr, "Error: Exceeded %d tag-value pairs.\n", MAX_PROPERTY_VALUES); return 1; } diff --git a/apps/writepropm/main.c b/apps/writepropm/main.c index e61283ba..d250e7c9 100644 --- a/apps/writepropm/main.c +++ b/apps/writepropm/main.c @@ -57,7 +57,8 @@ static bool Error_Detected = false; /* Used for verbose */ static bool Verbose = false; -static void MyWritePropertyMultipleErrorHandler(BACNET_ADDRESS *src, +static void MyWritePropertyMultipleErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t service_choice, uint8_t *service_request, @@ -71,10 +72,12 @@ static void MyWritePropertyMultipleErrorHandler(BACNET_ADDRESS *src, (invoke_id == Request_Invoke_ID)) { len = wpm_error_ack_decode_apdu(service_request, service_len, &wp_data); if (len > 0) { - printf("BACnet Error: %s: %s\n", + printf( + "BACnet Error: %s: %s\n", bactext_error_class_name((int)wp_data.error_class), bactext_error_code_name((int)wp_data.error_code)); - printf("BACnet Error: %s %u: %s\n", + printf( + "BACnet Error: %s %u: %s\n", bactext_object_type_name((int)wp_data.object_type), (unsigned)wp_data.object_instance, bactext_property_name((int)wp_data.object_property)); @@ -95,20 +98,21 @@ static void MyAbortHandler( } } -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { /* FIXME: verify src and invoke id */ if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { - printf("BACnet Reject: %s\n", + printf( + "BACnet Reject: %s\n", bactext_reject_reason_name((int)reject_reason)); Error_Detected = true; } } -static void MyWritePropertyMultipleSimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyWritePropertyMultipleSimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -131,10 +135,12 @@ static void Init_Service_Handlers(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); /* handle the data coming back from confirmed requests */ - apdu_set_confirmed_simple_ack_handler(SERVICE_CONFIRMED_WRITE_PROP_MULTIPLE, + apdu_set_confirmed_simple_ack_handler( + SERVICE_CONFIRMED_WRITE_PROP_MULTIPLE, MyWritePropertyMultipleSimpleAckHandler); /* handle any errors coming back */ - apdu_set_complex_error_handler(SERVICE_CONFIRMED_WRITE_PROP_MULTIPLE, + apdu_set_complex_error_handler( + SERVICE_CONFIRMED_WRITE_PROP_MULTIPLE, MyWritePropertyMultipleErrorHandler); apdu_set_abort_handler(MyAbortHandler); apdu_set_reject_handler(MyRejectHandler); @@ -164,9 +170,10 @@ static void cleanup(void) static void print_usage(const char *filename) { - printf("Usage: %s device-instance object-type object-instance " - "property[index] priority tag value [property[index] priority tag " - "value]\n", + printf( + "Usage: %s device-instance object-type object-instance " + "property[index] priority tag value [property[index] priority tag " + "value]\n", filename); printf(" [--version][--help]\n"); } @@ -174,65 +181,69 @@ static void print_usage(const char *filename) static void print_help(const char *filename) { printf("Write one or more properties to one or more objects\n" - "in a BACnet device.\n"); + "in a BACnet device.\n"); printf("\n"); printf("device-instance:\n" - "BACnet Device Object Instance number that you are\n" - "trying to communicate to. This number will be used\n" - "to try and bind with the device using Who-Is and\n" - "I-Am services. For example, if you were writing\n" - "Device Object 123, the device-instance would be 123.\n"); + "BACnet Device Object Instance number that you are\n" + "trying to communicate to. This number will be used\n" + "to try and bind with the device using Who-Is and\n" + "I-Am services. For example, if you were writing\n" + "Device Object 123, the device-instance would be 123.\n"); printf("\n"); printf("object-type:\n" - "The object type is object that you are writing. It\n" - "can be defined either as the object-type name string\n" - "as defined in the BACnet specification, or as the\n" - "integer value of the enumeration BACNET_OBJECT_TYPE\n" - "in bacenum.h. For example if you were writing Analog\n" - "Output 2, the object-type would be analog-output or 1.\n"); + "The object type is object that you are writing. It\n" + "can be defined either as the object-type name string\n" + "as defined in the BACnet specification, or as the\n" + "integer value of the enumeration BACNET_OBJECT_TYPE\n" + "in bacenum.h. For example if you were writing Analog\n" + "Output 2, the object-type would be analog-output or 1.\n"); printf("\n"); printf("object-instance:\n" - "This is the object instance number of the object that\n" - "you are writing. For example, if you were writing\n" - "Analog Output 2, the object-instance would be 2.\n"); + "This is the object instance number of the object that\n" + "you are writing. For example, if you were writing\n" + "Analog Output 2, the object-instance would be 2.\n"); printf("\n"); printf("property:\n" - "The property is an integer value of the enumeration\n" - "BACNET_PROPERTY_ID in bacenum.h. It is the property\n" - "you are writing. For example, if you were writing the\n" - "Present Value property, use 85 as the property.\n"); + "The property is an integer value of the enumeration\n" + "BACNET_PROPERTY_ID in bacenum.h. It is the property\n" + "you are writing. For example, if you were writing the\n" + "Present Value property, use 85 as the property.\n"); printf("\n"); printf("priority:\n" - "This parameter is used for setting the priority of the\n" - "write. If Priority 0 is given, no priority is sent. The BACnet \n" - "standard states that the value is written at the lowest \n" - "priority (16) if the object property supports priorities\n" - "when no priority is sent.\n"); + "This parameter is used for setting the priority of the\n" + "write. If Priority 0 is given, no priority is sent. The BACnet \n" + "standard states that the value is written at the lowest \n" + "priority (16) if the object property supports priorities\n" + "when no priority is sent.\n"); printf("\n"); - printf("index:\n" + printf( + "index:\n" "This integer parameter is the index number of an array.\n" "If the property is an array, individual elements can be written\n" "to if supported. If this parameter is -1, the index is ignored.\n"); printf("\n"); - printf("tag:\n" + printf( + "tag:\n" "Tag is the integer value of the enumeration BACNET_APPLICATION_TAG \n" "in bacenum.h. It is the data type of the value that you are\n" "writing. For example, if you were writing a REAL value, you would \n" "use a tag of 4.\n" "Context tags are created using two tags in a row. The context tag\n" - "is preceded by a C. Ctag tag. C2 4 creates a context 2 tagged REAL.\n"); - printf( - "Complex data use the property argument and a tag number -1 to\n" - "lookup the appropriate internal application tag for the value.\n" - "The complex data value argument varies in its construction.\n"); + "is preceded by a C. Ctag tag. C2 4 creates a context 2 tagged " + "REAL.\n"); + printf("Complex data use the property argument and a tag number -1 to\n" + "lookup the appropriate internal application tag for the value.\n" + "The complex data value argument varies in its construction.\n"); printf("\n"); - printf("value:\n" + printf( + "value:\n" "The value is an ASCII representation of some type of data that you\n" "are writing. It is encoded using the tag information provided. For\n" "example, if you were writing a REAL value of 100.0, you would use \n" "100.0 as the value.\n"); printf("\n"); - printf("Here is a brief overview of BACnet property and tags:\n" + printf( + "Here is a brief overview of BACnet property and tags:\n" "Certain properties are expected to be written with certain \n" "application tags, so you probably need to know which ones to use\n" "with each property of each object. It is almost safe to say that\n" @@ -241,11 +252,12 @@ static void print_help(const char *filename) "the Any property type in the schedule object and the Present Value\n" "accepting REAL, BOOLEAN, NULL, etc.\n"); printf("Perhaps it would be simpler for the demo to use this\n" - "kind of table - but this tool can also be used for negative\n" - "testing by passing the wrong tag to validate that the server\n" - "returns an error, reject, or abort message.\n"); + "kind of table - but this tool can also be used for negative\n" + "testing by passing the wrong tag to validate that the server\n" + "returns an error, reject, or abort message.\n"); printf("\n"); - printf("Example:\n" + printf( + "Example:\n" "If you want write a value of 100 to the Present-Value in\n" "Analog Output 44 and 45 of Device 123 at priority 16,\n" "send the following command:\n" @@ -304,7 +316,8 @@ int main(int argc, char *argv[]) /* decode the command line parameters */ Target_Device_Object_Instance = strtol(argv[1], NULL, 0); if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "device-instance=%u - not greater than %u\n", + fprintf( + stderr, "device-instance=%u - not greater than %u\n", Target_Device_Object_Instance, BACNET_MAX_INSTANCE); return 1; } @@ -332,7 +345,8 @@ int main(int argc, char *argv[]) return 1; } if (wpm_object->object_type >= MAX_BACNET_OBJECT_TYPE) { - fprintf(stderr, "object-type=%u - it must be less than %u\n", + fprintf( + stderr, "object-type=%u - it must be less than %u\n", wpm_object->object_type, MAX_BACNET_OBJECT_TYPE); return 1; } @@ -347,7 +361,8 @@ int main(int argc, char *argv[]) return 1; } if (wpm_object->object_instance > BACNET_MAX_INSTANCE) { - fprintf(stderr, "object-instance=%u - not greater than %u\n", + fprintf( + stderr, "object-instance=%u - not greater than %u\n", wpm_object->object_instance, BACNET_MAX_INSTANCE); return 1; } @@ -356,20 +371,22 @@ int main(int argc, char *argv[]) wpm_object->listOfProperties = wpm_property; if (wpm_property) { /* Property[index] */ - scan_count = sscanf(argv[tag_value_arg], "%u[%u]", &property_id, + scan_count = sscanf( + argv[tag_value_arg], "%u[%u]", &property_id, &property_array_index); tag_value_arg++; args_remaining--; if (scan_count > 0) { wpm_property->propertyIdentifier = property_id; if (Verbose) { - printf("property-identifier=%u, array-index=%u\n", + printf( + "property-identifier=%u, array-index=%u\n", property_id, property_array_index); } if (wpm_property->propertyIdentifier > MAX_BACNET_PROPERTY_ID) { - fprintf(stderr, - "property=%u - it must be less than %u\n", + fprintf( + stderr, "property=%u - it must be less than %u\n", wpm_property->propertyIdentifier, MAX_BACNET_PROPERTY_ID + 1); return 1; @@ -381,7 +398,8 @@ int main(int argc, char *argv[]) wpm_property->propertyArrayIndex = BACNET_ARRAY_ALL; } if (args_remaining <= 0) { - fprintf(stderr, + fprintf( + stderr, "Error: missing priority and tag value pair.\n"); return 1; } @@ -428,12 +446,12 @@ int main(int argc, char *argv[]) printf("tag=%ld value=%s\n", property_tag, value_string); } if (property_tag < 0) { - property_tag = - bacapp_known_property_tag(wpm_object->object_type, - wpm_property->propertyIdentifier); + property_tag = bacapp_known_property_tag( + wpm_object->object_type, + wpm_property->propertyIdentifier); } else if (property_tag >= MAX_BACNET_APPLICATION_TAG) { - fprintf(stderr, - "Error: tag=%ld - it must be less than %u\n", + fprintf( + stderr, "Error: tag=%ld - it must be less than %u\n", property_tag, MAX_BACNET_APPLICATION_TAG); return 1; } @@ -447,10 +465,11 @@ int main(int argc, char *argv[]) return 1; } } else { - fprintf(stderr, + fprintf( + stderr, "Error: parser for property %s is not implemented\n", bactext_property_name( - wpm_property->propertyIdentifier)); + wpm_property->propertyIdentifier)); return 1; } wpm_property->value.next = NULL; @@ -480,7 +499,8 @@ int main(int argc, char *argv[]) Target_Device_Object_Instance, &max_apdu, &Target_Address); if (found) { if (Verbose) { - printf("Found Device %u in address_cache.\n", + printf( + "Found Device %u in address_cache.\n", Target_Device_Object_Instance); } } else { @@ -508,7 +528,8 @@ int main(int argc, char *argv[]) if (found) { if (Request_Invoke_ID == 0) { if (Verbose) { - printf("Sending WritePropertyMultiple to Device %u.\n", + printf( + "Sending WritePropertyMultiple to Device %u.\n", Target_Device_Object_Instance); } Request_Invoke_ID = Send_Write_Property_Multiple_Request( diff --git a/ports/arduino_uno/apdu.c b/ports/arduino_uno/apdu.c index 647795b1..c17f06be 100644 --- a/ports/arduino_uno/apdu.c +++ b/ports/arduino_uno/apdu.c @@ -34,7 +34,8 @@ bool apdu_service_supported(BACNET_SERVICES_SUPPORTED service_supported) return status; } -uint16_t apdu_decode_confirmed_service_request(uint8_t *apdu, /* APDU data */ +uint16_t apdu_decode_confirmed_service_request( + uint8_t *apdu, /* APDU data */ uint16_t apdu_len, BACNET_CONFIRMED_SERVICE_DATA *service_data, @@ -63,7 +64,8 @@ uint16_t apdu_decode_confirmed_service_request(uint8_t *apdu, /* APDU data */ return len; } -void apdu_handler(BACNET_ADDRESS *src, +void apdu_handler( + BACNET_ADDRESS *src, uint8_t *apdu, /* APDU data */ uint16_t apdu_len) @@ -87,18 +89,21 @@ void apdu_handler(BACNET_ADDRESS *src, break; } if (service_choice == SERVICE_CONFIRMED_READ_PROPERTY) { - handler_read_property(service_request, service_request_len, - src, &service_data); + handler_read_property( + service_request, service_request_len, src, + &service_data); } #ifdef WRITE_PROPERTY else if (service_choice == SERVICE_CONFIRMED_WRITE_PROPERTY) { - handler_write_property(service_request, service_request_len, - src, &service_data); + handler_write_property( + service_request, service_request_len, src, + &service_data); } #endif else { - handler_unrecognized_service(service_request, - service_request_len, src, &service_data); + handler_unrecognized_service( + service_request, service_request_len, src, + &service_data); } break; case PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST: diff --git a/ports/arduino_uno/av.c b/ports/arduino_uno/av.c index 82540fa7..2008b8a3 100644 --- a/ports/arduino_uno/av.c +++ b/ports/arduino_uno/av.c @@ -29,8 +29,9 @@ float AV_Present_Value[MAX_ANALOG_VALUES]; /* given instance exists */ bool Analog_Value_Valid_Instance(uint32_t object_instance) { - if (object_instance < MAX_ANALOG_VALUES) + if (object_instance < MAX_ANALOG_VALUES) { return true; + } return false; } @@ -69,7 +70,8 @@ char *Analog_Value_Name(uint32_t object_instance) } /* return apdu len, or -1 on error */ -int Analog_Value_Encode_Property_APDU(uint8_t *apdu, +int Analog_Value_Encode_Property_APDU( + uint8_t *apdu, uint32_t object_instance, BACNET_PROPERTY_ID property, uint32_t array_index, @@ -136,7 +138,8 @@ int Analog_Value_Encode_Property_APDU(uint8_t *apdu, } /* returns true if successful */ -bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data, +bool Analog_Value_Write_Property( + BACNET_WRITE_PROPERTY_DATA *wp_data, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) { diff --git a/ports/arduino_uno/av.h b/ports/arduino_uno/av.h index df280495..0c63c1af 100644 --- a/ports/arduino_uno/av.h +++ b/ports/arduino_uno/av.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2006 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2006 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef AV_H #define AV_H @@ -21,31 +21,31 @@ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - void Analog_Value_Property_Lists(const int **pRequired, - const int **pOptional, - const int **pProprietary); - bool Analog_Value_Valid_Instance(uint32_t object_instance); - unsigned Analog_Value_Count(void); - uint32_t Analog_Value_Index_To_Instance(unsigned index); - char *Analog_Value_Name(uint32_t object_instance); +void Analog_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +bool Analog_Value_Valid_Instance(uint32_t object_instance); +unsigned Analog_Value_Count(void); +uint32_t Analog_Value_Index_To_Instance(unsigned index); +char *Analog_Value_Name(uint32_t object_instance); - int Analog_Value_Encode_Property_APDU(uint8_t * apdu, - uint32_t object_instance, - BACNET_PROPERTY_ID property, - uint32_t array_index, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +int Analog_Value_Encode_Property_APDU( + uint8_t *apdu, + uint32_t object_instance, + BACNET_PROPERTY_ID property, + uint32_t array_index, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); - bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +bool Analog_Value_Write_Property( + BACNET_WRITE_PROPERTY_DATA *wp_data, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); - bool Analog_Value_Present_Value_Set(uint32_t object_instance, - float value, - uint8_t priority); - float Analog_Value_Present_Value(uint32_t object_instance); +bool Analog_Value_Present_Value_Set( + uint32_t object_instance, float value, uint8_t priority); +float Analog_Value_Present_Value(uint32_t object_instance); - void Analog_Value_Init(void); +void Analog_Value_Init(void); #ifdef __cplusplus } diff --git a/ports/arduino_uno/bip-init.c b/ports/arduino_uno/bip-init.c index 4f731de3..e08861f5 100644 --- a/ports/arduino_uno/bip-init.c +++ b/ports/arduino_uno/bip-init.c @@ -12,7 +12,7 @@ #include "bacnet/datalink/bip.h" #include "socketWrapper.h" #include "w5100Wrapper.h" -//#include "bacport.h" +// #include "bacport.h" /** @file linux/bip-init.c Initializes BACnet/IP interface (Linux). */ @@ -61,7 +61,8 @@ void bip_set_interface(const char *ifname) bip_set_addr(local_address); if (BIP_Debug) { fprintf(stderr, "Interface: %s\n", ifname); - fprintf(stderr, "IP Address: %d.%d.%d.%d\n", local_address[0], + fprintf( + stderr, "IP Address: %d.%d.%d.%d\n", local_address[0], local_address[1], local_address[2], local_address[3]); } @@ -74,9 +75,9 @@ void bip_set_interface(const char *ifname) bip_set_broadcast_addr(broadcast_address); if (BIP_Debug) { - fprintf(stderr, "IP Broadcast Address: %d.%d.%d.%d\n", - broadcast_address[0], broadcast_address[1], broadcast_address[2], - broadcast_address[3]); + fprintf( + stderr, "IP Broadcast Address: %d.%d.%d.%d\n", broadcast_address[0], + broadcast_address[1], broadcast_address[2], broadcast_address[3]); } } @@ -102,10 +103,11 @@ bool bip_init(char *ifname) uint8_t sock_fd = 0; bool isOpen = false; - if (ifname) + if (ifname) { bip_set_interface(ifname); - else + } else { bip_set_interface("eth0"); + } /* assumes that the driver has already been initialized */ for (sock_fd = 0; sock_fd < MAX_SOCK_NUM; sock_fd++) { diff --git a/ports/arduino_uno/bip.c b/ports/arduino_uno/bip.c index 2a85de67..5b72ee6a 100644 --- a/ports/arduino_uno/bip.c +++ b/ports/arduino_uno/bip.c @@ -37,7 +37,7 @@ static uint8_t BIP_Broadcast_Address[4] = { 0, 0, 0, 0 }; uint32_t convertBIP_Address2uint32(const suint8_t *bip_address) { return (uint32_t)((bip_address[0] * 2 ^ 24) + (bip_address[1] * 2 ^ 16) + - (bip_address[2] * 2 ^ 8) + bip_address[3]); + (bip_address[2] * 2 ^ 8) + bip_address[3]); } /** Convert from uint32_t IPv4 address to uint8_t[4] address @@ -76,8 +76,9 @@ bool bip_valid(void) void bip_set_addr(const uint8_t *net_address) { /* in network byte order */ - for (uint8_t i = 0; i < 4; i++) + for (uint8_t i = 0; i < 4; i++) { BIP_Address[i] = net_address[i]; + } } /* returns network byte order */ @@ -88,8 +89,9 @@ uint8_t *bip_get_addr(void) void bip_set_broadcast_addr(const uint8_t *net_address) { /* in network byte order */ - for (uint8_t i = 0; i < 4; i++) + for (uint8_t i = 0; i < 4; i++) { BIP_Broadcast_Address[i] = net_address[i]; + } } /* returns network byte order */ @@ -109,7 +111,8 @@ uint16_t bip_get_port(void) return ntohs(BIP_Port); } -static int bip_decode_bip_address(const BACNET_ADDRESS *bac_addr, +static int bip_decode_bip_address( + const BACNET_ADDRESS *bac_addr, uint8_t *address, /* in network format */ uint16_t *port) { /* in network format */ @@ -133,7 +136,8 @@ static int bip_decode_bip_address(const BACNET_ADDRESS *bac_addr, * @param pdu_len [in] Number of bytes in the pdu buffer. * @return Number of bytes sent on success, negative number on failure. */ -int bip_send_pdu(BACNET_ADDRESS *dest, /* destination address */ +int bip_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ BACNET_NPDU_DATA *npdu_data, /* network information */ @@ -159,19 +163,22 @@ int bip_send_pdu(BACNET_ADDRESS *dest, /* destination address */ if ((dest->net == BACNET_BROADCAST_NETWORK) || ((dest->net > 0) && (dest->len == 0)) || (dest->mac_len == 0)) { /* broadcast */ - for (uint8_t i = 0; i < 4; i++) + for (uint8_t i = 0; i < 4; i++) { address[i] = BIP_Broadcast_Address[i]; + } port = BIP_Port; mtu[1] = BVLC_ORIGINAL_BROADCAST_NPDU; #ifdef DEBUG - fprintf(stderr, "Send Broadcast NPDU to %d.%d.%d.%d:%d\n", address[0], + fprintf( + stderr, "Send Broadcast NPDU to %d.%d.%d.%d:%d\n", address[0], address[1], address[2], address[3], port); #endif } else if (dest->mac_len == 6) { bip_decode_bip_address(dest, address, &port); mtu[1] = BVLC_ORIGINAL_UNICAST_NPDU; #ifdef DEBUG - fprintf(stderr, "Send Unicast NPDU to %d.%d.%d.%d:%d\n", address[0], + fprintf( + stderr, "Send Unicast NPDU to %d.%d.%d.%d:%d\n", address[0], address[1], address[2], address[3], port); #endif } else { @@ -207,7 +214,8 @@ int bip_send_pdu(BACNET_ADDRESS *dest, /* destination address */ * @param timeout [in] The number of milliseconds to wait for a packet. * @return The number of octets (remaining) in the PDU, or zero on failure. */ -uint16_t bip_receive(BACNET_ADDRESS *src, /* source address */ +uint16_t bip_receive( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ @@ -224,8 +232,9 @@ uint16_t bip_receive(BACNET_ADDRESS *src, /* source address */ int function = 0; /* Make sure the socket is open */ - if (BIP_Socket < 0) + if (BIP_Socket < 0) { return 0; + } if (getRXReceivedSize_func(CW5100Class_new(), BIP_Socket)) { memcpy(&src_addr, &src->mac[0], 4); @@ -240,12 +249,14 @@ uint16_t bip_receive(BACNET_ADDRESS *src, /* source address */ } /* no problem, just no bytes */ - if (received_bytes == 0) + if (received_bytes == 0) { return 0; + } /* the signature of a BACnet/IP packet */ - if (pdu[0] != BVLL_TYPE_BACNET_IP) + if (pdu[0] != BVLL_TYPE_BACNET_IP) { return 0; + } /* Erase up to 16 bytes after the received bytes as safety margin to * ensure that the decoding functions will run into a 'safe field' @@ -272,7 +283,7 @@ uint16_t bip_receive(BACNET_ADDRESS *src, /* source address */ (function == BVLC_ORIGINAL_BROADCAST_NPDU)) { /* ignore messages from me */ if ((convertBIP_Address2uint32(src_addr) == - convertBIP_Address2uint32(BIP_Address)) && + convertBIP_Address2uint32(BIP_Address)) && (src_port == BIP_Port)) { pdu_len = 0; #if 0 @@ -284,7 +295,8 @@ uint16_t bip_receive(BACNET_ADDRESS *src, /* source address */ memcpy(&src->mac[0], &src_addr, 4); memcpy(&src->mac[4], &src_port, 2); #ifdef DEBUG - fprintf(stderr, "BIP receive from %d.%d.%d.%d\n", src->mac[0], + fprintf( + stderr, "BIP receive from %d.%d.%d.%d\n", src->mac[0], src->mac[1], src->mac[2], src->mac[3]); #endif /* FIXME: check destination address */ @@ -321,7 +333,7 @@ uint16_t bip_receive(BACNET_ADDRESS *src, /* source address */ memcpy(&src_addr, &pdu[4], 4); memcpy(&src_port, &pdu[8], 2); if ((convertBIP_Address2uint32(src_addr) == - convertBIP_Address2uint32(BIP_Address)) && + convertBIP_Address2uint32(BIP_Address)) && (src_port == BIP_Port)) { /* ignore messages from me */ pdu_len = 0; diff --git a/ports/arduino_uno/bip.h b/ports/arduino_uno/bip.h index 15edd504..431a1b12 100644 --- a/ports/arduino_uno/bip.h +++ b/ports/arduino_uno/bip.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2012 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2012 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BIP_H #define BIP_H @@ -16,7 +16,7 @@ /* specific defines for BACnet/IP over Ethernet */ #define BIP_HEADER_MAX (1 + 1 + 2) -#define BIP_MPDU_MAX (BIP_HEADER_MAX+MAX_PDU) +#define BIP_MPDU_MAX (BIP_HEADER_MAX + MAX_PDU) #define BVLL_TYPE_BACNET_IP (0x81) @@ -24,69 +24,70 @@ extern "C" { #endif /* __cplusplus */ - /* note: define init, set_interface, and cleanup in your port */ - /* on Linux, ifname is eth0, ath0, arc0, and others. - on Windows, ifname is the dotted ip address of the interface */ - bool bip_init(char *ifname); - void bip_set_interface(const char *ifname); - void bip_cleanup(void); +/* note: define init, set_interface, and cleanup in your port */ +/* on Linux, ifname is eth0, ath0, arc0, and others. + on Windows, ifname is the dotted ip address of the interface */ +bool bip_init(char *ifname); +void bip_set_interface(const char *ifname); +void bip_cleanup(void); - /* Convert uint8_t IPv4 to uint32 */ - uint32_t convertBIP_Address2uint32(const uint8_t * bip_address); - void convertUint32Address_2_uint8Address(uint32_t ip, - uint8_t * address); - /* common BACnet/IP functions */ - void bip_set_socket(uint8_t sock_fd); - uint8_t bip_socket(void); - bool bip_valid(void); - void bip_get_broadcast_address(BACNET_ADDRESS * dest); /* destination address */ - void bip_get_my_address(BACNET_ADDRESS * my_address); +/* Convert uint8_t IPv4 to uint32 */ +uint32_t convertBIP_Address2uint32(const uint8_t *bip_address); +void convertUint32Address_2_uint8Address(uint32_t ip, uint8_t *address); +/* common BACnet/IP functions */ +void bip_set_socket(uint8_t sock_fd); +uint8_t bip_socket(void); +bool bip_valid(void); +void bip_get_broadcast_address(BACNET_ADDRESS *dest); /* destination address */ +void bip_get_my_address(BACNET_ADDRESS *my_address); - /* function to send a packet out the BACnet/IP socket */ - /* returns zero on success, non-zero on failure */ - int bip_send_pdu(BACNET_ADDRESS * dest, /* destination address */ +/* function to send a packet out the BACnet/IP socket */ +/* returns zero on success, non-zero on failure */ +int bip_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ - BACNET_NPDU_DATA * npdu_data, /* network information */ + BACNET_NPDU_DATA *npdu_data, /* network information */ - uint8_t * pdu, /* any data to be sent - may be null */ + uint8_t *pdu, /* any data to be sent - may be null */ - unsigned pdu_len); /* number of bytes of data */ + unsigned pdu_len); /* number of bytes of data */ - /* receives a BACnet/IP packet */ - /* returns the number of octets in the PDU, or zero on failure */ - uint16_t bip_receive(BACNET_ADDRESS * src, /* source address */ +/* receives a BACnet/IP packet */ +/* returns the number of octets in the PDU, or zero on failure */ +uint16_t bip_receive( + BACNET_ADDRESS *src, /* source address */ - uint8_t * pdu, /* PDU data */ + uint8_t *pdu, /* PDU data */ - uint16_t max_pdu, /* amount of space available in the PDU */ + uint16_t max_pdu, /* amount of space available in the PDU */ - unsigned timeout); /* milliseconds to wait for a packet */ + unsigned timeout); /* milliseconds to wait for a packet */ - /* use host byte order for setting */ - void bip_set_port(uint16_t port); - /* returns host byte order */ - uint16_t bip_get_port(void); +/* use host byte order for setting */ +void bip_set_port(uint16_t port); +/* returns host byte order */ +uint16_t bip_get_port(void); - /* use network byte order for setting */ - void bip_set_addr(const uint8_t * net_address); - /* returns network byte order */ - uint8_t *bip_get_addr(void); +/* use network byte order for setting */ +void bip_set_addr(const uint8_t *net_address); +/* returns network byte order */ +uint8_t *bip_get_addr(void); - /* use network byte order for setting */ - void bip_set_broadcast_addr(const uint8_t * net_address); - /* returns network byte order */ - uint8_t *bip_get_broadcast_addr(void); +/* use network byte order for setting */ +void bip_set_broadcast_addr(const uint8_t *net_address); +/* returns network byte order */ +uint8_t *bip_get_broadcast_addr(void); - /* gets an IP address by name, where name can be a - string that is an IP address in dotted form, or - a name that is a domain name - returns 0 if not found, or - an IP address in network byte order */ - long bip_getaddrbyname(const char *host_name); +/* gets an IP address by name, where name can be a + string that is an IP address in dotted form, or + a name that is a domain name + returns 0 if not found, or + an IP address in network byte order */ +long bip_getaddrbyname(const char *host_name); - void bip_debug_enable(void); +void bip_debug_enable(void); - void bip_debug_disable(void); +void bip_debug_disable(void); #ifdef __cplusplus } diff --git a/ports/arduino_uno/bv.c b/ports/arduino_uno/bv.c index 4f2409e8..81e2940b 100644 --- a/ports/arduino_uno/bv.c +++ b/ports/arduino_uno/bv.c @@ -27,8 +27,9 @@ static BACNET_BINARY_PV Present_Value[MAX_BINARY_VALUES]; /* we simply have 0-n object instances. */ bool Binary_Value_Valid_Instance(uint32_t object_instance) { - if (object_instance < MAX_BINARY_VALUES) + if (object_instance < MAX_BINARY_VALUES) { return true; + } return false; } @@ -50,8 +51,9 @@ unsigned Binary_Value_Instance_To_Index(uint32_t object_instance) { unsigned index = MAX_BINARY_VALUES; - if (object_instance < MAX_BINARY_VALUES) + if (object_instance < MAX_BINARY_VALUES) { index = object_instance; + } return index; } @@ -81,7 +83,8 @@ char *Binary_Value_Name(uint32_t object_instance) } /* return apdu len, or -1 on error */ -int Binary_Value_Encode_Property_APDU(uint8_t *apdu, +int Binary_Value_Encode_Property_APDU( + uint8_t *apdu, uint32_t object_instance, BACNET_PROPERTY_ID property, uint32_t array_index, @@ -153,7 +156,8 @@ int Binary_Value_Encode_Property_APDU(uint8_t *apdu, } /* returns true if successful */ -bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data, +bool Binary_Value_Write_Property( + BACNET_WRITE_PROPERTY_DATA *wp_data, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) { diff --git a/ports/arduino_uno/bv.h b/ports/arduino_uno/bv.h index 2594457a..c2e0dd99 100644 --- a/ports/arduino_uno/bv.h +++ b/ports/arduino_uno/bv.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2006 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2006 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BV_H #define BV_H @@ -18,31 +18,31 @@ #define MAX_BINARY_VALUES 10 #endif - #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - void Binary_Value_Property_Lists(const int **pRequired, - const int **pOptional, - const int **pProprietary); - bool Binary_Value_Valid_Instance(uint32_t object_instance); - unsigned Binary_Value_Count(void); - uint32_t Binary_Value_Index_To_Instance(unsigned index); - char *Binary_Value_Name(uint32_t object_instance); +void Binary_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +bool Binary_Value_Valid_Instance(uint32_t object_instance); +unsigned Binary_Value_Count(void); +uint32_t Binary_Value_Index_To_Instance(unsigned index); +char *Binary_Value_Name(uint32_t object_instance); - void Binary_Value_Init(void); +void Binary_Value_Init(void); - int Binary_Value_Encode_Property_APDU(uint8_t * apdu, - uint32_t object_instance, - BACNET_PROPERTY_ID property, - uint32_t array_index, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +int Binary_Value_Encode_Property_APDU( + uint8_t *apdu, + uint32_t object_instance, + BACNET_PROPERTY_ID property, + uint32_t array_index, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); - bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +bool Binary_Value_Write_Property( + BACNET_WRITE_PROPERTY_DATA *wp_data, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); #ifdef __cplusplus } diff --git a/ports/arduino_uno/bvlc-arduino.c b/ports/arduino_uno/bvlc-arduino.c index 24a80067..f93ce92a 100644 --- a/ports/arduino_uno/bvlc-arduino.c +++ b/ports/arduino_uno/bvlc-arduino.c @@ -54,7 +54,8 @@ static int bvlc_encode_bvlc_result(uint8_t *pdu, BACNET_BVLC_RESULT result_code) * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -static int bvlc_send_mpdu(const uint8_t *dest_addr, /* the destination address */ +static int bvlc_send_mpdu( + const uint8_t *dest_addr, /* the destination address */ const uint16_t *dest_port, /* the destination port */ uint8_t *mtu, /* the data */ uint16_t mtu_len) @@ -72,7 +73,8 @@ static int bvlc_send_mpdu(const uint8_t *dest_addr, /* the destination address * * @param dest_addr - destination address * @param dest_port - destination port */ -static void bvlc_send_result(const uint8_t *dest_addr, +static void bvlc_send_result( + const uint8_t *dest_addr, const uint16_t *dest_port, /* the destination address */ BACNET_BVLC_RESULT result_code) { diff --git a/ports/arduino_uno/bvlc-arduino.h b/ports/arduino_uno/bvlc-arduino.h index 9f5e592f..3d8fece0 100644 --- a/ports/arduino_uno/bvlc-arduino.h +++ b/ports/arduino_uno/bvlc-arduino.h @@ -16,10 +16,8 @@ extern "C" { #endif /* __cplusplus */ -uint16_t bvlc_for_non_bbmd(uint8_t * addr, - uint16_t * port, - uint8_t * npdu, - uint16_t received_bytes); +uint16_t bvlc_for_non_bbmd( + uint8_t *addr, uint16_t *port, uint8_t *npdu, uint16_t received_bytes); BACNET_BVLC_FUNCTION bvlc_get_function_code(void); diff --git a/ports/arduino_uno/datalink.h b/ports/arduino_uno/datalink.h index 457fe563..3f55ed36 100644 --- a/ports/arduino_uno/datalink.h +++ b/ports/arduino_uno/datalink.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2012 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2012 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef DATALINK_H #define DATALINK_H @@ -46,17 +46,17 @@ #include "bvlc-arduino.h" #define datalink_init bip_init -//#if defined(BBMD_ENABLED) && BBMD_ENABLED -//#define datalink_send_pdu bvlc_send_pdu -//#define datalink_receive bvlc_receive -//#else +// #if defined(BBMD_ENABLED) && BBMD_ENABLED +// #define datalink_send_pdu bvlc_send_pdu +// #define datalink_receive bvlc_receive +// #else #define datalink_send_pdu bip_send_pdu #define datalink_receive bip_receive -//#endif +// #endif #define datalink_cleanup bip_cleanup #define datalink_get_broadcast_address bip_get_broadcast_address #ifdef BAC_ROUTING -extern void routed_get_my_address(BACNET_ADDRESS * my_address); +extern void routed_get_my_address(BACNET_ADDRESS *my_address); #define datalink_get_my_address routed_get_my_address #else #define datalink_get_my_address bip_get_my_address @@ -66,25 +66,24 @@ extern void routed_get_my_address(BACNET_ADDRESS * my_address); #include "bacnet/npdu.h" #define MAX_HEADER (8) -#define MAX_MPDU (MAX_HEADER+MAX_PDU) +#define MAX_MPDU (MAX_HEADER + MAX_PDU) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - int datalink_send_pdu(BACNET_ADDRESS * dest, - BACNET_NPDU_DATA * npdu_data, - uint8_t * pdu, - unsigned pdu_len); - extern uint16_t datalink_receive(BACNET_ADDRESS * src, - uint8_t * pdu, - uint16_t max_pdu, - unsigned timeout); - extern void datalink_cleanup(void); - extern void datalink_get_broadcast_address(BACNET_ADDRESS * dest); - extern void datalink_get_my_address(BACNET_ADDRESS * my_address); - extern void datalink_set_interface(char *ifname); - extern void datalink_set(char *datalink_string); +int datalink_send_pdu( + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *npdu_data, + uint8_t *pdu, + unsigned pdu_len); +extern uint16_t datalink_receive( + BACNET_ADDRESS *src, uint8_t *pdu, uint16_t max_pdu, unsigned timeout); +extern void datalink_cleanup(void); +extern void datalink_get_broadcast_address(BACNET_ADDRESS *dest); +extern void datalink_get_my_address(BACNET_ADDRESS *my_address); +extern void datalink_set_interface(char *ifname); +extern void datalink_set(char *datalink_string); #ifdef __cplusplus } @@ -111,7 +110,8 @@ extern "C" { * chosen at runtime from among these choices. * - Clause 10 POINT-TO-POINT (PTP) and Clause 11 EIA/CEA-709.1 ("LonTalk") LAN * are not currently supported by this project. - *//** @defgroup DLTemplates DataLink Template Functions + */ +/** @defgroup DLTemplates DataLink Template Functions * @ingroup DataLink * Most of the functions in this group are function templates which are assigned * to a specific DataLink network layer implementation either at compile time or diff --git a/ports/arduino_uno/device.c b/ports/arduino_uno/device.c index 54560589..bee80a4c 100644 --- a/ports/arduino_uno/device.c +++ b/ports/arduino_uno/device.c @@ -60,8 +60,9 @@ bool Device_Set_Object_Instance_Number(uint32_t object_id) (char *)&Object_Instance_Number, sizeof(Object_Instance_Number), EEPROM_BACNET_ID_ADDR); */ - } else + } else { status = false; + } return status; } @@ -69,7 +70,8 @@ bool Device_Set_Object_Instance_Number(uint32_t object_id) bool Device_Valid_Object_Instance_Number(uint32_t object_id) { /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || + return ( + (Object_Instance_Number == object_id) || (object_id == BACNET_MAX_INSTANCE)); } @@ -136,7 +138,8 @@ bool Device_Object_List_Identifier( } /* return the length of the apdu encoded or -1 for error */ -int Device_Encode_Property_APDU(uint8_t *apdu, +int Device_Encode_Property_APDU( + uint8_t *apdu, uint32_t object_instance, BACNET_PROPERTY_ID property, uint32_t array_index, @@ -207,7 +210,8 @@ int Device_Encode_Property_APDU(uint8_t *apdu, bitstring_init(&bit_string); for (i = 0; i < MAX_BACNET_SERVICES_SUPPORTED; i++) { /* automatic lookup based on handlers set */ - bitstring_set_bit(&bit_string, (uint8_t)i, + bitstring_set_bit( + &bit_string, (uint8_t)i, apdu_service_supported((BACNET_SERVICES_SUPPORTED)i)); } apdu_len = encode_application_bitstring(&apdu[0], &bit_string); @@ -230,8 +234,9 @@ int Device_Encode_Property_APDU(uint8_t *apdu, case PROP_OBJECT_LIST: count = Device_Object_List_Count(); /* Array element zero is the number of objects in the list */ - if (array_index == 0) + if (array_index == 0) { apdu_len = encode_application_unsigned(&apdu[0], count); + } /* if no index was specified, then try to encode the entire list */ /* into one packet. Note that more than likely you will have */ /* to return an error if the number of encoded objects exceeds */ @@ -254,10 +259,10 @@ int Device_Encode_Property_APDU(uint8_t *apdu, } } else { if (Device_Object_List_Identifier( - array_index, &object_type, &instance)) + array_index, &object_type, &instance)) { apdu_len = encode_application_object_id( &apdu[0], object_type, instance); - else { + } else { *error_class = ERROR_CLASS_PROPERTY; *error_code = ERROR_CODE_INVALID_ARRAY_INDEX; apdu_len = BACNET_STATUS_ERROR; @@ -321,7 +326,8 @@ int Device_Encode_Property_APDU(uint8_t *apdu, return apdu_len; } -bool Device_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data, +bool Device_Write_Property( + BACNET_WRITE_PROPERTY_DATA *wp_data, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) { @@ -399,8 +405,8 @@ bool Device_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data, encoding = characterstring_encoding(&value.type.Character_String); if (encoding == CHARACTER_ANSI_X34) { - if (characterstring_ansi_copy(&Object_Name[0], - sizeof(Object_Name), + if (characterstring_ansi_copy( + &Object_Name[0], sizeof(Object_Name), &value.type.Character_String)) { status = true; } else { diff --git a/ports/arduino_uno/device.h b/ports/arduino_uno/device.h index ee5122ed..29a0feb3 100644 --- a/ports/arduino_uno/device.h +++ b/ports/arduino_uno/device.h @@ -15,98 +15,94 @@ #include "bacnet/wp.h" #include "bacnet/readrange.h" -typedef unsigned (*object_count_function) (void); -typedef uint32_t(*object_index_to_instance_function) - (unsigned index); -typedef char *(*object_name_function) - (uint32_t object_instance); +typedef unsigned (*object_count_function)(void); +typedef uint32_t (*object_index_to_instance_function)(unsigned index); +typedef char *(*object_name_function)(uint32_t object_instance); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - void Device_Object_Function_Set(BACNET_OBJECT_TYPE object_type, - object_count_function count_function, - object_index_to_instance_function index_function, - object_name_function name_function); +void Device_Object_Function_Set( + BACNET_OBJECT_TYPE object_type, + object_count_function count_function, + object_index_to_instance_function index_function, + object_name_function name_function); - void Device_Init(void); +void Device_Init(void); - void Device_Property_Lists(const int **pRequired, - const int **pOptional, - const int **pProprietary); +void Device_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - uint32_t Device_Object_Instance_Number(void); - bool Device_Set_Object_Instance_Number(uint32_t object_id); - bool Device_Valid_Object_Instance_Number(uint32_t object_id); - unsigned Device_Object_List_Count(void); - bool Device_Object_List_Identifier(uint32_t array_index, - BACNET_OBJECT_TYPE *object_type, - uint32_t * instance); +uint32_t Device_Object_Instance_Number(void); +bool Device_Set_Object_Instance_Number(uint32_t object_id); +bool Device_Valid_Object_Instance_Number(uint32_t object_id); +unsigned Device_Object_List_Count(void); +bool Device_Object_List_Identifier( + uint32_t array_index, BACNET_OBJECT_TYPE *object_type, uint32_t *instance); - BACNET_DEVICE_STATUS Device_System_Status(void); - void Device_Set_System_Status(BACNET_DEVICE_STATUS status); +BACNET_DEVICE_STATUS Device_System_Status(void); +void Device_Set_System_Status(BACNET_DEVICE_STATUS status); - const char *Device_Vendor_Name(void); +const char *Device_Vendor_Name(void); - uint16_t Device_Vendor_Identifier(void); +uint16_t Device_Vendor_Identifier(void); - const char *Device_Model_Name(void); - bool Device_Set_Model_Name(const char *name, - size_t length); +const char *Device_Model_Name(void); +bool Device_Set_Model_Name(const char *name, size_t length); - const char *Device_Firmware_Revision(void); +const char *Device_Firmware_Revision(void); - const char *Device_Application_Software_Version(void); - bool Device_Set_Application_Software_Version(const char *name, - size_t length); +const char *Device_Application_Software_Version(void); +bool Device_Set_Application_Software_Version(const char *name, size_t length); - bool Device_Set_Object_Name(const char *name, - size_t length); - const char *Device_Object_Name(void); +bool Device_Set_Object_Name(const char *name, size_t length); +const char *Device_Object_Name(void); - const char *Device_Description(void); - bool Device_Set_Description(const char *name, - size_t length); +const char *Device_Description(void); +bool Device_Set_Description(const char *name, size_t length); - const char *Device_Location(void); - bool Device_Set_Location(const char *name, - size_t length); +const char *Device_Location(void); +bool Device_Set_Location(const char *name, size_t length); - /* some stack-centric constant values - no set methods */ - uint8_t Device_Protocol_Version(void); - uint8_t Device_Protocol_Revision(void); - BACNET_SEGMENTATION Device_Segmentation_Supported(void); +/* some stack-centric constant values - no set methods */ +uint8_t Device_Protocol_Version(void); +uint8_t Device_Protocol_Revision(void); +BACNET_SEGMENTATION Device_Segmentation_Supported(void); - uint8_t Device_Database_Revision(void); - void Device_Set_Database_Revision(uint8_t revision); +uint8_t Device_Database_Revision(void); +void Device_Set_Database_Revision(uint8_t revision); - bool Device_Valid_Object_Name(const char *object_name, - BACNET_OBJECT_TYPE *object_type, - uint32_t * object_instance); - char *Device_Valid_Object_Id(BACNET_OBJECT_TYPE object_type, - uint32_t object_instance); +bool Device_Valid_Object_Name( + const char *object_name, + BACNET_OBJECT_TYPE *object_type, + uint32_t *object_instance); +char *Device_Valid_Object_Id( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance); - int Device_Encode_Property_APDU(uint8_t * apdu, - uint32_t object_instance, - BACNET_PROPERTY_ID property, - uint32_t array_index, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +int Device_Encode_Property_APDU( + uint8_t *apdu, + uint32_t object_instance, + BACNET_PROPERTY_ID property, + uint32_t array_index, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); - bool Device_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +bool Device_Write_Property( + BACNET_WRITE_PROPERTY_DATA *wp_data, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); - bool DeviceGetRRInfo(uint32_t Object, /* Which particular object - obviously not important for device object */ +bool DeviceGetRRInfo( + uint32_t Object, /* Which particular object - obviously not important for + device object */ - BACNET_PROPERTY_ID Property, /* Which property */ + BACNET_PROPERTY_ID Property, /* Which property */ - RR_PROP_INFO * pInfo, /* Where to put the information */ - - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); + RR_PROP_INFO *pInfo, /* Where to put the information */ + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); #ifdef __cplusplus } diff --git a/ports/arduino_uno/h_rp.c b/ports/arduino_uno/h_rp.c index 70663c52..1062fea4 100644 --- a/ports/arduino_uno/h_rp.c +++ b/ports/arduino_uno/h_rp.c @@ -26,7 +26,8 @@ /* Encodes the property APDU and returns the length, or sets the error, and returns -1 */ -int Encode_Property_APDU(uint8_t *apdu, +int Encode_Property_APDU( + uint8_t *apdu, BACNET_READ_PROPERTY_DATA *rp_data, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) @@ -37,23 +38,26 @@ int Encode_Property_APDU(uint8_t *apdu, switch (rp_data->object_type) { case OBJECT_DEVICE: if (Device_Valid_Object_Instance_Number(rp_data->object_instance)) { - apdu_len = Device_Encode_Property_APDU(&apdu[0], - rp_data->object_instance, rp_data->object_property, - rp_data->array_index, error_class, error_code); + apdu_len = Device_Encode_Property_APDU( + &apdu[0], rp_data->object_instance, + rp_data->object_property, rp_data->array_index, error_class, + error_code); } break; case OBJECT_ANALOG_VALUE: if (Analog_Value_Valid_Instance(rp_data->object_instance)) { - apdu_len = Analog_Value_Encode_Property_APDU(&apdu[0], - rp_data->object_instance, rp_data->object_property, - rp_data->array_index, error_class, error_code); + apdu_len = Analog_Value_Encode_Property_APDU( + &apdu[0], rp_data->object_instance, + rp_data->object_property, rp_data->array_index, error_class, + error_code); } break; case OBJECT_BINARY_VALUE: if (Binary_Value_Valid_Instance(rp_data->object_instance)) { - apdu_len = Binary_Value_Encode_Property_APDU(&apdu[0], - rp_data->object_instance, rp_data->object_property, - rp_data->array_index, error_class, error_code); + apdu_len = Binary_Value_Encode_Property_APDU( + &apdu[0], rp_data->object_instance, + rp_data->object_property, rp_data->array_index, error_class, + error_code); } break; default: @@ -65,7 +69,8 @@ int Encode_Property_APDU(uint8_t *apdu, return apdu_len; } -void handler_read_property(uint8_t *service_request, +void handler_read_property( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -87,25 +92,26 @@ void handler_read_property(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { /* we don't support segmentation - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); goto RP_ABORT; } len = rp_decode_service_request(service_request, service_len, &data); if (len < 0) { /* bad decoding - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); goto RP_ABORT; } /* most cases will be error */ ack_len = rp_ack_encode_apdu_init( &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, &data); /* FIXME: add buffer len as passed into function or use smart buffer */ - property_len = - Encode_Property_APDU(&Handler_Transmit_Buffer[pdu_len + ack_len], &data, - &error_class, &error_code); + property_len = Encode_Property_APDU( + &Handler_Transmit_Buffer[pdu_len + ack_len], &data, &error_class, + &error_code); if (property_len >= 0) { len = rp_ack_encode_apdu_object_property_end( &Handler_Transmit_Buffer[pdu_len + property_len + ack_len]); @@ -115,14 +121,14 @@ void handler_read_property(uint8_t *service_request, /* BACnet APDU too small to fit data, so proper response is * Abort */ case BACNET_STATUS_ABORT: - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); break; default: - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_READ_PROPERTY, - error_class, error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_READ_PROPERTY, error_class, error_code); break; } } diff --git a/ports/arduino_uno/h_whois.c b/ports/arduino_uno/h_whois.c index dab086fd..457fdc44 100644 --- a/ports/arduino_uno/h_whois.c +++ b/ports/arduino_uno/h_whois.c @@ -41,9 +41,9 @@ void sendIamUnicast(uint8_t *buffer, BACNET_ADDRESS *src) npdu_encode_npdu_data(&npdu_data, false, MESSAGE_PRIORITY_NORMAL); npdu_len = npdu_encode_pdu(&buffer[0], &dest, &my_address, &npdu_data); /* encode the APDU portion of the packet */ - apdu_len = - iam_encode_apdu(&buffer[npdu_len], Device_Object_Instance_Number(), - MAX_APDU, SEGMENTATION_NONE, Device_Vendor_Identifier()); + apdu_len = iam_encode_apdu( + &buffer[npdu_len], Device_Object_Instance_Number(), MAX_APDU, + SEGMENTATION_NONE, Device_Vendor_Identifier()); /* send data */ pdu_len = npdu_len + apdu_len; int bytes = datalink_send_pdu(&dest, &npdu_data, &buffer[0], pdu_len); diff --git a/ports/arduino_uno/h_wp.c b/ports/arduino_uno/h_wp.c index ac0acd8d..95c992eb 100644 --- a/ports/arduino_uno/h_wp.c +++ b/ports/arduino_uno/h_wp.c @@ -27,7 +27,8 @@ /* too big to reside on stack frame for PIC */ static BACNET_WRITE_PROPERTY_DATA wp_data; -void handler_write_property(uint8_t *service_request, +void handler_write_property( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -48,60 +49,64 @@ void handler_write_property(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); /* bad decoding or something we didn't understand - send an abort */ if (len <= 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); } else if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); } else { switch (wp_data.object_type) { case OBJECT_DEVICE: if (Device_Write_Property( &wp_data, &error_class, &error_code)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_WRITE_PROPERTY); } else { - len = - bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, - SERVICE_CONFIRMED_WRITE_PROPERTY, error_class, - error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], + service_data->invoke_id, + SERVICE_CONFIRMED_WRITE_PROPERTY, error_class, + error_code); } break; case OBJECT_ANALOG_VALUE: if (Analog_Value_Write_Property( &wp_data, &error_class, &error_code)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_WRITE_PROPERTY); } else { - len = - bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, - SERVICE_CONFIRMED_WRITE_PROPERTY, error_class, - error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], + service_data->invoke_id, + SERVICE_CONFIRMED_WRITE_PROPERTY, error_class, + error_code); } break; case OBJECT_BINARY_VALUE: if (Binary_Value_Write_Property( &wp_data, &error_class, &error_code)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_WRITE_PROPERTY); } else { - len = - bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, - SERVICE_CONFIRMED_WRITE_PROPERTY, error_class, - error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], + service_data->invoke_id, + SERVICE_CONFIRMED_WRITE_PROPERTY, error_class, + error_code); } break; default: - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_WRITE_PROPERTY, - error_class, error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_WRITE_PROPERTY, error_class, error_code); break; } } diff --git a/ports/arduino_uno/main.c b/ports/arduino_uno/main.c index ca4e2bde..6dd1b6e7 100644 --- a/ports/arduino_uno/main.c +++ b/ports/arduino_uno/main.c @@ -32,8 +32,8 @@ extern bool Send_I_Am_Flag; /* local version override */ const char *BACnet_Version = "1.0"; -static uint8_t Ethernet_MAC_Address[MAX_MAC_LEN] = { 0xDE, 0xAD, 0xBE, 0xEF, - 0xFE, 0xED }; +static uint8_t Ethernet_MAC_Address[MAX_MAC_LEN] = { 0xDE, 0xAD, 0xBE, + 0xEF, 0xFE, 0xED }; uint8_t ipAddress[] = { 192, 168, 0, 185 }; uint8_t gateway[] = { 192, 168, 0, 1 }; uint8_t netmask[] = { 255, 255, 255, 0 }; @@ -70,14 +70,17 @@ void setup() #endif } -/** Static receive buffer, initialized with zeros by the C Library Startup Code. */ +/** Static receive buffer, initialized with zeros by the C Library Startup Code. + */ -static uint8_t PDUBuffer[MAX_MPDU + 16 /* Add a little safety margin to the buffer, - * so that in the rare case, the message - * would be filled up to MAX_MPDU and some - * decoding functions would overrun, these - * decoding functions will just end up in - * a safe field of static zeros. */]; +static uint8_t PDUBuffer + [MAX_MPDU + 16 /* Add a little safety margin to the buffer, + * so that in the rare case, the message + * would be filled up to MAX_MPDU and some + * decoding functions would overrun, these + * decoding functions will just end up in + * a safe field of static zeros. */ +]; /** Main */ diff --git a/ports/arduino_uno/stdbool.h b/ports/arduino_uno/stdbool.h index 39c1c286..68a1d8da 100644 --- a/ports/arduino_uno/stdbool.h +++ b/ports/arduino_uno/stdbool.h @@ -22,7 +22,7 @@ #endif #ifndef TRUE -#define TRUE 1 +#define TRUE 1 #endif #endif diff --git a/ports/arduino_uno/stdint.h b/ports/arduino_uno/stdint.h index afc7867f..b9c93401 100644 --- a/ports/arduino_uno/stdint.h +++ b/ports/arduino_uno/stdint.h @@ -5,12 +5,12 @@ #include -typedef unsigned char uint8_t; /* 1 byte 0 to 255 */ -typedef signed char int8_t; /* 1 byte -127 to 127 */ -typedef unsigned short uint16_t; /* 2 bytes 0 to 65535 */ -typedef signed short int16_t; /* 2 bytes -32767 to 32767 */ +typedef unsigned char uint8_t; /* 1 byte 0 to 255 */ +typedef signed char int8_t; /* 1 byte -127 to 127 */ +typedef unsigned short uint16_t; /* 2 bytes 0 to 65535 */ +typedef signed short int16_t; /* 2 bytes -32767 to 32767 */ typedef unsigned long uint32_t; /* 4 bytes 0 to 4294967295 */ -typedef signed long int32_t; /* 4 bytes -2147483647 to 2147483647 */ +typedef signed long int32_t; /* 4 bytes -2147483647 to 2147483647 */ #define INT8_MIN (-128) #define INT16_MIN (-32768) @@ -20,8 +20,8 @@ typedef signed long int32_t; /* 4 bytes -2147483647 to 2147483647 */ #define INT16_MAX 32767 #define INT32_MAX 2147483647 -#define UINT8_MAX 0xff /* 255U */ -#define UINT16_MAX 0xffff /* 65535U */ -#define UINT32_MAX 0xffffffff /* 4294967295U */ +#define UINT8_MAX 0xff /* 255U */ +#define UINT16_MAX 0xffff /* 65535U */ +#define UINT32_MAX 0xffffffff /* 4294967295U */ #endif /* STDINT_H */ diff --git a/ports/arduino_uno/txbuf.h b/ports/arduino_uno/txbuf.h index cc853b30..1360afb7 100644 --- a/ports/arduino_uno/txbuf.h +++ b/ports/arduino_uno/txbuf.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2005 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2005 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef TXBUF_H #define TXBUF_H diff --git a/ports/arduino_uno/uart.h b/ports/arduino_uno/uart.h index 55b382e2..38c20602 100644 --- a/ports/arduino_uno/uart.h +++ b/ports/arduino_uno/uart.h @@ -17,9 +17,8 @@ extern "C" { #endif /* __cplusplus */ void uart_init(void); -void uart_putchar(char c, - FILE * stream); -char uart_getchar(FILE * stream); +void uart_putchar(char c, FILE *stream); +char uart_getchar(FILE *stream); #ifdef __cplusplus } diff --git a/ports/esp32/src/device.h b/ports/esp32/src/device.h index 35f88964..b408f44e 100644 --- a/ports/esp32/src/device.h +++ b/ports/esp32/src/device.h @@ -437,11 +437,13 @@ extern "C" { * - The interface between the implemented Objects and the BAC-stack services, * specifically the handlers, which are mediated through function calls to * the Device object. - *//** @defgroup ObjHelpers Object Helper Functions + */ +/** @defgroup ObjHelpers Object Helper Functions * @ingroup ObjFrmwk * This section describes the function templates for the helper functions that * provide common object support. - *//** @defgroup ObjIntf Handler-to-Object Interface Functions + */ +/** @defgroup ObjIntf Handler-to-Object Interface Functions * @ingroup ObjFrmwk * This section describes the fairly limited set of functions that link the * BAC-stack handlers to the BACnet Object instances. All of these calls are diff --git a/ports/linux/arcnet.c b/ports/linux/arcnet.c index 5af5f919..072ae183 100644 --- a/ports/linux/arcnet.c +++ b/ports/linux/arcnet.c @@ -62,8 +62,9 @@ bool arcnet_valid(void) void arcnet_cleanup(void) { - if (arcnet_valid()) + if (arcnet_valid()) { close(ARCNET_Sock_FD); + } ARCNET_Sock_FD = -1; return; @@ -79,7 +80,8 @@ static int arcnet_bind(const char *interface_name) /* check to see if we are being run as root */ uid = getuid(); if (uid != 0) { - fprintf(stderr, + fprintf( + stderr, "arcnet: Unable to open an af_packet socket. " "Try running with root priveleges.\n"); return sock_fd; @@ -92,7 +94,8 @@ static int arcnet_bind(const char *interface_name) if ((sock_fd = socket(PF_PACKET, SOCK_PACKET, htons(ETH_P_ALL))) < 0) { /* Error occured */ fprintf(stderr, "arcnet: Error opening socket: %s\n", strerror(errno)); - fprintf(stderr, + fprintf( + stderr, "You might need to add the following to modules.conf\n" "(or in /etc/modutils/alias on Debian with update-modules):\n" "alias net-pf-17 af_packet\n" @@ -108,19 +111,24 @@ static int arcnet_bind(const char *interface_name) ARCNET_Socket_Address.sa_family = ARPHRD_ARCNET; /*ARCNET_Socket_Address.sa_family = PF_INET; */ /* Clear the memory before copying */ - memset(ARCNET_Socket_Address.sa_data, '\0', + memset( + ARCNET_Socket_Address.sa_data, '\0', sizeof(ARCNET_Socket_Address.sa_data)); /* Strcpy the interface name into the address */ - strncpy(ARCNET_Socket_Address.sa_data, interface_name, + strncpy( + ARCNET_Socket_Address.sa_data, interface_name, sizeof(ARCNET_Socket_Address.sa_data) - 1); fprintf( stderr, "arcnet: binding \"%s\"\n", ARCNET_Socket_Address.sa_data); - if (bind(sock_fd, &ARCNET_Socket_Address, + if (bind( + sock_fd, &ARCNET_Socket_Address, sizeof(ARCNET_Socket_Address)) != 0) { /* Bind problem, close socket and return */ - fprintf(stderr, "arcnet: Unable to bind socket : %s\n", + fprintf( + stderr, "arcnet: Unable to bind socket : %s\n", strerror(errno)); - fprintf(stderr, + fprintf( + stderr, "You might need to add the following to modules.conf\n" "(or in /etc/modutils/alias on Debian with update-modules):\n" "alias net-pf-17 af_packet\n" @@ -134,18 +142,22 @@ static int arcnet_bind(const char *interface_name) } strncpy(ifr.ifr_name, interface_name, sizeof(ifr.ifr_name)); rv = ioctl(sock_fd, SIOCGIFHWADDR, &ifr); - if (rv != -1) /* worked okay */ + if (rv != -1) { /* worked okay */ ARCNET_MAC_Address = ifr.ifr_hwaddr.sa_data[0]; + } /* copy this info into the local copy since bind wiped it out */ ARCNET_Socket_Address.sa_family = ARPHRD_ARCNET; /*ARCNET_Socket_Address.sa_family = PF_INET; */ /* Clear the memory before copying */ - memset(ARCNET_Socket_Address.sa_data, '\0', + memset( + ARCNET_Socket_Address.sa_data, '\0', sizeof(ARCNET_Socket_Address.sa_data)); /* Strcpy the interface name into the address */ - strncpy(ARCNET_Socket_Address.sa_data, interface_name, + strncpy( + ARCNET_Socket_Address.sa_data, interface_name, sizeof(ARCNET_Socket_Address.sa_data) - 1); - fprintf(stderr, "arcnet: MAC=%02Xh iface=\"%s\"\n", ARCNET_MAC_Address, + fprintf( + stderr, "arcnet: MAC=%02Xh iface=\"%s\"\n", ARCNET_MAC_Address, ARCNET_Socket_Address.sa_data); atexit(arcnet_cleanup); @@ -155,17 +167,19 @@ static int arcnet_bind(const char *interface_name) bool arcnet_init(char *interface_name) { - if (interface_name) + if (interface_name) { ARCNET_Sock_FD = arcnet_bind(interface_name); - else + } else { ARCNET_Sock_FD = arcnet_bind("arc0"); + } return arcnet_valid(); } /* function to send a PDU out the socket */ /* returns number of bytes sent on success, negative on failure */ -int arcnet_send_pdu(BACNET_ADDRESS *dest, /* destination address */ +int arcnet_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ BACNET_NPDU_DATA *npdu_data, /* network information */ uint8_t *pdu, /* any data to be sent - may be null */ unsigned pdu_len) @@ -186,15 +200,15 @@ int arcnet_send_pdu(BACNET_ADDRESS *dest, /* destination address */ return -1; } /* load destination MAC address */ - if (dest->mac_len == 1) + if (dest->mac_len == 1) { pkt->hard.dest = dest->mac[0]; - else { + } else { fprintf(stderr, "arcnet: invalid destination MAC address!\n"); return -2; } - if (src.mac_len == 1) + if (src.mac_len == 1) { pkt->hard.source = src.mac[0]; - else { + } else { fprintf(stderr, "arcnet: invalid source MAC address!\n"); return -3; } @@ -211,19 +225,22 @@ int arcnet_send_pdu(BACNET_ADDRESS *dest, /* destination address */ } memcpy(&pkt->soft.raw[4], pdu, pdu_len); /* Send the packet */ - bytes = sendto(ARCNET_Sock_FD, &mtu, mtu_len, 0, + bytes = sendto( + ARCNET_Sock_FD, &mtu, mtu_len, 0, (struct sockaddr *)&ARCNET_Socket_Address, sizeof(ARCNET_Socket_Address)); /* did it get sent? */ - if (bytes < 0) + if (bytes < 0) { fprintf(stderr, "arcnet: Error sending packet: %s\n", strerror(errno)); + } return bytes; } /* receives an framed packet */ /* returns the number of octets in the PDU, or zero on failure */ -uint16_t arcnet_receive(BACNET_ADDRESS *src, /* source address */ +uint16_t arcnet_receive( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t max_pdu, /* amount of space available in the PDU */ unsigned timeout) @@ -237,8 +254,9 @@ uint16_t arcnet_receive(BACNET_ADDRESS *src, /* source address */ struct archdr *pkt = (struct archdr *)buf; /* Make sure the socket is open */ - if (ARCNET_Sock_FD <= 0) + if (ARCNET_Sock_FD <= 0) { return 0; + } /* we could just use a non-blocking socket, but that consumes all the CPU time. We can use a timeout; it is only supported as @@ -255,24 +273,28 @@ uint16_t arcnet_receive(BACNET_ADDRESS *src, /* source address */ FD_SET(ARCNET_Sock_FD, &read_fds); max = ARCNET_Sock_FD; - if (select(max + 1, &read_fds, NULL, NULL, &select_timeout) > 0) + if (select(max + 1, &read_fds, NULL, NULL, &select_timeout) > 0) { received_bytes = read(ARCNET_Sock_FD, &buf[0], sizeof(buf)); - else + } else { return 0; + } /* See if there is a problem */ if (received_bytes < 0) { /* EAGAIN Non-blocking I/O has been selected */ /* using O_NONBLOCK and no data */ /* was immediately available for reading. */ - if (errno != EAGAIN) - fprintf(stderr, "ethernet: Read error in receiving packet: %s\n", + if (errno != EAGAIN) { + fprintf( + stderr, "ethernet: Read error in receiving packet: %s\n", strerror(errno)); + } return 0; } - if (received_bytes == 0) + if (received_bytes == 0) { return 0; + } /* printf("arcnet: received %u bytes (offset=%02Xh %02Xh) " "from %02Xh (proto==%02Xh)\n", @@ -312,11 +334,13 @@ uint16_t arcnet_receive(BACNET_ADDRESS *src, /* source address */ pdu_len = received_bytes - ARC_HDR_SIZE; pdu_len -= 4 /* SC, DSAP, SSAP, LLC Control */; /* copy the buffer into the PDU */ - if (pdu_len < max_pdu) + if (pdu_len < max_pdu) { memmove(&pdu[0], &pkt->soft.raw[4], pdu_len); + } /* silently ignore packets that are too large */ - else + else { pdu_len = 0; + } return pdu_len; } diff --git a/ports/linux/bacport.h b/ports/linux/bacport.h index 0beb0dea..ea71bed0 100644 --- a/ports/linux/bacport.h +++ b/ports/linux/bacport.h @@ -1,56 +1,56 @@ /************************************************************************** -* -* Copyright (C) 2005 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2005 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BACPORT_H #define BACPORT_H /* common unix sockets headers needed */ -#include /* basic system data types */ -#include /* timeval{} for select() */ -#include /* timespec{} for pselect() */ -#include /* sockaddr_in{} and other Internet defns */ -#include /* inet(3) functions */ -#include /* for nonblocking */ -#include -#include -#include -#include -#include -#include -#include /* for S_xxx file mode constants */ -#include /* for iovec{} and readv/writev */ -#include -#include -#include /* for Unix domain sockets */ +#include /* basic system data types */ +#include /* timeval{} for select() */ +#include /* timespec{} for pselect() */ +#include /* sockaddr_in{} and other Internet defns */ +#include /* inet(3) functions */ +#include /* for nonblocking */ +#include +#include +#include +#include +#include +#include +#include /* for S_xxx file mode constants */ +#include /* for iovec{} and readv/writev */ +#include +#include +#include /* for Unix domain sockets */ -#ifdef HAVE_SYS_SELECT_H -#include /* for convenience */ +#ifdef HAVE_SYS_SELECT_H +#include /* for convenience */ #endif -#ifdef HAVE_POLL_H -#include /* for convenience */ +#ifdef HAVE_POLL_H +#include /* for convenience */ #endif -#ifdef HAVE_STRINGS_H -#include /* for convenience */ +#ifdef HAVE_STRINGS_H +#include /* for convenience */ #endif /* Three headers are normally needed for socket/file ioctl's: * , , and . */ -#ifdef HAVE_SYS_IOCTL_H -#include +#ifdef HAVE_SYS_IOCTL_H +#include #endif -#ifdef HAVE_SYS_FILIO_H -#include +#ifdef HAVE_SYS_FILIO_H +#include #endif -#ifdef HAVE_SYS_SOCKIO_H -#include +#ifdef HAVE_SYS_SOCKIO_H +#include #endif #include @@ -65,10 +65,10 @@ #ifndef __CYGWIN__ #include #endif -#include /* for the glibc version number */ +#include /* for the glibc version number */ #if __GLIBC__ >= 2 && __GLIBC_MINOR >= 1 #include -#include /* the L2 protocols */ +#include /* the L2 protocols */ #else #include #ifndef __CYGWIN__ @@ -84,24 +84,20 @@ #include #include "bacnet/basic/sys/bacnet_stack_exports.h" -#define BACNET_OBJECT_TABLE(table_name, _type, _init, _count, \ - _index_to_instance, _valid_instance, _object_name, \ - _read_property, _write_property, _RPM_list, \ - _RR_info, _iterator, _value_list, _COV, \ - _COV_clear, _intrinsic_reporting) \ +#define BACNET_OBJECT_TABLE( \ + table_name, _type, _init, _count, _index_to_instance, _valid_instance, \ + _object_name, _read_property, _write_property, _RPM_list, _RR_info, \ + _iterator, _value_list, _COV, _COV_clear, _intrinsic_reporting) \ static_assert(false, "Unsupported BACNET_OBJECT_TABLE for this platform") /** @file linux/bacport.h Includes Linux network headers. */ /* Local helper functions for this port */ BACNET_STACK_EXPORT -extern int bip_get_local_netmask( - struct in_addr *netmask); +extern int bip_get_local_netmask(struct in_addr *netmask); BACNET_STACK_EXPORT extern int bip_get_local_address_ioctl( - const char *ifname, - struct in_addr *addr, - int request); + const char *ifname, struct in_addr *addr, int request); #endif diff --git a/ports/linux/bip-init.c b/ports/linux/bip-init.c index 2e1a004b..e55c8a7a 100644 --- a/ports/linux/bip-init.c +++ b/ports/linux/bip-init.c @@ -60,13 +60,15 @@ static char BIP_Interface_Name[IF_NAMESIZE] = { 0 }; * @param str - debug info string * @param addr - IPv4 address */ -static void debug_print_ipv4(const char *str, +static void debug_print_ipv4( + const char *str, const struct in_addr *addr, const unsigned int port, const unsigned int count) { if (BIP_Debug) { - fprintf(stderr, "BIP: %s %s:%hu (%u bytes)\n", str, inet_ntoa(*addr), + fprintf( + stderr, "BIP: %s %s:%hu (%u bytes)\n", str, inet_ntoa(*addr), ntohs(port), count); fflush(stderr); } @@ -293,8 +295,9 @@ int bip_send_mpdu( /* Send the packet */ debug_print_ipv4( "Sending MPDU->", &bip_dest.sin_addr, bip_dest.sin_port, mtu_len); - return sendto(BIP_Socket, (const char *)mtu, mtu_len, 0, - (struct sockaddr *)&bip_dest, sizeof(struct sockaddr)); + return sendto( + BIP_Socket, (const char *)mtu, mtu_len, 0, (struct sockaddr *)&bip_dest, + sizeof(struct sockaddr)); } /** @@ -345,10 +348,11 @@ uint16_t bip_receive( /* see if there is a packet for us */ if (select(max + 1, &read_fds, NULL, NULL, &select_timeout) > 0) { - socket = FD_ISSET(BIP_Socket, &read_fds) ? BIP_Socket : - BIP_Broadcast_Socket; - received_bytes = recvfrom(socket, (char *)&npdu[0], max_npdu, 0, - (struct sockaddr *)&sin, &sin_len); + socket = + FD_ISSET(BIP_Socket, &read_fds) ? BIP_Socket : BIP_Broadcast_Socket; + received_bytes = recvfrom( + socket, (char *)&npdu[0], max_npdu, 0, (struct sockaddr *)&sin, + &sin_len); } else { return 0; } @@ -423,7 +427,8 @@ uint16_t bip_receive( * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -int bip_send_pdu(BACNET_ADDRESS *dest, +int bip_send_pdu( + BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, unsigned pdu_len) @@ -466,8 +471,8 @@ bool bip_get_addr_by_name(const char *host_name, BACNET_IP_ADDRESS *addr) * @param request - the ioctl() request * @return 0 on success, else the error from the ioctl() call. */ -static int get_local_ifr_ioctl( - const char *ifname, struct ifreq *ifr, int request) +static int +get_local_ifr_ioctl(const char *ifname, struct ifreq *ifr, int request) { int fd; int rv; /* return value */ @@ -526,8 +531,8 @@ struct route_info { * @param pId - process identifier of our specific request response * @return number of bytes placed into the buffer */ -static int readNlSock( - int sockFd, char *bufPtr, size_t buf_size, int seqNum, int pId) +static int +readNlSock(int sockFd, char *bufPtr, size_t buf_size, int seqNum, int pId) { struct nlmsghdr *nlHdr; int readLen = 0, msgLen = 0; @@ -574,7 +579,8 @@ static char *ntoa(uint32_t addr) { static char buffer[18]; - snprintf(buffer, sizeof(buffer), "%d.%d.%d.%d", (addr & 0x000000FF), + snprintf( + buffer, sizeof(buffer), "%d.%d.%d.%d", (addr & 0x000000FF), (addr & 0x0000FF00) >> 8, (addr & 0x00FF0000) >> 16, (addr & 0xFF000000) >> 24); @@ -589,18 +595,21 @@ static void printRoute(struct route_info *rtInfo) { if (BIP_Debug) { /* Print Destination address */ - fprintf(stderr, "%s\t", + fprintf( + stderr, "%s\t", rtInfo->dstAddr ? ntoa(rtInfo->dstAddr) : "0.0.0.0 "); /* Print Gateway address */ - fprintf(stderr, "%s\t", + fprintf( + stderr, "%s\t", rtInfo->gateWay ? ntoa(rtInfo->gateWay) : "*.*.*.*"); /* Print Interface Name */ fprintf(stderr, "%s\t", rtInfo->ifName); /* Print Source address */ - fprintf(stderr, "%s\n", + fprintf( + stderr, "%s\n", rtInfo->srcAddr ? ntoa(rtInfo->srcAddr) : "*.*.*.*"); } } @@ -620,8 +629,9 @@ static void parseRoutes(struct nlmsghdr *nlHdr, struct route_info *rtInfo) /* If the route is not for AF_INET or does not belong to main routing table then return. */ - if ((rtMsg->rtm_family != AF_INET) || (rtMsg->rtm_table != RT_TABLE_MAIN)) + if ((rtMsg->rtm_family != AF_INET) || (rtMsg->rtm_table != RT_TABLE_MAIN)) { return; + } /* get the rtattr field */ rtAttr = (struct rtattr *)RTM_RTA(rtMsg); @@ -700,7 +710,8 @@ static char *ifname_default(void) if (BIP_Interface_Name[0] == 0) { if ((rtInfo->dstAddr == 0) && (rtInfo->ifName[0] != 0)) { /* default route */ - memcpy(BIP_Interface_Name, rtInfo->ifName, + memcpy( + BIP_Interface_Name, rtInfo->ifName, sizeof(BIP_Interface_Name)); } } @@ -734,8 +745,7 @@ int bip_get_local_netmask(struct in_addr *netmask) * @param baddr The broadcast socket binding address, in host order. * @return 0 on success */ -int bip_set_broadcast_binding( - const char *ip4_broadcast) +int bip_set_broadcast_binding(const char *ip4_broadcast) { BIP_Broadcast_Binding_Address.s_addr = inet_addr(ip4_broadcast); BIP_Broadcast_Binding_Address_Override = true; @@ -799,9 +809,11 @@ void bip_set_interface(const char *ifname) } #endif if (BIP_Debug) { - fprintf(stderr, "BIP: Broadcast Address: %s\n", + fprintf( + stderr, "BIP: Broadcast Address: %s\n", inet_ntoa(BIP_Broadcast_Addr)); - fprintf(stderr, "BIP: UDP Port: 0x%04X [%hu]\n", ntohs(BIP_Port), + fprintf( + stderr, "BIP: UDP Port: 0x%04X [%hu]\n", ntohs(BIP_Port), ntohs(BIP_Port)); fflush(stderr); } @@ -835,8 +847,9 @@ static int createSocket(const struct sockaddr_in *sin) return status; } /* Bind to the proper interface to send without default gateway */ - status = setsockopt(sock_fd, SOL_SOCKET, SO_BINDTODEVICE, - BIP_Interface_Name, strlen(BIP_Interface_Name)); + status = setsockopt( + sock_fd, SOL_SOCKET, SO_BINDTODEVICE, BIP_Interface_Name, + strlen(BIP_Interface_Name)); if (status < 0) { if (BIP_Debug) { perror("SO_BINDTODEVICE: "); @@ -882,7 +895,8 @@ bool bip_init(char *ifname) bip_set_interface(ifname_default()); } if (BIP_Address.s_addr == 0) { - fprintf(stderr, "BIP: Failed to get an IP address from %s!\n", + fprintf( + stderr, "BIP: Failed to get an IP address from %s!\n", BIP_Interface_Name); fflush(stderr); return false; diff --git a/ports/linux/bip6.c b/ports/linux/bip6.c index b85700d5..c1139ed4 100644 --- a/ports/linux/bip6.c +++ b/ports/linux/bip6.c @@ -55,16 +55,16 @@ static void debug_fprintf_bip6(FILE *stream, const char *format, ...) */ static void debug_print_ipv6(const char *str, const struct in6_addr *addr) { - debug_fprintf_bip6(stdout, "BIP6: %s " + debug_fprintf_bip6( + stdout, + "BIP6: %s " "%02x%02x:%02x%02x:%02x%02x:%02x%02x:" "%02x%02x:%02x%02x:%02x%02x:%02x%02x\n", str, (int)addr->s6_addr[0], (int)addr->s6_addr[1], - (int)addr->s6_addr[2], (int)addr->s6_addr[3], - (int)addr->s6_addr[4], (int)addr->s6_addr[5], - (int)addr->s6_addr[6], (int)addr->s6_addr[7], - (int)addr->s6_addr[8], (int)addr->s6_addr[9], - (int)addr->s6_addr[10], (int)addr->s6_addr[11], - (int)addr->s6_addr[12], (int)addr->s6_addr[13], + (int)addr->s6_addr[2], (int)addr->s6_addr[3], (int)addr->s6_addr[4], + (int)addr->s6_addr[5], (int)addr->s6_addr[6], (int)addr->s6_addr[7], + (int)addr->s6_addr[8], (int)addr->s6_addr[9], (int)addr->s6_addr[10], + (int)addr->s6_addr[11], (int)addr->s6_addr[12], (int)addr->s6_addr[13], (int)addr->s6_addr[14], (int)addr->s6_addr[15]); } @@ -106,12 +106,13 @@ void bip6_set_interface(char *ifname) while (ifa_tmp) { if ((ifa_tmp->ifa_addr) && (ifa_tmp->ifa_addr->sa_family == AF_INET6)) { debug_fprintf_bip6( - stdout, "BIP6: found interface: %s\n",ifa_tmp->ifa_name); + stdout, "BIP6: found interface: %s\n", ifa_tmp->ifa_name); } if ((ifa_tmp->ifa_addr) && (ifa_tmp->ifa_addr->sa_family == AF_INET6) && (strcasecmp(ifa_tmp->ifa_name, ifname) == 0)) { sin = (struct sockaddr_in6 *)ifa_tmp->ifa_addr; - bvlc6_address_set(&BIP6_Addr, ntohs(sin->sin6_addr.s6_addr16[0]), + bvlc6_address_set( + &BIP6_Addr, ntohs(sin->sin6_addr.s6_addr16[0]), ntohs(sin->sin6_addr.s6_addr16[1]), ntohs(sin->sin6_addr.s6_addr16[2]), ntohs(sin->sin6_addr.s6_addr16[3]), @@ -127,7 +128,8 @@ void bip6_set_interface(char *ifname) ifa_tmp = ifa_tmp->ifa_next; } if (!found) { - debug_fprintf_bip6(stderr, "BIP6: unable to set interface: %s\n", ifname); + debug_fprintf_bip6( + stderr, "BIP6: unable to set interface: %s\n", ifname); exit(1); } } @@ -246,8 +248,9 @@ int bip6_send_mpdu( } /* load destination IP address */ bvlc_dest.sin6_family = AF_INET6; - bvlc6_address_get(dest, &addr16[0], &addr16[1], &addr16[2], &addr16[3], - &addr16[4], &addr16[5], &addr16[6], &addr16[7]); + bvlc6_address_get( + dest, &addr16[0], &addr16[1], &addr16[2], &addr16[3], &addr16[4], + &addr16[5], &addr16[6], &addr16[7]); bvlc_dest.sin6_addr.s6_addr16[0] = htons(addr16[0]); bvlc_dest.sin6_addr.s6_addr16[1] = htons(addr16[1]); bvlc_dest.sin6_addr.s6_addr16[2] = htons(addr16[2]); @@ -260,7 +263,8 @@ int bip6_send_mpdu( bvlc_dest.sin6_scope_id = BIP6_Socket_Scope_Id; debug_print_ipv6("Sending MPDU->", &bvlc_dest.sin6_addr); /* Send the packet */ - return sendto(BIP6_Socket, (const char *)mtu, mtu_len, 0, + return sendto( + BIP6_Socket, (const char *)mtu, mtu_len, 0, (struct sockaddr *)&bvlc_dest, sizeof(bvlc_dest)); } @@ -276,7 +280,8 @@ int bip6_send_mpdu( * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -int bip6_send_pdu(BACNET_ADDRESS *dest, +int bip6_send_pdu( + BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, unsigned pdu_len) @@ -328,8 +333,9 @@ uint16_t bip6_receive( max = BIP6_Socket; /* see if there is a packet for us */ if (select(max + 1, &read_fds, NULL, NULL, &select_timeout) > 0) { - received_bytes = recvfrom(BIP6_Socket, (char *)&npdu[0], max_npdu, 0, - (struct sockaddr *)&sin, &sin_len); + received_bytes = recvfrom( + BIP6_Socket, (char *)&npdu[0], max_npdu, 0, (struct sockaddr *)&sin, + &sin_len); } else { return 0; } @@ -347,7 +353,8 @@ uint16_t bip6_receive( } /* pass the packet into the BBMD handler */ debug_print_ipv6("Received MPDU->", &sin.sin6_addr); - bvlc6_address_set(&addr, ntohs(sin.sin6_addr.s6_addr16[0]), + bvlc6_address_set( + &addr, ntohs(sin.sin6_addr.s6_addr16[0]), ntohs(sin.sin6_addr.s6_addr16[1]), ntohs(sin.sin6_addr.s6_addr16[2]), ntohs(sin.sin6_addr.s6_addr16[3]), ntohs(sin.sin6_addr.s6_addr16[4]), ntohs(sin.sin6_addr.s6_addr16[5]), ntohs(sin.sin6_addr.s6_addr16[6]), @@ -418,13 +425,15 @@ bool bip6_init(char *ifname) } debug_fprintf_bip6(stdout, "BIP6: IPv6 UDP port: 0x%04X\n", BIP6_Addr.port); if (BIP6_Broadcast_Addr.address[0] == 0) { - bvlc6_address_set(&BIP6_Broadcast_Addr, BIP6_MULTICAST_SITE_LOCAL, 0, 0, - 0, 0, 0, 0, BIP6_MULTICAST_GROUP_ID); + bvlc6_address_set( + &BIP6_Broadcast_Addr, BIP6_MULTICAST_SITE_LOCAL, 0, 0, 0, 0, 0, 0, + BIP6_MULTICAST_GROUP_ID); } /* assumes that the driver has already been initialized */ BIP6_Socket = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); - if (BIP6_Socket < 0) + if (BIP6_Socket < 0) { return false; + } /* Allow us to use the same socket for sending and receiving */ /* This makes sure that the src port is correct when sending */ sockopt = 1; @@ -444,14 +453,17 @@ bool bip6_init(char *ifname) return false; } /* subscribe to a multicast address */ - memcpy(&broadcast_address.s6_addr[0], &BIP6_Broadcast_Addr.address[0], + memcpy( + &broadcast_address.s6_addr[0], &BIP6_Broadcast_Addr.address[0], IP6_ADDRESS_MAX); - memcpy(&join_request.ipv6mr_multiaddr, &broadcast_address, + memcpy( + &join_request.ipv6mr_multiaddr, &broadcast_address, sizeof(struct in6_addr)); /* Let system not choose the interface */ join_request.ipv6mr_interface = BIP6_Socket_Scope_Id; - status = setsockopt(BIP6_Socket, IPPROTO_IPV6, IPV6_JOIN_GROUP, - &join_request, sizeof(join_request)); + status = setsockopt( + BIP6_Socket, IPPROTO_IPV6, IPV6_JOIN_GROUP, &join_request, + sizeof(join_request)); if (status < 0) { perror("BIP: setsockopt(IPV6_JOIN_GROUP)"); } diff --git a/ports/linux/datetime-init.c b/ports/linux/datetime-init.c index 9ebe2c02..9b5a244a 100644 --- a/ports/linux/datetime-init.c +++ b/ports/linux/datetime-init.c @@ -23,7 +23,7 @@ static int32_t Time_Offset; /* Time offset in ms */ /** * @brief Calculate the time offset from the system clock. * @return Time offset in ms - */ + */ static int32_t time_difference(struct timeval t0, struct timeval t1) { return (t0.tv_sec - t1.tv_sec) * 1000 + (t0.tv_usec - t1.tv_usec) / 1000; diff --git a/ports/linux/dlmstp.c b/ports/linux/dlmstp.c index 848806b9..ecb2c84d 100644 --- a/ports/linux/dlmstp.c +++ b/ports/linux/dlmstp.c @@ -267,16 +267,19 @@ static void *dlmstp_master_fsm_task(void *pArg) silence = MSTP_Port.SilenceTimer(&MSTP_Port); switch (MSTP_Port.master_state) { case MSTP_MASTER_STATE_IDLE: - if (silence >= Tno_token) + if (silence >= Tno_token) { run_master = true; + } break; case MSTP_MASTER_STATE_WAIT_FOR_REPLY: - if (silence >= Treply_timeout) + if (silence >= Treply_timeout) { run_master = true; + } break; case MSTP_MASTER_STATE_POLL_FOR_MASTER: - if (silence >= Tusage_timeout) + if (silence >= Tusage_timeout) { run_master = true; + } break; default: run_master = true; @@ -290,8 +293,9 @@ static void *dlmstp_master_fsm_task(void *pArg) /* do nothing while immediate transitioning */ run_loop = MSTP_Master_Node_FSM(&MSTP_Port); pthread_mutex_lock(&Thread_Mutex); - if (!run_thread) + if (!run_thread) { run_loop = false; + } pthread_mutex_unlock(&Thread_Mutex); } } else if (MSTP_Port.This_Station < 255) { @@ -578,8 +582,9 @@ void dlmstp_set_mac_address(uint8_t mac_address) /* Master Nodes can only have address 0-127 */ if (mac_address <= 127) { MSTP_Port.This_Station = mac_address; - if (mac_address > MSTP_Port.Nmax_master) + if (mac_address > MSTP_Port.Nmax_master) { dlmstp_set_max_master(mac_address); + } } return; diff --git a/ports/linux/dlmstp_linux.c b/ports/linux/dlmstp_linux.c index a1392ce0..0ea87ad2 100644 --- a/ports/linux/dlmstp_linux.c +++ b/ports/linux/dlmstp_linux.c @@ -258,16 +258,19 @@ static void *dlmstp_master_fsm_task(void *pArg) silence = mstp_port->SilenceTimer(NULL); switch (mstp_port->master_state) { case MSTP_MASTER_STATE_IDLE: - if (silence >= Tno_token) + if (silence >= Tno_token) { run_master = true; + } break; case MSTP_MASTER_STATE_WAIT_FOR_REPLY: - if (silence >= mstp_port->Treply_timeout) + if (silence >= mstp_port->Treply_timeout) { run_master = true; + } break; case MSTP_MASTER_STATE_POLL_FOR_MASTER: - if (silence >= mstp_port->Tusage_timeout) + if (silence >= mstp_port->Tusage_timeout) { run_master = true; + } break; default: run_master = true; @@ -324,8 +327,9 @@ uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port) if (!poSharedData->Receive_Packet.ready) { /* bounds check - maybe this should send an abort? */ pdu_len = mstp_port->DataLength; - if (pdu_len > sizeof(poSharedData->Receive_Packet.pdu)) + if (pdu_len > sizeof(poSharedData->Receive_Packet.pdu)) { pdu_len = sizeof(poSharedData->Receive_Packet.pdu); + } memmove( (void *)&poSharedData->Receive_Packet.pdu[0], (void *)&mstp_port->InputBuffer[0], pdu_len); @@ -580,8 +584,9 @@ void dlmstp_set_mac_address(void *poPort, uint8_t mac_address) /* Master Nodes can only have address 0-127 */ if (mac_address <= 127) { mstp_port->This_Station = mac_address; - if (mac_address > mstp_port->Nmax_master) + if (mac_address > mstp_port->Nmax_master) { dlmstp_set_max_master(mstp_port, mac_address); + } } return; diff --git a/ports/linux/dlmstp_linux.h b/ports/linux/dlmstp_linux.h index a84c25e6..d4d4e8c5 100644 --- a/ports/linux/dlmstp_linux.h +++ b/ports/linux/dlmstp_linux.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2012 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2012 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef DLMSTP_LINUX_H #define DLMSTP_LINUX_H @@ -25,8 +25,8 @@ #include "bacnet/basic/sys/ringbuf.h" /* defines specific to MS/TP */ /* preamble+type+dest+src+len+crc8+crc16 */ -#define DLMSTP_HEADER_MAX (2+1+1+1+2+1+2) -#define DLMSTP_MPDU_MAX (DLMSTP_HEADER_MAX+MAX_PDU) +#define DLMSTP_HEADER_MAX (2 + 1 + 1 + 1 + 2 + 1 + 2) +#define DLMSTP_MPDU_MAX (DLMSTP_HEADER_MAX + MAX_PDU) /* count must be a power of 2 for ringbuf library */ #ifndef MSTP_PDU_PACKET_COUNT @@ -35,10 +35,10 @@ typedef struct dlmstp_packet { bool ready; /* true if ready to be sent or received */ - BACNET_ADDRESS address; /* source address */ + BACNET_ADDRESS address; /* source address */ uint8_t frame_type; /* type of message */ - uint16_t pdu_len; /* packet length */ - uint8_t pdu[DLMSTP_MPDU_MAX]; /* packet */ + uint16_t pdu_len; /* packet length */ + uint8_t pdu[DLMSTP_MPDU_MAX]; /* packet */ } DLMSTP_PACKET; /* data structure for MS/TP PDU Queue */ @@ -103,96 +103,75 @@ typedef struct shared_mstp_data { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - bool dlmstp_init( - void *poShared, - char *ifname); - BACNET_STACK_EXPORT - void dlmstp_reset( - void *poShared); - BACNET_STACK_EXPORT - void dlmstp_cleanup( - void *poShared); +BACNET_STACK_EXPORT +bool dlmstp_init(void *poShared, char *ifname); +BACNET_STACK_EXPORT +void dlmstp_reset(void *poShared); +BACNET_STACK_EXPORT +void dlmstp_cleanup(void *poShared); - /* returns number of bytes sent on success, negative on failure */ - BACNET_STACK_EXPORT - int dlmstp_send_pdu( - void *poShared, - BACNET_ADDRESS * dest, /* destination address */ - uint8_t * pdu, /* any data to be sent - may be null */ - unsigned pdu_len); /* number of bytes of data */ +/* returns number of bytes sent on success, negative on failure */ +BACNET_STACK_EXPORT +int dlmstp_send_pdu( + void *poShared, + BACNET_ADDRESS *dest, /* destination address */ + uint8_t *pdu, /* any data to be sent - may be null */ + unsigned pdu_len); /* number of bytes of data */ - /* returns the number of octets in the PDU, or zero on failure */ - BACNET_STACK_EXPORT - uint16_t dlmstp_receive( - void *poShared, - BACNET_ADDRESS * src, /* source address */ - uint8_t * pdu, /* PDU data */ - uint16_t max_pdu, /* amount of space available in the PDU */ - unsigned timeout); /* milliseconds to wait for a packet */ +/* returns the number of octets in the PDU, or zero on failure */ +BACNET_STACK_EXPORT +uint16_t dlmstp_receive( + void *poShared, + BACNET_ADDRESS *src, /* source address */ + uint8_t *pdu, /* PDU data */ + uint16_t max_pdu, /* amount of space available in the PDU */ + unsigned timeout); /* milliseconds to wait for a packet */ - /* This parameter represents the value of the Max_Info_Frames property of */ - /* the node's Device object. The value of Max_Info_Frames specifies the */ - /* maximum number of information frames the node may send before it must */ - /* pass the token. Max_Info_Frames may have different values on different */ - /* nodes. This may be used to allocate more or less of the available link */ - /* bandwidth to particular nodes. If Max_Info_Frames is not writable in a */ - /* node, its value shall be 1. */ - BACNET_STACK_EXPORT - void dlmstp_set_max_info_frames( - void *poShared, - uint8_t max_info_frames); - BACNET_STACK_EXPORT - uint8_t dlmstp_max_info_frames( - void *poShared); +/* This parameter represents the value of the Max_Info_Frames property of */ +/* the node's Device object. The value of Max_Info_Frames specifies the */ +/* maximum number of information frames the node may send before it must */ +/* pass the token. Max_Info_Frames may have different values on different */ +/* nodes. This may be used to allocate more or less of the available link */ +/* bandwidth to particular nodes. If Max_Info_Frames is not writable in a */ +/* node, its value shall be 1. */ +BACNET_STACK_EXPORT +void dlmstp_set_max_info_frames(void *poShared, uint8_t max_info_frames); +BACNET_STACK_EXPORT +uint8_t dlmstp_max_info_frames(void *poShared); - /* This parameter represents the value of the Max_Master property of the */ - /* node's Device object. The value of Max_Master specifies the highest */ - /* allowable address for master nodes. The value of Max_Master shall be */ - /* less than or equal to 127. If Max_Master is not writable in a node, */ - /* its value shall be 127. */ - BACNET_STACK_EXPORT - void dlmstp_set_max_master( - void *poShared, - uint8_t max_master); - BACNET_STACK_EXPORT - uint8_t dlmstp_max_master( - void *poShared); +/* This parameter represents the value of the Max_Master property of the */ +/* node's Device object. The value of Max_Master specifies the highest */ +/* allowable address for master nodes. The value of Max_Master shall be */ +/* less than or equal to 127. If Max_Master is not writable in a node, */ +/* its value shall be 127. */ +BACNET_STACK_EXPORT +void dlmstp_set_max_master(void *poShared, uint8_t max_master); +BACNET_STACK_EXPORT +uint8_t dlmstp_max_master(void *poShared); - /* MAC address 0-127 */ - BACNET_STACK_EXPORT - void dlmstp_set_mac_address( - void *poShared, - uint8_t my_address); - BACNET_STACK_EXPORT - uint8_t dlmstp_mac_address( - void *poShared); +/* MAC address 0-127 */ +BACNET_STACK_EXPORT +void dlmstp_set_mac_address(void *poShared, uint8_t my_address); +BACNET_STACK_EXPORT +uint8_t dlmstp_mac_address(void *poShared); - BACNET_STACK_EXPORT - void dlmstp_get_my_address( - void *poShared, - BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - void dlmstp_get_broadcast_address( - BACNET_ADDRESS * dest); /* destination address */ +BACNET_STACK_EXPORT +void dlmstp_get_my_address(void *poShared, BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +void dlmstp_get_broadcast_address( + BACNET_ADDRESS *dest); /* destination address */ - /* RS485 Baud Rate 9600, 19200, 38400, 57600, 115200 */ - BACNET_STACK_EXPORT - void dlmstp_set_baud_rate( - void *poShared, - uint32_t baud); - BACNET_STACK_EXPORT - uint32_t dlmstp_baud_rate( - void *poShared); +/* RS485 Baud Rate 9600, 19200, 38400, 57600, 115200 */ +BACNET_STACK_EXPORT +void dlmstp_set_baud_rate(void *poShared, uint32_t baud); +BACNET_STACK_EXPORT +uint32_t dlmstp_baud_rate(void *poShared); - BACNET_STACK_EXPORT - void dlmstp_fill_bacnet_address( - BACNET_ADDRESS * src, - uint8_t mstp_address); +BACNET_STACK_EXPORT +void dlmstp_fill_bacnet_address(BACNET_ADDRESS *src, uint8_t mstp_address); - BACNET_STACK_EXPORT - bool dlmstp_sole_master( - void); +BACNET_STACK_EXPORT +bool dlmstp_sole_master(void); #ifdef __cplusplus } diff --git a/ports/linux/ethernet.c b/ports/linux/ethernet.c index cfe380a9..68f76646 100644 --- a/ports/linux/ethernet.c +++ b/ports/linux/ethernet.c @@ -17,8 +17,9 @@ * BACnet/Ethernet. */ /* commonly used comparison address for ethernet */ -uint8_t Ethernet_Broadcast[MAX_MAC_LEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF }; +uint8_t Ethernet_Broadcast[MAX_MAC_LEN] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF +}; /* commonly used empty address for ethernet quick compare */ uint8_t Ethernet_Empty_MAC[MAX_MAC_LEN] = { 0, 0, 0, 0, 0, 0 }; @@ -35,8 +36,9 @@ bool ethernet_valid(void) void ethernet_cleanup(void) { - if (ethernet_valid()) + if (ethernet_valid()) { close(eth802_sockfd); + } eth802_sockfd = -1; return; @@ -76,7 +78,8 @@ static int ethernet_bind(struct sockaddr *eth_addr, const char *interface_name) /* check to see if we are being run as root */ uid = getuid(); if (uid != 0) { - fprintf(stderr, + fprintf( + stderr, "ethernet: Unable to open an 802.2 socket. " "Try running with root priveleges.\n"); return sock_fd; @@ -93,7 +96,8 @@ static int ethernet_bind(struct sockaddr *eth_addr, const char *interface_name) /* Error occured */ fprintf( stderr, "ethernet: Error opening socket: %s\n", strerror(errno)); - fprintf(stderr, + fprintf( + stderr, "You might need to add the following to modules.conf\n" "(or in /etc/modutils/alias on Debian with update-modules):\n" "alias net-pf-17 af_packet\n" @@ -121,9 +125,11 @@ static int ethernet_bind(struct sockaddr *eth_addr, const char *interface_name) /* Attempt to bind the socket to the interface */ if (bind(sock_fd, eth_addr, sizeof(struct sockaddr)) != 0) { /* Bind problem, close socket and return */ - fprintf(stderr, "ethernet: Unable to bind 802.2 socket : %s\n", + fprintf( + stderr, "ethernet: Unable to bind 802.2 socket : %s\n", strerror(errno)); - fprintf(stderr, + fprintf( + stderr, "You might need to add the following to modules.conf\n" "(or in /etc/modutils/alias on Debian with update-modules):\n" "alias net-pf-17 af_packet\n" @@ -150,12 +156,13 @@ static int get_local_hwaddr(const char *ifname, unsigned char *mac) /* determine the local MAC address */ strcpy(ifr.ifr_name, ifname); fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); - if (fd < 0) + if (fd < 0) { rv = fd; - else { + } else { rv = ioctl(fd, SIOCGIFHWADDR, &ifr); - if (rv >= 0) /* worked okay */ + if (rv >= 0) { /* worked okay */ memcpy(mac, ifr.ifr_hwaddr.sa_data, IFHWADDRLEN); + } } return rv; @@ -179,19 +186,22 @@ int ethernet_send(uint8_t *mtu, int mtu_len) int bytes = 0; /* Send the packet */ - bytes = sendto(eth802_sockfd, &mtu, mtu_len, 0, - (struct sockaddr *)ð_addr, sizeof(struct sockaddr)); + bytes = sendto( + eth802_sockfd, &mtu, mtu_len, 0, (struct sockaddr *)ð_addr, + sizeof(struct sockaddr)); /* did it get sent? */ - if (bytes < 0) + if (bytes < 0) { fprintf( stderr, "ethernet: Error sending packet: %s\n", strerror(errno)); + } return bytes; } /* function to send a packet out the 802.2 socket */ /* returns number of bytes sent on success, negative on failure */ -int ethernet_send_pdu(BACNET_ADDRESS *dest, /* destination address */ +int ethernet_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ BACNET_NPDU_DATA *npdu_data, /* network information */ uint8_t *pdu, /* any data to be sent - may be null */ unsigned pdu_len) @@ -248,19 +258,22 @@ int ethernet_send_pdu(BACNET_ADDRESS *dest, /* destination address */ encode_unsigned16(&mtu[12], 3 + pdu_len); /* Send the packet */ - bytes = sendto(eth802_sockfd, &mtu, mtu_len, 0, - (struct sockaddr *)ð_addr, sizeof(struct sockaddr)); + bytes = sendto( + eth802_sockfd, &mtu, mtu_len, 0, (struct sockaddr *)ð_addr, + sizeof(struct sockaddr)); /* did it get sent? */ - if (bytes < 0) + if (bytes < 0) { fprintf( stderr, "ethernet: Error sending packet: %s\n", strerror(errno)); + } return bytes; } /* receives an 802.2 framed packet */ /* returns the number of octets in the PDU, or zero on failure */ -uint16_t ethernet_receive(BACNET_ADDRESS *src, /* source address */ +uint16_t ethernet_receive( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t max_pdu, /* amount of space available in the PDU */ unsigned timeout) @@ -273,8 +286,9 @@ uint16_t ethernet_receive(BACNET_ADDRESS *src, /* source address */ struct timeval select_timeout; /* Make sure the socket is open */ - if (eth802_sockfd <= 0) + if (eth802_sockfd <= 0) { return 0; + } /* we could just use a non-blocking socket, but that consumes all the CPU time. We can use a timeout; it is only supported as @@ -291,24 +305,28 @@ uint16_t ethernet_receive(BACNET_ADDRESS *src, /* source address */ FD_SET(eth802_sockfd, &read_fds); max = eth802_sockfd; - if (select(max + 1, &read_fds, NULL, NULL, &select_timeout) > 0) + if (select(max + 1, &read_fds, NULL, NULL, &select_timeout) > 0) { received_bytes = read(eth802_sockfd, &buf[0], sizeof(buf)); - else + } else { return 0; + } /* See if there is a problem */ if (received_bytes < 0) { /* EAGAIN Non-blocking I/O has been selected */ /* using O_NONBLOCK and no data */ /* was immediately available for reading. */ - if (errno != EAGAIN) - fprintf(stderr, "ethernet: Read error in receiving packet: %s\n", + if (errno != EAGAIN) { + fprintf( + stderr, "ethernet: Read error in receiving packet: %s\n", strerror(errno)); + } return 0; } - if (received_bytes == 0) + if (received_bytes == 0) { return 0; + } /* the signature of an 802.2 BACnet packet */ if ((buf[14] != 0x82) && (buf[15] != 0x82)) { @@ -330,11 +348,13 @@ uint16_t ethernet_receive(BACNET_ADDRESS *src, /* source address */ (void)decode_unsigned16(&buf[12], &pdu_len); pdu_len -= 3 /* DSAP, SSAP, LLC Control */; /* copy the buffer into the PDU */ - if (pdu_len < max_pdu) + if (pdu_len < max_pdu) { memmove(&pdu[0], &buf[17], pdu_len); + } /* ignore packets that are too large */ - else + else { pdu_len = 0; + } return pdu_len; } @@ -391,8 +411,9 @@ void ethernet_debug_address(const char *info, const BACNET_ADDRESS *dest) { int i = 0; /* counter */ - if (info) + if (info) { fprintf(stderr, "%s", info); + } if (dest) { fprintf(stderr, "Address:\n"); fprintf(stderr, " MAC Length=%d\n", dest->mac_len); diff --git a/ports/linux/mstpsnap.c b/ports/linux/mstpsnap.c index 8403b233..9b56b8dc 100644 --- a/ports/linux/mstpsnap.c +++ b/ports/linux/mstpsnap.c @@ -68,8 +68,7 @@ uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port) /* for the MS/TP state machine to use for getting data to send */ /* Return: amount of PDU data */ -uint16_t MSTP_Get_Send( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Send(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ (void)mstp_port; (void)timeout; @@ -84,7 +83,7 @@ uint16_t MSTP_Get_Send( */ void MSTP_Send_Frame( struct mstp_port_struct_t *mstp_port, - const uint8_t * buffer, + const uint8_t *buffer, uint16_t nbytes) { (void)mstp_port; @@ -92,8 +91,7 @@ void MSTP_Send_Frame( (void)nbytes; } -uint16_t MSTP_Get_Reply( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Reply(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ (void)mstp_port; (void)timeout; @@ -140,8 +138,8 @@ static int network_init(const char *name, int protocol) return sockfd; } -static void snap_received_packet( - const struct mstp_port_struct_t *mstp_port, int sockfd) +static void +snap_received_packet(const struct mstp_port_struct_t *mstp_port, int sockfd) { uint16_t mtu_len = 0; /* number of octets of packet saved in file */ unsigned i = 0; /* counter */ @@ -267,7 +265,8 @@ int main(int argc, char *argv[]) MSTP_Port.SilenceTimer = Timer_Silence; MSTP_Port.SilenceTimerReset = Timer_Silence_Reset; MSTP_Init(mstp_port); - fprintf(stdout, "mstpcap: Using %s for capture at %ld bps.\n", + fprintf( + stdout, "mstpcap: Using %s for capture at %ld bps.\n", RS485_Interface(), (long)RS485_Get_Baud_Rate()); atexit(cleanup); #if defined(_WIN32) diff --git a/ports/linux/rs485.c b/ports/linux/rs485.c index 8d311a03..4032c746 100644 --- a/ports/linux/rs485.c +++ b/ports/linux/rs485.c @@ -569,12 +569,14 @@ void RS485_Initialize(void) newserial.custom_divisor = round(((float)newserial.baud_base) / 76800); /* we must check that we calculated some sane value; small baud bases yield bad custom divisor values */ - baud_error = fabs(1 - + baud_error = fabs( + 1 - ((float)newserial.baud_base) / ((float)newserial.custom_divisor) / 76800); if ((newserial.custom_divisor == 0) || (baud_error > 0.02)) { /* bad divisor */ - fprintf(stderr, "RS485 bad custom divisor %d, base baud %d\n", + fprintf( + stderr, "RS485 bad custom divisor %d, base baud %d\n", newserial.custom_divisor, newserial.baud_base); exit(EXIT_FAILURE); } @@ -617,19 +619,22 @@ void RS485_Print_Ports(void) while (n--) { if (strcmp(namelist[n]->d_name, "..") && strcmp(namelist[n]->d_name, ".")) { - snprintf(device_dir, sizeof(device_dir), "%s%s/device", sysdir, + snprintf( + device_dir, sizeof(device_dir), "%s%s/device", sysdir, namelist[n]->d_name); /* Stat the devicedir and handle it if it is a symlink */ if (lstat(device_dir, &st) == 0 && S_ISLNK(st.st_mode)) { memset(buffer, 0, sizeof(buffer)); - snprintf(device_dir, sizeof(device_dir), - "%s%s/device/driver", sysdir, namelist[n]->d_name); + snprintf( + device_dir, sizeof(device_dir), "%s%s/device/driver", + sysdir, namelist[n]->d_name); if (readlink(device_dir, buffer, sizeof(buffer)) > 0) { valid_port = false; driver_name = basename(buffer); if (strcmp(driver_name, "serial8250") == 0) { /* serial8250-devices must be probed */ - snprintf(device_dir, sizeof(device_dir), "/dev/%s", + snprintf( + device_dir, sizeof(device_dir), "/dev/%s", namelist[n]->d_name); fd = open( device_dir, O_RDWR | O_NONBLOCK | O_NOCTTY); @@ -649,8 +654,9 @@ void RS485_Print_Ports(void) } if (valid_port) { /* print full absolute file path */ - printf("interface {value=/dev/%s}" - "{display=MS/TP Capture on /dev/%s}\n", + printf( + "interface {value=/dev/%s}" + "{display=MS/TP Capture on /dev/%s}\n", namelist[n]->d_name, namelist[n]->d_name); } } diff --git a/ports/linux/rs485.h b/ports/linux/rs485.h index 682182c7..d57453b2 100644 --- a/ports/linux/rs485.h +++ b/ports/linux/rs485.h @@ -15,42 +15,34 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void RS485_Set_Interface( - char *ifname); - BACNET_STACK_EXPORT - const char *RS485_Interface( - void); +BACNET_STACK_EXPORT +void RS485_Set_Interface(char *ifname); +BACNET_STACK_EXPORT +const char *RS485_Interface(void); - BACNET_STACK_EXPORT - void RS485_Initialize( - void); +BACNET_STACK_EXPORT +void RS485_Initialize(void); - BACNET_STACK_EXPORT - void RS485_Send_Frame( - struct mstp_port_struct_t *mstp_port, /* port specific data */ - const uint8_t * buffer, /* frame to send (up to 501 bytes of data) */ - uint16_t nbytes); /* number of bytes of data (up to 501) */ +BACNET_STACK_EXPORT +void RS485_Send_Frame( + struct mstp_port_struct_t *mstp_port, /* port specific data */ + const uint8_t *buffer, /* frame to send (up to 501 bytes of data) */ + uint16_t nbytes); /* number of bytes of data (up to 501) */ - BACNET_STACK_EXPORT - void RS485_Check_UART_Data( - struct mstp_port_struct_t *mstp_port); /* port specific data */ - BACNET_STACK_EXPORT - uint32_t RS485_Get_Port_Baud_Rate( - struct mstp_port_struct_t *mstp_port); - BACNET_STACK_EXPORT - uint32_t RS485_Get_Baud_Rate( - void); - BACNET_STACK_EXPORT - bool RS485_Set_Baud_Rate( - uint32_t baud); +BACNET_STACK_EXPORT +void RS485_Check_UART_Data( + struct mstp_port_struct_t *mstp_port); /* port specific data */ +BACNET_STACK_EXPORT +uint32_t RS485_Get_Port_Baud_Rate(struct mstp_port_struct_t *mstp_port); +BACNET_STACK_EXPORT +uint32_t RS485_Get_Baud_Rate(void); +BACNET_STACK_EXPORT +bool RS485_Set_Baud_Rate(uint32_t baud); - BACNET_STACK_EXPORT - void RS485_Cleanup( - void); - BACNET_STACK_EXPORT - void RS485_Print_Ports( - void); +BACNET_STACK_EXPORT +void RS485_Cleanup(void); +BACNET_STACK_EXPORT +void RS485_Print_Ports(void); #ifdef __cplusplus } diff --git a/ports/lwip/bacport.h b/ports/lwip/bacport.h index 6d280f2c..f3e2a66d 100644 --- a/ports/lwip/bacport.h +++ b/ports/lwip/bacport.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2020 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2020 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BACPORT_H #define BACPORT_H @@ -19,11 +19,10 @@ #include "lwip/dhcp.h" #include "lwip/inet.h" -#define BACNET_OBJECT_TABLE(table_name, _type, _init, _count, \ - _index_to_instance, _valid_instance, _object_name, \ - _read_property, _write_property, _RPM_list, \ - _RR_info, _iterator, _value_list, _COV, \ - _COV_clear, _intrinsic_reporting) \ +#define BACNET_OBJECT_TABLE( \ + table_name, _type, _init, _count, _index_to_instance, _valid_instance, \ + _object_name, _read_property, _write_property, _RPM_list, _RR_info, \ + _iterator, _value_list, _COV, _COV_clear, _intrinsic_reporting) \ static_assert(false, "Unsupported BACNET_OBJECT_TABLE for this platform") #endif diff --git a/ports/lwip/bip.c b/ports/lwip/bip.c index 1edb31bd..be702943 100644 --- a/ports/lwip/bip.c +++ b/ports/lwip/bip.c @@ -153,9 +153,8 @@ static void bip_mac_to_addr(ip4_addr_t *address, const uint8_t *mac) * @param address - IPv4 address from LwIP * @param port - IPv4 UDP port number */ -static int bip_decode_bip_address(const BACNET_IP_ADDRESS *baddr, - ip_addr_t *address, - uint16_t *port) +static int bip_decode_bip_address( + const BACNET_IP_ADDRESS *baddr, ip_addr_t *address, uint16_t *port) { int len = 0; @@ -190,9 +189,8 @@ static void bip_addr_to_mac(uint8_t *mac, const ip4_addr_t *address) * @param address - IPv4 address from LwIP * @param port - IPv4 UDP port number */ -static int bip_encode_bip_address(BACNET_IP_ADDRESS *baddr, - const ip_addr_t *address, - uint16_t port) +static int bip_encode_bip_address( + BACNET_IP_ADDRESS *baddr, const ip_addr_t *address, uint16_t port) { int len = 0; @@ -249,7 +247,8 @@ int bip_send_mpdu( * * @return number of bytes sent */ -int bip_send_pdu(BACNET_ADDRESS *dest, /* destination address */ +int bip_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ BACNET_NPDU_DATA *npdu_data, /* network information */ uint8_t *pdu, /* any data to be sent - may be null */ unsigned pdu_len) @@ -265,7 +264,8 @@ int bip_send_pdu(BACNET_ADDRESS *dest, /* destination address */ * @param addr [in] UDP source address * @param port [in] UDP port number */ -void bip_server_callback(void *arg, +void bip_server_callback( + void *arg, struct udp_pcb *upcb, struct pbuf *pkt, const ip_addr_t *addr, @@ -275,7 +275,7 @@ void bip_server_callback(void *arg, uint16_t npdu_offset = 0; BACNET_ADDRESS src = { 0 }; /* address where message came from */ BACNET_IP_ADDRESS saddr; - uint8_t *npdu = (uint8_t *) pkt->payload; + uint8_t *npdu = (uint8_t *)pkt->payload; uint16_t npdu_len = pkt->tot_len; bip_encode_bip_address(&saddr, addr, port); diff --git a/ports/lwip/net.h b/ports/lwip/net.h index 1cd7c692..f019f2a6 100644 --- a/ports/lwip/net.h +++ b/ports/lwip/net.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2012 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2012 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef NET_H #define NET_H diff --git a/ports/rx62n/bacnet.c b/ports/rx62n/bacnet.c index 7f3ee0d2..9774d0d1 100644 --- a/ports/rx62n/bacnet.c +++ b/ports/rx62n/bacnet.c @@ -49,7 +49,8 @@ void bacnet_init(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_WRITE_PROPERTY, handler_write_property); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); /* start the cyclic 1 second timer for DCC */ mstimer_set(&DCC_Timer, DCC_CYCLE_SECONDS * 1000); @@ -57,14 +58,17 @@ void bacnet_init(void) Send_I_Am(&Handler_Transmit_Buffer[0]); } -/** Static receive buffer, initialized with zeros by the C Library Startup Code. */ +/** Static receive buffer, initialized with zeros by the C Library Startup Code. + */ -static uint8_t PDUBuffer[MAX_MPDU + 16 /* Add a little safety margin to the buffer, - * so that in the rare case, the message - * would be filled up to MAX_MPDU and some - * decoding functions would overrun, these - * decoding functions will just end up in - * a safe field of static zeros. */]; +static uint8_t PDUBuffer + [MAX_MPDU + 16 /* Add a little safety margin to the buffer, + * so that in the rare case, the message + * would be filled up to MAX_MPDU and some + * decoding functions would overrun, these + * decoding functions will just end up in + * a safe field of static zeros. */ +]; void bacnet_task(void) { diff --git a/ports/rx62n/bacnet.h b/ports/rx62n/bacnet.h index 88feff3c..32b65f85 100644 --- a/ports/rx62n/bacnet.h +++ b/ports/rx62n/bacnet.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2010 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2010 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BACNET_H #define BACNET_H @@ -14,10 +14,8 @@ extern "C" { #endif /* __cplusplus */ - void bacnet_init( - void); - void bacnet_task( - void); +void bacnet_init(void); +void bacnet_task(void); #ifdef __cplusplus } diff --git a/ports/rx62n/bo.c b/ports/rx62n/bo.c index 42b586dc..0c02fc68 100644 --- a/ports/rx62n/bo.c +++ b/ports/rx62n/bo.c @@ -37,25 +37,38 @@ static uint8_t Out_Of_Service[MAX_BINARY_OUTPUTS]; static uint8_t Polarity[MAX_BINARY_OUTPUTS]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Binary_Output_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_POLARITY, PROP_PRIORITY_ARRAY, - PROP_RELINQUISH_DEFAULT, -1 }; +static const int Binary_Output_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_POLARITY, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + -1 +}; static const int Binary_Output_Properties_Optional[] = { PROP_ACTIVE_TEXT, - PROP_INACTIVE_TEXT, -1 }; + PROP_INACTIVE_TEXT, + -1 }; static const int Binary_Output_Properties_Proprietary[] = { -1 }; void Binary_Output_Property_Lists( const int **pRequired, const int **pOptional, const int **pProprietary) { - if (pRequired) + if (pRequired) { *pRequired = Binary_Output_Properties_Required; - if (pOptional) + } + if (pOptional) { *pOptional = Binary_Output_Properties_Optional; - if (pProprietary) + } + if (pProprietary) { *pProprietary = Binary_Output_Properties_Proprietary; + } return; } @@ -63,8 +76,9 @@ void Binary_Output_Property_Lists( /* we simply have 0-n object instances. */ bool Binary_Output_Valid_Instance(uint32_t object_instance) { - if (object_instance < MAX_BINARY_OUTPUTS) + if (object_instance < MAX_BINARY_OUTPUTS) { return true; + } return false; } @@ -86,8 +100,9 @@ unsigned Binary_Output_Instance_To_Index(uint32_t object_instance) { unsigned index = MAX_BINARY_OUTPUTS; - if (object_instance < MAX_BINARY_OUTPUTS) + if (object_instance < MAX_BINARY_OUTPUTS) { index = object_instance; + } return index; } @@ -135,8 +150,8 @@ bool Binary_Output_Present_Value_Set( return status; } -static void Binary_Output_Polarity_Set( - uint32_t instance, BACNET_POLARITY polarity) +static void +Binary_Output_Polarity_Set(uint32_t instance, BACNET_POLARITY polarity) { if (instance < MAX_BINARY_OUTPUTS) { if (polarity < MAX_POLARITY) { @@ -241,9 +256,10 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_PRIORITY_ARRAY: /* Array element zero is the number of elements in the array */ - if (rpdata->array_index == 0) + if (rpdata->array_index == 0) { apdu_len = encode_application_unsigned(&apdu[0], BACNET_MAX_PRIORITY); + } /* if no index was specified, then try to encode the entire list */ /* into one packet. */ else if (rpdata->array_index == BACNET_ARRAY_ALL) { @@ -260,9 +276,9 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) &apdu[apdu_len], present_value); } /* add it if we have room */ - if ((apdu_len + len) < MAX_APDU) + if ((apdu_len + len) < MAX_APDU) { apdu_len += len; - else { + } else { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; apdu_len = BACNET_STATUS_ABORT; @@ -348,8 +364,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_ENUMERATED); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { priority = wp_data->priority; /* Command priority 6 is reserved for use by Minimum On/Off @@ -375,8 +391,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_NULL); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_NULL); if (status) { level = BINARY_NULL; priority = wp_data->priority; @@ -400,19 +416,20 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_BOOLEAN); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Binary_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); } break; case PROP_POLARITY: - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_ENUMERATED); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated < MAX_POLARITY) { - Binary_Output_Polarity_Set(wp_data->object_instance, + Binary_Output_Polarity_Set( + wp_data->object_instance, (BACNET_POLARITY)value.type.Enumerated); } else { status = false; diff --git a/ports/rx62n/device.c b/ports/rx62n/device.c index 91b1c6b7..7aa7e755 100644 --- a/ports/rx62n/device.c +++ b/ports/rx62n/device.c @@ -45,16 +45,18 @@ static struct my_object_functions { read_property_function Object_Read_Property; write_property_function Object_Write_Property; rpm_property_lists_function Object_RPM_List; -} Object_Table[] = { { OBJECT_DEVICE, NULL, /* don't init - recursive! */ - Device_Count, Device_Index_To_Instance, - Device_Valid_Object_Instance_Number, Device_Name, - Device_Read_Property_Local, - Device_Write_Property_Local, Device_Property_Lists }, +} Object_Table[] = { + { OBJECT_DEVICE, NULL, /* don't init - recursive! */ + Device_Count, Device_Index_To_Instance, + Device_Valid_Object_Instance_Number, Device_Name, + Device_Read_Property_Local, Device_Write_Property_Local, + Device_Property_Lists }, { OBJECT_BINARY_OUTPUT, Binary_Output_Init, Binary_Output_Count, - Binary_Output_Index_To_Instance, Binary_Output_Valid_Instance, - Binary_Output_Name, Binary_Output_Read_Property, - Binary_Output_Write_Property, Binary_Output_Property_Lists }, - { MAX_BACNET_OBJECT_TYPE, NULL, NULL, NULL, NULL, NULL, NULL, NULL } }; + Binary_Output_Index_To_Instance, Binary_Output_Valid_Instance, + Binary_Output_Name, Binary_Output_Read_Property, + Binary_Output_Write_Property, Binary_Output_Property_Lists }, + { MAX_BACNET_OBJECT_TYPE, NULL, NULL, NULL, NULL, NULL, NULL, NULL } +}; /* note: you really only need to define variables for properties that are writable or that may change. @@ -73,23 +75,38 @@ static char Description[MAX_DEV_DESC_LEN + 1] = "Renesas Rulz!"; static uint32_t Database_Revision = 0; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Device_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_SYSTEM_STATUS, PROP_VENDOR_NAME, - PROP_VENDOR_IDENTIFIER, PROP_MODEL_NAME, PROP_FIRMWARE_REVISION, - PROP_APPLICATION_SOFTWARE_VERSION, PROP_PROTOCOL_VERSION, - PROP_PROTOCOL_REVISION, PROP_PROTOCOL_SERVICES_SUPPORTED, - PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, PROP_OBJECT_LIST, - PROP_MAX_APDU_LENGTH_ACCEPTED, PROP_SEGMENTATION_SUPPORTED, - PROP_APDU_TIMEOUT, PROP_NUMBER_OF_APDU_RETRIES, PROP_MAX_MASTER, - PROP_MAX_INFO_FRAMES, PROP_DEVICE_ADDRESS_BINDING, PROP_DATABASE_REVISION, - -1 }; +static const int Device_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_SYSTEM_STATUS, + PROP_VENDOR_NAME, + PROP_VENDOR_IDENTIFIER, + PROP_MODEL_NAME, + PROP_FIRMWARE_REVISION, + PROP_APPLICATION_SOFTWARE_VERSION, + PROP_PROTOCOL_VERSION, + PROP_PROTOCOL_REVISION, + PROP_PROTOCOL_SERVICES_SUPPORTED, + PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, + PROP_OBJECT_LIST, + PROP_MAX_APDU_LENGTH_ACCEPTED, + PROP_SEGMENTATION_SUPPORTED, + PROP_APDU_TIMEOUT, + PROP_NUMBER_OF_APDU_RETRIES, + PROP_MAX_MASTER, + PROP_MAX_INFO_FRAMES, + PROP_DEVICE_ADDRESS_BINDING, + PROP_DATABASE_REVISION, + -1 +}; static const int Device_Properties_Optional[] = { PROP_DESCRIPTION, -1 }; static const int Device_Properties_Proprietary[] = { -1 }; -static struct my_object_functions *Device_Objects_Find_Functions( - BACNET_OBJECT_TYPE Object_Type) +static struct my_object_functions * +Device_Objects_Find_Functions(BACNET_OBJECT_TYPE Object_Type) { struct my_object_functions *pObject = NULL; @@ -148,14 +165,10 @@ static int Read_Property_Common( #if (BACNET_PROTOCOL_REVISION >= 14) case PROP_PROPERTY_LIST: Device_Objects_Property_List( - rpdata->object_type, - rpdata->object_instance, - &property_list); + rpdata->object_type, rpdata->object_instance, &property_list); apdu_len = property_list_encode( - rpdata, - property_list.Required.pList, - property_list.Optional.pList, - property_list.Proprietary.pList); + rpdata, property_list.Required.pList, + property_list.Optional.pList, property_list.Proprietary.pList); break; #endif default: @@ -193,7 +206,8 @@ static unsigned property_list_count(const int *pList) * list, separately, the Required, Optional, and Proprietary object * properties with their counts. */ -void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, +void Device_Objects_Property_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, struct special_property_list_t *pPropertyList) { @@ -211,8 +225,9 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, pObject = Device_Objects_Find_Functions(object_type); if ((pObject != NULL) && (pObject->Object_RPM_List != NULL)) { - pObject->Object_RPM_List(&pPropertyList->Required.pList, - &pPropertyList->Optional.pList, &pPropertyList->Proprietary.pList); + pObject->Object_RPM_List( + &pPropertyList->Required.pList, &pPropertyList->Optional.pList, + &pPropertyList->Proprietary.pList); } /* Fetch the counts if available otherwise zero them */ @@ -234,12 +249,15 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, void Device_Property_Lists( const int **pRequired, const int **pOptional, const int **pProprietary) { - if (pRequired) + if (pRequired) { *pRequired = Device_Properties_Required; - if (pOptional) + } + if (pOptional) { *pOptional = Device_Properties_Optional; - if (pProprietary) + } + if (pProprietary) { *pProprietary = Device_Properties_Proprietary; + } return; } @@ -364,8 +382,9 @@ bool Device_Set_Object_Instance_Number(uint32_t object_id) if (object_id <= BACNET_MAX_INSTANCE) { Object_Instance_Number = object_id; - } else + } else { status = false; + } return status; } @@ -584,7 +603,8 @@ int Device_Object_List_Element_Encode( * Object. * @return True on success or else False if not found. */ -bool Device_Valid_Object_Name(const char *object_name, +bool Device_Valid_Object_Name( + const char *object_name, BACNET_OBJECT_TYPE *object_type, uint32_t *object_instance) { @@ -617,8 +637,8 @@ bool Device_Valid_Object_Name(const char *object_name, } /* returns the name or NULL if not found */ -char *Device_Valid_Object_Id( - BACNET_OBJECT_TYPE object_type, uint32_t object_instance) +char * +Device_Valid_Object_Id(BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { char *name = NULL; /* return value */ struct my_object_functions *pObject = NULL; @@ -701,7 +721,8 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_init(&bit_string); for (i = 0; i < MAX_BACNET_SERVICES_SUPPORTED; i++) { /* automatic lookup based on handlers set */ - bitstring_set_bit(&bit_string, (uint8_t)i, + bitstring_set_bit( + &bit_string, (uint8_t)i, apdu_service_supported((BACNET_SERVICES_SUPPORTED)i)); } apdu_len = encode_application_bitstring(&apdu[0], &bit_string); @@ -728,10 +749,9 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_OBJECT_LIST: count = Device_Object_List_Count(); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, - Device_Object_List_Element_Encode, - count, apdu, apdu_max); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Device_Object_List_Element_Encode, count, apdu, apdu_max); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -837,8 +857,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_OBJECT_IDENTIFIER: - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_OBJECT_ID); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_OBJECT_ID); if (status) { if ((value.type.Object_Id.type == OBJECT_DEVICE) && (Device_Set_Object_Instance_Number( @@ -853,8 +873,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_SYSTEM_STATUS: - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_ENUMERATED); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { temp = Device_Set_System_Status( (BACNET_DEVICE_STATUS)value.type.Enumerated, false); @@ -871,8 +891,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OBJECT_NAME: - status = write_property_string_valid(&wp_data, &value, - MAX_DEV_NAME_LEN); + status = + write_property_string_valid(&wp_data, &value, MAX_DEV_NAME_LEN); if (status) { Device_Set_Object_Name( characterstring_value(&value.type.Character_String), @@ -880,8 +900,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_LOCATION: - status = write_property_empty_string_valid(&wp_data, &value, - MAX_DEV_LOC_LEN); + status = write_property_empty_string_valid( + &wp_data, &value, MAX_DEV_LOC_LEN); if (status) { Device_Set_Location( characterstring_value(&value.type.Character_String), @@ -890,8 +910,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DESCRIPTION: - status = write_property_empty_string_valid(&wp_data, &value, - MAX_DEV_DESC_LEN); + status = write_property_empty_string_valid( + &wp_data, &value, MAX_DEV_DESC_LEN); if (status) { Device_Set_Description( characterstring_value(&value.type.Character_String), diff --git a/ports/rx62n/ethernet.c b/ports/rx62n/ethernet.c index a95efe28..aa2a7128 100644 --- a/ports/rx62n/ethernet.c +++ b/ports/rx62n/ethernet.c @@ -16,8 +16,8 @@ for BACnet/Ethernet. */ /* commonly used comparison address for ethernet */ -static uint8_t Ethernet_Broadcast[MAX_MAC_LEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF }; +static uint8_t Ethernet_Broadcast[MAX_MAC_LEN] = { 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF }; /* IEEE maintains list of 48-bit MAC "addresses" AKA EUI-48 identifiers. An EUI-48 is structured into an initial 3-octet OUI @@ -26,8 +26,8 @@ static uint8_t Ethernet_Broadcast[MAX_MAC_LEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* see [RFC5342] for current information and registration procedures. */ /* The OUI 00-00-5E has been allocated to IANA. */ /* my local device data - MAC address */ -static uint8_t Ethernet_MAC_Address[MAX_MAC_LEN] = { 0x00, 0x00, 0x5E, 0x00, - 0x00, 0x01 }; +static uint8_t Ethernet_MAC_Address[MAX_MAC_LEN] = { 0x00, 0x00, 0x5E, + 0x00, 0x00, 0x01 }; /* status of the link */ static int32_t Ethernet_Status = R_ETHER_ERROR; @@ -69,7 +69,8 @@ int ethernet_send(uint8_t *mtu, int mtu_len) /* function to send a packet out the 802.2 socket */ /* returns number of bytes sent on success, negative on failure */ -int ethernet_send_pdu(BACNET_ADDRESS *dest, /* destination address */ +int ethernet_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ BACNET_NPDU_DATA *npdu_data, /* network information */ uint8_t *pdu, /* any data to be sent - may be null */ unsigned pdu_len) @@ -129,7 +130,8 @@ int ethernet_send_pdu(BACNET_ADDRESS *dest, /* destination address */ /* receives an 802.2 framed packet */ /* returns the number of octets in the PDU, or zero on failure */ -uint16_t ethernet_receive(BACNET_ADDRESS *src, /* source address */ +uint16_t ethernet_receive( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t max_pdu, /* amount of space available in the PDU */ unsigned timeout) @@ -139,13 +141,15 @@ uint16_t ethernet_receive(BACNET_ADDRESS *src, /* source address */ uint16_t pdu_len = 0; /* return value */ /* Make sure the socket is open */ - if (!ethernet_valid()) + if (!ethernet_valid()) { return 0; + } received_bytes = R_Ether_Read(0, (void *)buf); - if (received_bytes == 0) + if (received_bytes == 0) { return 0; + } /* the signature of an 802.2 BACnet packet */ if ((buf[14] != 0x82) && (buf[15] != 0x82)) { @@ -165,11 +169,13 @@ uint16_t ethernet_receive(BACNET_ADDRESS *src, /* source address */ (void)decode_unsigned16(&buf[12], &pdu_len); pdu_len -= 3 /* DSAP, SSAP, LLC Control */; /* copy the buffer into the PDU */ - if (pdu_len < max_pdu) + if (pdu_len < max_pdu) { memmove(&pdu[0], &buf[17], pdu_len); + } /* ignore packets that are too large */ - else + else { pdu_len = 0; + } return pdu_len; } diff --git a/ports/rx62n/hardware.h b/ports/rx62n/hardware.h index acda2622..d9aa2b6f 100644 --- a/ports/rx62n/hardware.h +++ b/ports/rx62n/hardware.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2011 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2011 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef HARDWARE_H #define HARDWARE_H diff --git a/ports/rx62n/led.h b/ports/rx62n/led.h index e8fbf9c1..c809826c 100644 --- a/ports/rx62n/led.h +++ b/ports/rx62n/led.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2009 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2009 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef LED_H #define LED_H @@ -15,24 +15,14 @@ extern "C" { #endif /* __cplusplus */ - void led_on( - uint8_t index); - void led_on_interval( - uint8_t index, - uint16_t interval_ms); - void led_off( - uint8_t index); - void led_off_delay( - uint8_t index, - uint32_t delay_ms); - void led_toggle( - uint8_t index); - bool led_state( - uint8_t index); - void led_task( - void); - void led_init( - void); +void led_on(uint8_t index); +void led_on_interval(uint8_t index, uint16_t interval_ms); +void led_off(uint8_t index); +void led_off_delay(uint8_t index, uint32_t delay_ms); +void led_toggle(uint8_t index); +bool led_state(uint8_t index); +void led_task(void); +void led_init(void); #ifdef __cplusplus } diff --git a/ports/win32/bacport.h b/ports/win32/bacport.h index 8053ee31..60bdb666 100644 --- a/ports/win32/bacport.h +++ b/ports/win32/bacport.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2005 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2005 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BACPORT_H #define BACPORT_H @@ -15,10 +15,10 @@ #define STRICT 1 /* Windows XP minimum */ #if (_WIN32_WINNT < _WIN32_WINNT_WINXP) - #undef _WIN32_WINNT - #define _WIN32_WINNT _WIN32_WINNT_WINXP - #undef NTDDI_VERSION - #define NTDDI_VERSION NTDDI_WINXP +#undef _WIN32_WINNT +#define _WIN32_WINNT _WIN32_WINNT_WINXP +#undef NTDDI_VERSION +#define NTDDI_VERSION NTDDI_WINXP #endif #include @@ -38,10 +38,10 @@ #ifdef __MINGW32__ #include #else -#pragma warning( push ) -#pragma warning(disable: 4101 4191) +#pragma warning(push) +#pragma warning(disable : 4101 4191) #include -#pragma warning( pop ) +#pragma warning(pop) /* add winmm.lib to our build */ #pragma comment(lib, "winmm.lib") #endif @@ -60,14 +60,12 @@ #endif BACNET_STACK_EXPORT -extern int bip_get_local_netmask( - struct in_addr *netmask); +extern int bip_get_local_netmask(struct in_addr *netmask); -#define BACNET_OBJECT_TABLE(table_name, _type, _init, _count, \ - _index_to_instance, _valid_instance, _object_name, \ - _read_property, _write_property, _RPM_list, \ - _RR_info, _iterator, _value_list, _COV, \ - _COV_clear, _intrinsic_reporting) \ +#define BACNET_OBJECT_TABLE( \ + table_name, _type, _init, _count, _index_to_instance, _valid_instance, \ + _object_name, _read_property, _write_property, _RPM_list, _RR_info, \ + _iterator, _value_list, _COV, _COV_clear, _intrinsic_reporting) \ static_assert(false, "Unsupported BACNET_OBJECT_TABLE for this platform") #endif diff --git a/ports/win32/bip-init.c b/ports/win32/bip-init.c index 47c2765e..ed841868 100644 --- a/ports/win32/bip-init.c +++ b/ports/win32/bip-init.c @@ -44,13 +44,15 @@ static bool BIP_Debug; * @param str - debug info string * @param addr - IPv4 address */ -static void debug_print_ipv4(const char *str, +static void debug_print_ipv4( + const char *str, const struct in_addr *addr, const unsigned int port, const unsigned int count) { if (BIP_Debug) { - fprintf(stderr, "BIP: %s %s:%hu (%u bytes)\n", str, inet_ntoa(*addr), + fprintf( + stderr, "BIP: %s %s:%hu (%u bytes)\n", str, inet_ntoa(*addr), ntohs(port), count); fflush(stderr); } @@ -222,7 +224,8 @@ static char *winsock_error_code_text(int code) static void print_last_error(const char *info) { int Code = WSAGetLastError(); - fprintf(stderr, "BIP: %s [error code %i] %s\n", info, Code, + fprintf( + stderr, "BIP: %s [error code %i] %s\n", info, Code, winsock_error_code_text(Code)); fflush(stderr); } @@ -433,8 +436,9 @@ int bip_send_mpdu( /* Send the packet */ debug_print_ipv4( "Sending MPDU->", &bip_dest.sin_addr, bip_dest.sin_port, mtu_len); - rv = sendto(BIP_Socket, (const char *)mtu, mtu_len, 0, - (struct sockaddr *)&bip_dest, sizeof(struct sockaddr)); + rv = sendto( + BIP_Socket, (const char *)mtu, mtu_len, 0, (struct sockaddr *)&bip_dest, + sizeof(struct sockaddr)); if (rv == SOCKET_ERROR) { print_last_error("sendto"); } @@ -490,10 +494,11 @@ uint16_t bip_receive( /* see if there is a packet for us */ if (select(max + 1, &read_fds, NULL, NULL, &select_timeout) > 0) { - socket = FD_ISSET(BIP_Socket, &read_fds) ? BIP_Socket : - BIP_Broadcast_Socket; - received_bytes = recvfrom(socket, (char *)&npdu[0], max_npdu, 0, - (struct sockaddr *)&sin, &sin_len); + socket = + FD_ISSET(BIP_Socket, &read_fds) ? BIP_Socket : BIP_Broadcast_Socket; + received_bytes = recvfrom( + socket, (char *)&npdu[0], max_npdu, 0, (struct sockaddr *)&sin, + &sin_len); } else { return 0; } @@ -530,9 +535,9 @@ uint16_t bip_receive( debug_print_ipv4( "Received MPDU->", &sin.sin_addr, sin.sin_port, received_bytes); /* pass the packet into the BBMD handler */ - offset = socket == BIP_Socket ? - bvlc_handler(&addr, src, npdu, received_bytes) : - bvlc_broadcast_handler(&addr, src, npdu, received_bytes); + offset = socket == BIP_Socket + ? bvlc_handler(&addr, src, npdu, received_bytes) + : bvlc_broadcast_handler(&addr, src, npdu, received_bytes); if (offset > 0) { npdu_len = received_bytes - offset; if (npdu_len <= max_npdu) { @@ -560,7 +565,8 @@ uint16_t bip_receive( * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -int bip_send_pdu(BACNET_ADDRESS *dest, +int bip_send_pdu( + BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, unsigned pdu_len) @@ -612,7 +618,8 @@ static long gethostaddr(void) exit(1); } if (BIP_Debug) { - fprintf(stderr, "BIP: host %s at %u.%u.%u.%u\n", host_name, + fprintf( + stderr, "BIP: host %s at %u.%u.%u.%u\n", host_name, (unsigned)((uint8_t *)host_ent->h_addr)[0], (unsigned)((uint8_t *)host_ent->h_addr)[1], (unsigned)((uint8_t *)host_ent->h_addr)[2], @@ -685,8 +692,7 @@ int bip_get_local_netmask(struct in_addr *netmask) * @param baddr The broadcast socket binding address, in host order. * @return 0 on success */ -int bip_set_broadcast_binding( - const char *ip4_broadcast) +int bip_set_broadcast_binding(const char *ip4_broadcast) { BIP_Broadcast_Binding_Address.s_addr = inet_addr(ip4_broadcast); BIP_Broadcast_Binding_Address_Override = true; @@ -699,20 +705,21 @@ static void set_broadcast_address(uint32_t net_address) #ifdef BACNET_IP_BROADCAST_USE_CLASSADDR long broadcast_address = 0; - if (IN_CLASSA(ntohl(net_address))) + if (IN_CLASSA(ntohl(net_address))) { broadcast_address = (ntohl(net_address) & ~IN_CLASSA_HOST) | IN_CLASSA_HOST; - else if (IN_CLASSB(ntohl(net_address))) + } else if (IN_CLASSB(ntohl(net_address))) { broadcast_address = (ntohl(net_address) & ~IN_CLASSB_HOST) | IN_CLASSB_HOST; - else if (IN_CLASSC(ntohl(net_address))) + } else if (IN_CLASSC(ntohl(net_address))) { broadcast_address = (ntohl(net_address) & ~IN_CLASSC_HOST) | IN_CLASSC_HOST; - else if (IN_CLASSD(ntohl(net_address))) + } else if (IN_CLASSD(ntohl(net_address))) { broadcast_address = (ntohl(net_address) & ~IN_CLASSD_HOST) | IN_CLASSD_HOST; - else + } else { broadcast_address = INADDR_BROADCAST; + } BIP_Broadcast_Addr.s_addr = htonl(broadcast_address); #else /* these are network byte order variables */ @@ -830,9 +837,11 @@ bool bip_init(char *ifname) } if (BIP_Debug) { fprintf(stderr, "BIP: Address: %s\n", inet_ntoa(BIP_Address)); - fprintf(stderr, "BIP: Broadcast Address: %s\n", + fprintf( + stderr, "BIP: Broadcast Address: %s\n", inet_ntoa(BIP_Broadcast_Addr)); - fprintf(stderr, "BIP: UDP Port: 0x%04X [%hu]\n", ntohs(BIP_Port), + fprintf( + stderr, "BIP: UDP Port: 0x%04X [%hu]\n", ntohs(BIP_Port), ntohs(BIP_Port)); fflush(stderr); } @@ -842,7 +851,8 @@ bool bip_init(char *ifname) memset(&(sin.sin_zero), '\0', sizeof(sin.sin_zero)); sin.sin_addr.s_addr = BIP_Address.s_addr; if (BIP_Debug) { - fprintf(stderr, "BIP: bind %s:%hu\n", inet_ntoa(sin.sin_addr), + fprintf( + stderr, "BIP: bind %s:%hu\n", inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); fflush(stderr); } @@ -863,7 +873,8 @@ bool bip_init(char *ifname) #endif } if (BIP_Debug) { - fprintf(stderr, "BIP: broadcast bind %s:%hu\n", inet_ntoa(sin.sin_addr), + fprintf( + stderr, "BIP: broadcast bind %s:%hu\n", inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); fflush(stderr); } diff --git a/ports/win32/bip6.c b/ports/win32/bip6.c index 870e45ae..3b78c9a9 100644 --- a/ports/win32/bip6.c +++ b/ports/win32/bip6.c @@ -348,7 +348,8 @@ bool bip6_get_broadcast_addr(BACNET_IP6_ADDRESS *addr) * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -int bip6_send_mpdu(const BACNET_IP6_ADDRESS *dest, const uint8_t *mtu, uint16_t mtu_len) +int bip6_send_mpdu( + const BACNET_IP6_ADDRESS *dest, const uint8_t *mtu, uint16_t mtu_len) { struct sockaddr_in6 bvlc_dest = { 0 }; uint16_t addr16[8]; diff --git a/ports/win32/datetime-init.c b/ports/win32/datetime-init.c index ff9c46a5..4f33a248 100644 --- a/ports/win32/datetime-init.c +++ b/ports/win32/datetime-init.c @@ -118,7 +118,8 @@ void datetime_timesync(BACNET_DATE *bdate, BACNET_TIME *btime, bool utc) * @param true if DST is enabled and active * @return true if local time was retrieved */ -bool datetime_local(BACNET_DATE *bdate, +bool datetime_local( + BACNET_DATE *bdate, BACNET_TIME *btime, int16_t *utc_offset_minutes, bool *dst_active) @@ -152,15 +153,17 @@ bool datetime_local(BACNET_DATE *bdate, * int tm_yday Day of year [0,365]. * int tm_isdst Daylight Savings flag. */ - datetime_set_date(bdate, (uint16_t)tblock->tm_year + 1900, + datetime_set_date( + bdate, (uint16_t)tblock->tm_year + 1900, (uint8_t)tblock->tm_mon + 1, (uint8_t)tblock->tm_mday); #if !defined(_MSC_VER) - datetime_set_time(btime, (uint8_t)tblock->tm_hour, - (uint8_t)tblock->tm_min, (uint8_t)tblock->tm_sec, - (uint8_t)(tv.tv_usec / 10000)); + datetime_set_time( + btime, (uint8_t)tblock->tm_hour, (uint8_t)tblock->tm_min, + (uint8_t)tblock->tm_sec, (uint8_t)(tv.tv_usec / 10000)); #else - datetime_set_time(btime, (uint8_t)tblock->tm_hour, - (uint8_t)tblock->tm_min, (uint8_t)tblock->tm_sec, 0); + datetime_set_time( + btime, (uint8_t)tblock->tm_hour, (uint8_t)tblock->tm_min, + (uint8_t)tblock->tm_sec, 0); #endif if (dst_active) { /* The value of tm_isdst is: diff --git a/ports/win32/dlmstp-mm.c b/ports/win32/dlmstp-mm.c index 33c95a38..5cdb7ceb 100644 --- a/ports/win32/dlmstp-mm.c +++ b/ports/win32/dlmstp-mm.c @@ -93,7 +93,8 @@ void dlmstp_cleanup(void) } /* returns number of bytes sent on success, zero on failure */ -int dlmstp_send_pdu(BACNET_ADDRESS *dest, /* destination address */ +int dlmstp_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ BACNET_NPDU_DATA *npdu_data, /* network information */ uint8_t *pdu, /* any data to be sent - may be null */ unsigned pdu_len) @@ -120,7 +121,8 @@ int dlmstp_send_pdu(BACNET_ADDRESS *dest, /* destination address */ return bytes_sent; } -uint16_t dlmstp_receive(BACNET_ADDRESS *src, /* source address */ +uint16_t dlmstp_receive( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t max_pdu, /* amount of space available in the PDU */ unsigned timeout) @@ -137,7 +139,8 @@ uint16_t dlmstp_receive(BACNET_ADDRESS *src, /* source address */ if (Receive_Packet.pdu_len) { MSTP_Packets++; if (src) { - memmove(src, &Receive_Packet.address, + memmove( + src, &Receive_Packet.address, sizeof(Receive_Packet.address)); } if (pdu) { @@ -198,8 +201,9 @@ static void dlmstp_master_fsm_task(void *pArg) dwMilliseconds = 0; break; } - if (dwMilliseconds) + if (dwMilliseconds) { WaitForSingleObject(Received_Frame_Flag, dwMilliseconds); + } MSTP_Master_Node_FSM(&MSTP_Port); } } @@ -236,10 +240,12 @@ uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port) if (!Receive_Packet.ready) { /* bounds check - maybe this should send an abort? */ pdu_len = mstp_port->DataLength; - if (pdu_len > sizeof(Receive_Packet.pdu)) + if (pdu_len > sizeof(Receive_Packet.pdu)) { pdu_len = sizeof(Receive_Packet.pdu); - memmove((void *)&Receive_Packet.pdu[0], - (void *)&mstp_port->InputBuffer[0], pdu_len); + } + memmove( + (void *)&Receive_Packet.pdu[0], (void *)&mstp_port->InputBuffer[0], + pdu_len); dlmstp_fill_bacnet_address( &Receive_Packet.address, mstp_port->SourceAddress); Receive_Packet.pdu_len = mstp_port->DataLength; @@ -252,8 +258,7 @@ uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port) /* for the MS/TP state machine to use for getting data to send */ /* Return: amount of PDU data */ -uint16_t MSTP_Get_Send( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Send(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ uint16_t pdu_len = 0; uint8_t destination = 0; /* destination address */ @@ -273,11 +278,11 @@ uint16_t MSTP_Get_Send( return 0; } /* convert the PDU into the MSTP Frame */ - pdu_len = - MSTP_Create_Frame(&mstp_port->OutputBuffer[0], /* <-- loading this */ - mstp_port->OutputBufferSize, Transmit_Packet.frame_type, - destination, mstp_port->This_Station, &Transmit_Packet.pdu[0], - Transmit_Packet.pdu_len); + pdu_len = MSTP_Create_Frame( + &mstp_port->OutputBuffer[0], /* <-- loading this */ + mstp_port->OutputBufferSize, Transmit_Packet.frame_type, destination, + mstp_port->This_Station, &Transmit_Packet.pdu[0], + Transmit_Packet.pdu_len); Transmit_Packet.ready = false; return pdu_len; @@ -291,13 +296,14 @@ uint16_t MSTP_Get_Send( */ void MSTP_Send_Frame( struct mstp_port_struct_t *mstp_port, - const uint8_t * buffer, + const uint8_t *buffer, uint16_t nbytes) { RS485_Send_Frame(mstp_port, buffer, nbytes); } -bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, +bool dlmstp_compare_data_expecting_reply( + const uint8_t *request_pdu, uint16_t request_pdu_len, uint8_t src_address, const uint8_t *reply_pdu, @@ -324,8 +330,9 @@ bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, /* decode the request data */ request.address.mac[0] = src_address; request.address.mac_len = 1; - offset = bacnet_npdu_decode(request_pdu, request_pdu_len, NULL, - &request.address, &request.npdu_data); + offset = bacnet_npdu_decode( + request_pdu, request_pdu_len, NULL, &request.address, + &request.npdu_data); if (request.npdu_data.network_layer_message) { return false; } @@ -335,10 +342,11 @@ bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, } request.invoke_id = request_pdu[offset + 2]; /* segmented message? */ - if (request_pdu[offset] & BIT(3)) + if (request_pdu[offset] & BIT(3)) { request.service_choice = request_pdu[offset + 5]; - else + } else { request.service_choice = request_pdu[offset + 3]; + } /* decode the reply data */ bacnet_address_copy(&reply.address, dest_address); offset = bacnet_npdu_decode( @@ -357,10 +365,11 @@ bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, case PDU_TYPE_COMPLEX_ACK: reply.invoke_id = reply_pdu[offset + 1]; /* segmented message? */ - if (reply_pdu[offset] & BIT(3)) + if (reply_pdu[offset] & BIT(3)) { reply.service_choice = reply_pdu[offset + 4]; - else + } else { reply.service_choice = reply_pdu[offset + 2]; + } break; case PDU_TYPE_ERROR: reply.invoke_id = reply_pdu[offset + 1]; @@ -406,8 +415,7 @@ bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, } /* Get the reply to a DATA_EXPECTING_REPLY frame, or nothing */ -uint16_t MSTP_Get_Reply( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Reply(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ uint16_t pdu_len = 0; /* return value */ uint8_t destination = 0; /* destination address */ @@ -427,18 +435,19 @@ uint16_t MSTP_Get_Reply( return 0; } /* is this the reply to the DER? */ - matched = dlmstp_compare_data_expecting_reply(&mstp_port->InputBuffer[0], - mstp_port->DataLength, mstp_port->SourceAddress, - &Transmit_Packet.pdu[0], Transmit_Packet.pdu_len, - &Transmit_Packet.address); - if (!matched) + matched = dlmstp_compare_data_expecting_reply( + &mstp_port->InputBuffer[0], mstp_port->DataLength, + mstp_port->SourceAddress, &Transmit_Packet.pdu[0], + Transmit_Packet.pdu_len, &Transmit_Packet.address); + if (!matched) { return 0; + } /* convert the PDU into the MSTP Frame */ - pdu_len = - MSTP_Create_Frame(&mstp_port->OutputBuffer[0], /* <-- loading this */ - mstp_port->OutputBufferSize, Transmit_Packet.frame_type, - destination, mstp_port->This_Station, &Transmit_Packet.pdu[0], - Transmit_Packet.pdu_len); + pdu_len = MSTP_Create_Frame( + &mstp_port->OutputBuffer[0], /* <-- loading this */ + mstp_port->OutputBufferSize, Transmit_Packet.frame_type, destination, + mstp_port->This_Station, &Transmit_Packet.pdu[0], + Transmit_Packet.pdu_len); Transmit_Packet.ready = false; return pdu_len; @@ -454,8 +463,9 @@ void dlmstp_set_mac_address(uint8_t mac_address) EEPROM_DEVICE_ADDRESS, mac_address, EEPROM_MSTP_MAC_ADDR); */ - if (mac_address > MSTP_Port.Nmax_master) + if (mac_address > MSTP_Port.Nmax_master) { dlmstp_set_max_master(mac_address); + } } return; @@ -571,8 +581,9 @@ bool dlmstp_init(char *ifname) Receive_Packet.ready = false; Receive_Packet.pdu_len = 0; Receive_Packet_Flag = CreateSemaphore(NULL, 0, 1, "dlmstpReceivePacket"); - if (Receive_Packet_Flag == NULL) + if (Receive_Packet_Flag == NULL) { exit(1); + } Received_Frame_Flag = CreateSemaphore(NULL, 0, 1, "dlsmtpReceiveFrame"); if (Received_Frame_Flag == NULL) { CloseHandle(Receive_Packet_Flag); @@ -651,7 +662,8 @@ bool dlmstp_init(char *ifname) #ifdef TEST_DLMSTP #include -void apdu_handler(BACNET_ADDRESS *src, /* source address */ +void apdu_handler( + BACNET_ADDRESS *src, /* source address */ uint8_t *apdu, /* APDU data */ uint16_t pdu_len) { /* for confirmed messages */ diff --git a/ports/win32/dlmstp.c b/ports/win32/dlmstp.c index 14d4cbe9..144396af 100644 --- a/ports/win32/dlmstp.c +++ b/ports/win32/dlmstp.c @@ -79,7 +79,8 @@ void dlmstp_cleanup(void) } /* returns number of bytes sent on success, zero on failure */ -int dlmstp_send_pdu(BACNET_ADDRESS *dest, /* destination address */ +int dlmstp_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ BACNET_NPDU_DATA *npdu_data, /* network information */ uint8_t *pdu, /* any data to be sent - may be null */ unsigned pdu_len) @@ -106,7 +107,8 @@ int dlmstp_send_pdu(BACNET_ADDRESS *dest, /* destination address */ return bytes_sent; } -uint16_t dlmstp_receive(BACNET_ADDRESS *src, /* source address */ +uint16_t dlmstp_receive( + BACNET_ADDRESS *src, /* source address */ uint8_t *pdu, /* PDU data */ uint16_t max_pdu, /* amount of space available in the PDU */ unsigned timeout) @@ -123,7 +125,8 @@ uint16_t dlmstp_receive(BACNET_ADDRESS *src, /* source address */ if (Receive_Packet.pdu_len) { MSTP_Packets++; if (src) { - memmove(src, &Receive_Packet.address, + memmove( + src, &Receive_Packet.address, sizeof(Receive_Packet.address)); } if (pdu) { @@ -184,9 +187,11 @@ static void dlmstp_master_fsm_task(void *pArg) dwMilliseconds = 0; break; } - if (dwMilliseconds) + if (dwMilliseconds) { WaitForSingleObject(Received_Frame_Flag, dwMilliseconds); - while (MSTP_Master_Node_FSM(&MSTP_Port)); + } + while (MSTP_Master_Node_FSM(&MSTP_Port)) + ; } } @@ -222,10 +227,12 @@ uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port) if (!Receive_Packet.ready) { /* bounds check - maybe this should send an abort? */ pdu_len = mstp_port->DataLength; - if (pdu_len > sizeof(Receive_Packet.pdu)) + if (pdu_len > sizeof(Receive_Packet.pdu)) { pdu_len = sizeof(Receive_Packet.pdu); - memmove((void *)&Receive_Packet.pdu[0], - (void *)&mstp_port->InputBuffer[0], pdu_len); + } + memmove( + (void *)&Receive_Packet.pdu[0], (void *)&mstp_port->InputBuffer[0], + pdu_len); dlmstp_fill_bacnet_address( &Receive_Packet.address, mstp_port->SourceAddress); Receive_Packet.pdu_len = mstp_port->DataLength; @@ -239,8 +246,7 @@ uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port) /* for the MS/TP state machine to use for getting data to send */ /* Return: amount of PDU data */ -uint16_t MSTP_Get_Send( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Send(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ uint16_t pdu_len = 0; uint8_t destination = 0; /* destination address */ @@ -259,11 +265,11 @@ uint16_t MSTP_Get_Send( return 0; } /* convert the PDU into the MSTP Frame */ - pdu_len = - MSTP_Create_Frame(&mstp_port->OutputBuffer[0], /* <-- loading this */ - mstp_port->OutputBufferSize, Transmit_Packet.frame_type, - destination, mstp_port->This_Station, &Transmit_Packet.pdu[0], - Transmit_Packet.pdu_len); + pdu_len = MSTP_Create_Frame( + &mstp_port->OutputBuffer[0], /* <-- loading this */ + mstp_port->OutputBufferSize, Transmit_Packet.frame_type, destination, + mstp_port->This_Station, &Transmit_Packet.pdu[0], + Transmit_Packet.pdu_len); Transmit_Packet.ready = false; return pdu_len; @@ -277,13 +283,14 @@ uint16_t MSTP_Get_Send( */ void MSTP_Send_Frame( struct mstp_port_struct_t *mstp_port, - const uint8_t * buffer, + const uint8_t *buffer, uint16_t nbytes) { RS485_Send_Frame(mstp_port, buffer, nbytes); } -static bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, +static bool dlmstp_compare_data_expecting_reply( + const uint8_t *request_pdu, uint16_t request_pdu_len, uint8_t src_address, const uint8_t *reply_pdu, @@ -310,8 +317,9 @@ static bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, /* decode the request data */ request.address.mac[0] = src_address; request.address.mac_len = 1; - offset = (uint16_t)bacnet_npdu_decode(request_pdu, request_pdu_len, NULL, - &request.address, &request.npdu_data); + offset = (uint16_t)bacnet_npdu_decode( + request_pdu, request_pdu_len, NULL, &request.address, + &request.npdu_data); if (request.npdu_data.network_layer_message) { return false; } @@ -321,10 +329,11 @@ static bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, } request.invoke_id = request_pdu[offset + 2]; /* segmented message? */ - if (request_pdu[offset] & BIT(3)) + if (request_pdu[offset] & BIT(3)) { request.service_choice = request_pdu[offset + 5]; - else + } else { request.service_choice = request_pdu[offset + 3]; + } /* decode the reply data */ bacnet_address_copy(&reply.address, dest_address); offset = (uint16_t)bacnet_npdu_decode( @@ -343,10 +352,11 @@ static bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, case PDU_TYPE_COMPLEX_ACK: reply.invoke_id = reply_pdu[offset + 1]; /* segmented message? */ - if (reply_pdu[offset] & BIT(3)) + if (reply_pdu[offset] & BIT(3)) { reply.service_choice = reply_pdu[offset + 4]; - else + } else { reply.service_choice = reply_pdu[offset + 2]; + } break; case PDU_TYPE_ERROR: reply.invoke_id = reply_pdu[offset + 1]; @@ -392,8 +402,7 @@ static bool dlmstp_compare_data_expecting_reply(const uint8_t *request_pdu, } /* Get the reply to a DATA_EXPECTING_REPLY frame, or nothing */ -uint16_t MSTP_Get_Reply( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Reply(struct mstp_port_struct_t *mstp_port, unsigned timeout) { /* milliseconds to wait for a packet */ uint16_t pdu_len = 0; /* return value */ uint8_t destination = 0; /* destination address */ @@ -413,18 +422,19 @@ uint16_t MSTP_Get_Reply( return 0; } /* is this the reply to the DER? */ - matched = dlmstp_compare_data_expecting_reply(&mstp_port->InputBuffer[0], - mstp_port->DataLength, mstp_port->SourceAddress, - &Transmit_Packet.pdu[0], Transmit_Packet.pdu_len, - &Transmit_Packet.address); - if (!matched) + matched = dlmstp_compare_data_expecting_reply( + &mstp_port->InputBuffer[0], mstp_port->DataLength, + mstp_port->SourceAddress, &Transmit_Packet.pdu[0], + Transmit_Packet.pdu_len, &Transmit_Packet.address); + if (!matched) { return 0; + } /* convert the PDU into the MSTP Frame */ - pdu_len = - MSTP_Create_Frame(&mstp_port->OutputBuffer[0], /* <-- loading this */ - mstp_port->OutputBufferSize, Transmit_Packet.frame_type, - destination, mstp_port->This_Station, &Transmit_Packet.pdu[0], - Transmit_Packet.pdu_len); + pdu_len = MSTP_Create_Frame( + &mstp_port->OutputBuffer[0], /* <-- loading this */ + mstp_port->OutputBufferSize, Transmit_Packet.frame_type, destination, + mstp_port->This_Station, &Transmit_Packet.pdu[0], + Transmit_Packet.pdu_len); Transmit_Packet.ready = false; return pdu_len; @@ -440,8 +450,9 @@ void dlmstp_set_mac_address(uint8_t mac_address) EEPROM_DEVICE_ADDRESS, mac_address, EEPROM_MSTP_MAC_ADDR); */ - if (mac_address > MSTP_Port.Nmax_master) + if (mac_address > MSTP_Port.Nmax_master) { dlmstp_set_max_master(mac_address); + } } return; @@ -556,8 +567,9 @@ bool dlmstp_init(char *ifname) Receive_Packet.ready = false; Receive_Packet.pdu_len = 0; Receive_Packet_Flag = CreateSemaphore(NULL, 0, 1, "dlmstpReceivePacket"); - if (Receive_Packet_Flag == NULL) + if (Receive_Packet_Flag == NULL) { exit(1); + } Received_Frame_Flag = CreateSemaphore(NULL, 0, 1, "dlsmtpReceiveFrame"); if (Received_Frame_Flag == NULL) { CloseHandle(Receive_Packet_Flag); @@ -608,7 +620,8 @@ bool dlmstp_init(char *ifname) #if PRINT_ENABLED fprintf(stderr, "MS/TP MAC: %02X\n", MSTP_Port.This_Station); fprintf(stderr, "MS/TP Max_Master: %02X\n", MSTP_Port.Nmax_master); - fprintf(stderr, "MS/TP Max_Info_Frames: %u\n", + fprintf( + stderr, "MS/TP Max_Info_Frames: %u\n", (unsigned)MSTP_Port.Nmax_info_frames); #endif hThread = _beginthread(dlmstp_receive_fsm_task, 4096, &arg_value); @@ -626,7 +639,8 @@ bool dlmstp_init(char *ifname) #ifdef TEST_DLMSTP #include -void apdu_handler(BACNET_ADDRESS *src, /* source address */ +void apdu_handler( + BACNET_ADDRESS *src, /* source address */ uint8_t *apdu, /* APDU data */ uint16_t pdu_len) { /* for confirmed messages */ diff --git a/ports/win32/ethernet.c b/ports/win32/ethernet.c index d9b004f9..da829da7 100644 --- a/ports/win32/ethernet.c +++ b/ports/win32/ethernet.c @@ -110,8 +110,9 @@ bool ethernet_init(char *if_name) int i; char msg[200]; - if (ethernet_valid()) + if (ethernet_valid()) { ethernet_cleanup(); + } /** * Find the interface user specified @@ -126,8 +127,9 @@ bool ethernet_init(char *if_name) } /* Scan the list printing every entry */ for (dev = pcap_all_if; dev; dev = dev->next) { - if (strcmp(if_name, dev->name) == 0) + if (strcmp(if_name, dev->name) == 0) { break; + } } pcap_freealldevs(pcap_all_if); /* we don't need it anymore */ if (dev == NULL) { @@ -161,8 +163,9 @@ bool ethernet_init(char *if_name) LogError("ethernet.c: error in PacketRequest()\n"); return false; } - for (i = 0; i < 6; ++i) + for (i = 0; i < 6; ++i) { Ethernet_MAC_Address[i] = pOidData->Data[i]; + } PacketCloseAdapter(lpAdapter); /** @@ -317,11 +320,13 @@ uint16_t ethernet_receive( msg, sizeof(), "ethernet.c: error in receiving packet: %s\n", pcap_geterr(pcap_eth802_fp)); return 0; - } else if (res == 0) + } else if (res == 0) { return 0; + } - if (header->len == 0 || header->caplen == 0) + if (header->len == 0 || header->caplen == 0) { return 0; + } /* the signature of an 802.2 BACnet packet */ if ((pkt_data[14] != 0x82) && (pkt_data[15] != 0x82)) { @@ -343,11 +348,13 @@ uint16_t ethernet_receive( (void)decode_unsigned16(&pkt_data[12], &pdu_len); pdu_len -= 3 /* DSAP, SSAP, LLC Control */; /* copy the buffer into the PDU */ - if (pdu_len < max_pdu) + if (pdu_len < max_pdu) { memmove(&pdu[0], &pkt_data[17], pdu_len); + } /* ignore packets that are too large */ - else + else { pdu_len = 0; + } return pdu_len; } diff --git a/ports/win32/main.c b/ports/win32/main.c index a186f4a9..707bd925 100644 --- a/ports/win32/main.c +++ b/ports/win32/main.c @@ -42,14 +42,17 @@ #include "bacnet/basic/object/bacfile.h" #endif -/** Static receive buffer, initialized with zeros by the C Library Startup Code. */ +/** Static receive buffer, initialized with zeros by the C Library Startup Code. + */ -static uint8_t Rx_Buf[MAX_MPDU + 16 /* Add a little safety margin to the buffer, - * so that in the rare case, the message - * would be filled up to MAX_MPDU and some - * decoding functions would overrun, these - * decoding functions will just end up in - * a safe field of static zeros. */] = { 0 }; +static uint8_t Rx_Buf + [MAX_MPDU + 16 /* Add a little safety margin to the buffer, + * so that in the rare case, the message + * would be filled up to MAX_MPDU and some + * decoding functions would overrun, these + * decoding functions will just end up in + * a safe field of static zeros. */ +] = { 0 }; /* send a whois to see who is on the network */ static bool Who_Is_Request = true; @@ -68,9 +71,10 @@ static void Read_Properties(void) Device Object note: you could just loop through all the properties in all the objects. */ - const int object_props[] = { PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, - PROP_OBJECT_TYPE, PROP_SYSTEM_STATUS, PROP_VENDOR_NAME, - PROP_VENDOR_IDENTIFIER, PROP_MODEL_NAME, PROP_FIRMWARE_REVISION, + const int object_props[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_SYSTEM_STATUS, PROP_VENDOR_NAME, PROP_VENDOR_IDENTIFIER, + PROP_MODEL_NAME, PROP_FIRMWARE_REVISION, PROP_APPLICATION_SOFTWARE_VERSION, PROP_PROTOCOL_VERSION, PROP_PROTOCOL_SERVICES_SUPPORTED, PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, PROP_MAX_APDU_LENGTH_ACCEPTED, PROP_SEGMENTATION_SUPPORTED, @@ -85,27 +89,31 @@ static void Read_Properties(void) /* some proprietary properties */ 514, 515, /* end of list */ - -1 }; + -1 + }; if (address_count()) { if (address_get_by_index(index, &device_id, &max_apdu, &src)) { - if (object_props[property] < 0) + if (object_props[property] < 0) { next_device = true; - else { + } else { status = Send_Read_Property_Request( device_id, /* destination device */ OBJECT_DEVICE, device_id, object_props[property], BACNET_ARRAY_ALL); - if (status) + if (status) { property++; + } } - } else + } else { next_device = true; + } if (next_device) { next_device = false; index++; - if (index >= MAX_ADDRESS_CACHE) + if (index >= MAX_ADDRESS_CACHE) { index = 0; + } property = 0; } } @@ -130,8 +138,9 @@ static void LocalIAmHandler( if (len != -1) { fprintf(stderr, " from %u!\n", device_id); address_add(device_id, max_apdu, src); - } else + } else { fprintf(stderr, "!\n"); + } return; } @@ -261,8 +270,9 @@ int main(int argc, char *argv[]) /* blink LEDs, Turn on or off outputs, etc */ /* wait for ESC from keyboard before quitting */ - if (kbhit() && (getch() == 0x1B)) + if (kbhit() && (getch() == 0x1B)) { break; + } } print_address_cache(); diff --git a/ports/win32/mstimer-init.c b/ports/win32/mstimer-init.c index 85c0b1b3..f7d41c22 100644 --- a/ports/win32/mstimer-init.c +++ b/ports/win32/mstimer-init.c @@ -49,7 +49,8 @@ void mstimer_init(void) /* configure for 1ms resolution - if possible */ Timer_Period = min(max(tc.wPeriodMin, 1L), tc.wPeriodMax); if (Timer_Period != 1L) { - fprintf(stderr, + fprintf( + stderr, "Failed to set timer to 1ms. " "Time period set to %ums\n", (unsigned)Timer_Period); diff --git a/ports/win32/rs485.c b/ports/win32/rs485.c index f21f62eb..954b1b37 100644 --- a/ports/win32/rs485.c +++ b/ports/win32/rs485.c @@ -137,8 +137,9 @@ void RS485_Print_Error(void) { LPVOID lpMsgBuf; - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, + GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL); MessageBox(NULL, lpMsgBuf, "GetLastError", MB_OK | MB_ICONINFORMATION); LocalFree(lpMsgBuf); @@ -237,8 +238,8 @@ static void RS485_Cleanup(void) *****************************************************************************/ void RS485_Initialize(void) { - RS485_Handle = CreateFile(RS485_Port_Name, GENERIC_READ | GENERIC_WRITE, 0, - 0, OPEN_EXISTING, + RS485_Handle = CreateFile( + RS485_Port_Name, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, /*FILE_FLAG_OVERLAPPED */ 0, 0); if (RS485_Handle == INVALID_HANDLE_VALUE) { fprintf(stderr, "RS485 unable to open %s\n", RS485_Port_Name); @@ -397,7 +398,7 @@ bool RS485_Set_Baud_Rate(uint32_t baud) /* Transmits a Frame on the wire */ void RS485_Send_Frame( struct mstp_port_struct_t *mstp_port, /* port specific data */ - const uint8_t *buffer, /* frame to send (up to 501 bytes of data) */ + const uint8_t *buffer, /* frame to send (up to 501 bytes of data) */ uint16_t nbytes) { /* number of bytes of data (up to 501) */ DWORD dwWritten = 0; @@ -407,12 +408,13 @@ void RS485_Send_Frame( uint8_t turnaround_time; baud = RS485_Get_Baud_Rate(); /* wait about 40 bit times since reception */ - if (baud == 9600) + if (baud == 9600) { turnaround_time = 4; - else if (baud == 19200) + } else if (baud == 19200) { turnaround_time = 2; - else + } else { turnaround_time = 2; + } while (mstp_port->SilenceTimer(NULL) < turnaround_time) { /* do nothing - wait for timer to increment */ }; @@ -465,8 +467,9 @@ void RS485_Print_Ports(void) for (i = 1; i < 256; i++) { if (RS485_Interface_Valid(i)) { /* note: format for Wireshark ExtCap */ - printf("interface {value=COM%u}" - "{display=BACnet MS/TP on COM%u}\n", + printf( + "interface {value=COM%u}" + "{display=BACnet MS/TP on COM%u}\n", i, i); } } diff --git a/ports/win32/rs485.h b/ports/win32/rs485.h index 4d164051..cd6697ff 100644 --- a/ports/win32/rs485.h +++ b/ports/win32/rs485.h @@ -16,45 +16,36 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void RS485_Set_Interface( - char *ifname); - BACNET_STACK_EXPORT - const char *RS485_Interface( - void); +BACNET_STACK_EXPORT +void RS485_Set_Interface(char *ifname); +BACNET_STACK_EXPORT +const char *RS485_Interface(void); - BACNET_STACK_EXPORT - void RS485_Initialize( - void); +BACNET_STACK_EXPORT +void RS485_Initialize(void); - BACNET_STACK_EXPORT - void RS485_Send_Frame( - struct mstp_port_struct_t *mstp_port, /* port specific data */ - const uint8_t * buffer, /* frame to send (up to 501 bytes of data) */ - uint16_t nbytes); /* number of bytes of data (up to 501) */ +BACNET_STACK_EXPORT +void RS485_Send_Frame( + struct mstp_port_struct_t *mstp_port, /* port specific data */ + const uint8_t *buffer, /* frame to send (up to 501 bytes of data) */ + uint16_t nbytes); /* number of bytes of data (up to 501) */ - BACNET_STACK_EXPORT - void RS485_Check_UART_Data( - struct mstp_port_struct_t *mstp_port); /* port specific data */ +BACNET_STACK_EXPORT +void RS485_Check_UART_Data( + struct mstp_port_struct_t *mstp_port); /* port specific data */ - BACNET_STACK_EXPORT - uint32_t RS485_Get_Baud_Rate( - void); - BACNET_STACK_EXPORT - bool RS485_Set_Baud_Rate( - uint32_t baud); +BACNET_STACK_EXPORT +uint32_t RS485_Get_Baud_Rate(void); +BACNET_STACK_EXPORT +bool RS485_Set_Baud_Rate(uint32_t baud); - BACNET_STACK_EXPORT - void RS485_Print_Error( - void); - - BACNET_STACK_EXPORT - bool RS485_Interface_Valid( - unsigned port_number); - BACNET_STACK_EXPORT - void RS485_Print_Ports( - void); +BACNET_STACK_EXPORT +void RS485_Print_Error(void); +BACNET_STACK_EXPORT +bool RS485_Interface_Valid(unsigned port_number); +BACNET_STACK_EXPORT +void RS485_Print_Ports(void); #ifdef __cplusplus } diff --git a/src/bacnet/abort.c b/src/bacnet/abort.c index 15f82f0c..123f42c7 100644 --- a/src/bacnet/abort.c +++ b/src/bacnet/abort.c @@ -214,7 +214,10 @@ int abort_encode_apdu( * @return Total length of the apdu, typically 2 on success, zero otherwise. */ int abort_decode_service_request( - const uint8_t *apdu, unsigned apdu_len, uint8_t *invoke_id, uint8_t *abort_reason) + const uint8_t *apdu, + unsigned apdu_len, + uint8_t *invoke_id, + uint8_t *abort_reason) { int len = 0; diff --git a/src/bacnet/abort.h b/src/bacnet/abort.h index 3745e53f..09de0c2d 100644 --- a/src/bacnet/abort.h +++ b/src/bacnet/abort.h @@ -18,29 +18,23 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - BACNET_ABORT_REASON abort_convert_error_code( - BACNET_ERROR_CODE error_code); - BACNET_STACK_EXPORT - bool abort_valid_error_code( - BACNET_ERROR_CODE error_code); - BACNET_STACK_EXPORT - BACNET_ERROR_CODE abort_convert_to_error_code( - BACNET_ABORT_REASON abort_code); +BACNET_STACK_EXPORT +BACNET_ABORT_REASON abort_convert_error_code(BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +bool abort_valid_error_code(BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +BACNET_ERROR_CODE abort_convert_to_error_code(BACNET_ABORT_REASON abort_code); - BACNET_STACK_EXPORT - int abort_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - uint8_t abort_reason, - bool server); +BACNET_STACK_EXPORT +int abort_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, uint8_t abort_reason, bool server); - BACNET_STACK_EXPORT - int abort_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - uint8_t * invoke_id, - uint8_t * abort_reason); +BACNET_STACK_EXPORT +int abort_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + uint8_t *invoke_id, + uint8_t *abort_reason); #ifdef __cplusplus } diff --git a/src/bacnet/access_rule.h b/src/bacnet/access_rule.h index 33b9e23c..efd84584 100644 --- a/src/bacnet/access_rule.h +++ b/src/bacnet/access_rule.h @@ -36,29 +36,20 @@ typedef struct { bool enable; } BACNET_ACCESS_RULE; - #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bacapp_encode_access_rule( - uint8_t * apdu, - const BACNET_ACCESS_RULE * rule); - BACNET_STACK_EXPORT - int bacapp_encode_context_access_rule( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_ACCESS_RULE * rule); - BACNET_STACK_EXPORT - int bacapp_decode_access_rule( - const uint8_t * apdu, - BACNET_ACCESS_RULE * rule); - BACNET_STACK_EXPORT - int bacapp_decode_context_access_rule( - const uint8_t * apdu, - uint8_t tag_number, - BACNET_ACCESS_RULE * rule); +BACNET_STACK_EXPORT +int bacapp_encode_access_rule(uint8_t *apdu, const BACNET_ACCESS_RULE *rule); +BACNET_STACK_EXPORT +int bacapp_encode_context_access_rule( + uint8_t *apdu, uint8_t tag_number, const BACNET_ACCESS_RULE *rule); +BACNET_STACK_EXPORT +int bacapp_decode_access_rule(const uint8_t *apdu, BACNET_ACCESS_RULE *rule); +BACNET_STACK_EXPORT +int bacapp_decode_context_access_rule( + const uint8_t *apdu, uint8_t tag_number, BACNET_ACCESS_RULE *rule); #ifdef __cplusplus } diff --git a/src/bacnet/alarm_ack.c b/src/bacnet/alarm_ack.c index 1393945d..8b5cd833 100644 --- a/src/bacnet/alarm_ack.c +++ b/src/bacnet/alarm_ack.c @@ -54,7 +54,8 @@ int alarm_ack_encode_apdu( * @param data Pointer to the service data used for encoding values * @return number of bytes encoded */ -int alarm_ack_encode_service_request(uint8_t *apdu, const BACNET_ALARM_ACK_DATA *data) +int alarm_ack_encode_service_request( + uint8_t *apdu, const BACNET_ALARM_ACK_DATA *data) { int len = 0; /* length of each encoding */ int apdu_len = 0; /* total length of the apdu, return value */ @@ -67,7 +68,8 @@ int alarm_ack_encode_service_request(uint8_t *apdu, const BACNET_ALARM_ACK_DATA if (apdu) { apdu += len; } - len = encode_context_object_id(apdu, 1, data->eventObjectIdentifier.type, + len = encode_context_object_id( + apdu, 1, data->eventObjectIdentifier.type, data->eventObjectIdentifier.instance); apdu_len += len; if (apdu) { @@ -102,9 +104,7 @@ int alarm_ack_encode_service_request(uint8_t *apdu, const BACNET_ALARM_ACK_DATA * @return number of bytes encoded, or zero if unable to encode or too large */ size_t bacnet_acknowledge_alarm_info_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_ALARM_ACK_DATA *data) + uint8_t *apdu, size_t apdu_size, const BACNET_ALARM_ACK_DATA *data) { size_t apdu_len = 0; /* total length of the apdu, return value */ @@ -116,7 +116,6 @@ size_t bacnet_acknowledge_alarm_info_request_encode( } return apdu_len; - } /** diff --git a/src/bacnet/alarm_ack.h b/src/bacnet/alarm_ack.h index 5c67e0c7..f00fd936 100644 --- a/src/bacnet/alarm_ack.h +++ b/src/bacnet/alarm_ack.h @@ -29,37 +29,28 @@ typedef struct BACnetAcknowledgeAlarmInfo { /* return +1 if alarm was acknowledged return -1 if any error occurred return -2 abort */ -typedef int ( - *alarm_ack_function) ( - BACNET_ALARM_ACK_DATA * alarmack_data, - BACNET_ERROR_CODE * error_code); +typedef int (*alarm_ack_function)( + BACNET_ALARM_ACK_DATA *alarmack_data, BACNET_ERROR_CODE *error_code); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int alarm_ack_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_ALARM_ACK_DATA * data); +BACNET_STACK_EXPORT +int alarm_ack_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_ALARM_ACK_DATA *data); - BACNET_STACK_EXPORT - int alarm_ack_encode_service_request( - uint8_t * apdu, - const BACNET_ALARM_ACK_DATA * data); +BACNET_STACK_EXPORT +int alarm_ack_encode_service_request( + uint8_t *apdu, const BACNET_ALARM_ACK_DATA *data); - BACNET_STACK_EXPORT - size_t bacnet_acknowledge_alarm_info_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_ALARM_ACK_DATA *data); +BACNET_STACK_EXPORT +size_t bacnet_acknowledge_alarm_info_request_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_ALARM_ACK_DATA *data); - BACNET_STACK_EXPORT - int alarm_ack_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_ALARM_ACK_DATA * data); +BACNET_STACK_EXPORT +int alarm_ack_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_ALARM_ACK_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/arf.c b/src/bacnet/arf.c index ac586385..ba8ff003 100644 --- a/src/bacnet/arf.c +++ b/src/bacnet/arf.c @@ -33,7 +33,8 @@ * @param data Pointer to the service data used for encoding values * @return number of bytes encoded */ -int arf_service_encode_apdu(uint8_t *apdu, const BACNET_ATOMIC_READ_FILE_DATA *data) +int arf_service_encode_apdu( + uint8_t *apdu, const BACNET_ATOMIC_READ_FILE_DATA *data) { int apdu_len = 0; /* total length of the apdu, return value */ int len = 0; @@ -269,7 +270,8 @@ int arf_decode_service_request( * or NULL for length * @return number of bytes decoded, or BACNET_STATUS_ERROR on error */ -int arf_decode_apdu(const uint8_t *apdu, +int arf_decode_apdu( + const uint8_t *apdu, unsigned apdu_size, uint8_t *invoke_id, BACNET_ATOMIC_READ_FILE_DATA *data) @@ -560,7 +562,8 @@ int arf_ack_decode_service_request( * or NULL for length * @return number of bytes decoded, or BACNET_STATUS_ERROR on error */ -int arf_ack_decode_apdu(const uint8_t *apdu, +int arf_ack_decode_apdu( + const uint8_t *apdu, unsigned apdu_size, uint8_t *invoke_id, BACNET_ATOMIC_READ_FILE_DATA *data) diff --git a/src/bacnet/arf.h b/src/bacnet/arf.h index 0b76583f..25a9cfa3 100644 --- a/src/bacnet/arf.h +++ b/src/bacnet/arf.h @@ -45,61 +45,49 @@ extern "C" { /* Atomic Read File */ /* encode service */ - BACNET_STACK_EXPORT - int arf_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_ATOMIC_READ_FILE_DATA * data); - BACNET_STACK_EXPORT - int arf_service_encode_apdu( - uint8_t *apdu, - const BACNET_ATOMIC_READ_FILE_DATA *data); - BACNET_STACK_EXPORT - size_t atomicreadfile_service_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +int arf_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +int arf_service_encode_apdu( + uint8_t *apdu, const BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +size_t atomicreadfile_service_request_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_ATOMIC_READ_FILE_DATA *data); /* decode the service request only */ - BACNET_STACK_EXPORT - int arf_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_ATOMIC_READ_FILE_DATA * data); +BACNET_STACK_EXPORT +int arf_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_ATOMIC_READ_FILE_DATA *data); - BACNET_STACK_EXPORT - int arf_decode_apdu( - const uint8_t * apdu, - unsigned apdu_len, - uint8_t * invoke_id, - BACNET_ATOMIC_READ_FILE_DATA * data); +BACNET_STACK_EXPORT +int arf_decode_apdu( + const uint8_t *apdu, + unsigned apdu_len, + uint8_t *invoke_id, + BACNET_ATOMIC_READ_FILE_DATA *data); /* Atomic Read File Ack */ /* encode service */ - BACNET_STACK_EXPORT - int arf_ack_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_ATOMIC_READ_FILE_DATA * data); - BACNET_STACK_EXPORT - int arf_ack_service_encode_apdu( - uint8_t *apdu, - const BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +int arf_ack_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +int arf_ack_service_encode_apdu( + uint8_t *apdu, const BACNET_ATOMIC_READ_FILE_DATA *data); /* decode the service request only */ - BACNET_STACK_EXPORT - int arf_ack_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_ATOMIC_READ_FILE_DATA * data); +BACNET_STACK_EXPORT +int arf_ack_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_ATOMIC_READ_FILE_DATA *data); - BACNET_STACK_EXPORT - int arf_ack_decode_apdu( - const uint8_t * apdu, - unsigned apdu_len, - uint8_t * invoke_id, - BACNET_ATOMIC_READ_FILE_DATA * data); +BACNET_STACK_EXPORT +int arf_ack_decode_apdu( + const uint8_t *apdu, + unsigned apdu_len, + uint8_t *invoke_id, + BACNET_ATOMIC_READ_FILE_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/assigned_access_rights.h b/src/bacnet/assigned_access_rights.h index 8f9d7386..5d46cc99 100644 --- a/src/bacnet/assigned_access_rights.h +++ b/src/bacnet/assigned_access_rights.h @@ -25,24 +25,18 @@ typedef struct BACnetAssignedAccessRights { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bacapp_encode_assigned_access_rights( - uint8_t * apdu, - const BACNET_ASSIGNED_ACCESS_RIGHTS * aar); - BACNET_STACK_EXPORT - int bacapp_encode_context_assigned_access_rights( - uint8_t * apdu, - uint8_t tag, - const BACNET_ASSIGNED_ACCESS_RIGHTS * aar); - BACNET_STACK_EXPORT - int bacapp_decode_assigned_access_rights( - const uint8_t * apdu, - BACNET_ASSIGNED_ACCESS_RIGHTS * aar); - BACNET_STACK_EXPORT - int bacapp_decode_context_assigned_access_rights( - const uint8_t * apdu, - uint8_t tag, - BACNET_ASSIGNED_ACCESS_RIGHTS * aar); +BACNET_STACK_EXPORT +int bacapp_encode_assigned_access_rights( + uint8_t *apdu, const BACNET_ASSIGNED_ACCESS_RIGHTS *aar); +BACNET_STACK_EXPORT +int bacapp_encode_context_assigned_access_rights( + uint8_t *apdu, uint8_t tag, const BACNET_ASSIGNED_ACCESS_RIGHTS *aar); +BACNET_STACK_EXPORT +int bacapp_decode_assigned_access_rights( + const uint8_t *apdu, BACNET_ASSIGNED_ACCESS_RIGHTS *aar); +BACNET_STACK_EXPORT +int bacapp_decode_context_assigned_access_rights( + const uint8_t *apdu, uint8_t tag, BACNET_ASSIGNED_ACCESS_RIGHTS *aar); #ifdef __cplusplus } diff --git a/src/bacnet/authentication_factor.h b/src/bacnet/authentication_factor.h index b5c7ff60..1eae77c5 100644 --- a/src/bacnet/authentication_factor.h +++ b/src/bacnet/authentication_factor.h @@ -25,24 +25,18 @@ typedef struct BACnetAuthenticationFactor { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bacapp_encode_authentication_factor( - uint8_t * apdu, - const BACNET_AUTHENTICATION_FACTOR * af); - BACNET_STACK_EXPORT - int bacapp_encode_context_authentication_factor( - uint8_t * apdu, - uint8_t tag, - const BACNET_AUTHENTICATION_FACTOR * af); - BACNET_STACK_EXPORT - int bacapp_decode_authentication_factor( - const uint8_t * apdu, - BACNET_AUTHENTICATION_FACTOR * af); - BACNET_STACK_EXPORT - int bacapp_decode_context_authentication_factor( - const uint8_t * apdu, - uint8_t tag, - BACNET_AUTHENTICATION_FACTOR * af); +BACNET_STACK_EXPORT +int bacapp_encode_authentication_factor( + uint8_t *apdu, const BACNET_AUTHENTICATION_FACTOR *af); +BACNET_STACK_EXPORT +int bacapp_encode_context_authentication_factor( + uint8_t *apdu, uint8_t tag, const BACNET_AUTHENTICATION_FACTOR *af); +BACNET_STACK_EXPORT +int bacapp_decode_authentication_factor( + const uint8_t *apdu, BACNET_AUTHENTICATION_FACTOR *af); +BACNET_STACK_EXPORT +int bacapp_decode_context_authentication_factor( + const uint8_t *apdu, uint8_t tag, BACNET_AUTHENTICATION_FACTOR *af); #ifdef __cplusplus } diff --git a/src/bacnet/authentication_factor_format.h b/src/bacnet/authentication_factor_format.h index 5be7fc11..5611b201 100644 --- a/src/bacnet/authentication_factor_format.h +++ b/src/bacnet/authentication_factor_format.h @@ -22,24 +22,22 @@ typedef struct BACnetAuthenticationFactorFormat { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bacapp_encode_authentication_factor_format( - uint8_t * apdu, - const BACNET_AUTHENTICATION_FACTOR_FORMAT * aff); - BACNET_STACK_EXPORT - int bacapp_encode_context_authentication_factor_format( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_AUTHENTICATION_FACTOR_FORMAT * aff); - BACNET_STACK_EXPORT - int bacapp_decode_authentication_factor_format( - const uint8_t * apdu, - BACNET_AUTHENTICATION_FACTOR_FORMAT * aff); - BACNET_STACK_EXPORT - int bacapp_decode_context_authentication_factor_format( - const uint8_t * apdu, - uint8_t tag_number, - BACNET_AUTHENTICATION_FACTOR_FORMAT * aff); +BACNET_STACK_EXPORT +int bacapp_encode_authentication_factor_format( + uint8_t *apdu, const BACNET_AUTHENTICATION_FACTOR_FORMAT *aff); +BACNET_STACK_EXPORT +int bacapp_encode_context_authentication_factor_format( + uint8_t *apdu, + uint8_t tag_number, + const BACNET_AUTHENTICATION_FACTOR_FORMAT *aff); +BACNET_STACK_EXPORT +int bacapp_decode_authentication_factor_format( + const uint8_t *apdu, BACNET_AUTHENTICATION_FACTOR_FORMAT *aff); +BACNET_STACK_EXPORT +int bacapp_decode_context_authentication_factor_format( + const uint8_t *apdu, + uint8_t tag_number, + BACNET_AUTHENTICATION_FACTOR_FORMAT *aff); #ifdef __cplusplus } diff --git a/src/bacnet/awf.c b/src/bacnet/awf.c index 7f619dab..ad822974 100644 --- a/src/bacnet/awf.c +++ b/src/bacnet/awf.c @@ -4,7 +4,7 @@ * @author Steve Karg * @date 2005 * @copyright SPDX-License-Identifier: GPL-2.0-or-later WITH GCC-exception-2.0 -*/ + */ #include /* BACnet Stack defines - first */ #include "bacnet/bacdef.h" @@ -34,7 +34,8 @@ * @param data Pointer to the service data used for encoding values * @return number of bytes encoded */ -int awf_service_encode_apdu(uint8_t *apdu, const BACNET_ATOMIC_WRITE_FILE_DATA *data) +int awf_service_encode_apdu( + uint8_t *apdu, const BACNET_ATOMIC_WRITE_FILE_DATA *data) { int apdu_len = 0; /* total length of the apdu, return value */ int len = 0; @@ -180,7 +181,9 @@ int awf_encode_apdu( * @return number of bytes decoded or BACNET_STATUS_ERROR on error. */ int awf_decode_service_request( - const uint8_t *apdu, unsigned apdu_size, BACNET_ATOMIC_WRITE_FILE_DATA *data) + const uint8_t *apdu, + unsigned apdu_size, + BACNET_ATOMIC_WRITE_FILE_DATA *data) { /* return value */ int apdu_len = 0; @@ -299,7 +302,8 @@ int awf_decode_service_request( * or NULL for length * @return number of bytes decoded, or BACNET_STATUS_ERROR on error */ -int awf_decode_apdu(const uint8_t *apdu, +int awf_decode_apdu( + const uint8_t *apdu, unsigned apdu_size, uint8_t *invoke_id, BACNET_ATOMIC_WRITE_FILE_DATA *data) @@ -410,7 +414,9 @@ int awf_ack_encode_apdu( * @return number of bytes encoded or BACNET_STATUS_ERROR on error. */ int awf_ack_decode_service_request( - const uint8_t *apdu, unsigned apdu_size, BACNET_ATOMIC_WRITE_FILE_DATA *data) + const uint8_t *apdu, + unsigned apdu_size, + BACNET_ATOMIC_WRITE_FILE_DATA *data) { int len = 0, apdu_len = 0; int32_t signed_integer; @@ -463,7 +469,8 @@ int awf_ack_decode_service_request( * or NULL for length * @return number of bytes decoded, or BACNET_STATUS_ERROR on error */ -int awf_ack_decode_apdu(const uint8_t *apdu, +int awf_ack_decode_apdu( + const uint8_t *apdu, unsigned apdu_size, uint8_t *invoke_id, BACNET_ATOMIC_WRITE_FILE_DATA *data) diff --git a/src/bacnet/awf.h b/src/bacnet/awf.h index 1736e1f4..efccf6fd 100644 --- a/src/bacnet/awf.h +++ b/src/bacnet/awf.h @@ -39,55 +39,51 @@ typedef struct BACnet_Atomic_Write_File_Data { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int awf_service_encode_apdu( - uint8_t *apdu, - const BACNET_ATOMIC_WRITE_FILE_DATA *data); - BACNET_STACK_EXPORT - int atomicwritefile_service_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_ATOMIC_WRITE_FILE_DATA *data); +BACNET_STACK_EXPORT +int awf_service_encode_apdu( + uint8_t *apdu, const BACNET_ATOMIC_WRITE_FILE_DATA *data); +BACNET_STACK_EXPORT +int atomicwritefile_service_request_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_ATOMIC_WRITE_FILE_DATA *data); - BACNET_STACK_EXPORT - int awf_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_ATOMIC_WRITE_FILE_DATA * data); +BACNET_STACK_EXPORT +int awf_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_ATOMIC_WRITE_FILE_DATA *data); - BACNET_STACK_EXPORT - int awf_decode_service_request( - const uint8_t * apdu, - unsigned apdu_size, - BACNET_ATOMIC_WRITE_FILE_DATA * data); - BACNET_STACK_EXPORT - int awf_decode_apdu( - const uint8_t * apdu, - unsigned apdu_size, - uint8_t * invoke_id, - BACNET_ATOMIC_WRITE_FILE_DATA * data); +BACNET_STACK_EXPORT +int awf_decode_service_request( + const uint8_t *apdu, + unsigned apdu_size, + BACNET_ATOMIC_WRITE_FILE_DATA *data); +BACNET_STACK_EXPORT +int awf_decode_apdu( + const uint8_t *apdu, + unsigned apdu_size, + uint8_t *invoke_id, + BACNET_ATOMIC_WRITE_FILE_DATA *data); - BACNET_STACK_EXPORT - int awf_ack_service_encode_apdu( - uint8_t *apdu, - const BACNET_ATOMIC_WRITE_FILE_DATA *data); - BACNET_STACK_EXPORT - int awf_ack_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_ATOMIC_WRITE_FILE_DATA * data); +BACNET_STACK_EXPORT +int awf_ack_service_encode_apdu( + uint8_t *apdu, const BACNET_ATOMIC_WRITE_FILE_DATA *data); +BACNET_STACK_EXPORT +int awf_ack_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_ATOMIC_WRITE_FILE_DATA *data); - BACNET_STACK_EXPORT - int awf_ack_decode_service_request( - const uint8_t * apdu, - unsigned apdu_size, - BACNET_ATOMIC_WRITE_FILE_DATA * data); - BACNET_STACK_EXPORT - int awf_ack_decode_apdu( - const uint8_t * apdu, - unsigned apdu_size, - uint8_t * invoke_id, - BACNET_ATOMIC_WRITE_FILE_DATA * data); +BACNET_STACK_EXPORT +int awf_ack_decode_service_request( + const uint8_t *apdu, + unsigned apdu_size, + BACNET_ATOMIC_WRITE_FILE_DATA *data); +BACNET_STACK_EXPORT +int awf_ack_decode_apdu( + const uint8_t *apdu, + unsigned apdu_size, + uint8_t *invoke_id, + BACNET_ATOMIC_WRITE_FILE_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/bacaction.c b/src/bacnet/bacaction.c index 5e585097..c333e67e 100644 --- a/src/bacnet/bacaction.c +++ b/src/bacnet/bacaction.c @@ -85,7 +85,9 @@ int bacnet_action_property_value_encode( * @return number of bytes encoded */ int bacnet_action_property_value_decode( - const uint8_t *apdu, uint32_t apdu_size, BACNET_ACTION_PROPERTY_VALUE *value) + const uint8_t *apdu, + uint32_t apdu_size, + BACNET_ACTION_PROPERTY_VALUE *value) { int len = 0; int apdu_len = 0; diff --git a/src/bacnet/bacaddr.c b/src/bacnet/bacaddr.c index 69308219..1e9c3927 100644 --- a/src/bacnet/bacaddr.c +++ b/src/bacnet/bacaddr.c @@ -95,7 +95,8 @@ bool bacnet_address_same(const BACNET_ADDRESS *dest, const BACNET_ADDRESS *src) * @param adr - #BACNET_MAC_ADDRESS behind the remote network * @return true if configured */ -bool bacnet_address_init(BACNET_ADDRESS *dest, +bool bacnet_address_init( + BACNET_ADDRESS *dest, const BACNET_MAC_ADDRESS *mac, uint16_t dnet, const BACNET_MAC_ADDRESS *adr) @@ -222,8 +223,9 @@ bool bacnet_address_mac_from_ascii(BACNET_MAC_ADDRESS *mac, const char *arg) mac->len = 6; status = true; } else { - c = sscanf(arg, "%2x:%2x:%2x:%2x:%2x:%2x", &a[0], &a[1], &a[2], &a[3], - &a[4], &a[5]); + c = sscanf( + arg, "%2x:%2x:%2x:%2x:%2x:%2x", &a[0], &a[1], &a[2], &a[3], &a[4], + &a[5]); if (c > 0) { for (i = 0; i < c; i++) { @@ -306,7 +308,8 @@ int bacnet_address_decode( * @param value - parameter to store the value after decoding * @return length of the APDU buffer decoded, or BACNET_STATUS_ERROR */ -int bacnet_address_context_decode(const uint8_t *apdu, +int bacnet_address_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_ADDRESS *value) diff --git a/src/bacnet/bacaddr.h b/src/bacnet/bacaddr.h index dd662738..ba84c4a3 100644 --- a/src/bacnet/bacaddr.h +++ b/src/bacnet/bacaddr.h @@ -21,10 +21,10 @@ extern "C" { BACNET_STACK_EXPORT void bacnet_address_copy(BACNET_ADDRESS *dest, const BACNET_ADDRESS *src); BACNET_STACK_EXPORT -bool bacnet_address_same( - const BACNET_ADDRESS *dest, const BACNET_ADDRESS *src); +bool bacnet_address_same(const BACNET_ADDRESS *dest, const BACNET_ADDRESS *src); BACNET_STACK_EXPORT -bool bacnet_address_init(BACNET_ADDRESS *dest, +bool bacnet_address_init( + BACNET_ADDRESS *dest, const BACNET_MAC_ADDRESS *mac, uint16_t dnet, const BACNET_MAC_ADDRESS *adr); @@ -42,7 +42,8 @@ BACNET_STACK_EXPORT int bacnet_address_decode( const uint8_t *apdu, uint32_t adpu_size, BACNET_ADDRESS *value); BACNET_STACK_EXPORT -int bacnet_address_context_decode(const uint8_t *apdu, +int bacnet_address_context_decode( + const uint8_t *apdu, uint32_t adpu_size, uint8_t tag_number, BACNET_ADDRESS *value); diff --git a/src/bacnet/bacapp.c b/src/bacnet/bacapp.c index 2351d773..1988867f 100644 --- a/src/bacnet/bacapp.c +++ b/src/bacnet/bacapp.c @@ -119,7 +119,8 @@ bacnet_scale_decode(const uint8_t *apdu, size_t apdu_size, BACNET_SCALE *value) #endif #if defined(BACAPP_SCALE) -static bool bacnet_scale_same(const BACNET_SCALE *value1, const BACNET_SCALE *value2) +static bool +bacnet_scale_same(const BACNET_SCALE *value1, const BACNET_SCALE *value2) { bool status = false; @@ -158,7 +159,8 @@ static bool bacnet_scale_same(const BACNET_SCALE *value1, const BACNET_SCALE *va * @param value - value to encode * @return number of bytes encoded */ -static int bacnet_shed_level_encode(uint8_t *apdu, const BACNET_SHED_LEVEL *value) +static int +bacnet_shed_level_encode(uint8_t *apdu, const BACNET_SHED_LEVEL *value) { int apdu_len = 0; @@ -167,16 +169,13 @@ static int bacnet_shed_level_encode(uint8_t *apdu, const BACNET_SHED_LEVEL *valu } switch (value->type) { case BACNET_SHED_TYPE_PERCENT: - apdu_len = encode_context_unsigned(apdu, 0, - value->value.percent); + apdu_len = encode_context_unsigned(apdu, 0, value->value.percent); break; case BACNET_SHED_TYPE_AMOUNT: - apdu_len = encode_context_real(apdu, 2, - value->value.amount); + apdu_len = encode_context_real(apdu, 2, value->value.amount); break; case BACNET_SHED_TYPE_LEVEL: - apdu_len = encode_context_unsigned(apdu, 1, - value->value.level); + apdu_len = encode_context_unsigned(apdu, 1, value->value.level); break; default: break; @@ -201,8 +200,8 @@ static int bacnet_shed_level_encode(uint8_t *apdu, const BACNET_SHED_LEVEL *valu * @param value - value to encode * @return number of bytes decoded, or BACNET_STATUS_ERROR on error */ -static int -bacnet_shed_level_decode(const uint8_t *apdu, size_t apdu_size, BACNET_SHED_LEVEL *value) +static int bacnet_shed_level_decode( + const uint8_t *apdu, size_t apdu_size, BACNET_SHED_LEVEL *value) { int apdu_len = 0; BACNET_TAG tag = { 0 }; @@ -253,8 +252,8 @@ bacnet_shed_level_decode(const uint8_t *apdu, size_t apdu_size, BACNET_SHED_LEVE #endif #if defined(BACAPP_SHED_LEVEL) -static bool -bacnet_shed_level_same(const BACNET_SHED_LEVEL *value1, const BACNET_SHED_LEVEL *value2) +static bool bacnet_shed_level_same( + const BACNET_SHED_LEVEL *value1, const BACNET_SHED_LEVEL *value2) { bool status = false; @@ -500,8 +499,8 @@ int bacapp_encode_application_data( #if defined(BACAPP_SHED_LEVEL) case BACNET_APPLICATION_TAG_SHED_LEVEL: /* BACnetShedLevel */ - apdu_len = bacnet_shed_level_encode(apdu, - &value->type.Shed_Level); + apdu_len = + bacnet_shed_level_encode(apdu, &value->type.Shed_Level); break; #endif default: @@ -665,7 +664,9 @@ int bacapp_decode_data( * BACNET_STATUS_ERROR */ int bacapp_decode_application_data( - const uint8_t *apdu, uint32_t apdu_size, BACNET_APPLICATION_DATA_VALUE *value) + const uint8_t *apdu, + uint32_t apdu_size, + BACNET_APPLICATION_DATA_VALUE *value) { int len = 0; int apdu_len = 0; @@ -788,14 +789,14 @@ int bacapp_decode_application_data_len(const uint8_t *apdu, unsigned apdu_size) int len = 0; int tag_len = 0; int decode_len = 0; - BACNET_TAG tag = {0}; + BACNET_TAG tag = { 0 }; if (!bacnet_is_context_specific(apdu, apdu_size)) { tag_len = bacnet_tag_decode(apdu, apdu_size, &tag); if (tag_len > 0) { len += tag_len; - decode_len = bacnet_application_data_length(tag.number, - tag.len_value_type); + decode_len = + bacnet_application_data_length(tag.number, tag.len_value_type); len += decode_len; } } @@ -1074,7 +1075,7 @@ static int decode_priority_array_value( BACNET_APPLICATION_TAG tag = MAX_BACNET_APPLICATION_TAG; if (bacnet_is_opening_tag_number(apdu, apdu_size, 0, &len)) { - /* constructed-value [0] ABSTRACT-SYNTAX.&Type */ + /* constructed-value [0] ABSTRACT-SYNTAX.&Type */ apdu_len += len; /* adjust application tag for complex types */ if (object_type == OBJECT_COLOR) { @@ -1100,7 +1101,7 @@ static int decode_priority_array_value( } apdu_len += len; } else if (bacnet_is_opening_tag_number(apdu, apdu_size, 1, &len)) { - /* datetime [1] BACnetDateTime */ + /* datetime [1] BACnetDateTime */ apdu_len += len; /* adjust application tag for complex types */ tag = BACNET_APPLICATION_TAG_DATETIME; @@ -1626,8 +1627,8 @@ int bacapp_decode_known_property( /* special case to reduce complexity - mostly encoded as application tagged values, but sometimes encoded as abstract syntax or complex data values */ - apdu_len = decode_priority_array_value( - apdu, apdu_size, value, object_type); + apdu_len = + decode_priority_array_value(apdu, apdu_size, value, object_type); } else { /* Complex or primitive value? Lookup the complex values using their object type and property */ @@ -1675,7 +1676,8 @@ int bacapp_decode_context_data_len( * @param value Pointer to the application value structure * @return Length of the encoded data in bytes */ -int bacapp_encode_data(uint8_t *apdu, const BACNET_APPLICATION_DATA_VALUE *value) +int bacapp_encode_data( + uint8_t *apdu, const BACNET_APPLICATION_DATA_VALUE *value) { int apdu_len = 0; /* total length of the apdu, return value */ @@ -2149,8 +2151,8 @@ static int bacapp_snprintf_enumerated( * The omission of day of week implies that the day is unspecified: * (24-January-1998); */ -static int bacapp_snprintf_date( - char *str, size_t str_len, const BACNET_DATE *bdate) +static int +bacapp_snprintf_date(char *str, size_t str_len, const BACNET_DATE *bdate) { int ret_val = 0; int slen = 0; @@ -2189,8 +2191,8 @@ static int bacapp_snprintf_date( * in the format hh:mm:ss.xx: 2:05:44.00, 16:54:59.99. * Any "wild card" field is shown by an asterisk (X'2A'): 16:54:*.*; */ -static int bacapp_snprintf_time( - char *str, size_t str_len, const BACNET_TIME *btime) +static int +bacapp_snprintf_time(char *str, size_t str_len, const BACNET_TIME *btime) { int ret_val = 0; int slen = 0; @@ -2260,7 +2262,7 @@ static int bacapp_snprintf_object_id( } #endif -#if defined (BACAPP_DATETIME) +#if defined(BACAPP_DATETIME) /** * @brief Print a value to a string for EPICS * @param str - destination string, or NULL for length only @@ -2605,8 +2607,8 @@ static int bacapp_snprintf_host_n_port( ret_val += bacapp_snprintf_shift(slen, &str, &str_len); if (value->host_ip_address) { const uint8_t *octet_str; - octet_str = octetstring_value( - (BACNET_OCTET_STRING *)&value->host.ip_address); + octet_str = + octetstring_value((BACNET_OCTET_STRING *)&value->host.ip_address); slen = bacapp_snprintf( str, str_len, "%u.%u.%u.%u:%u", (unsigned)octet_str[0], (unsigned)octet_str[1], (unsigned)octet_str[2], @@ -3363,8 +3365,9 @@ static char *rtrim(char *str, const char *trimmedchars) end = str + strlen(str) - 1; while (strchr(trimmedchars, *end)) { *end = 0; - if (end == str) + if (end == str) { break; + } end--; } return str; @@ -3598,8 +3601,8 @@ static bool bacnet_scale_from_ascii(BACNET_SCALE *value, const char *argv) * @param argv [in] The string to parse * @return True on success, else False */ -static bool bacnet_shed_level_from_ascii( - BACNET_SHED_LEVEL *value, const char *argv) +static bool +bacnet_shed_level_from_ascii(BACNET_SHED_LEVEL *value, const char *argv) { bool status = false; int count; @@ -3629,7 +3632,6 @@ static bool bacnet_shed_level_from_ascii( status = true; } } - } if (!status) { count = sscanf(argv, "%u", &level); @@ -3877,14 +3879,13 @@ bool bacapp_parse_application_data( #endif #if defined(BACAPP_SCALE) case BACNET_APPLICATION_TAG_SCALE: - status = bacnet_scale_from_ascii( - &value->type.Scale, argv); + status = bacnet_scale_from_ascii(&value->type.Scale, argv); break; #endif #if defined(BACAPP_SHED_LEVEL) case BACNET_APPLICATION_TAG_SHED_LEVEL: - status = bacnet_shed_level_from_ascii( - &value->type.Shed_Level, argv); + status = + bacnet_shed_level_from_ascii(&value->type.Shed_Level, argv); break; #endif default: diff --git a/src/bacnet/bacapp.h b/src/bacnet/bacapp.h index c8654d7c..fff5209d 100644 --- a/src/bacnet/bacapp.h +++ b/src/bacnet/bacapp.h @@ -59,102 +59,102 @@ typedef struct { struct BACnet_Application_Data_Value; typedef struct BACnet_Application_Data_Value { - bool context_specific; /* true if context specific data */ - uint8_t context_tag; /* only used for context specific data */ - uint8_t tag; /* application tag data type */ + bool context_specific; /* true if context specific data */ + uint8_t context_tag; /* only used for context specific data */ + uint8_t tag; /* application tag data type */ union { /* NULL - not needed as it is encoded in the tag alone */ -#if defined (BACAPP_BOOLEAN) +#if defined(BACAPP_BOOLEAN) bool Boolean; #endif -#if defined (BACAPP_UNSIGNED) +#if defined(BACAPP_UNSIGNED) BACNET_UNSIGNED_INTEGER Unsigned_Int; #endif -#if defined (BACAPP_SIGNED) +#if defined(BACAPP_SIGNED) int32_t Signed_Int; #endif -#if defined (BACAPP_REAL) +#if defined(BACAPP_REAL) float Real; #endif -#if defined (BACAPP_DOUBLE) +#if defined(BACAPP_DOUBLE) double Double; #endif -#if defined (BACAPP_OCTET_STRING) +#if defined(BACAPP_OCTET_STRING) BACNET_OCTET_STRING Octet_String; #endif -#if defined (BACAPP_CHARACTER_STRING) +#if defined(BACAPP_CHARACTER_STRING) BACNET_CHARACTER_STRING Character_String; #endif -#if defined (BACAPP_BIT_STRING) +#if defined(BACAPP_BIT_STRING) BACNET_BIT_STRING Bit_String; #endif -#if defined (BACAPP_ENUMERATED) +#if defined(BACAPP_ENUMERATED) uint32_t Enumerated; #endif -#if defined (BACAPP_DATE) +#if defined(BACAPP_DATE) BACNET_DATE Date; #endif -#if defined (BACAPP_TIME) +#if defined(BACAPP_TIME) BACNET_TIME Time; #endif -#if defined (BACAPP_OBJECT_ID) +#if defined(BACAPP_OBJECT_ID) BACNET_OBJECT_ID Object_Id; #endif -#if defined (BACAPP_TIMESTAMP) +#if defined(BACAPP_TIMESTAMP) BACNET_TIMESTAMP Time_Stamp; #endif -#if defined (BACAPP_DATETIME) +#if defined(BACAPP_DATETIME) BACNET_DATE_TIME Date_Time; #endif -#if defined (BACAPP_DATERANGE) +#if defined(BACAPP_DATERANGE) BACNET_DATE_RANGE Date_Range; #endif -#if defined (BACAPP_LIGHTING_COMMAND) +#if defined(BACAPP_LIGHTING_COMMAND) BACNET_LIGHTING_COMMAND Lighting_Command; #endif -#if defined (BACAPP_XY_COLOR) +#if defined(BACAPP_XY_COLOR) BACNET_XY_COLOR XY_Color; #endif -#if defined (BACAPP_COLOR_COMMAND) +#if defined(BACAPP_COLOR_COMMAND) BACNET_COLOR_COMMAND Color_Command; #endif -#if defined (BACAPP_WEEKLY_SCHEDULE) +#if defined(BACAPP_WEEKLY_SCHEDULE) BACNET_WEEKLY_SCHEDULE Weekly_Schedule; #endif -#if defined (BACAPP_HOST_N_PORT) +#if defined(BACAPP_HOST_N_PORT) BACNET_HOST_N_PORT Host_Address; #endif -#if defined (BACAPP_DEVICE_OBJECT_PROPERTY_REFERENCE) +#if defined(BACAPP_DEVICE_OBJECT_PROPERTY_REFERENCE) BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE - Device_Object_Property_Reference; + Device_Object_Property_Reference; #endif -#if defined (BACAPP_DEVICE_OBJECT_REFERENCE) +#if defined(BACAPP_DEVICE_OBJECT_REFERENCE) BACNET_DEVICE_OBJECT_REFERENCE - Device_Object_Reference; + Device_Object_Reference; #endif -#if defined (BACAPP_OBJECT_PROPERTY_REFERENCE) +#if defined(BACAPP_OBJECT_PROPERTY_REFERENCE) BACNET_OBJECT_PROPERTY_REFERENCE - Object_Property_Reference; + Object_Property_Reference; #endif -#if defined (BACAPP_DESTINATION) +#if defined(BACAPP_DESTINATION) BACNET_DESTINATION Destination; #endif -#if defined (BACAPP_CALENDAR_ENTRY) +#if defined(BACAPP_CALENDAR_ENTRY) BACNET_CALENDAR_ENTRY Calendar_Entry; #endif -#if defined (BACAPP_SPECIAL_EVENT) +#if defined(BACAPP_SPECIAL_EVENT) BACNET_SPECIAL_EVENT Special_Event; #endif -#if defined (BACAPP_BDT_ENTRY) +#if defined(BACAPP_BDT_ENTRY) BACNET_BDT_ENTRY BDT_Entry; #endif -#if defined (BACAPP_FDT_ENTRY) +#if defined(BACAPP_FDT_ENTRY) BACNET_FDT_ENTRY FDT_Entry; #endif -#if defined (BACAPP_ACTION_COMMAND) +#if defined(BACAPP_ACTION_COMMAND) BACNET_ACTION_LIST Action_Command; #endif -#if defined (BACAPP_SCALE) +#if defined(BACAPP_SCALE) BACNET_SCALE Scale; #endif #if defined(BACAPP_SHED_LEVEL) @@ -208,186 +208,162 @@ typedef struct BACnet_Object_Property_Value { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void bacapp_value_list_init( - BACNET_APPLICATION_DATA_VALUE *value, - size_t count); - BACNET_STACK_EXPORT - void bacapp_property_value_list_init( - BACNET_PROPERTY_VALUE *value, - size_t count); +BACNET_STACK_EXPORT +void bacapp_value_list_init(BACNET_APPLICATION_DATA_VALUE *value, size_t count); +BACNET_STACK_EXPORT +void bacapp_property_value_list_init( + BACNET_PROPERTY_VALUE *value, size_t count); - BACNET_STACK_EXPORT - void bacapp_property_value_list_link( - BACNET_PROPERTY_VALUE *value_list, - size_t count); +BACNET_STACK_EXPORT +void bacapp_property_value_list_link( + BACNET_PROPERTY_VALUE *value_list, size_t count); - BACNET_STACK_EXPORT - int bacapp_property_value_encode( - uint8_t *apdu, - const BACNET_PROPERTY_VALUE *value); - BACNET_STACK_EXPORT - int bacapp_property_value_decode( - const uint8_t *apdu, - uint32_t apdu_size, - BACNET_PROPERTY_VALUE *value); +BACNET_STACK_EXPORT +int bacapp_property_value_encode( + uint8_t *apdu, const BACNET_PROPERTY_VALUE *value); +BACNET_STACK_EXPORT +int bacapp_property_value_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_PROPERTY_VALUE *value); - BACNET_STACK_EXPORT - int bacapp_encode_data( - uint8_t * apdu, - const BACNET_APPLICATION_DATA_VALUE * value); - BACNET_STACK_EXPORT - int bacapp_encode_known_property( - uint8_t *apdu, - BACNET_APPLICATION_DATA_VALUE *value, - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID property); - BACNET_STACK_EXPORT - int bacapp_data_decode( - const uint8_t * apdu, - uint32_t apdu_size, - uint8_t tag_data_type, - uint32_t len_value_type, - BACNET_APPLICATION_DATA_VALUE * value); - BACNET_STACK_DEPRECATED("Use bacapp_data_decode() instead") - BACNET_STACK_EXPORT - int bacapp_decode_data( - const uint8_t * apdu, - uint8_t tag_data_type, - uint32_t len_value_type, - BACNET_APPLICATION_DATA_VALUE * value); +BACNET_STACK_EXPORT +int bacapp_encode_data( + uint8_t *apdu, const BACNET_APPLICATION_DATA_VALUE *value); +BACNET_STACK_EXPORT +int bacapp_encode_known_property( + uint8_t *apdu, + BACNET_APPLICATION_DATA_VALUE *value, + BACNET_OBJECT_TYPE object_type, + BACNET_PROPERTY_ID property); +BACNET_STACK_EXPORT +int bacapp_data_decode( + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_data_type, + uint32_t len_value_type, + BACNET_APPLICATION_DATA_VALUE *value); +BACNET_STACK_DEPRECATED("Use bacapp_data_decode() instead") +BACNET_STACK_EXPORT +int bacapp_decode_data( + const uint8_t *apdu, + uint8_t tag_data_type, + uint32_t len_value_type, + BACNET_APPLICATION_DATA_VALUE *value); - BACNET_STACK_EXPORT - int bacapp_decode_application_data( - const uint8_t * apdu, - uint32_t apdu_size, - BACNET_APPLICATION_DATA_VALUE * value); +BACNET_STACK_EXPORT +int bacapp_decode_application_data( + const uint8_t *apdu, + uint32_t apdu_size, + BACNET_APPLICATION_DATA_VALUE *value); - BACNET_STACK_EXPORT - bool bacapp_decode_application_data_safe( - const uint8_t * apdu, - uint32_t apdu_size, - BACNET_APPLICATION_DATA_VALUE * value); +BACNET_STACK_EXPORT +bool bacapp_decode_application_data_safe( + const uint8_t *apdu, + uint32_t apdu_size, + BACNET_APPLICATION_DATA_VALUE *value); - BACNET_STACK_EXPORT - int bacapp_encode_application_data( - uint8_t * apdu, - const BACNET_APPLICATION_DATA_VALUE * value); +BACNET_STACK_EXPORT +int bacapp_encode_application_data( + uint8_t *apdu, const BACNET_APPLICATION_DATA_VALUE *value); - BACNET_STACK_EXPORT - int bacapp_decode_context_data( - const uint8_t * apdu, - unsigned max_apdu_len, - BACNET_APPLICATION_DATA_VALUE * value, - BACNET_PROPERTY_ID property); +BACNET_STACK_EXPORT +int bacapp_decode_context_data( + const uint8_t *apdu, + unsigned max_apdu_len, + BACNET_APPLICATION_DATA_VALUE *value, + BACNET_PROPERTY_ID property); - BACNET_STACK_DEPRECATED("Use bacapp_encode_known_property() instead") - BACNET_STACK_EXPORT - int bacapp_encode_context_data( - uint8_t * apdu, - BACNET_APPLICATION_DATA_VALUE * value, - BACNET_PROPERTY_ID property); +BACNET_STACK_DEPRECATED("Use bacapp_encode_known_property() instead") +BACNET_STACK_EXPORT +int bacapp_encode_context_data( + uint8_t *apdu, + BACNET_APPLICATION_DATA_VALUE *value, + BACNET_PROPERTY_ID property); - BACNET_STACK_EXPORT - int bacapp_encode_context_data_value( - uint8_t * apdu, - uint8_t context_tag_number, - const BACNET_APPLICATION_DATA_VALUE * value); +BACNET_STACK_EXPORT +int bacapp_encode_context_data_value( + uint8_t *apdu, + uint8_t context_tag_number, + const BACNET_APPLICATION_DATA_VALUE *value); - BACNET_STACK_DEPRECATED("Use bacapp_known_property_tag() instead") - BACNET_STACK_EXPORT - BACNET_APPLICATION_TAG bacapp_context_tag_type( - BACNET_PROPERTY_ID property, - uint8_t tag_number); - BACNET_STACK_DEPRECATED("Use bacapp_encode_known_property() instead") - BACNET_STACK_EXPORT - int bacapp_decode_generic_property( - const uint8_t * apdu, - int max_apdu_len, - BACNET_APPLICATION_DATA_VALUE * value, - BACNET_PROPERTY_ID prop); +BACNET_STACK_DEPRECATED("Use bacapp_known_property_tag() instead") +BACNET_STACK_EXPORT +BACNET_APPLICATION_TAG +bacapp_context_tag_type(BACNET_PROPERTY_ID property, uint8_t tag_number); +BACNET_STACK_DEPRECATED("Use bacapp_encode_known_property() instead") +BACNET_STACK_EXPORT +int bacapp_decode_generic_property( + const uint8_t *apdu, + int max_apdu_len, + BACNET_APPLICATION_DATA_VALUE *value, + BACNET_PROPERTY_ID prop); - BACNET_STACK_EXPORT - int bacapp_decode_application_tag_value( - const uint8_t *apdu, - size_t apdu_size, - BACNET_APPLICATION_TAG tag, - BACNET_APPLICATION_DATA_VALUE *value); - BACNET_STACK_EXPORT - int bacapp_decode_known_property(const uint8_t *apdu, - int max_apdu_len, - BACNET_APPLICATION_DATA_VALUE *value, - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID property); +BACNET_STACK_EXPORT +int bacapp_decode_application_tag_value( + const uint8_t *apdu, + size_t apdu_size, + BACNET_APPLICATION_TAG tag, + BACNET_APPLICATION_DATA_VALUE *value); +BACNET_STACK_EXPORT +int bacapp_decode_known_property( + const uint8_t *apdu, + int max_apdu_len, + BACNET_APPLICATION_DATA_VALUE *value, + BACNET_OBJECT_TYPE object_type, + BACNET_PROPERTY_ID property); - BACNET_STACK_EXPORT - int bacapp_known_property_tag( - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID property); +BACNET_STACK_EXPORT +int bacapp_known_property_tag( + BACNET_OBJECT_TYPE object_type, BACNET_PROPERTY_ID property); - BACNET_STACK_EXPORT - bool bacapp_copy( - BACNET_APPLICATION_DATA_VALUE * dest_value, - BACNET_APPLICATION_DATA_VALUE * src_value); +BACNET_STACK_EXPORT +bool bacapp_copy( + BACNET_APPLICATION_DATA_VALUE *dest_value, + BACNET_APPLICATION_DATA_VALUE *src_value); - BACNET_STACK_DEPRECATED("Use bacnet_enclosed_data_length() instead") - BACNET_STACK_EXPORT - int bacapp_data_len( - const uint8_t * apdu, - unsigned max_apdu_len, - BACNET_PROPERTY_ID property); +BACNET_STACK_DEPRECATED("Use bacnet_enclosed_data_length() instead") +BACNET_STACK_EXPORT +int bacapp_data_len( + const uint8_t *apdu, unsigned max_apdu_len, BACNET_PROPERTY_ID property); - BACNET_STACK_DEPRECATED("Use bacnet_application_data_length() instead") - BACNET_STACK_EXPORT - int bacapp_decode_data_len( - const uint8_t * apdu, - uint8_t tag_data_type, - uint32_t len_value_type); +BACNET_STACK_DEPRECATED("Use bacnet_application_data_length() instead") +BACNET_STACK_EXPORT +int bacapp_decode_data_len( + const uint8_t *apdu, uint8_t tag_data_type, uint32_t len_value_type); - BACNET_STACK_DEPRECATED("Use bacnet_enclosed_data_length() instead") - BACNET_STACK_EXPORT - int bacapp_decode_application_data_len( - const uint8_t * apdu, - unsigned max_apdu_len); +BACNET_STACK_DEPRECATED("Use bacnet_enclosed_data_length() instead") +BACNET_STACK_EXPORT +int bacapp_decode_application_data_len( + const uint8_t *apdu, unsigned max_apdu_len); - BACNET_STACK_DEPRECATED("Use bacnet_enclosed_data_length() instead") - BACNET_STACK_EXPORT - int bacapp_decode_context_data_len( - const uint8_t * apdu, - unsigned max_apdu_len, - BACNET_PROPERTY_ID property); +BACNET_STACK_DEPRECATED("Use bacnet_enclosed_data_length() instead") +BACNET_STACK_EXPORT +int bacapp_decode_context_data_len( + const uint8_t *apdu, unsigned max_apdu_len, BACNET_PROPERTY_ID property); - BACNET_STACK_EXPORT - int bacapp_snprintf( - char *buffer, - size_t count, - const char *format, ...); - BACNET_STACK_EXPORT - int bacapp_snprintf_shift( - int len, - char **buf, - size_t *buf_size); - BACNET_STACK_EXPORT - int bacapp_snprintf_value( - char *str, - size_t str_len, - const BACNET_OBJECT_PROPERTY_VALUE * object_value); +BACNET_STACK_EXPORT +int bacapp_snprintf(char *buffer, size_t count, const char *format, ...); +BACNET_STACK_EXPORT +int bacapp_snprintf_shift(int len, char **buf, size_t *buf_size); +BACNET_STACK_EXPORT +int bacapp_snprintf_value( + char *str, + size_t str_len, + const BACNET_OBJECT_PROPERTY_VALUE *object_value); - BACNET_STACK_EXPORT - bool bacapp_parse_application_data( - BACNET_APPLICATION_TAG tag_number, - char *argv, - BACNET_APPLICATION_DATA_VALUE * value); +BACNET_STACK_EXPORT +bool bacapp_parse_application_data( + BACNET_APPLICATION_TAG tag_number, + char *argv, + BACNET_APPLICATION_DATA_VALUE *value); - BACNET_STACK_EXPORT - bool bacapp_print_value( - FILE * stream, - const BACNET_OBJECT_PROPERTY_VALUE * value); +BACNET_STACK_EXPORT +bool bacapp_print_value( + FILE *stream, const BACNET_OBJECT_PROPERTY_VALUE *value); - BACNET_STACK_EXPORT - bool bacapp_same_value( - const BACNET_APPLICATION_DATA_VALUE * value, - const BACNET_APPLICATION_DATA_VALUE * test_value); +BACNET_STACK_EXPORT +bool bacapp_same_value( + const BACNET_APPLICATION_DATA_VALUE *value, + const BACNET_APPLICATION_DATA_VALUE *test_value); #ifdef __cplusplus } diff --git a/src/bacnet/bacdcode.c b/src/bacnet/bacdcode.c index 7d1b3d03..a784a4d2 100644 --- a/src/bacnet/bacdcode.c +++ b/src/bacnet/bacdcode.c @@ -205,7 +205,8 @@ int decode_max_apdu(uint8_t octet) * * @return Returns the number of apdu bytes consumed. */ -int encode_tag(uint8_t *apdu, +int encode_tag( + uint8_t *apdu, uint8_t tag_number, bool context_specific, uint32_t len_value_type) @@ -738,7 +739,10 @@ int decode_tag_number_and_value( * @deprecated use bacnet_tag_decode() instead */ int bacnet_tag_number_and_value_decode( - const uint8_t *apdu, uint32_t apdu_size, uint8_t *tag_number, uint32_t *value) + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t *tag_number, + uint32_t *value) { int len = 0; BACNET_TAG tag = { 0 }; @@ -762,8 +766,7 @@ int bacnet_tag_number_and_value_decode( * @param len_value_type Length of the data in bytes. * @return datalength for the given tag, or INT_MAX if out of range. */ -int bacnet_application_data_length( - uint8_t tag_number, uint32_t len_value_type) +int bacnet_application_data_length(uint8_t tag_number, uint32_t len_value_type) { int len = 0; @@ -804,8 +807,7 @@ int bacnet_application_data_length( * @return length of data between an opening tag and a closing tag 0..N, * or BACNET_STATUS_ERROR. */ -int bacnet_enclosed_data_length( - const uint8_t *apdu, size_t apdu_size) +int bacnet_enclosed_data_length(const uint8_t *apdu, size_t apdu_size) { int len = 0; int total_len = 0; @@ -862,8 +864,8 @@ int bacnet_enclosed_data_length( return BACNET_STATUS_ERROR; } /* application tagged data */ - len += bacnet_application_data_length(tag.number, - tag.len_value_type); + len += + bacnet_application_data_length(tag.number, tag.len_value_type); total_len_enable = true; } if (opening_tag_number_counter > 0) { @@ -946,8 +948,11 @@ bool decode_is_context_tag_with_length( * @return true on a match, false otherwise. */ bool bacnet_is_context_tag_number( - const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, - int *tag_length, uint32_t *len_value_type) + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + int *tag_length, + uint32_t *len_value_type) { bool match = false; int len; @@ -1006,7 +1011,10 @@ bool decode_is_opening_tag_number(const uint8_t *apdu, uint8_t tag_number) * @return true if the tag number matches and is an opening tag. */ bool bacnet_is_opening_tag_number( - const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, int *tag_length) + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + int *tag_length) { bool match = false; int len; @@ -1060,7 +1068,10 @@ bool decode_is_closing_tag_number(const uint8_t *apdu, uint8_t tag_number) * @return true if the tag number matches is an closing tag. */ bool bacnet_is_closing_tag_number( - const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, int *tag_length) + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + int *tag_length) { bool match = false; int len; @@ -1284,7 +1295,10 @@ int bacnet_boolean_application_decode( * or #BACNET_STATUS_ERROR (-1) if malformed */ int bacnet_boolean_context_decode( - const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, bool *boolean_value) + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_value, + bool *boolean_value) { int apdu_len = BACNET_STATUS_ERROR; int len = 0; @@ -1435,7 +1449,8 @@ int decode_bitstring( * * @return number of bytes decoded, or zero if errors occur */ -int bacnet_bitstring_decode(const uint8_t *apdu, +int bacnet_bitstring_decode( + const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, BACNET_BIT_STRING *value) @@ -1520,8 +1535,9 @@ int bacnet_bitstring_application_decode( if ((len > 0) && tag.application) { if (tag.number == BACNET_APPLICATION_TAG_BIT_STRING) { apdu_len = len; - len = bacnet_bitstring_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_bitstring_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -1548,7 +1564,8 @@ int bacnet_bitstring_application_decode( * @return number of bytes decoded, or zero if tag number mismatch, or * #BACNET_STATUS_ERROR (-1) if malformed */ -int bacnet_bitstring_context_decode(const uint8_t *apdu, +int bacnet_bitstring_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, BACNET_BIT_STRING *value) @@ -1561,8 +1578,9 @@ int bacnet_bitstring_context_decode(const uint8_t *apdu, if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_bitstring_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_bitstring_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -1667,7 +1685,8 @@ int encode_application_bitstring(uint8_t *apdu, const BACNET_BIT_STRING *value) /* bit string may use more than 1 octet for the tag, so find out how many */ bit_string_encoded_length += bitstring_bytes_used(value); - len = encode_tag(apdu, BACNET_APPLICATION_TAG_BIT_STRING, false, + len = encode_tag( + apdu, BACNET_APPLICATION_TAG_BIT_STRING, false, bit_string_encoded_length); if (apdu) { apdu_offset = &apdu[len]; @@ -1717,7 +1736,8 @@ int encode_context_bitstring( * * @return the number of apdu bytes consumed */ -int decode_object_id_safe(const uint8_t *apdu, +int decode_object_id_safe( + const uint8_t *apdu, uint32_t len_value_type, BACNET_OBJECT_TYPE *object_type, uint32_t *instance) @@ -1772,7 +1792,8 @@ int decode_object_id( * * @return the number of apdu bytes consumed, or 0 if apdu is too small */ -int bacnet_object_id_decode(const uint8_t *apdu, +int bacnet_object_id_decode( + const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value_type, BACNET_OBJECT_TYPE *object_type, @@ -1833,7 +1854,8 @@ int bacnet_object_id_application_encode( * @return number of bytes decoded, zero if wrong tag number, * or #BACNET_STATUS_ERROR (-1) if malformed */ -int bacnet_object_id_application_decode(const uint8_t *apdu, +int bacnet_object_id_application_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_OBJECT_TYPE *object_type, uint32_t *object_instance) @@ -1846,8 +1868,9 @@ int bacnet_object_id_application_decode(const uint8_t *apdu, if ((len > 0) && tag.application) { if (tag.number == BACNET_APPLICATION_TAG_OBJECT_ID) { apdu_len = len; - len = bacnet_object_id_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, object_type, object_instance); + len = bacnet_object_id_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + object_type, object_instance); if (len > 0) { apdu_len += len; } else { @@ -1875,7 +1898,8 @@ int bacnet_object_id_application_decode(const uint8_t *apdu, * @return number of bytes decoded, zero if wrong tag number, * or #BACNET_STATUS_ERROR (-1) if malformed */ -int bacnet_object_id_context_decode(const uint8_t *apdu, +int bacnet_object_id_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, BACNET_OBJECT_TYPE *object_type, @@ -1889,8 +1913,9 @@ int bacnet_object_id_context_decode(const uint8_t *apdu, if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_object_id_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, object_type, object_instance); + len = bacnet_object_id_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + object_type, object_instance); if (len > 0) { apdu_len += len; } else { @@ -1918,7 +1943,8 @@ int bacnet_object_id_context_decode(const uint8_t *apdu, * if wrong tag number or malformed * @deprecated Use bacnet_object_id_context_decode() instead */ -int decode_context_object_id(const uint8_t *apdu, +int decode_context_object_id( + const uint8_t *apdu, uint8_t tag_number, BACNET_OBJECT_TYPE *object_type, uint32_t *instance) @@ -1971,7 +1997,8 @@ int encode_bacnet_object_id( * * @return the number of apdu bytes encoded */ -int encode_context_object_id(uint8_t *apdu, +int encode_context_object_id( + uint8_t *apdu, uint8_t tag_number, BACNET_OBJECT_TYPE object_type, uint32_t instance) @@ -2058,12 +2085,14 @@ int encode_octet_string(uint8_t *apdu, const BACNET_OCTET_STRING *octet_string) * * @return returns the number of apdu bytes consumed */ -int encode_application_octet_string(uint8_t *apdu, const BACNET_OCTET_STRING *value) +int encode_application_octet_string( + uint8_t *apdu, const BACNET_OCTET_STRING *value) { int len = 0; if (value) { - len = encode_tag(apdu, BACNET_APPLICATION_TAG_OCTET_STRING, false, + len = encode_tag( + apdu, BACNET_APPLICATION_TAG_OCTET_STRING, false, octetstring_length(value)); if (apdu) { apdu += len; @@ -2114,7 +2143,8 @@ int encode_context_octet_string( * * @return number of bytes decoded (0..N), or BACNET_STATUS_ERROR on error */ -int bacnet_octet_string_decode(const uint8_t *apdu, +int bacnet_octet_string_decode( + const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, BACNET_OCTET_STRING *value) @@ -2270,7 +2300,8 @@ int bacnet_octet_string_application_decode( * @return number of bytes decoded, or zero if tag number mismatch, or * #BACNET_STATUS_ERROR (-1) if malformed */ -int bacnet_octet_string_context_decode(const uint8_t *apdu, +int bacnet_octet_string_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, BACNET_OCTET_STRING *value) @@ -2283,8 +2314,9 @@ int bacnet_octet_string_context_decode(const uint8_t *apdu, if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_octet_string_decode(&apdu[apdu_len], - apdu_size - apdu_len, tag.len_value_type, value); + len = bacnet_octet_string_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len >= 0) { apdu_len += len; } else { @@ -2313,7 +2345,8 @@ int bacnet_octet_string_context_decode(const uint8_t *apdu, * @return returns the number of apdu bytes consumed, or 0 if too large * @deprecated use encode_bacnet_character_string() instead */ -uint32_t encode_bacnet_character_string_safe(uint8_t *apdu, +uint32_t encode_bacnet_character_string_safe( + uint8_t *apdu, uint32_t max_apdu, uint8_t encoding, const char *value, @@ -2407,7 +2440,9 @@ int encode_application_character_string( * @return returns the number of apdu bytes consumed */ int encode_context_character_string( - uint8_t *apdu, uint8_t tag_number, const BACNET_CHARACTER_STRING *char_string) + uint8_t *apdu, + uint8_t tag_number, + const BACNET_CHARACTER_STRING *char_string) { int len = 0; uint8_t *apdu_offset = NULL; @@ -2434,7 +2469,8 @@ int encode_context_character_string( * * @return number of bytes decoded, or zero if errors occur */ -int bacnet_character_string_decode(const uint8_t *apdu, +int bacnet_character_string_decode( + const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, BACNET_CHARACTER_STRING *char_string) @@ -2557,7 +2593,8 @@ int bacnet_character_string_application_decode( * @return number of bytes decoded, or zero if tag number mismatch, or * #BACNET_STATUS_ERROR (-1) if malformed */ -int bacnet_character_string_context_decode(const uint8_t *apdu, +int bacnet_character_string_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, BACNET_CHARACTER_STRING *value) @@ -2570,8 +2607,9 @@ int bacnet_character_string_context_decode(const uint8_t *apdu, if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_character_string_decode(&apdu[apdu_len], - apdu_size - apdu_len, tag.len_value_type, value); + len = bacnet_character_string_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -2625,7 +2663,8 @@ int decode_context_character_string( * * @return number of bytes decoded, or zero if errors occur */ -int bacnet_unsigned_decode(const uint8_t *apdu, +int bacnet_unsigned_decode( + const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, BACNET_UNSIGNED_INTEGER *value) @@ -2720,7 +2759,8 @@ int bacnet_unsigned_decode(const uint8_t *apdu, * @return number of bytes decoded, zero if wrong tag number, * or #BACNET_STATUS_ERROR (-1) if malformed */ -int bacnet_unsigned_context_decode(const uint8_t *apdu, +int bacnet_unsigned_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, BACNET_UNSIGNED_INTEGER *value) @@ -2733,8 +2773,9 @@ int bacnet_unsigned_context_decode(const uint8_t *apdu, if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_unsigned_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_unsigned_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -2799,8 +2840,9 @@ int bacnet_unsigned_application_decode( if ((len > 0) && tag.application) { if (tag.number == BACNET_APPLICATION_TAG_UNSIGNED_INT) { apdu_len = len; - len = bacnet_unsigned_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_unsigned_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -2976,7 +3018,10 @@ int encode_application_unsigned(uint8_t *apdu, BACNET_UNSIGNED_INTEGER value) * @return number of bytes decoded, or zero if errors occur */ int bacnet_enumerated_decode( - const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, uint32_t *value) + const uint8_t *apdu, + uint32_t apdu_size, + uint32_t len_value, + uint32_t *value) { BACNET_UNSIGNED_INTEGER unsigned_value = 0; int len; @@ -3061,8 +3106,9 @@ int bacnet_enumerated_application_decode( if (tag.number == BACNET_APPLICATION_TAG_ENUMERATED) { apdu_len = len; /* note: enumerated is encoded as UNSIGNED INT */ - len = bacnet_unsigned_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, &unsigned_value); + len = bacnet_unsigned_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + &unsigned_value); if (len > 0) { if (unsigned_value > UINT32_MAX) { apdu_len = BACNET_STATUS_ERROR; @@ -3107,8 +3153,9 @@ int bacnet_enumerated_context_decode( if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_enumerated_decode(&apdu[apdu_len], - apdu_size - apdu_len, tag.len_value_type, value); + len = bacnet_enumerated_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -3135,7 +3182,8 @@ int bacnet_enumerated_context_decode( * if wrong tag number or malformed * @deprecated use bacnet_enumerated_context_decode() instead */ -int decode_context_enumerated(const uint8_t *apdu, uint8_t tag_value, uint32_t *value) +int decode_context_enumerated( + const uint8_t *apdu, uint8_t tag_value, uint32_t *value) { const uint32_t apdu_size = 6; int len = 0; @@ -3282,8 +3330,9 @@ int bacnet_signed_context_decode( if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_signed_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_signed_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -3347,8 +3396,9 @@ int bacnet_signed_application_decode( if ((len > 0) && tag.application) { if (tag.number == BACNET_APPLICATION_TAG_SIGNED_INT) { apdu_len = len; - len = bacnet_signed_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_signed_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -3395,7 +3445,8 @@ int decode_signed(const uint8_t *apdu, uint32_t len_value, int32_t *value) * wrong tag number, or error (-1) if malformed * @deprecated use bacnet_signed_context_decode() instead */ -int decode_context_signed(const uint8_t *apdu, uint8_t tag_value, int32_t *value) +int decode_context_signed( + const uint8_t *apdu, uint8_t tag_value, int32_t *value) { const uint32_t apdu_size = 6; int len = 0; @@ -3590,8 +3641,9 @@ int bacnet_real_context_decode( if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_real_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_real_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -3655,8 +3707,9 @@ int bacnet_real_application_decode( if ((len > 0) && tag.application) { if (tag.number == BACNET_APPLICATION_TAG_REAL) { apdu_len = len; - len = bacnet_real_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_real_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -3683,7 +3736,8 @@ int bacnet_real_application_decode( * if wrong tag number or malformed * @deprecated use bacnet_real_context_decode() instead */ -int decode_context_real(const uint8_t *apdu, uint8_t tag_number, float *real_value) +int decode_context_real( + const uint8_t *apdu, uint8_t tag_number, float *real_value) { uint32_t len_value; int len = 0; @@ -3798,8 +3852,9 @@ int bacnet_double_context_decode( if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_double_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_double_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -3863,8 +3918,9 @@ int bacnet_double_application_decode( if ((len > 0) && tag.application) { if (tag.number == BACNET_APPLICATION_TAG_DOUBLE) { apdu_len = len; - len = bacnet_double_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_double_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -3994,7 +4050,10 @@ int encode_context_time( * @return number of bytes decoded, or zero if errors occur */ int bacnet_time_decode( - const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, BACNET_TIME *value) + const uint8_t *apdu, + uint32_t apdu_size, + uint32_t len_value, + BACNET_TIME *value) { int len = 0; @@ -4026,7 +4085,10 @@ int bacnet_time_decode( * or error (-1) if malformed */ int bacnet_time_context_decode( - const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, BACNET_TIME *value) + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_value, + BACNET_TIME *value) { int apdu_len = BACNET_STATUS_ERROR; int len = 0; @@ -4036,8 +4098,9 @@ int bacnet_time_context_decode( if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_time_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_time_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -4101,8 +4164,9 @@ int bacnet_time_application_decode( if ((len > 0) && tag.application) { if (tag.number == BACNET_APPLICATION_TAG_TIME) { apdu_len = len; - len = bacnet_time_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_time_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -4291,7 +4355,8 @@ int encode_application_date(uint8_t *apdu, const BACNET_DATE *bdate) * * @return the number of apdu bytes consumed. */ -int encode_context_date(uint8_t *apdu, uint8_t tag_number, const BACNET_DATE *bdate) +int encode_context_date( + uint8_t *apdu, uint8_t tag_number, const BACNET_DATE *bdate) { int len = 0; /* return value */ uint8_t *apdu_offset = NULL; @@ -4339,7 +4404,8 @@ int decode_date(const uint8_t *apdu, BACNET_DATE *bdate) * @return number of bytes decoded, or zero if errors occur * @deprecated use bacnet_date_decode() instead */ -int decode_date_safe(const uint8_t *apdu, uint32_t len_value, BACNET_DATE *bdate) +int decode_date_safe( + const uint8_t *apdu, uint32_t len_value, BACNET_DATE *bdate) { if (len_value != 4) { bdate->day = 0; @@ -4365,7 +4431,10 @@ int decode_date_safe(const uint8_t *apdu, uint32_t len_value, BACNET_DATE *bdate * @return number of bytes decoded, or zero if errors occur */ int bacnet_date_decode( - const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, BACNET_DATE *value) + const uint8_t *apdu, + uint32_t apdu_size, + uint32_t len_value, + BACNET_DATE *value) { int len = 0; @@ -4410,8 +4479,9 @@ int bacnet_date_context_decode( if ((len > 0) && tag.context) { if (tag.number == tag_value) { apdu_len = len; - len = bacnet_date_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, value); + len = bacnet_date_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + value); if (len > 0) { apdu_len += len; } else { @@ -4529,7 +4599,8 @@ int decode_application_date(const uint8_t *apdu, BACNET_DATE *value) * if wrong tag number or malformed * @deprecated use bacnet_date_context_decode() instead */ -int decode_context_date(const uint8_t *apdu, uint8_t tag_value, BACNET_DATE *value) +int decode_context_date( + const uint8_t *apdu, uint8_t tag_value, BACNET_DATE *value) { int len = 0; const uint32_t apdu_size = BACNET_TAG_SIZE + 4; @@ -4577,7 +4648,8 @@ int encode_simple_ack(uint8_t *apdu, uint8_t invoke_id, uint8_t service_choice) * BACNET_STATUS_ERROR for an invalid array index * BACNET_STATUS_ABORT for abort message. */ -int bacnet_array_encode(uint32_t object_instance, +int bacnet_array_encode( + uint32_t object_instance, BACNET_ARRAY_INDEX array_index, bacnet_array_property_element_encode_function encoder, BACNET_UNSIGNED_INTEGER array_size, diff --git a/src/bacnet/bacdcode.h b/src/bacnet/bacdcode.h index 9c2c2a33..9fb49543 100644 --- a/src/bacnet/bacdcode.h +++ b/src/bacnet/bacdcode.h @@ -49,7 +49,8 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -int encode_tag(uint8_t *apdu, +int encode_tag( + uint8_t *apdu, uint8_t tag_number, bool context_specific, uint32_t len_value_type); @@ -61,8 +62,7 @@ int encode_closing_tag(uint8_t *apdu, uint8_t tag_number); BACNET_STACK_EXPORT int bacnet_tag_encode(uint8_t *apdu, uint32_t apdu_size, const BACNET_TAG *tag); BACNET_STACK_EXPORT -int bacnet_tag_decode( - const uint8_t *apdu, uint32_t apdu_size, BACNET_TAG *tag); +int bacnet_tag_decode(const uint8_t *apdu, uint32_t apdu_size, BACNET_TAG *tag); BACNET_STACK_EXPORT bool bacnet_is_opening_tag(const uint8_t *apdu, uint32_t apdu_size); @@ -89,20 +89,23 @@ bool bacnet_is_opening_tag_number( int *tag_length); BACNET_STACK_EXPORT bool bacnet_is_closing_tag_number( - const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, int *tag_length); BACNET_STACK_EXPORT -int bacnet_application_data_length( - uint8_t tag_number, uint32_t len_value_type); +int bacnet_application_data_length(uint8_t tag_number, uint32_t len_value_type); BACNET_STACK_EXPORT -int bacnet_enclosed_data_length( - const uint8_t *apdu, size_t apdu_size); +int bacnet_enclosed_data_length(const uint8_t *apdu, size_t apdu_size); BACNET_STACK_DEPRECATED("Use bacnet_tag_decode() instead") BACNET_STACK_EXPORT int bacnet_tag_number_and_value_decode( - const uint8_t *apdu, uint32_t apdu_size, uint8_t *tag_number, uint32_t *value); + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t *tag_number, + uint32_t *value); BACNET_STACK_DEPRECATED("Use bacnet_tag_number_decode() instead") BACNET_STACK_EXPORT int decode_tag_number(const uint8_t *apdu, uint8_t *tag_number); @@ -158,7 +161,8 @@ BACNET_STACK_EXPORT int bacnet_boolean_application_decode( const uint8_t *apdu, uint32_t apdu_len_max, bool *value); BACNET_STACK_EXPORT -int bacnet_boolean_context_decode(const uint8_t *apdu, +int bacnet_boolean_context_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint8_t tag_value, bool *boolean_value); @@ -166,7 +170,8 @@ int bacnet_boolean_context_decode(const uint8_t *apdu, BACNET_STACK_EXPORT int encode_bitstring(uint8_t *apdu, const BACNET_BIT_STRING *bit_string); BACNET_STACK_EXPORT -int encode_application_bitstring(uint8_t *apdu, const BACNET_BIT_STRING *bit_string); +int encode_application_bitstring( + uint8_t *apdu, const BACNET_BIT_STRING *bit_string); BACNET_STACK_EXPORT int encode_context_bitstring( uint8_t *apdu, uint8_t tag_number, const BACNET_BIT_STRING *bit_string); @@ -179,7 +184,8 @@ BACNET_STACK_EXPORT int decode_context_bitstring( const uint8_t *apdu, uint8_t tag_number, BACNET_BIT_STRING *bit_string); BACNET_STACK_EXPORT -int bacnet_bitstring_decode(const uint8_t *apdu, +int bacnet_bitstring_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, BACNET_BIT_STRING *value); @@ -203,13 +209,20 @@ BACNET_STACK_EXPORT int encode_context_real(uint8_t *apdu, uint8_t tag_number, float value); BACNET_STACK_DEPRECATED("Use bacnet_real_context_decode() instead") BACNET_STACK_EXPORT -int decode_context_real(const uint8_t *apdu, uint8_t tag_number, float *real_value); +int decode_context_real( + const uint8_t *apdu, uint8_t tag_number, float *real_value); BACNET_STACK_EXPORT int bacnet_real_decode( - const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, float *value); + const uint8_t *apdu, + uint32_t apdu_len_max, + uint32_t len_value, + float *value); BACNET_STACK_EXPORT int bacnet_real_context_decode( - const uint8_t *apdu, uint32_t apdu_len_max, uint8_t tag_value, float *value); + const uint8_t *apdu, + uint32_t apdu_len_max, + uint8_t tag_value, + float *value); BACNET_STACK_EXPORT int bacnet_real_application_encode( uint8_t *apdu, uint32_t apdu_size, float value); @@ -227,10 +240,16 @@ int decode_context_double( const uint8_t *apdu, uint8_t tag_number, double *double_value); BACNET_STACK_EXPORT int bacnet_double_decode( - const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, double *value); + const uint8_t *apdu, + uint32_t apdu_len_max, + uint32_t len_value, + double *value); BACNET_STACK_EXPORT int bacnet_double_context_decode( - const uint8_t *apdu, uint32_t apdu_len_max, uint8_t tag_value, double *value); + const uint8_t *apdu, + uint32_t apdu_len_max, + uint8_t tag_value, + double *value); BACNET_STACK_EXPORT int bacnet_double_application_encode( uint8_t *apdu, uint32_t apdu_size, double value); @@ -242,7 +261,8 @@ BACNET_STACK_EXPORT int encode_bacnet_object_id( uint8_t *apdu, BACNET_OBJECT_TYPE object_type, uint32_t instance); BACNET_STACK_EXPORT -int encode_context_object_id(uint8_t *apdu, +int encode_context_object_id( + uint8_t *apdu, uint8_t tag_number, BACNET_OBJECT_TYPE object_type, uint32_t instance); @@ -257,17 +277,20 @@ int decode_object_id( uint32_t *object_instance); BACNET_STACK_DEPRECATED("Use bacnet_object_id_context_decode() instead") BACNET_STACK_EXPORT -int decode_context_object_id(const uint8_t *apdu, +int decode_context_object_id( + const uint8_t *apdu, uint8_t tag_number, BACNET_OBJECT_TYPE *object_type, uint32_t *instance); BACNET_STACK_EXPORT -int decode_object_id_safe(const uint8_t *apdu, +int decode_object_id_safe( + const uint8_t *apdu, uint32_t len_value, BACNET_OBJECT_TYPE *object_type, uint32_t *object_instance); BACNET_STACK_EXPORT -int bacnet_object_id_decode(const uint8_t *apdu, +int bacnet_object_id_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, BACNET_OBJECT_TYPE *object_type, @@ -310,7 +333,8 @@ BACNET_STACK_EXPORT int decode_context_octet_string( const uint8_t *apdu, uint8_t tag_number, BACNET_OCTET_STRING *octet_string); BACNET_STACK_EXPORT -int bacnet_octet_string_decode(const uint8_t *apdu, +int bacnet_octet_string_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, BACNET_OCTET_STRING *value); @@ -329,7 +353,8 @@ int bacnet_octet_string_context_decode( BACNET_OCTET_STRING *value); BACNET_STACK_EXPORT -uint32_t encode_bacnet_character_string_safe(uint8_t *apdu, +uint32_t encode_bacnet_character_string_safe( + uint8_t *apdu, uint32_t max_apdu, uint8_t encoding, const char *pString, @@ -342,7 +367,9 @@ int encode_application_character_string( uint8_t *apdu, const BACNET_CHARACTER_STRING *char_string); BACNET_STACK_EXPORT int encode_context_character_string( - uint8_t *apdu, uint8_t tag_number, const BACNET_CHARACTER_STRING *char_string); + uint8_t *apdu, + uint8_t tag_number, + const BACNET_CHARACTER_STRING *char_string); BACNET_STACK_DEPRECATED("Use bacnet_character_string_decode() instead") BACNET_STACK_EXPORT int decode_character_string( @@ -356,7 +383,8 @@ int decode_context_character_string( uint8_t tag_number, BACNET_CHARACTER_STRING *char_string); BACNET_STACK_EXPORT -int bacnet_character_string_decode(const uint8_t *apdu, +int bacnet_character_string_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, BACNET_CHARACTER_STRING *char_string); @@ -390,7 +418,8 @@ BACNET_STACK_EXPORT int decode_context_unsigned( const uint8_t *apdu, uint8_t tag_number, BACNET_UNSIGNED_INTEGER *value); BACNET_STACK_EXPORT -int bacnet_unsigned_decode(const uint8_t *apdu, +int bacnet_unsigned_decode( + const uint8_t *apdu, uint32_t apdu_max_len, uint32_t len_value, BACNET_UNSIGNED_INTEGER *value); @@ -419,11 +448,15 @@ BACNET_STACK_EXPORT int decode_signed(const uint8_t *apdu, uint32_t len_value, int32_t *value); BACNET_STACK_DEPRECATED("Use bacnet_signed_context_decode() instead") BACNET_STACK_EXPORT -int decode_context_signed(const uint8_t *apdu, uint8_t tag_number, int32_t *value); +int decode_context_signed( + const uint8_t *apdu, uint8_t tag_number, int32_t *value); BACNET_STACK_EXPORT int bacnet_signed_decode( - const uint8_t *apdu, uint32_t apdu_size, uint32_t len_value, int32_t *value); + const uint8_t *apdu, + uint32_t apdu_size, + uint32_t len_value, + int32_t *value); BACNET_STACK_EXPORT int bacnet_signed_context_decode( const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_value, int32_t *value); @@ -450,8 +483,10 @@ int decode_context_enumerated( const uint8_t *apdu, uint8_t tag_value, uint32_t *value); BACNET_STACK_EXPORT int bacnet_enumerated_decode( - const uint8_t *apdu, uint32_t apdu_max_len, uint32_t len_value, uint32_t *value); - + const uint8_t *apdu, + uint32_t apdu_max_len, + uint32_t len_value, + uint32_t *value); BACNET_STACK_EXPORT int bacnet_enumerated_application_encode( @@ -461,7 +496,10 @@ int bacnet_enumerated_application_decode( const uint8_t *apdu, uint32_t apdu_len_max, uint32_t *value); BACNET_STACK_EXPORT int bacnet_enumerated_context_decode( - const uint8_t *apdu, uint32_t apdu_len_max, uint8_t tag_value, uint32_t *value); + const uint8_t *apdu, + uint32_t apdu_len_max, + uint8_t tag_value, + uint32_t *value); BACNET_STACK_EXPORT int encode_bacnet_time(uint8_t *apdu, const BACNET_TIME *btime); @@ -485,12 +523,14 @@ BACNET_STACK_EXPORT int decode_context_bacnet_time( const uint8_t *apdu, uint8_t tag_number, BACNET_TIME *btime); BACNET_STACK_EXPORT -int bacnet_time_decode(const uint8_t *apdu, +int bacnet_time_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, BACNET_TIME *value); BACNET_STACK_EXPORT -int bacnet_time_context_decode(const uint8_t *apdu, +int bacnet_time_context_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint8_t tag_value, BACNET_TIME *value); @@ -523,7 +563,8 @@ BACNET_STACK_EXPORT int decode_context_date( const uint8_t *apdu, uint8_t tag_number, BACNET_DATE *bdate); BACNET_STACK_EXPORT -int bacnet_date_decode(const uint8_t *apdu, +int bacnet_date_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint32_t len_value, BACNET_DATE *value); @@ -535,7 +576,8 @@ BACNET_STACK_EXPORT int bacnet_date_application_decode( const uint8_t *apdu, uint32_t apdu_len_max, BACNET_DATE *value); BACNET_STACK_EXPORT -int bacnet_date_context_decode(const uint8_t *apdu, +int bacnet_date_context_decode( + const uint8_t *apdu, uint32_t apdu_len_max, uint8_t tag_value, BACNET_DATE *value); @@ -555,7 +597,8 @@ BACNET_STACK_EXPORT int encode_simple_ack(uint8_t *apdu, uint8_t invoke_id, uint8_t service_choice); BACNET_STACK_EXPORT -int bacnet_array_encode(uint32_t object_instance, +int bacnet_array_encode( + uint32_t object_instance, BACNET_ARRAY_INDEX array_index, bacnet_array_property_element_encode_function encoder, BACNET_UNSIGNED_INTEGER array_size, @@ -564,23 +607,23 @@ int bacnet_array_encode(uint32_t object_instance, /* from clause 20.2.1.2 Tag Number */ /* true if extended tag numbering is used */ -#define IS_EXTENDED_TAG_NUMBER(x) (((x)&0xF0) == 0xF0) +#define IS_EXTENDED_TAG_NUMBER(x) (((x) & 0xF0) == 0xF0) /* from clause 20.2.1.3.1 Primitive Data */ /* true if the extended value is used */ -#define IS_EXTENDED_VALUE(x) (((x)&0x07) == 5) +#define IS_EXTENDED_VALUE(x) (((x) & 0x07) == 5) /* from clause 20.2.1.1 Class */ /* true if the tag is context specific */ -#define IS_CONTEXT_SPECIFIC(x) (((x)&BIT(3)) == BIT(3)) +#define IS_CONTEXT_SPECIFIC(x) (((x) & BIT(3)) == BIT(3)) /* from clause 20.2.1.3.2 Constructed Data */ /* true if the tag is an opening tag */ -#define IS_OPENING_TAG(x) (((x)&0x07) == 6) +#define IS_OPENING_TAG(x) (((x) & 0x07) == 6) /* from clause 20.2.1.3.2 Constructed Data */ /* true if the tag is a closing tag */ -#define IS_CLOSING_TAG(x) (((x)&0x07) == 7) +#define IS_CLOSING_TAG(x) (((x) & 0x07) == 7) #ifdef __cplusplus } diff --git a/src/bacnet/bacdef.h b/src/bacnet/bacdef.h index a8212283..b055933e 100644 --- a/src/bacnet/bacdef.h +++ b/src/bacnet/bacdef.h @@ -185,11 +185,11 @@ typedef struct BACnet_Object_Id { #define MAX_NPDU (1 + 1 + 2 + 1 + MAX_MAC_LEN + 2 + 1 + MAX_MAC_LEN + 1 + 1 + 2) #define MAX_PDU (MAX_APDU + MAX_NPDU) -#define BACNET_ID_VALUE(bacnet_object_instance, bacnet_object_type) \ - ((((bacnet_object_type)&BACNET_MAX_OBJECT) << BACNET_INSTANCE_BITS) | \ - ((bacnet_object_instance)&BACNET_MAX_INSTANCE)) +#define BACNET_ID_VALUE(bacnet_object_instance, bacnet_object_type) \ + ((((bacnet_object_type) & BACNET_MAX_OBJECT) << BACNET_INSTANCE_BITS) | \ + ((bacnet_object_instance) & BACNET_MAX_INSTANCE)) #define BACNET_INSTANCE(bacnet_object_id_num) \ - ((bacnet_object_id_num)&BACNET_MAX_INSTANCE) + ((bacnet_object_id_num) & BACNET_MAX_INSTANCE) #define BACNET_TYPE(bacnet_object_id_num) \ (((bacnet_object_id_num) >> BACNET_INSTANCE_BITS) & BACNET_MAX_OBJECT) diff --git a/src/bacnet/bacdest.h b/src/bacnet/bacdest.h index 6683b880..25e12d8e 100644 --- a/src/bacnet/bacdest.h +++ b/src/bacnet/bacdest.h @@ -82,8 +82,7 @@ void bacnet_destination_copy( BACNET_DESTINATION *dest, const BACNET_DESTINATION *src); BACNET_STACK_EXPORT -void bacnet_recipient_copy( - BACNET_RECIPIENT *dest, const BACNET_RECIPIENT *src); +void bacnet_recipient_copy(BACNET_RECIPIENT *dest, const BACNET_RECIPIENT *src); BACNET_STACK_EXPORT bool bacnet_recipient_same( const BACNET_RECIPIENT *r1, const BACNET_RECIPIENT *r2); diff --git a/src/bacnet/bacdevobjpropref.c b/src/bacnet/bacdevobjpropref.c index 05248839..f6649e2c 100644 --- a/src/bacnet/bacdevobjpropref.c +++ b/src/bacnet/bacdevobjpropref.c @@ -24,7 +24,8 @@ * * @return Bytes encoded or 0 on failure. */ -int bacapp_encode_context_device_obj_property_ref(uint8_t *apdu, +int bacapp_encode_context_device_obj_property_ref( + uint8_t *apdu, uint8_t tag_number, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *value) { @@ -78,7 +79,8 @@ int bacapp_encode_device_obj_property_ref( return apdu_len; } /* object-identifier [0] BACnetObjectIdentifier */ - len = encode_context_object_id(apdu, 0, value->objectIdentifier.type, + len = encode_context_object_id( + apdu, 0, value->objectIdentifier.type, value->objectIdentifier.instance); apdu_len += len; if (apdu) { @@ -104,7 +106,8 @@ int bacapp_encode_device_obj_property_ref( * (set type to BACNET_NO_DEV_TYPE or something other than OBJECT_DEVICE to * omit */ if (value->deviceIdentifier.type == OBJECT_DEVICE) { - len = encode_context_object_id(apdu, 3, value->deviceIdentifier.type, + len = encode_context_object_id( + apdu, 3, value->deviceIdentifier.type, value->deviceIdentifier.instance); apdu_len += len; } @@ -131,7 +134,8 @@ int bacapp_encode_device_obj_property_ref( * * @return number of bytes decoded or BACNET_STATUS_ERROR on failure. */ -int bacnet_device_object_property_reference_decode(const uint8_t *apdu, +int bacnet_device_object_property_reference_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *value) { @@ -147,8 +151,9 @@ int bacnet_device_object_property_reference_decode(const uint8_t *apdu, return BACNET_STATUS_ERROR; } /* object-identifier [0] BACnetObjectIdentifier */ - len = bacnet_object_id_context_decode(&apdu[apdu_len], apdu_size - apdu_len, - 0, &object_type, &object_instance); + len = bacnet_object_id_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, 0, &object_type, + &object_instance); if (len > 0) { apdu_len += len; if (value) { @@ -173,8 +178,9 @@ int bacnet_device_object_property_reference_decode(const uint8_t *apdu, if (bacnet_is_context_tag_number( &apdu[apdu_len], apdu_size - apdu_len, 2, &len, &len_value_type)) { apdu_len += len; - len = bacnet_unsigned_decode(&apdu[apdu_len], apdu_size - apdu_len, - len_value_type, &array_index); + len = bacnet_unsigned_decode( + &apdu[apdu_len], apdu_size - apdu_len, len_value_type, + &array_index); if (len > 0) { apdu_len += len; if (value) { @@ -193,8 +199,9 @@ int bacnet_device_object_property_reference_decode(const uint8_t *apdu, if (bacnet_is_context_tag_number( &apdu[apdu_len], apdu_size - apdu_len, 3, &len, &len_value_type)) { apdu_len += len; - len = bacnet_object_id_decode(&apdu[apdu_len], apdu_size - apdu_len, - len_value_type, &object_type, &object_instance); + len = bacnet_object_id_decode( + &apdu[apdu_len], apdu_size - apdu_len, len_value_type, &object_type, + &object_instance); if (len > 0) { apdu_len += len; if (value) { @@ -226,7 +233,8 @@ int bacnet_device_object_property_reference_decode(const uint8_t *apdu, * * @return number of bytes decoded or BACNET_STATUS_ERROR on failure. */ -int bacnet_device_object_property_reference_context_decode(const uint8_t *apdu, +int bacnet_device_object_property_reference_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *value) @@ -275,10 +283,10 @@ bool bacnet_device_object_property_reference_same( if (value1 && value2) { if ((value1->arrayIndex == value2->arrayIndex) && (value1->deviceIdentifier.instance == - value2->deviceIdentifier.instance) && + value2->deviceIdentifier.instance) && (value1->deviceIdentifier.type == value2->deviceIdentifier.type) && (value1->objectIdentifier.instance == - value2->objectIdentifier.instance) && + value2->objectIdentifier.instance) && (value1->objectIdentifier.type == value2->objectIdentifier.type) && (value1->propertyIdentifier == value2->propertyIdentifier)) { status = true; @@ -328,7 +336,8 @@ int bacapp_decode_device_obj_property_ref( * @deprecated Use bacnet_device_object_property_reference_context_decode() * instead */ -int bacapp_decode_context_device_obj_property_ref(const uint8_t *apdu, +int bacapp_decode_context_device_obj_property_ref( + const uint8_t *apdu, uint8_t tag_number, BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *value) { @@ -352,7 +361,9 @@ int bacapp_decode_context_device_obj_property_ref(const uint8_t *apdu, * @return Bytes encoded or 0 on failure. */ int bacapp_encode_context_device_obj_ref( - uint8_t *apdu, uint8_t tag_number, const BACNET_DEVICE_OBJECT_REFERENCE *value) + uint8_t *apdu, + uint8_t tag_number, + const BACNET_DEVICE_OBJECT_REFERENCE *value) { int len; int apdu_len = 0; @@ -400,15 +411,17 @@ int bacapp_encode_device_obj_ref( set type to BACNET_NO_DEV_TYPE or something other than OBJECT_DEVICE to omit */ if (value->deviceIdentifier.type == OBJECT_DEVICE) { - len = encode_context_object_id(apdu, 0, - value->deviceIdentifier.type, value->deviceIdentifier.instance); + len = encode_context_object_id( + apdu, 0, value->deviceIdentifier.type, + value->deviceIdentifier.instance); apdu_len += len; if (apdu) { apdu += len; } } /* object-identifier [1] BACnetObjectIdentifier */ - len = encode_context_object_id(apdu, 1, value->objectIdentifier.type, + len = encode_context_object_id( + apdu, 1, value->objectIdentifier.type, value->objectIdentifier.instance); apdu_len += len; } @@ -431,7 +444,9 @@ int bacapp_encode_device_obj_ref( * @return number of bytes decoded or BACNET_STATUS_ERROR on failure. */ int bacnet_device_object_reference_decode( - const uint8_t *apdu, uint32_t apdu_size, BACNET_DEVICE_OBJECT_REFERENCE *value) + const uint8_t *apdu, + uint32_t apdu_size, + BACNET_DEVICE_OBJECT_REFERENCE *value) { int len; int apdu_len = 0; @@ -446,8 +461,9 @@ int bacnet_device_object_reference_decode( if (bacnet_is_context_tag_number( &apdu[apdu_len], apdu_size - apdu_len, 0, &len, &len_value_type)) { apdu_len += len; - len = bacnet_object_id_decode(&apdu[apdu_len], apdu_size - apdu_len, - len_value_type, &object_type, &object_instance); + len = bacnet_object_id_decode( + &apdu[apdu_len], apdu_size - apdu_len, len_value_type, &object_type, + &object_instance); if (len > 0) { apdu_len += len; if (value) { @@ -463,8 +479,9 @@ int bacnet_device_object_reference_decode( value->deviceIdentifier.instance = BACNET_NO_DEV_ID; } /* object-identifier [1] BACnetObjectIdentifier */ - len = bacnet_object_id_context_decode(&apdu[apdu_len], apdu_size - apdu_len, - 1, &object_type, &object_instance); + len = bacnet_object_id_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, 1, &object_type, + &object_instance); if (len > 0) { apdu_len += len; if (value) { @@ -489,7 +506,8 @@ int bacnet_device_object_reference_decode( * * @return number of bytes decoded or BACNET_STATUS_ERROR on failure. */ -int bacnet_device_object_reference_context_decode(const uint8_t *apdu, +int bacnet_device_object_reference_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_DEVICE_OBJECT_REFERENCE *value) @@ -537,10 +555,10 @@ bool bacnet_device_object_reference_same( if (value1 && value2) { if ((value1->deviceIdentifier.instance == - value2->deviceIdentifier.instance) && + value2->deviceIdentifier.instance) && (value1->deviceIdentifier.type == value2->deviceIdentifier.type) && (value1->objectIdentifier.instance == - value2->objectIdentifier.instance) && + value2->objectIdentifier.instance) && (value1->objectIdentifier.type == value2->objectIdentifier.type)) { status = true; } @@ -583,7 +601,9 @@ int bacapp_decode_device_obj_ref( * @deprecated Use bacnet_device_object_reference_context_decode() instead. */ int bacapp_decode_context_device_obj_ref( - const uint8_t *apdu, uint8_t tag_number, BACNET_DEVICE_OBJECT_REFERENCE *value) + const uint8_t *apdu, + uint8_t tag_number, + BACNET_DEVICE_OBJECT_REFERENCE *value) { return bacnet_device_object_reference_context_decode( apdu, MAX_APDU, tag_number, value); @@ -616,7 +636,8 @@ int bacapp_encode_obj_property_ref( if (reference->object_identifier.type == OBJECT_NONE) { return 0; } - len = encode_context_object_id(apdu, 0, reference->object_identifier.type, + len = encode_context_object_id( + apdu, 0, reference->object_identifier.type, reference->object_identifier.instance); apdu_len += len; if (apdu) { @@ -642,7 +663,8 @@ int bacapp_encode_obj_property_ref( * @param reference - BACnetObjectPropertyReference to encode * @return length of the APDU buffer */ -int bacapp_encode_context_obj_property_ref(uint8_t *apdu, +int bacapp_encode_context_obj_property_ref( + uint8_t *apdu, uint8_t tag_number, const BACNET_OBJECT_PROPERTY_REFERENCE *reference) { @@ -684,7 +706,8 @@ int bacapp_encode_context_obj_property_ref(uint8_t *apdu, * @param reference - BACnetObjectPropertyReference to decode into * @return number of bytes decoded or BACNET_STATUS_ERROR on failure. */ -int bacapp_decode_obj_property_ref(const uint8_t *apdu, +int bacapp_decode_obj_property_ref( + const uint8_t *apdu, uint16_t apdu_size, BACNET_OBJECT_PROPERTY_REFERENCE *reference) { @@ -698,8 +721,9 @@ int bacapp_decode_obj_property_ref(const uint8_t *apdu, return BACNET_STATUS_ERROR; } /* object-identifier [0] BACnetObjectIdentifier */ - len = bacnet_object_id_context_decode(&apdu[apdu_len], apdu_size - apdu_len, - 0, &object_identifier.type, &object_identifier.instance); + len = bacnet_object_id_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, 0, &object_identifier.type, + &object_identifier.instance); if (len > 0) { apdu_len += len; } else if (len <= 0) { @@ -756,7 +780,8 @@ int bacapp_decode_obj_property_ref(const uint8_t *apdu, * * @return number of bytes decoded or BACNET_STATUS_ERROR on failure. */ -int bacapp_decode_context_obj_property_ref(const uint8_t *apdu, +int bacapp_decode_context_obj_property_ref( + const uint8_t *apdu, uint16_t apdu_size, uint8_t tag_number, BACNET_OBJECT_PROPERTY_REFERENCE *value) @@ -804,9 +829,9 @@ bool bacnet_object_property_reference_same( if (value1 && value2) { if ((value1->property_identifier == value2->property_identifier) && (value1->object_identifier.instance == - value2->object_identifier.instance) && + value2->object_identifier.instance) && (value1->object_identifier.type == - value2->object_identifier.type)) { + value2->object_identifier.type)) { status = true; } } diff --git a/src/bacnet/bacdevobjpropref.h b/src/bacnet/bacdevobjpropref.h index 9551c894..5dfe4d44 100644 --- a/src/bacnet/bacdevobjpropref.h +++ b/src/bacnet/bacdevobjpropref.h @@ -60,7 +60,8 @@ int bacapp_encode_device_obj_property_ref( uint8_t *apdu, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *value); BACNET_STACK_EXPORT -int bacapp_encode_context_device_obj_property_ref(uint8_t *apdu, +int bacapp_encode_context_device_obj_property_ref( + uint8_t *apdu, uint8_t tag_number, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *value); @@ -73,7 +74,8 @@ int bacapp_decode_device_obj_property_ref( BACNET_STACK_DEPRECATED( "Use bacnet_device_object_property_reference_context_decode() instead") BACNET_STACK_EXPORT -int bacapp_decode_context_device_obj_property_ref(const uint8_t *apdu, +int bacapp_decode_context_device_obj_property_ref( + const uint8_t *apdu, uint8_t tag_number, BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *value); diff --git a/src/bacnet/bacenum.h b/src/bacnet/bacenum.h index c25dbb6e..70929524 100644 --- a/src/bacnet/bacenum.h +++ b/src/bacnet/bacenum.h @@ -1745,8 +1745,8 @@ typedef enum BACnet_Services_Supported { SERVICE_SUPPORTED_PRIVATE_TRANSFER = 18, SERVICE_SUPPORTED_TEXT_MESSAGE = 19, SERVICE_SUPPORTED_REINITIALIZE_DEVICE = 20, - SERVICE_SUPPORTED_WHO_AM_I = 47, /* Addendum 135-2016bz */ - SERVICE_SUPPORTED_YOU_ARE = 48, /* Addendum 135-2016bz */ + SERVICE_SUPPORTED_WHO_AM_I = 47, /* Addendum 135-2016bz */ + SERVICE_SUPPORTED_YOU_ARE = 48, /* Addendum 135-2016bz */ /* Virtual Terminal Services */ SERVICE_SUPPORTED_VT_OPEN = 21, SERVICE_SUPPORTED_VT_CLOSE = 22, diff --git a/src/bacnet/bacerror.c b/src/bacnet/bacerror.c index 788005d8..a8c9ef42 100644 --- a/src/bacnet/bacerror.c +++ b/src/bacnet/bacerror.c @@ -32,7 +32,8 @@ * @param error_code - #BACNET_ERROR_CODE value to be encoded * @return number of bytes encoded */ -int bacerror_encode_apdu(uint8_t *apdu, +int bacerror_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, BACNET_CONFIRMED_SERVICE service, BACNET_ERROR_CLASS error_class, @@ -84,7 +85,8 @@ int bacerror_encode_apdu(uint8_t *apdu, * * @return number of bytes decoded, or #BACNET_STATUS_ERROR (-1) if malformed */ -int bacerror_decode_error_class_and_code(const uint8_t *apdu, +int bacerror_decode_error_class_and_code( + const uint8_t *apdu, unsigned apdu_size, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) @@ -96,7 +98,7 @@ int bacerror_decode_error_class_and_code(const uint8_t *apdu, if (apdu) { /* error class */ tag_len = bacnet_enumerated_application_decode( - &apdu[apdu_len], apdu_size-apdu_len, &decoded_value); + &apdu[apdu_len], apdu_size - apdu_len, &decoded_value); if (tag_len <= 0) { return BACNET_STATUS_ERROR; } @@ -130,7 +132,8 @@ int bacerror_decode_error_class_and_code(const uint8_t *apdu, * * @return number of bytes decoded, or #BACNET_STATUS_ERROR (-1) if malformed */ -int bacerror_decode_service_request(const uint8_t *apdu, +int bacerror_decode_service_request( + const uint8_t *apdu, unsigned apdu_size, uint8_t *invoke_id, BACNET_CONFIRMED_SERVICE *service, diff --git a/src/bacnet/bacerror.h b/src/bacnet/bacerror.h index 0aa76dd6..3af271e5 100644 --- a/src/bacnet/bacerror.h +++ b/src/bacnet/bacerror.h @@ -17,29 +17,29 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bacerror_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - BACNET_CONFIRMED_SERVICE service, - BACNET_ERROR_CLASS error_class, - BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +int bacerror_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + BACNET_CONFIRMED_SERVICE service, + BACNET_ERROR_CLASS error_class, + BACNET_ERROR_CODE error_code); - BACNET_STACK_EXPORT - int bacerror_decode_service_request( - const uint8_t * apdu, - unsigned apdu_size, - uint8_t * invoke_id, - BACNET_CONFIRMED_SERVICE * service, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +BACNET_STACK_EXPORT +int bacerror_decode_service_request( + const uint8_t *apdu, + unsigned apdu_size, + uint8_t *invoke_id, + BACNET_CONFIRMED_SERVICE *service, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); - BACNET_STACK_EXPORT - int bacerror_decode_error_class_and_code( - const uint8_t * apdu, - unsigned apdu_size, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code); +BACNET_STACK_EXPORT +int bacerror_decode_error_class_and_code( + const uint8_t *apdu, + unsigned apdu_size, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code); #ifdef __cplusplus } diff --git a/src/bacnet/bacint.c b/src/bacnet/bacint.c index 4c6f5572..88e43208 100644 --- a/src/bacnet/bacint.c +++ b/src/bacnet/bacint.c @@ -26,7 +26,7 @@ int encode_unsigned16(uint8_t *apdu, uint16_t value) int decode_unsigned16(const uint8_t *apdu, uint16_t *value) { if (apdu && value) { - *value = (uint16_t)apdu[0] << 8; + *value = (uint16_t)apdu[0] << 8; *value |= (uint16_t)apdu[1]; } @@ -37,8 +37,8 @@ int encode_unsigned24(uint8_t *apdu, uint32_t value) { if (apdu) { apdu[0] = (uint8_t)((value >> 16) & 0xFF); - apdu[1] = (uint8_t)((value >> 8) & 0xFF); - apdu[2] = (uint8_t)((value >> 0) & 0xFF); + apdu[1] = (uint8_t)((value >> 8) & 0xFF); + apdu[2] = (uint8_t)((value >> 0) & 0xFF); } return 3; @@ -47,7 +47,7 @@ int encode_unsigned24(uint8_t *apdu, uint32_t value) int decode_unsigned24(const uint8_t *apdu, uint32_t *value) { if (apdu && value) { - *value = (uint32_t)apdu[0] << 16; + *value = (uint32_t)apdu[0] << 16; *value |= (uint32_t)apdu[1] << 8; *value |= (uint32_t)apdu[2]; } @@ -60,8 +60,8 @@ int encode_unsigned32(uint8_t *apdu, uint32_t value) if (apdu) { apdu[0] = (uint8_t)((value >> 24) & 0xFF); apdu[1] = (uint8_t)((value >> 16) & 0xFF); - apdu[2] = (uint8_t)((value >> 8) & 0xFF); - apdu[3] = (uint8_t)((value >> 0) & 0xFF); + apdu[2] = (uint8_t)((value >> 8) & 0xFF); + apdu[3] = (uint8_t)((value >> 0) & 0xFF); } return 4; @@ -70,7 +70,7 @@ int encode_unsigned32(uint8_t *apdu, uint32_t value) int decode_unsigned32(const uint8_t *apdu, uint32_t *value) { if (apdu && value) { - *value = (uint32_t)apdu[0] << 24; + *value = (uint32_t)apdu[0] << 24; *value |= (uint32_t)apdu[1] << 16; *value |= (uint32_t)apdu[2] << 8; *value |= (uint32_t)apdu[3]; @@ -92,8 +92,8 @@ int encode_unsigned40(uint8_t *buffer, uint64_t value) buffer[0] = (uint8_t)((value >> 32) & 0xFF); buffer[1] = (uint8_t)((value >> 24) & 0xFF); buffer[2] = (uint8_t)((value >> 16) & 0xFF); - buffer[3] = (uint8_t)((value >> 8) & 0xFF); - buffer[4] = (uint8_t)((value >> 0) & 0xFF); + buffer[3] = (uint8_t)((value >> 8) & 0xFF); + buffer[4] = (uint8_t)((value >> 0) & 0xFF); } return 5; @@ -108,7 +108,7 @@ int encode_unsigned40(uint8_t *buffer, uint64_t value) int decode_unsigned40(const uint8_t *buffer, uint64_t *value) { if (buffer && value) { - *value = (uint64_t)buffer[0] << 32; + *value = (uint64_t)buffer[0] << 32; *value |= (uint64_t)buffer[1] << 24; *value |= (uint64_t)buffer[2] << 16; *value |= (uint64_t)buffer[3] << 8; @@ -131,8 +131,8 @@ int encode_unsigned48(uint8_t *buffer, uint64_t value) buffer[1] = (uint8_t)((value >> 32) & 0xFF); buffer[2] = (uint8_t)((value >> 24) & 0xFF); buffer[3] = (uint8_t)((value >> 16) & 0xFF); - buffer[4] = (uint8_t)((value >> 8) & 0xFF); - buffer[5] = (uint8_t)((value >> 0) & 0xFF); + buffer[4] = (uint8_t)((value >> 8) & 0xFF); + buffer[5] = (uint8_t)((value >> 0) & 0xFF); } return 6; @@ -147,7 +147,7 @@ int encode_unsigned48(uint8_t *buffer, uint64_t value) int decode_unsigned48(const uint8_t *buffer, uint64_t *value) { if (buffer && value) { - *value = (uint64_t)buffer[0] << 40; + *value = (uint64_t)buffer[0] << 40; *value |= (uint64_t)buffer[1] << 32; *value |= (uint64_t)buffer[2] << 24; *value |= (uint64_t)buffer[3] << 16; @@ -172,8 +172,8 @@ int encode_unsigned56(uint8_t *buffer, uint64_t value) buffer[2] = (uint8_t)((value >> 32) & 0xFF); buffer[3] = (uint8_t)((value >> 24) & 0xFF); buffer[4] = (uint8_t)((value >> 16) & 0xFF); - buffer[5] = (uint8_t)((value >> 8) & 0xFF); - buffer[6] = (uint8_t)((value >> 0) & 0xFF); + buffer[5] = (uint8_t)((value >> 8) & 0xFF); + buffer[6] = (uint8_t)((value >> 0) & 0xFF); } return 7; @@ -188,7 +188,7 @@ int encode_unsigned56(uint8_t *buffer, uint64_t value) int decode_unsigned56(const uint8_t *buffer, uint64_t *value) { if (buffer && value) { - *value = (uint64_t)buffer[0] << 48; + *value = (uint64_t)buffer[0] << 48; *value |= (uint64_t)buffer[1] << 40; *value |= (uint64_t)buffer[2] << 32; *value |= (uint64_t)buffer[3] << 24; @@ -215,8 +215,8 @@ int encode_unsigned64(uint8_t *buffer, uint64_t value) buffer[3] = (uint8_t)((value >> 32) & 0xFF); buffer[4] = (uint8_t)((value >> 24) & 0xFF); buffer[5] = (uint8_t)((value >> 16) & 0xFF); - buffer[6] = (uint8_t)((value >> 8) & 0xFF); - buffer[7] = (uint8_t)((value >> 0) & 0xFF); + buffer[6] = (uint8_t)((value >> 8) & 0xFF); + buffer[7] = (uint8_t)((value >> 0) & 0xFF); } return 8; @@ -231,7 +231,7 @@ int encode_unsigned64(uint8_t *buffer, uint64_t value) int decode_unsigned64(const uint8_t *buffer, uint64_t *value) { if (buffer && value) { - *value = (uint64_t)buffer[0] << 56; + *value = (uint64_t)buffer[0] << 56; *value |= (uint64_t)buffer[1] << 48; *value |= (uint64_t)buffer[2] << 40; *value |= (uint64_t)buffer[3] << 32; @@ -339,8 +339,8 @@ int encode_signed24(uint8_t *apdu, int32_t value) { if (apdu) { apdu[0] = (uint8_t)((value >> 16) & 0xFF); - apdu[1] = (uint8_t)((value >> 8) & 0xFF); - apdu[2] = (uint8_t)((value >> 0) & 0xFF); + apdu[1] = (uint8_t)((value >> 8) & 0xFF); + apdu[2] = (uint8_t)((value >> 0) & 0xFF); } return 3; @@ -368,8 +368,8 @@ int encode_signed32(uint8_t *apdu, int32_t value) if (apdu) { apdu[0] = (uint8_t)((value >> 24) & 0xFF); apdu[1] = (uint8_t)((value >> 16) & 0xFF); - apdu[2] = (uint8_t)((value >> 8) & 0xFF); - apdu[3] = (uint8_t)((value >> 0) & 0xFF); + apdu[2] = (uint8_t)((value >> 8) & 0xFF); + apdu[3] = (uint8_t)((value >> 0) & 0xFF); } return 4; @@ -378,7 +378,7 @@ int encode_signed32(uint8_t *apdu, int32_t value) int decode_signed32(const uint8_t *apdu, int32_t *value) { if (apdu && value) { - *value = (int32_t)apdu[0] << 24; + *value = (int32_t)apdu[0] << 24; *value |= (int32_t)apdu[1] << 16; *value |= (int32_t)apdu[2] << 8; *value |= (int32_t)apdu[3]; diff --git a/src/bacnet/bacint.h b/src/bacnet/bacint.h index 338a67fa..fc3189d2 100644 --- a/src/bacnet/bacint.h +++ b/src/bacnet/bacint.h @@ -18,106 +18,60 @@ extern "C" { #endif /* __cplusplus */ - /* unsigned value encoding and decoding */ - BACNET_STACK_EXPORT - int encode_unsigned16( - uint8_t * apdu, - uint16_t value); - BACNET_STACK_EXPORT - int decode_unsigned16( - const uint8_t * apdu, - uint16_t * value); - BACNET_STACK_EXPORT - int encode_unsigned24( - uint8_t * apdu, - uint32_t value); - BACNET_STACK_EXPORT - int decode_unsigned24( - const uint8_t * apdu, - uint32_t * value); - BACNET_STACK_EXPORT - int encode_unsigned32( - uint8_t * apdu, - uint32_t value); - BACNET_STACK_EXPORT - int decode_unsigned32( - const uint8_t * apdu, - uint32_t * value); +/* unsigned value encoding and decoding */ +BACNET_STACK_EXPORT +int encode_unsigned16(uint8_t *apdu, uint16_t value); +BACNET_STACK_EXPORT +int decode_unsigned16(const uint8_t *apdu, uint16_t *value); +BACNET_STACK_EXPORT +int encode_unsigned24(uint8_t *apdu, uint32_t value); +BACNET_STACK_EXPORT +int decode_unsigned24(const uint8_t *apdu, uint32_t *value); +BACNET_STACK_EXPORT +int encode_unsigned32(uint8_t *apdu, uint32_t value); +BACNET_STACK_EXPORT +int decode_unsigned32(const uint8_t *apdu, uint32_t *value); #ifdef UINT64_MAX - BACNET_STACK_EXPORT - int encode_unsigned40( - uint8_t * buffer, - uint64_t value); - BACNET_STACK_EXPORT - int decode_unsigned40( - const uint8_t * buffer, - uint64_t * value); - BACNET_STACK_EXPORT - int encode_unsigned48( - uint8_t * buffer, - uint64_t value); - BACNET_STACK_EXPORT - int decode_unsigned48( - const uint8_t * buffer, - uint64_t * value); - BACNET_STACK_EXPORT - int encode_unsigned56( - uint8_t * buffer, - uint64_t value); - BACNET_STACK_EXPORT - int decode_unsigned56( - const uint8_t * buffer, - uint64_t * value); - BACNET_STACK_EXPORT - int encode_unsigned64( - uint8_t * buffer, - uint64_t value); - BACNET_STACK_EXPORT - int decode_unsigned64( - const uint8_t * buffer, - uint64_t * value); +BACNET_STACK_EXPORT +int encode_unsigned40(uint8_t *buffer, uint64_t value); +BACNET_STACK_EXPORT +int decode_unsigned40(const uint8_t *buffer, uint64_t *value); +BACNET_STACK_EXPORT +int encode_unsigned48(uint8_t *buffer, uint64_t value); +BACNET_STACK_EXPORT +int decode_unsigned48(const uint8_t *buffer, uint64_t *value); +BACNET_STACK_EXPORT +int encode_unsigned56(uint8_t *buffer, uint64_t value); +BACNET_STACK_EXPORT +int decode_unsigned56(const uint8_t *buffer, uint64_t *value); +BACNET_STACK_EXPORT +int encode_unsigned64(uint8_t *buffer, uint64_t value); +BACNET_STACK_EXPORT +int decode_unsigned64(const uint8_t *buffer, uint64_t *value); #endif - BACNET_STACK_EXPORT - int bacnet_unsigned_length( - BACNET_UNSIGNED_INTEGER value); - BACNET_STACK_EXPORT - int bacnet_signed_length( - int32_t value); +BACNET_STACK_EXPORT +int bacnet_unsigned_length(BACNET_UNSIGNED_INTEGER value); +BACNET_STACK_EXPORT +int bacnet_signed_length(int32_t value); - /* signed value encoding and decoding */ - BACNET_STACK_EXPORT - int encode_signed8( - uint8_t * apdu, - int8_t value); - BACNET_STACK_EXPORT - int decode_signed8( - const uint8_t * apdu, - int32_t * value); - BACNET_STACK_EXPORT - int encode_signed16( - uint8_t * apdu, - int16_t value); - BACNET_STACK_EXPORT - int decode_signed16( - const uint8_t * apdu, - int32_t * value); - BACNET_STACK_EXPORT - int encode_signed24( - uint8_t * apdu, - int32_t value); - BACNET_STACK_EXPORT - int decode_signed24( - const uint8_t * apdu, - int32_t * value); - BACNET_STACK_EXPORT - int encode_signed32( - uint8_t * apdu, - int32_t value); - BACNET_STACK_EXPORT - int decode_signed32( - const uint8_t * apdu, - int32_t * value); +/* signed value encoding and decoding */ +BACNET_STACK_EXPORT +int encode_signed8(uint8_t *apdu, int8_t value); +BACNET_STACK_EXPORT +int decode_signed8(const uint8_t *apdu, int32_t *value); +BACNET_STACK_EXPORT +int encode_signed16(uint8_t *apdu, int16_t value); +BACNET_STACK_EXPORT +int decode_signed16(const uint8_t *apdu, int32_t *value); +BACNET_STACK_EXPORT +int encode_signed24(uint8_t *apdu, int32_t value); +BACNET_STACK_EXPORT +int decode_signed24(const uint8_t *apdu, int32_t *value); +BACNET_STACK_EXPORT +int encode_signed32(uint8_t *apdu, int32_t value); +BACNET_STACK_EXPORT +int decode_signed32(const uint8_t *apdu, int32_t *value); #ifdef __cplusplus } diff --git a/src/bacnet/bacprop.c b/src/bacnet/bacprop.c index 79f2bf5f..8a2fc279 100644 --- a/src/bacnet/bacprop.c +++ b/src/bacnet/bacprop.c @@ -23,7 +23,7 @@ PROP_TAG_DATA bacnet_object_device_property_tag_map[] = { { PROP_MODEL_NAME, BACNET_APPLICATION_TAG_CHARACTER_STRING }, { PROP_FIRMWARE_REVISION, BACNET_APPLICATION_TAG_CHARACTER_STRING }, { PROP_APPLICATION_SOFTWARE_VERSION, - BACNET_APPLICATION_TAG_CHARACTER_STRING }, + BACNET_APPLICATION_TAG_CHARACTER_STRING }, { PROP_PROTOCOL_VERSION, BACNET_APPLICATION_TAG_UNSIGNED_INT }, { PROP_PROTOCOL_CONFORMANCE_CLASS, BACNET_APPLICATION_TAG_UNSIGNED_INT }, { PROP_PROTOCOL_SERVICES_SUPPORTED, BACNET_APPLICATION_TAG_BIT_STRING }, diff --git a/src/bacnet/bacprop.h b/src/bacnet/bacprop.h index b30732e5..d3414924 100644 --- a/src/bacnet/bacprop.h +++ b/src/bacnet/bacprop.h @@ -15,24 +15,20 @@ #include "bacnet/bacdef.h" typedef struct { - signed prop_id; /* index number that matches the text */ - signed tag_id; /* text pair - use NULL to end the list */ + signed prop_id; /* index number that matches the text */ + signed tag_id; /* text pair - use NULL to end the list */ } PROP_TAG_DATA; #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - signed bacprop_tag_by_index_default( - const PROP_TAG_DATA * data_list, - signed index, - signed default_ret); +BACNET_STACK_EXPORT +signed bacprop_tag_by_index_default( + const PROP_TAG_DATA *data_list, signed index, signed default_ret); - BACNET_STACK_EXPORT - signed bacprop_property_tag( - BACNET_OBJECT_TYPE type, - signed prop); +BACNET_STACK_EXPORT +signed bacprop_property_tag(BACNET_OBJECT_TYPE type, signed prop); #ifdef __cplusplus } diff --git a/src/bacnet/bacpropstates.c b/src/bacnet/bacpropstates.c index 10842090..a873ca63 100644 --- a/src/bacnet/bacpropstates.c +++ b/src/bacnet/bacpropstates.c @@ -72,8 +72,9 @@ int bacapp_property_state_decode( apdu_len++; } } else if (tag.number == PROP_STATE_INTEGER_VALUE) { - len = bacnet_signed_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, &integer_value); + len = bacnet_signed_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + &integer_value); if (len <= 0) { return BACNET_STATUS_ERROR; } @@ -82,8 +83,9 @@ int bacapp_property_state_decode( value->state.integerValue = integer_value; } } else { - len = bacnet_enumerated_decode(&apdu[apdu_len], apdu_size - apdu_len, - tag.len_value_type, &enum_value); + len = bacnet_enumerated_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.len_value_type, + &enum_value); if (len <= 0) { return BACNET_STATUS_ERROR; } diff --git a/src/bacnet/bacpropstates.h b/src/bacnet/bacpropstates.h index 0b8c6e76..81b4ebff 100644 --- a/src/bacnet/bacpropstates.h +++ b/src/bacnet/bacpropstates.h @@ -87,27 +87,21 @@ typedef struct { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bacapp_property_state_decode( - const uint8_t *apdu, - uint32_t apdu_size, - BACNET_PROPERTY_STATE *value); +BACNET_STACK_EXPORT +int bacapp_property_state_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_PROPERTY_STATE *value); - BACNET_STACK_EXPORT - int bacapp_decode_property_state( - const uint8_t * apdu, - BACNET_PROPERTY_STATE * value); +BACNET_STACK_EXPORT +int bacapp_decode_property_state( + const uint8_t *apdu, BACNET_PROPERTY_STATE *value); - BACNET_STACK_EXPORT - int bacapp_decode_context_property_state( - const uint8_t * apdu, - uint8_t tag_number, - BACNET_PROPERTY_STATE * value); +BACNET_STACK_EXPORT +int bacapp_decode_context_property_state( + const uint8_t *apdu, uint8_t tag_number, BACNET_PROPERTY_STATE *value); - BACNET_STACK_EXPORT - int bacapp_encode_property_state( - uint8_t * apdu, - const BACNET_PROPERTY_STATE * value); +BACNET_STACK_EXPORT +int bacapp_encode_property_state( + uint8_t *apdu, const BACNET_PROPERTY_STATE *value); #ifdef __cplusplus } diff --git a/src/bacnet/bacreal.h b/src/bacnet/bacreal.h index 2afcbbeb..625f26c0 100644 --- a/src/bacnet/bacreal.h +++ b/src/bacnet/bacreal.h @@ -18,35 +18,23 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int decode_real_safe( - const uint8_t * apdu, - uint32_t len_value, - float *real_value); +BACNET_STACK_EXPORT +int decode_real_safe( + const uint8_t *apdu, uint32_t len_value, float *real_value); - BACNET_STACK_EXPORT - int decode_real( - const uint8_t * apdu, - float *real_value); +BACNET_STACK_EXPORT +int decode_real(const uint8_t *apdu, float *real_value); - BACNET_STACK_EXPORT - int encode_bacnet_real( - float value, - uint8_t * apdu); - BACNET_STACK_EXPORT - int decode_double( - const uint8_t * apdu, - double *real_value); - BACNET_STACK_EXPORT - int decode_double_safe( - const uint8_t * apdu, - uint32_t len_value, - double *double_value); +BACNET_STACK_EXPORT +int encode_bacnet_real(float value, uint8_t *apdu); +BACNET_STACK_EXPORT +int decode_double(const uint8_t *apdu, double *real_value); +BACNET_STACK_EXPORT +int decode_double_safe( + const uint8_t *apdu, uint32_t len_value, double *double_value); - BACNET_STACK_EXPORT - int encode_bacnet_double( - double value, - uint8_t * apdu); +BACNET_STACK_EXPORT +int encode_bacnet_double(double value, uint8_t *apdu); #ifdef __cplusplus } diff --git a/src/bacnet/bacstr.c b/src/bacnet/bacstr.c index 7a199da7..f005deff 100644 --- a/src/bacnet/bacstr.c +++ b/src/bacnet/bacstr.c @@ -148,7 +148,8 @@ uint8_t bitstring_bytes_used(const BACNET_BIT_STRING *bit_string) * * @return Value of the octet. */ -uint8_t bitstring_octet(const BACNET_BIT_STRING *bit_string, uint8_t octet_index) +uint8_t +bitstring_octet(const BACNET_BIT_STRING *bit_string, uint8_t octet_index) { uint8_t octet = 0; @@ -356,7 +357,8 @@ bool bitstring_init_ascii(BACNET_BIT_STRING *bit_string, const char *ascii) * * @return true on success, false if the string exceeds capacity. */ -bool characterstring_init(BACNET_CHARACTER_STRING *char_string, +bool characterstring_init( + BACNET_CHARACTER_STRING *char_string, uint8_t encoding, const char *value, size_t length) @@ -409,7 +411,7 @@ bool characterstring_init(BACNET_CHARACTER_STRING *char_string, */ size_t characterstring_strnlen(const char *str, size_t maxlen) { - const char* p = memchr(str, 0, maxlen); + const char *p = memchr(str, 0, maxlen); if (p == NULL) { return maxlen; } @@ -430,7 +432,8 @@ size_t characterstring_strnlen(const char *str, size_t maxlen) bool characterstring_init_ansi_safe( BACNET_CHARACTER_STRING *char_string, const char *value, size_t tmax) { - return characterstring_init(char_string, CHARACTER_ANSI_X34, value, + return characterstring_init( + char_string, CHARACTER_ANSI_X34, value, value ? characterstring_strnlen(value, tmax) : 0); } @@ -463,8 +466,9 @@ bool characterstring_copy( BACNET_CHARACTER_STRING *dest, const BACNET_CHARACTER_STRING *src) { if (dest && src) { - return characterstring_init(dest, characterstring_encoding(src), - characterstring_value(src), characterstring_length(src)); + return characterstring_init( + dest, characterstring_encoding(src), characterstring_value(src), + characterstring_length(src)); } return false; @@ -550,7 +554,8 @@ bool characterstring_same( * * @return true if the character encoding and string contents are the same */ -bool characterstring_ansi_same(const BACNET_CHARACTER_STRING *dest, const char *src) +bool characterstring_ansi_same( + const BACNET_CHARACTER_STRING *dest, const char *src) { size_t i; /* counter */ bool same_status = false; @@ -787,17 +792,19 @@ bool characterstring_printable(const BACNET_CHARACTER_STRING *char_string) /* Basic UTF-8 manipulation routines * by Jeff Bezanson * placed in the public domain Fall 2005 */ -static const char trailingBytesForUTF8[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5 }; +static const char trailingBytesForUTF8[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5 +}; /** * @brief Based on the valid_utf8 routine from the PCRE library by Philip Hazel @@ -1042,8 +1049,8 @@ bool octetstring_init_ascii_hex( bool octetstring_copy(BACNET_OCTET_STRING *dest, const BACNET_OCTET_STRING *src) { return octetstring_init( - dest, octetstring_value( - (BACNET_OCTET_STRING *)src), octetstring_length(src)); + dest, octetstring_value((BACNET_OCTET_STRING *)src), + octetstring_length(src)); } /** @@ -1196,7 +1203,8 @@ size_t octetstring_capacity(const BACNET_OCTET_STRING *octet_string) * @return true if the octet strings are the same, false otherwise. */ bool octetstring_value_same( - const BACNET_OCTET_STRING *octet_string1, const BACNET_OCTET_STRING *octet_string2) + const BACNET_OCTET_STRING *octet_string1, + const BACNET_OCTET_STRING *octet_string2) { size_t i = 0; /* loop counter */ diff --git a/src/bacnet/bacstr.h b/src/bacnet/bacstr.h index 622bab71..a10c15ec 100644 --- a/src/bacnet/bacstr.h +++ b/src/bacnet/bacstr.h @@ -36,189 +36,136 @@ typedef struct BACnet_Octet_String { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void bitstring_init( - BACNET_BIT_STRING * bit_string); - BACNET_STACK_EXPORT - void bitstring_set_bit( - BACNET_BIT_STRING * bit_string, - uint8_t bit_number, - bool value); - BACNET_STACK_EXPORT - bool bitstring_bit( - const BACNET_BIT_STRING * bit_string, - uint8_t bit_number); - BACNET_STACK_EXPORT - uint8_t bitstring_bits_used( - const BACNET_BIT_STRING * bit_string); +BACNET_STACK_EXPORT +void bitstring_init(BACNET_BIT_STRING *bit_string); +BACNET_STACK_EXPORT +void bitstring_set_bit( + BACNET_BIT_STRING *bit_string, uint8_t bit_number, bool value); +BACNET_STACK_EXPORT +bool bitstring_bit(const BACNET_BIT_STRING *bit_string, uint8_t bit_number); +BACNET_STACK_EXPORT +uint8_t bitstring_bits_used(const BACNET_BIT_STRING *bit_string); /* returns the number of bytes that a bit string is using */ - BACNET_STACK_EXPORT - uint8_t bitstring_bytes_used( - const BACNET_BIT_STRING * bit_string); - BACNET_STACK_EXPORT - unsigned bitstring_bits_capacity( - const BACNET_BIT_STRING * bit_string); +BACNET_STACK_EXPORT +uint8_t bitstring_bytes_used(const BACNET_BIT_STRING *bit_string); +BACNET_STACK_EXPORT +unsigned bitstring_bits_capacity(const BACNET_BIT_STRING *bit_string); /* used for encoding and decoding from the APDU */ - BACNET_STACK_EXPORT - uint8_t bitstring_octet( - const BACNET_BIT_STRING * bit_string, - uint8_t octet_index); - BACNET_STACK_EXPORT - bool bitstring_set_octet( - BACNET_BIT_STRING * bit_string, - uint8_t index, - uint8_t octet); - BACNET_STACK_EXPORT - bool bitstring_set_bits_used( - BACNET_BIT_STRING * bit_string, - uint8_t bytes_used, - uint8_t unused_bits); - BACNET_STACK_EXPORT - bool bitstring_copy( - BACNET_BIT_STRING * dest, - const BACNET_BIT_STRING * src); - BACNET_STACK_EXPORT - bool bitstring_same( - const BACNET_BIT_STRING * bitstring1, - const BACNET_BIT_STRING * bitstring2); - BACNET_STACK_EXPORT - bool bitstring_init_ascii( - BACNET_BIT_STRING * bit_string, - const char *ascii); +BACNET_STACK_EXPORT +uint8_t +bitstring_octet(const BACNET_BIT_STRING *bit_string, uint8_t octet_index); +BACNET_STACK_EXPORT +bool bitstring_set_octet( + BACNET_BIT_STRING *bit_string, uint8_t index, uint8_t octet); +BACNET_STACK_EXPORT +bool bitstring_set_bits_used( + BACNET_BIT_STRING *bit_string, uint8_t bytes_used, uint8_t unused_bits); +BACNET_STACK_EXPORT +bool bitstring_copy(BACNET_BIT_STRING *dest, const BACNET_BIT_STRING *src); +BACNET_STACK_EXPORT +bool bitstring_same( + const BACNET_BIT_STRING *bitstring1, const BACNET_BIT_STRING *bitstring2); +BACNET_STACK_EXPORT +bool bitstring_init_ascii(BACNET_BIT_STRING *bit_string, const char *ascii); /* returns false if the string exceeds capacity initialize by using length=0 */ - BACNET_STACK_EXPORT - bool characterstring_init( - BACNET_CHARACTER_STRING * char_string, - uint8_t encoding, - const char *value, - size_t length); - /* used for ANSI C-Strings */ - BACNET_STACK_EXPORT - bool characterstring_init_ansi( - BACNET_CHARACTER_STRING * char_string, - const char *value); - BACNET_STACK_EXPORT - size_t characterstring_strnlen( - const char *str, - size_t maxlen); - BACNET_STACK_EXPORT - bool characterstring_init_ansi_safe( - BACNET_CHARACTER_STRING * char_string, - const char *value, - size_t tmax); - BACNET_STACK_EXPORT - bool characterstring_copy( - BACNET_CHARACTER_STRING * dest, - const BACNET_CHARACTER_STRING * src); - BACNET_STACK_EXPORT - bool characterstring_ansi_copy( - char *dest, - size_t dest_max_len, - const BACNET_CHARACTER_STRING * src); +BACNET_STACK_EXPORT +bool characterstring_init( + BACNET_CHARACTER_STRING *char_string, + uint8_t encoding, + const char *value, + size_t length); +/* used for ANSI C-Strings */ +BACNET_STACK_EXPORT +bool characterstring_init_ansi( + BACNET_CHARACTER_STRING *char_string, const char *value); +BACNET_STACK_EXPORT +size_t characterstring_strnlen(const char *str, size_t maxlen); +BACNET_STACK_EXPORT +bool characterstring_init_ansi_safe( + BACNET_CHARACTER_STRING *char_string, const char *value, size_t tmax); +BACNET_STACK_EXPORT +bool characterstring_copy( + BACNET_CHARACTER_STRING *dest, const BACNET_CHARACTER_STRING *src); +BACNET_STACK_EXPORT +bool characterstring_ansi_copy( + char *dest, size_t dest_max_len, const BACNET_CHARACTER_STRING *src); /* returns true if the strings are the same length, encoding, value */ - BACNET_STACK_EXPORT - bool characterstring_same( - const BACNET_CHARACTER_STRING * dest, - const BACNET_CHARACTER_STRING * src); - BACNET_STACK_EXPORT - bool characterstring_ansi_same( - const BACNET_CHARACTER_STRING * dest, - const char *src); +BACNET_STACK_EXPORT +bool characterstring_same( + const BACNET_CHARACTER_STRING *dest, const BACNET_CHARACTER_STRING *src); +BACNET_STACK_EXPORT +bool characterstring_ansi_same( + const BACNET_CHARACTER_STRING *dest, const char *src); /* returns false if the string exceeds capacity */ - BACNET_STACK_EXPORT - bool characterstring_append( - BACNET_CHARACTER_STRING * char_string, - const char *value, - size_t length); +BACNET_STACK_EXPORT +bool characterstring_append( + BACNET_CHARACTER_STRING *char_string, const char *value, size_t length); /* This function sets a new length without changing the value. If length exceeds capacity, no modification happens and function returns false. */ - BACNET_STACK_EXPORT - bool characterstring_truncate( - BACNET_CHARACTER_STRING * char_string, - size_t length); - BACNET_STACK_EXPORT - bool characterstring_set_encoding( - BACNET_CHARACTER_STRING * char_string, - uint8_t encoding); +BACNET_STACK_EXPORT +bool characterstring_truncate( + BACNET_CHARACTER_STRING *char_string, size_t length); +BACNET_STACK_EXPORT +bool characterstring_set_encoding( + BACNET_CHARACTER_STRING *char_string, uint8_t encoding); /* Returns the value */ - BACNET_STACK_EXPORT - const char *characterstring_value( - const BACNET_CHARACTER_STRING * char_string); +BACNET_STACK_EXPORT +const char *characterstring_value(const BACNET_CHARACTER_STRING *char_string); /* returns the length */ - BACNET_STACK_EXPORT - size_t characterstring_length( - const BACNET_CHARACTER_STRING * char_string); - BACNET_STACK_EXPORT - uint8_t characterstring_encoding( - const BACNET_CHARACTER_STRING * char_string); - BACNET_STACK_EXPORT - size_t characterstring_capacity( - const BACNET_CHARACTER_STRING * char_string); - BACNET_STACK_EXPORT - bool characterstring_printable( - const BACNET_CHARACTER_STRING * char_string); - BACNET_STACK_EXPORT - bool characterstring_valid( - const BACNET_CHARACTER_STRING * char_string); - BACNET_STACK_EXPORT - bool utf8_isvalid( - const char *str, - size_t length); +BACNET_STACK_EXPORT +size_t characterstring_length(const BACNET_CHARACTER_STRING *char_string); +BACNET_STACK_EXPORT +uint8_t characterstring_encoding(const BACNET_CHARACTER_STRING *char_string); +BACNET_STACK_EXPORT +size_t characterstring_capacity(const BACNET_CHARACTER_STRING *char_string); +BACNET_STACK_EXPORT +bool characterstring_printable(const BACNET_CHARACTER_STRING *char_string); +BACNET_STACK_EXPORT +bool characterstring_valid(const BACNET_CHARACTER_STRING *char_string); +BACNET_STACK_EXPORT +bool utf8_isvalid(const char *str, size_t length); - /* returns false if the string exceeds capacity - initialize by using length=0 */ - BACNET_STACK_EXPORT - bool octetstring_init( - BACNET_OCTET_STRING * octet_string, - const uint8_t * value, - size_t length); - /* converts an null terminated ASCII Hex string to an octet string. - returns true if successfully converted and fits; false if too long */ - BACNET_STACK_EXPORT - bool octetstring_init_ascii_hex( - BACNET_OCTET_STRING * octet_string, - const char *ascii_hex); - BACNET_STACK_EXPORT - bool octetstring_copy( - BACNET_OCTET_STRING * dest, - const BACNET_OCTET_STRING * src); - BACNET_STACK_EXPORT - size_t octetstring_copy_value( - uint8_t * dest, - size_t length, - const BACNET_OCTET_STRING * src); +/* returns false if the string exceeds capacity + initialize by using length=0 */ +BACNET_STACK_EXPORT +bool octetstring_init( + BACNET_OCTET_STRING *octet_string, const uint8_t *value, size_t length); +/* converts an null terminated ASCII Hex string to an octet string. + returns true if successfully converted and fits; false if too long */ +BACNET_STACK_EXPORT +bool octetstring_init_ascii_hex( + BACNET_OCTET_STRING *octet_string, const char *ascii_hex); +BACNET_STACK_EXPORT +bool octetstring_copy( + BACNET_OCTET_STRING *dest, const BACNET_OCTET_STRING *src); +BACNET_STACK_EXPORT +size_t octetstring_copy_value( + uint8_t *dest, size_t length, const BACNET_OCTET_STRING *src); /* returns false if the string exceeds capacity */ - BACNET_STACK_EXPORT - bool octetstring_append( - BACNET_OCTET_STRING * octet_string, - const uint8_t * value, - size_t length); +BACNET_STACK_EXPORT +bool octetstring_append( + BACNET_OCTET_STRING *octet_string, const uint8_t *value, size_t length); /* This function sets a new length without changing the value. If length exceeds capacity, no modification happens and function returns false. */ - BACNET_STACK_EXPORT - bool octetstring_truncate( - BACNET_OCTET_STRING * octet_string, - size_t length); +BACNET_STACK_EXPORT +bool octetstring_truncate(BACNET_OCTET_STRING *octet_string, size_t length); /* Returns the value */ - BACNET_STACK_EXPORT - uint8_t *octetstring_value( - BACNET_OCTET_STRING * octet_string); +BACNET_STACK_EXPORT +uint8_t *octetstring_value(BACNET_OCTET_STRING *octet_string); /* Returns the length.*/ - BACNET_STACK_EXPORT - size_t octetstring_length( - const BACNET_OCTET_STRING * octet_string); - BACNET_STACK_EXPORT - size_t octetstring_capacity( - const BACNET_OCTET_STRING * octet_string); - /* returns true if the same length and contents */ - BACNET_STACK_EXPORT - bool octetstring_value_same( - const BACNET_OCTET_STRING * octet_string1, - const BACNET_OCTET_STRING * octet_string2); +BACNET_STACK_EXPORT +size_t octetstring_length(const BACNET_OCTET_STRING *octet_string); +BACNET_STACK_EXPORT +size_t octetstring_capacity(const BACNET_OCTET_STRING *octet_string); +/* returns true if the same length and contents */ +BACNET_STACK_EXPORT +bool octetstring_value_same( + const BACNET_OCTET_STRING *octet_string1, + const BACNET_OCTET_STRING *octet_string2); #ifdef __cplusplus } diff --git a/src/bacnet/bactext.c b/src/bacnet/bactext.c index deb3e083..7cf88077 100644 --- a/src/bacnet/bactext.c +++ b/src/bacnet/bactext.c @@ -58,7 +58,7 @@ INDTEXT_DATA bacnet_confirmed_service_names[] = { { SERVICE_CONFIRMED_WRITE_PROPERTY, "Write-Property" }, { SERVICE_CONFIRMED_WRITE_PROP_MULTIPLE, "Write-Property-Multiple" }, { SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, - "Device-Communication-Control" }, + "Device-Communication-Control" }, { SERVICE_CONFIRMED_PRIVATE_TRANSFER, "Private-Transfer" }, { SERVICE_CONFIRMED_TEXT_MESSAGE, "Text-Message" }, { SERVICE_CONFIRMED_REINITIALIZE_DEVICE, "Reinitialize-Device" }, @@ -80,8 +80,8 @@ const char *bactext_confirmed_service_name(unsigned index) bacnet_confirmed_service_names, index, ASHRAE_Reserved_String); } -INDTEXT_DATA bacnet_unconfirmed_service_names[] = { { SERVICE_UNCONFIRMED_I_AM, - "I-Am" }, +INDTEXT_DATA bacnet_unconfirmed_service_names[] = { + { SERVICE_UNCONFIRMED_I_AM, "I-Am" }, { SERVICE_UNCONFIRMED_I_HAVE, "I-Have" }, { SERVICE_UNCONFIRMED_COV_NOTIFICATION, "COV-Notification" }, { SERVICE_UNCONFIRMED_EVENT_NOTIFICATION, "Event-Notification" }, @@ -91,8 +91,10 @@ INDTEXT_DATA bacnet_unconfirmed_service_names[] = { { SERVICE_UNCONFIRMED_I_AM, { SERVICE_UNCONFIRMED_WHO_HAS, "Who-Has" }, { SERVICE_UNCONFIRMED_WHO_IS, "Who-Is" }, { SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION, - "UTC-Time-Synchronization" }, - { SERVICE_UNCONFIRMED_WRITE_GROUP, "Write-Group" }, { 0, NULL } }; + "UTC-Time-Synchronization" }, + { SERVICE_UNCONFIRMED_WRITE_GROUP, "Write-Group" }, + { 0, NULL } +}; const char *bactext_unconfirmed_service_name(unsigned index) { @@ -100,8 +102,8 @@ const char *bactext_unconfirmed_service_name(unsigned index) bacnet_unconfirmed_service_names, index, ASHRAE_Reserved_String); } -INDTEXT_DATA bacnet_application_tag_names[] = { { BACNET_APPLICATION_TAG_NULL, - "Null" }, +INDTEXT_DATA bacnet_application_tag_names[] = { + { BACNET_APPLICATION_TAG_NULL, "Null" }, { BACNET_APPLICATION_TAG_BOOLEAN, "Boolean" }, { BACNET_APPLICATION_TAG_UNSIGNED_INT, "Unsigned Int" }, { BACNET_APPLICATION_TAG_SIGNED_INT, "Signed Int" }, @@ -125,9 +127,9 @@ INDTEXT_DATA bacnet_application_tag_names[] = { { BACNET_APPLICATION_TAG_NULL, { BACNET_APPLICATION_TAG_TIMESTAMP, "BACnetTimeStamp" }, { BACNET_APPLICATION_TAG_ERROR, "Error" }, { BACNET_APPLICATION_TAG_DEVICE_OBJECT_PROPERTY_REFERENCE, - "BACnetDeviceObjectPropertyReference" }, + "BACnetDeviceObjectPropertyReference" }, { BACNET_APPLICATION_TAG_DEVICE_OBJECT_REFERENCE, - "BACnetDeviceObjectReference" }, + "BACnetDeviceObjectReference" }, { BACNET_APPLICATION_TAG_DESTINATION, "BACnetDestination" }, { BACNET_APPLICATION_TAG_RECIPIENT, "BACnetRecipient" }, { BACNET_APPLICATION_TAG_COV_SUBSCRIPTION, "BACnetCOVSubscription" }, @@ -135,7 +137,7 @@ INDTEXT_DATA bacnet_application_tag_names[] = { { BACNET_APPLICATION_TAG_NULL, { BACNET_APPLICATION_TAG_WEEKLY_SCHEDULE, "BACnetWeeklySchedule" }, { BACNET_APPLICATION_TAG_SPECIAL_EVENT, "BACnetSpecialEvent" }, { BACNET_APPLICATION_TAG_READ_ACCESS_SPECIFICATION, - "BACnetReadAccessSpecification" }, + "BACnetReadAccessSpecification" }, { BACNET_APPLICATION_TAG_LIGHTING_COMMAND, "BACnetLightingCommand" }, { BACNET_APPLICATION_TAG_HOST_N_PORT, "BACnetHostNPort" }, { BACNET_APPLICATION_TAG_XY_COLOR, "BACnetxyColor" }, @@ -145,7 +147,8 @@ INDTEXT_DATA bacnet_application_tag_names[] = { { BACNET_APPLICATION_TAG_NULL, { BACNET_APPLICATION_TAG_ACTION_COMMAND, "BACnetActionCommand" }, { BACNET_APPLICATION_TAG_SCALE, "BACnetScale" }, { BACNET_APPLICATION_TAG_SHED_LEVEL, "BACnetShedLevel" }, - { 0, NULL } }; + { 0, NULL } +}; const char *bactext_application_tag_name(unsigned index) { @@ -160,20 +163,25 @@ bool bactext_application_tag_index( bacnet_application_tag_names, search_name, found_index); } -INDTEXT_DATA bacnet_object_type_names[] = { { OBJECT_ANALOG_INPUT, - "analog-input" }, +INDTEXT_DATA bacnet_object_type_names[] = { + { OBJECT_ANALOG_INPUT, "analog-input" }, { OBJECT_ANALOG_OUTPUT, "analog-output" }, { OBJECT_ANALOG_VALUE, "analog-value" }, { OBJECT_BINARY_INPUT, "binary-input" }, { OBJECT_BINARY_OUTPUT, "binary-output" }, - { OBJECT_BINARY_VALUE, "binary-value" }, { OBJECT_CALENDAR, "calendar" }, - { OBJECT_COMMAND, "command" }, { OBJECT_DEVICE, "device" }, - { OBJECT_EVENT_ENROLLMENT, "event-enrollment" }, { OBJECT_FILE, "file" }, - { OBJECT_GROUP, "group" }, { OBJECT_LOOP, "loop" }, + { OBJECT_BINARY_VALUE, "binary-value" }, + { OBJECT_CALENDAR, "calendar" }, + { OBJECT_COMMAND, "command" }, + { OBJECT_DEVICE, "device" }, + { OBJECT_EVENT_ENROLLMENT, "event-enrollment" }, + { OBJECT_FILE, "file" }, + { OBJECT_GROUP, "group" }, + { OBJECT_LOOP, "loop" }, { OBJECT_MULTI_STATE_INPUT, "multi-state-input" }, { OBJECT_MULTI_STATE_OUTPUT, "multi-state-output" }, { OBJECT_NOTIFICATION_CLASS, "notification-class" }, - { OBJECT_PROGRAM, "program" }, { OBJECT_SCHEDULE, "schedule" }, + { OBJECT_PROGRAM, "program" }, + { OBJECT_SCHEDULE, "schedule" }, { OBJECT_AVERAGING, "averaging" }, { OBJECT_MULTI_STATE_VALUE, "multi-state-value" }, { OBJECT_TRENDLOG, "trend-log" }, @@ -181,7 +189,8 @@ INDTEXT_DATA bacnet_object_type_names[] = { { OBJECT_ANALOG_INPUT, { OBJECT_LIFE_SAFETY_ZONE, "life-safety-zone" }, { OBJECT_ACCUMULATOR, "accumulator" }, { OBJECT_PULSE_CONVERTER, "pulse-converter" }, - { OBJECT_EVENT_LOG, "event-log" }, { OBJECT_GLOBAL_GROUP, "global-group" }, + { OBJECT_EVENT_LOG, "event-log" }, + { OBJECT_GLOBAL_GROUP, "global-group" }, { OBJECT_TREND_LOG_MULTIPLE, "trend-log-multiple" }, { OBJECT_LOAD_CONTROL, "load-control" }, { OBJECT_STRUCTURED_VIEW, "structured-view" }, @@ -213,20 +222,24 @@ INDTEXT_DATA bacnet_object_type_names[] = { { OBJECT_ANALOG_INPUT, { OBJECT_BINARY_LIGHTING_OUTPUT, "binary-lighting-output" }, { OBJECT_NETWORK_PORT, "network-port" }, { OBJECT_ELEVATOR_GROUP, "elevator-group" }, - { OBJECT_ESCALATOR, "escalator" }, { OBJECT_LIFT, "lift" }, - { OBJECT_STAGING, "staging" }, { OBJECT_AUDIT_LOG, "audit-log" }, - { OBJECT_AUDIT_REPORTER, "audit-reporter" }, { OBJECT_COLOR, "color" }, + { OBJECT_ESCALATOR, "escalator" }, + { OBJECT_LIFT, "lift" }, + { OBJECT_STAGING, "staging" }, + { OBJECT_AUDIT_LOG, "audit-log" }, + { OBJECT_AUDIT_REPORTER, "audit-reporter" }, + { OBJECT_COLOR, "color" }, { OBJECT_COLOR_TEMPERATURE, "color-temperature" }, /* Enumerated values 0-127 are reserved for definition by ASHRAE. Enumerated values 128-1023 may be used by others subject to the procedures and constraints described in Clause 23. */ - { 0, NULL } }; + { 0, NULL } +}; const char *bactext_object_type_name(unsigned index) { - return indtext_by_index_split_default(bacnet_object_type_names, index, - OBJECT_PROPRIETARY_MIN, ASHRAE_Reserved_String, - Vendor_Proprietary_String); + return indtext_by_index_split_default( + bacnet_object_type_names, index, OBJECT_PROPRIETARY_MIN, + ASHRAE_Reserved_String, Vendor_Proprietary_String); } bool bactext_object_type_index(const char *search_name, unsigned *found_index) @@ -244,16 +257,20 @@ bool bactext_object_type_strtol(const char *search_name, unsigned *found_index) INDTEXT_DATA bacnet_property_names[] = { /* FIXME: use the enumerations from bacenum.h */ { PROP_ACKED_TRANSITIONS, "acked-transitions" }, - { PROP_ACK_REQUIRED, "ack-required" }, { PROP_ACTION, "action" }, - { PROP_ACTION_TEXT, "action-text" }, { PROP_ACTIVE_TEXT, "active-text" }, + { PROP_ACK_REQUIRED, "ack-required" }, + { PROP_ACTION, "action" }, + { PROP_ACTION_TEXT, "action-text" }, + { PROP_ACTIVE_TEXT, "active-text" }, { PROP_ACTIVE_VT_SESSIONS, "active-vt-sessions" }, - { PROP_ALARM_VALUE, "alarm-value" }, { PROP_ALARM_VALUES, "alarm-values" }, + { PROP_ALARM_VALUE, "alarm-value" }, + { PROP_ALARM_VALUES, "alarm-values" }, { PROP_ALL, "all" }, { PROP_ALL_WRITES_SUCCESSFUL, "all-writes-successful" }, { PROP_APDU_SEGMENT_TIMEOUT, "apdu-segment-timeout" }, { PROP_APDU_TIMEOUT, "apdu-timeout" }, { PROP_APPLICATION_SOFTWARE_VERSION, "application-software-version" }, - { PROP_ARCHIVE, "archive" }, { PROP_BIAS, "bias" }, + { PROP_ARCHIVE, "archive" }, + { PROP_BIAS, "bias" }, { PROP_CHANGE_OF_STATE_COUNT, "change-of-state-count" }, { PROP_CHANGE_OF_STATE_TIME, "change-of-state-time" }, { PROP_NOTIFICATION_CLASS, "notification-class" }, @@ -261,7 +278,8 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_CONTROLLED_VARIABLE_REFERENCE, "controlled-variable-reference" }, { PROP_CONTROLLED_VARIABLE_UNITS, "controlled-variable-units" }, { PROP_CONTROLLED_VARIABLE_VALUE, "controlled-variable-value" }, - { PROP_COV_INCREMENT, "cov-increment" }, { PROP_DATE_LIST, "datelist" }, + { PROP_COV_INCREMENT, "cov-increment" }, + { PROP_DATE_LIST, "datelist" }, { PROP_DAYLIGHT_SAVINGS_STATUS, "daylight-savings-status" }, { PROP_DEADBAND, "deadband" }, { PROP_DERIVATIVE_CONSTANT, "derivative-constant" }, @@ -272,27 +290,34 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_DEVICE_TYPE, "device-type" }, { PROP_EFFECTIVE_PERIOD, "effective-period" }, { PROP_ELAPSED_ACTIVE_TIME, "elapsed-active-time" }, - { PROP_ERROR_LIMIT, "error-limit" }, { PROP_EVENT_ENABLE, "event-enable" }, - { PROP_EVENT_STATE, "event-state" }, { PROP_EVENT_TYPE, "event-type" }, + { PROP_ERROR_LIMIT, "error-limit" }, + { PROP_EVENT_ENABLE, "event-enable" }, + { PROP_EVENT_STATE, "event-state" }, + { PROP_EVENT_TYPE, "event-type" }, { PROP_EXCEPTION_SCHEDULE, "exception-schedule" }, { PROP_FAULT_VALUES, "fault-values" }, { PROP_FEEDBACK_VALUE, "feedback-value" }, { PROP_FILE_ACCESS_METHOD, "file-access-method" }, - { PROP_FILE_SIZE, "file-size" }, { PROP_FILE_TYPE, "file-type" }, + { PROP_FILE_SIZE, "file-size" }, + { PROP_FILE_TYPE, "file-type" }, { PROP_FIRMWARE_REVISION, - "firmware-revision" }, /* VTS wants "revision", not "version" */ - { PROP_HIGH_LIMIT, "high-limit" }, { PROP_INACTIVE_TEXT, "inactive-text" }, - { PROP_IN_PROCESS, "in-process" }, { PROP_INSTANCE_OF, "instance-of" }, + "firmware-revision" }, /* VTS wants "revision", not "version" */ + { PROP_HIGH_LIMIT, "high-limit" }, + { PROP_INACTIVE_TEXT, "inactive-text" }, + { PROP_IN_PROCESS, "in-process" }, + { PROP_INSTANCE_OF, "instance-of" }, { PROP_INTEGRAL_CONSTANT, "integral-constant" }, { PROP_INTEGRAL_CONSTANT_UNITS, "integral-constant-units" }, { PROP_ISSUE_CONFIRMED_NOTIFICATIONS, "issue-confirmednotifications" }, { PROP_LIMIT_ENABLE, "limit-enable" }, { PROP_LIST_OF_GROUP_MEMBERS, "list-of-group-members" }, { PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, - "list-of-object-property-references" }, + "list-of-object-property-references" }, { PROP_LIST_OF_SESSION_KEYS, "list-of-session-keys" }, - { PROP_LOCAL_DATE, "local-date" }, { PROP_LOCAL_TIME, "local-time" }, - { PROP_LOCATION, "location" }, { PROP_LOW_LIMIT, "low-limit" }, + { PROP_LOCAL_DATE, "local-date" }, + { PROP_LOCAL_TIME, "local-time" }, + { PROP_LOCATION, "location" }, + { PROP_LOW_LIMIT, "low-limit" }, { PROP_MANIPULATED_VARIABLE_REFERENCE, "manipulated-variable-reference" }, { PROP_MAXIMUM_OUTPUT, "maximum-output" }, { PROP_MAX_APDU_LENGTH_ACCEPTED, "max-apdu-length-accepted" }, @@ -309,14 +334,18 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_NUMBER_OF_APDU_RETRIES, "number-of-APDU-retries" }, { PROP_NUMBER_OF_STATES, "number-of-states" }, { PROP_OBJECT_IDENTIFIER, "object-identifier" }, - { PROP_OBJECT_LIST, "object-list" }, { PROP_OBJECT_NAME, "object-name" }, + { PROP_OBJECT_LIST, "object-list" }, + { PROP_OBJECT_NAME, "object-name" }, { PROP_OBJECT_PROPERTY_REFERENCE, "object-property-reference" }, - { PROP_OBJECT_TYPE, "object-type" }, { PROP_OPTIONAL, "optional" }, + { PROP_OBJECT_TYPE, "object-type" }, + { PROP_OPTIONAL, "optional" }, { PROP_OUT_OF_SERVICE, "out-of-service" }, { PROP_OUTPUT_UNITS, "output-units" }, { PROP_EVENT_PARAMETERS, "event-parameters" }, - { PROP_POLARITY, "polarity" }, { PROP_PRESENT_VALUE, "present-value" }, - { PROP_PRIORITY, "priority" }, { PROP_PRIORITY_ARRAY, "priority-array" }, + { PROP_POLARITY, "polarity" }, + { PROP_PRESENT_VALUE, "present-value" }, + { PROP_PRIORITY, "priority" }, + { PROP_PRIORITY_ARRAY, "priority-array" }, { PROP_PRIORITY_FOR_WRITING, "priority-for-writing" }, { PROP_PROCESS_IDENTIFIER, "process-identifier" }, { PROP_PROGRAM_CHANGE, "program-change" }, @@ -330,19 +359,24 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_PROTOCOL_VERSION, "protocol-version" }, { PROP_READ_ONLY, "read-only" }, { PROP_REASON_FOR_HALT, "reason-for-halt" }, - { PROP_RECIPIENT, "recipient" }, { PROP_RECIPIENT_LIST, "recipient-list" }, + { PROP_RECIPIENT, "recipient" }, + { PROP_RECIPIENT_LIST, "recipient-list" }, { PROP_RELIABILITY, "reliability" }, { PROP_RELINQUISH_DEFAULT, "relinquish-default" }, - { PROP_REQUIRED, "required" }, { PROP_RESOLUTION, "resolution" }, + { PROP_REQUIRED, "required" }, + { PROP_RESOLUTION, "resolution" }, { PROP_SEGMENTATION_SUPPORTED, "segmentation-supported" }, { PROP_SETPOINT, "setpoint" }, { PROP_SETPOINT_REFERENCE, "setpoint-reference" }, - { PROP_STATE_TEXT, "state-text" }, { PROP_STATUS_FLAGS, "status-flags" }, - { PROP_SYSTEM_STATUS, "system-status" }, { PROP_TIME_DELAY, "time-delay" }, + { PROP_STATE_TEXT, "state-text" }, + { PROP_STATUS_FLAGS, "status-flags" }, + { PROP_SYSTEM_STATUS, "system-status" }, + { PROP_TIME_DELAY, "time-delay" }, { PROP_TIME_OF_ACTIVE_TIME_RESET, "time-of-active-time-reset" }, { PROP_TIME_OF_STATE_COUNT_RESET, "time-of-state-count-reset" }, { PROP_TIME_SYNCHRONIZATION_RECIPIENTS, "time-synchronization-recipients" }, - { PROP_UNITS, "units" }, { PROP_UPDATE_INTERVAL, "update-interval" }, + { PROP_UNITS, "units" }, + { PROP_UPDATE_INTERVAL, "update-interval" }, { PROP_UTC_OFFSET, "utc-offset" }, { PROP_VENDOR_IDENTIFIER, "vendor-identifier" }, { PROP_VENDOR_NAME, "vendor-name" }, @@ -357,15 +391,18 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_EVENT_TIME_STAMPS, "event-time-stamps" }, { PROP_LOG_BUFFER, "log-buffer" }, { PROP_LOG_DEVICE_OBJECT_PROPERTY, "log-device-object-property" }, - { PROP_ENABLE, "enable" }, { PROP_LOG_INTERVAL, "log-interval" }, + { PROP_ENABLE, "enable" }, + { PROP_LOG_INTERVAL, "log-interval" }, { PROP_MAXIMUM_VALUE, "maximum-value" }, { PROP_MINIMUM_VALUE, "minimum-value" }, { PROP_NOTIFICATION_THRESHOLD, "notification-threshold" }, { PROP_PREVIOUS_NOTIFY_TIME, "previous-notify-time" }, { PROP_PROTOCOL_REVISION, "protocol-revision" }, { PROP_RECORDS_SINCE_NOTIFICATION, "records-since-notification" }, - { PROP_RECORD_COUNT, "record-count" }, { PROP_START_TIME, "start-time" }, - { PROP_STOP_TIME, "stop-time" }, { PROP_STOP_WHEN_FULL, "stop-when-full" }, + { PROP_RECORD_COUNT, "record-count" }, + { PROP_START_TIME, "start-time" }, + { PROP_STOP_TIME, "stop-time" }, + { PROP_STOP_WHEN_FULL, "stop-when-full" }, { PROP_TOTAL_RECORD_COUNT, "total-record-count" }, { PROP_VALID_SAMPLES, "valid-samples" }, { PROP_WINDOW_INTERVAL, "window-interval" }, @@ -380,9 +417,11 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_DIRECT_READING, "direct-reading" }, { PROP_LAST_RESTORE_TIME, "last-restore-time" }, { PROP_MAINTENANCE_REQUIRED, "maintenance-required" }, - { PROP_MEMBER_OF, "member-of" }, { PROP_MODE, "mode" }, + { PROP_MEMBER_OF, "member-of" }, + { PROP_MODE, "mode" }, { PROP_OPERATION_EXPECTED, "operation-expected" }, - { PROP_SETTING, "setting" }, { PROP_SILENCED, "silenced" }, + { PROP_SETTING, "setting" }, + { PROP_SILENCED, "silenced" }, { PROP_TRACKING_VALUE, "tracking-value" }, { PROP_ZONE_MEMBERS, "zone-members" }, { PROP_LIFE_SAFETY_ALARM_VALUES, "life-safety-alarm-values" }, @@ -395,16 +434,20 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_LAST_NOTIFY_RECORD, "last-notify-record" }, { PROP_SCHEDULE_DEFAULT, "schedule-default" }, { PROP_ACCEPTED_MODES, "accepted-modes" }, - { PROP_ADJUST_VALUE, "adjust-value" }, { PROP_COUNT, "count" }, + { PROP_ADJUST_VALUE, "adjust-value" }, + { PROP_COUNT, "count" }, { PROP_COUNT_BEFORE_CHANGE, "count-before-change" }, { PROP_COUNT_CHANGE_TIME, "count-change-time" }, { PROP_COV_PERIOD, "COV-period" }, { PROP_INPUT_REFERENCE, "input-reference" }, { PROP_LIMIT_MONITORING_INTERVAL, "limit-monitoring-interval" }, { PROP_LOGGING_OBJECT, "logging-object" }, - { PROP_LOGGING_RECORD, "logging-record" }, { PROP_PRESCALE, "prescale" }, - { PROP_PULSE_RATE, "pulse-rate" }, { PROP_SCALE, "scale" }, - { PROP_SCALE_FACTOR, "scale-factor" }, { PROP_UPDATE_TIME, "update-time" }, + { PROP_LOGGING_RECORD, "logging-record" }, + { PROP_PRESCALE, "prescale" }, + { PROP_PULSE_RATE, "pulse-rate" }, + { PROP_SCALE, "scale" }, + { PROP_SCALE_FACTOR, "scale-factor" }, + { PROP_UPDATE_TIME, "update-time" }, { PROP_VALUE_BEFORE_CHANGE, "value-before-change" }, { PROP_VALUE_SET, "value-set" }, { PROP_VALUE_CHANGE_TIME, "value-change-time" }, @@ -416,8 +459,9 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_TIME_SYNCHRONIZATION_INTERVAL, "time-synchronization-interval" }, { PROP_TRIGGER, "trigger" }, { PROP_UTC_TIME_SYNCHRONIZATION_RECIPIENTS, - "utc-time-synchronization-recipients" }, - { PROP_NODE_SUBTYPE, "node-subtype" }, { PROP_NODE_TYPE, "node-type" }, + "utc-time-synchronization-recipients" }, + { PROP_NODE_SUBTYPE, "node-subtype" }, + { PROP_NODE_TYPE, "node-type" }, { PROP_STRUCTURED_OBJECT_LIST, "structured-object-list" }, { PROP_SUBORDINATE_ANNOTATIONS, "subordinate-annotations" }, { PROP_SUBORDINATE_LIST, "subordinate-list" }, @@ -445,7 +489,7 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_ACCESS_DOORS, "access-doors" }, { PROP_ACCESS_EVENT, "access-event" }, { PROP_ACCESS_EVENT_AUTHENTICATION_FACTOR, - "access-event-authentication-factor" }, + "access-event-authentication-factor" }, { PROP_ACCESS_EVENT_CREDENTIAL, "access-event-credential" }, { PROP_ACCESS_EVENT_TIME, "access-event-time" }, { PROP_ACCESS_TRANSACTION_EVENTS, "access-transaction-events" }, @@ -465,7 +509,8 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_CREDENTIALS, "credentials" }, { PROP_CREDENTIALS_IN_ZONE, "credentials-in-zone" }, { PROP_DAYS_REMAINING, "days-remaining" }, - { PROP_ENTRY_POINTS, "entry-points" }, { PROP_EXIT_POINTS, "exit-points" }, + { PROP_ENTRY_POINTS, "entry-points" }, + { PROP_EXIT_POINTS, "exit-points" }, { PROP_EXPIRATION_TIME, "expiration-time" }, { PROP_EXTENDED_TIME_ENABLE, "extended-time-enable" }, { PROP_FAILED_ATTEMPT_EVENTS, "failed-attempt-events" }, @@ -477,14 +522,16 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_LAST_CREDENTIAL_ADDED_TIME, "last-credential-added-time" }, { PROP_LAST_CREDENTIAL_REMOVED, "last-credential-removed" }, { PROP_LAST_CREDENTIAL_REMOVED_TIME, "last-credential-removed-time" }, - { PROP_LAST_USE_TIME, "last-use-time" }, { PROP_LOCKOUT, "lockout" }, + { PROP_LAST_USE_TIME, "last-use-time" }, + { PROP_LOCKOUT, "lockout" }, { PROP_LOCKOUT_RELINQUISH_TIME, "lockout-relinquish-time" }, { PROP_MASTER_EXEMPTION, "master-exemption" }, { PROP_MAX_FAILED_ATTEMPTS, "max-failed-attempts" }, - { PROP_MEMBERS, "members" }, { PROP_MUSTER_POINT, "muster-point" }, + { PROP_MEMBERS, "members" }, + { PROP_MUSTER_POINT, "muster-point" }, { PROP_NEGATIVE_ACCESS_RULES, "negative-access-rules" }, { PROP_NUMBER_OF_AUTHENTICATION_POLICIES, - "number-of-authentication-policies" }, + "number-of-authentication-policies" }, { PROP_OCCUPANCY_COUNT, "occupancy-count" }, { PROP_OCCUPANCY_COUNT_ADJUST, "occupancy-count-adjust" }, { PROP_OCCUPANCY_COUNT_ENABLE, "occupancy-count-enable" }, @@ -502,21 +549,25 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_SUPPORTED_FORMATS, "supported-formats" }, { PROP_SUPPORTED_FORMAT_CLASSES, "supported-format-classes" }, { PROP_THREAT_AUTHORITY, "threat-authority" }, - { PROP_THREAT_LEVEL, "threat-level" }, { PROP_TRACE_FLAG, "trace-flag" }, + { PROP_THREAT_LEVEL, "threat-level" }, + { PROP_TRACE_FLAG, "trace-flag" }, { PROP_TRANSACTION_NOTIFICATION_CLASS, "transaction-notification-class" }, { PROP_USER_EXTERNAL_IDENTIFIER, "user-external-identifier" }, { PROP_USER_INFORMATION_REFERENCE, "user-information-reference" }, { PROP_USER_INFORMATION_REFERENCE, "user-information-reference" }, - { PROP_USER_NAME, "user-name" }, { PROP_USER_TYPE, "user-type" }, - { PROP_USES_REMAINING, "uses-remaining" }, { PROP_ZONE_FROM, "zone-from" }, + { PROP_USER_NAME, "user-name" }, + { PROP_USER_TYPE, "user-type" }, + { PROP_USES_REMAINING, "uses-remaining" }, + { PROP_ZONE_FROM, "zone-from" }, { PROP_ZONE_TO, "zone-to" }, { PROP_VERIFICATION_TIME, "verification-time" }, { PROP_BASE_DEVICE_SECURITY_POLICY, "base-device-security-policy" }, { PROP_DISTRIBUTION_KEY_REVISION, "distribution-key-revision" }, - { PROP_DO_NOT_HIDE, "do-not-hide" }, { PROP_KEY_SETS, "key-sets" }, + { PROP_DO_NOT_HIDE, "do-not-hide" }, + { PROP_KEY_SETS, "key-sets" }, { PROP_LAST_KEY_SERVER, "last-key-server" }, { PROP_NETWORK_ACCESS_SECURITY_POLICIES, - "network-access-security-policies" }, + "network-access-security-policies" }, { PROP_PACKET_REORDER_TIME, "packet-reorder-time" }, { PROP_SECURITY_PDU_TIMEOUT, "security-pdu-timeout" }, { PROP_SECURITY_TIME_WINDOW, "security-time-window" }, @@ -526,8 +577,10 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_BACKUP_PREPARATION_TIME, "backup-preparation-time" }, { PROP_RESTORE_COMPLETION_TIME, "restore-completion-time" }, { PROP_RESTORE_PREPARATION_TIME, "restore-preparation-time" }, - { PROP_BIT_MASK, "bit-mask" }, { PROP_BIT_TEXT, "bit-text" }, - { PROP_IS_UTC, "is-utc" }, { PROP_GROUP_MEMBERS, "group-members" }, + { PROP_BIT_MASK, "bit-mask" }, + { PROP_BIT_TEXT, "bit-text" }, + { PROP_IS_UTC, "is-utc" }, + { PROP_GROUP_MEMBERS, "group-members" }, { PROP_GROUP_MEMBER_NAMES, "group-member-names" }, { PROP_MEMBER_STATUS_FLAGS, "member-status-flags" }, { PROP_REQUESTED_UPDATE_INTERVAL, "requested-update-interval" }, @@ -559,14 +612,17 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_DEFAULT_FADE_TIME, "default-fade-time" }, { PROP_DEFAULT_RAMP_RATE, "default-ramp-rate" }, { PROP_DEFAULT_STEP_INCREMENT, "default-step-increment" }, - { PROP_EGRESS_TIME, "egress-time" }, { PROP_IN_PROGRESS, "in-progress" }, + { PROP_EGRESS_TIME, "egress-time" }, + { PROP_IN_PROGRESS, "in-progress" }, { PROP_INSTANTANEOUS_POWER, "instantaneous-power" }, { PROP_LIGHTING_COMMAND, "lighting-command" }, { PROP_LIGHTING_COMMAND_DEFAULT_PRIORITY, - "lighting-command-default-priority" }, + "lighting-command-default-priority" }, { PROP_MAX_ACTUAL_VALUE, "max-actual-value" }, - { PROP_MIN_ACTUAL_VALUE, "min-actual-value" }, { PROP_POWER, "power" }, - { PROP_TRANSITION, "transition" }, { PROP_EGRESS_ACTIVE, "egress-active" }, + { PROP_MIN_ACTUAL_VALUE, "min-actual-value" }, + { PROP_POWER, "power" }, + { PROP_TRANSITION, "transition" }, + { PROP_EGRESS_ACTIVE, "egress-active" }, { PROP_INTERFACE_VALUE, "inteface-value" }, { PROP_FAULT_HIGH_LIMIT, "fault-high-limit" }, { PROP_FAULT_LOW_LIMIT, "fault-low-limit" }, @@ -578,7 +634,8 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_LAST_STATE_CHANGE, "last-state-change" }, { PROP_STATE_CHANGE_VALUES, "state-change-values" }, { PROP_TIMER_RUNNING, "timer-running" }, - { PROP_TIMER_STATE, "timer-state" }, { PROP_APDU_LENGTH, "apdu-length" }, + { PROP_TIMER_STATE, "timer-state" }, + { PROP_APDU_LENGTH, "apdu-length" }, { PROP_IP_ADDRESS, "ip-address" }, { PROP_IP_DEFAULT_GATEWAY, "ip-default-gateway" }, { PROP_IP_DHCP_ENABLE, "ip-dhcp-enable" }, @@ -594,12 +651,14 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_BACNET_IP_UDP_PORT, "bacnet-ip-udp-port" }, { PROP_BBMD_ACCEPT_FD_REGISTRATIONS, "bbmd-accept-fd-registrations" }, { PROP_BBMD_BROADCAST_DISTRIBUTION_TABLE, - "bbmd-broadcast-distribution-table" }, + "bbmd-broadcast-distribution-table" }, { PROP_BBMD_FOREIGN_DEVICE_TABLE, "bbmd-foreign-device-table" }, - { PROP_CHANGES_PENDING, "changes-pending" }, { PROP_COMMAND, "command" }, + { PROP_CHANGES_PENDING, "changes-pending" }, + { PROP_COMMAND, "command" }, { PROP_FD_BBMD_ADDRESS, "fd-bbmd-address" }, { PROP_FD_SUBSCRIPTION_LIFETIME, "fd-subscription-lifetime" }, - { PROP_LINK_SPEED, "link-speed" }, { PROP_LINK_SPEEDS, "link-speeds" }, + { PROP_LINK_SPEED, "link-speed" }, + { PROP_LINK_SPEEDS, "link-speeds" }, { PROP_LINK_SPEED_AUTONEGOTIATE, "link-speed-autonegotiate" }, { PROP_MAC_ADDRESS, "mac-address" }, { PROP_NETWORK_INTERFACE_NAME, "network-interface-name" }, @@ -632,7 +691,8 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_CAR_DOOR_TEXT, "car-door-text" }, { PROP_CAR_DOOR_ZONE, "car-door-zone" }, { PROP_CAR_DRIVE_STATUS, "car-drive-status" }, - { PROP_CAR_LOAD, "car-load" }, { PROP_CAR_LOAD_UNITS, "car-load-units" }, + { PROP_CAR_LOAD, "car-load" }, + { PROP_CAR_LOAD_UNITS, "car-load-units" }, { PROP_CAR_MODE, "car-mode" }, { PROP_CAR_MOVING_DIRECTION, "car-moving-direction" }, { PROP_CAR_POSITION, "car-position" }, @@ -640,8 +700,10 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_ENERGY_METER, "energy-meter" }, { PROP_ENERGY_METER_REF, "energy-meter-ref" }, { PROP_ESCALATOR_MODE, "escalator-mode" }, - { PROP_FAULT_SIGNALS, "fault-signals" }, { PROP_FLOOR_TEXT, "floor-text" }, - { PROP_GROUP_ID, "group-id" }, { PROP_GROUP_MODE, "group-mode" }, + { PROP_FAULT_SIGNALS, "fault-signals" }, + { PROP_FLOOR_TEXT, "floor-text" }, + { PROP_GROUP_ID, "group-id" }, + { PROP_GROUP_MODE, "group-mode" }, { PROP_HIGHER_DECK, "higher-deck" }, { PROP_INSTALLATION_ID, "installation-id" }, { PROP_LANDING_CALLS, "landing-calls" }, @@ -656,19 +718,21 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_POWER_MODE, "power-mode" }, { PROP_REGISTERED_CAR_CALL, "registered-car-call" }, { PROP_ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS, - "active-cov-multiple-subscriptions" }, + "active-cov-multiple-subscriptions" }, { PROP_PROTOCOL_LEVEL, "protocol-level" }, { PROP_REFERENCE_PORT, "reference-port" }, { PROP_DEPLOYED_PROFILE_LOCATION, "deployed-profile-location" }, - { PROP_PROFILE_LOCATION, "profile-location" }, { PROP_TAGS, "tags" }, + { PROP_PROFILE_LOCATION, "profile-location" }, + { PROP_TAGS, "tags" }, { PROP_SUBORDINATE_NODE_TYPES, "subordinate-node-types" }, { PROP_SUBORDINATE_TAGS, "subordinate-tags" }, { PROP_SUBORDINATE_RELATIONSHIPS, "subordinate-relationships" }, { PROP_DEFAULT_SUBORDINATE_RELATIONSHIP, - "default-subordinate-relationship" }, + "default-subordinate-relationship" }, { PROP_REPRESENTS, "represents" }, { PROP_DEFAULT_PRESENT_VALUE, "default-present-value" }, - { PROP_PRESENT_STAGE, "present-stage" }, { PROP_STAGES, "stages" }, + { PROP_PRESENT_STAGE, "present-stage" }, + { PROP_STAGES, "stages" }, { PROP_STAGE_NAMES, "stage-names" }, { PROP_TARGET_REFERENCES, "target-references" }, { PROP_AUDIT_SOURCE_LEVEL, "audit-source-level" }, @@ -679,11 +743,12 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_DELETE_ON_FORWARD, "delete-on-forward" }, { PROP_MAXIMUM_SEND_DELAY, "maximum-send-delay" }, { PROP_MONITORED_OBJECTS, "monitored-objects" }, - { PROP_SEND_NOW, "send-now" }, { PROP_FLOOR_NUMBER, "floor-number" }, + { PROP_SEND_NOW, "send-now" }, + { PROP_FLOOR_NUMBER, "floor-number" }, { PROP_DEVICE_UUID, "device-uuid" }, { PROP_ADDITIONAL_REFERENCE_PORTS, "additional-reference-ports" }, { PROP_CERTIFICATE_SIGNING_REQUEST_FILE, - "certificate-signing-request-file" }, + "certificate-signing-request-file" }, { PROP_COMMAND_VALIDATION_RESULT, "command-validation-result" }, { PROP_ISSUER_CERTIFICATE_FILES, "issuer-certificate-files" }, { PROP_MAX_BVLC_LENGTH_ACCEPTED, "max-bvlc-length-accepted" }, @@ -695,23 +760,23 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_SC_DIRECT_CONNECT_ACCEPT_URIS, "sc-direct-connect-accept-uris" }, { PROP_SC_DIRECT_CONNECT_BINDING, "sc-direct-connect-binding" }, { PROP_SC_DIRECT_CONNECT_CONNECTION_STATUS, - "sc-direct-connect-connection-status" }, + "sc-direct-connect-connection-status" }, { PROP_SC_DIRECT_CONNECT_INITIATE_ENABLE, - "sc-direct-connect-initiate-enable" }, + "sc-direct-connect-initiate-enable" }, { PROP_SC_DISCONNECT_WAIT_TIMEOUT, "sc-disconnect-wait-timeout" }, { PROP_SC_FAILED_CONNECTION_REQUESTS, "sc-failed-connection-requests" }, { PROP_SC_FAILOVER_HUB_CONNECTION_STATUS, - "sc-failover-hub-connection-status" }, + "sc-failover-hub-connection-status" }, { PROP_SC_FAILOVER_HUB_URI, "sc-failover-hub-uri" }, { PROP_SC_HUB_CONNECTOR_STATE, "sc-hub-connector-state" }, { PROP_SC_HUB_FUNCTION_ACCEPT_URIS, "sc-hub-function-accept-uris" }, { PROP_SC_HUB_FUNCTION_BINDING, "sc-hub-function-binding" }, { PROP_SC_HUB_FUNCTION_CONNECTION_STATUS, - "sc-hub-function-connection-status" }, + "sc-hub-function-connection-status" }, { PROP_SC_HUB_FUNCTION_ENABLE, "sc-hub-function-enable" }, { PROP_SC_HEARTBEAT_TIMEOUT, "sc-heartbeat-timeout" }, { PROP_SC_PRIMARY_HUB_CONNECTION_STATUS, - "sc-primary-hub-connection-status" }, + "sc-primary-hub-connection-status" }, { PROP_SC_PRIMARY_HUB_URI, "sc-primary-hub-uri" }, { PROP_SC_MAXIMUM_RECONNECT_TIME, "sc-maximum-reconnect-time" }, { PROP_SC_MINIMUM_RECONNECT_TIME, "sc-minimum-reconnect-time" }, @@ -723,7 +788,8 @@ INDTEXT_DATA bacnet_property_names[] = { { PROP_COLOR_COMMAND, "color-command" }, { PROP_HIGH_END_TRIM, "high-end-trim" }, { PROP_LOW_END_TRIM, "low-end-trim" }, - { PROP_TRIM_FADE_TIME, "trim-fade-time" }, { 0, NULL } + { PROP_TRIM_FADE_TIME, "trim-fade-time" }, + { 0, NULL } }; bool bactext_property_name_proprietary(unsigned index) @@ -751,8 +817,8 @@ const char *bactext_property_name(unsigned index) } } -const char *bactext_property_name_default( - unsigned index, const char *default_string) +const char * +bactext_property_name_default(unsigned index, const char *default_string) { return indtext_by_index_default( bacnet_property_names, index, default_string); @@ -777,9 +843,12 @@ bool bactext_property_strtol(const char *search_name, unsigned *found_index) INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_SQUARE_METERS, "square-meters" }, { UNITS_SQUARE_FEET, "square-feet" }, - { UNITS_MILLIAMPERES, "milliamperes" }, { UNITS_AMPERES, "amperes" }, - { UNITS_OHMS, "ohms" }, { UNITS_VOLTS, "volts" }, - { UNITS_KILOVOLTS, "kilovolts" }, { UNITS_MEGAVOLTS, "megavolts" }, + { UNITS_MILLIAMPERES, "milliamperes" }, + { UNITS_AMPERES, "amperes" }, + { UNITS_OHMS, "ohms" }, + { UNITS_VOLTS, "volts" }, + { UNITS_KILOVOLTS, "kilovolts" }, + { UNITS_MEGAVOLTS, "megavolts" }, { UNITS_VOLT_AMPERES, "volt-amperes" }, { UNITS_KILOVOLT_AMPERES, "kilovolt-amperes" }, { UNITS_MEGAVOLT_AMPERES, "megavolt-amperes" }, @@ -787,34 +856,47 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_KILOVOLT_AMPERES_REACTIVE, "kilovolt-amperes-reactive" }, { UNITS_MEGAVOLT_AMPERES_REACTIVE, "megavolt-amperes-reactive" }, { UNITS_DEGREES_PHASE, "degrees-phase" }, - { UNITS_POWER_FACTOR, "power-factor" }, { UNITS_JOULES, "joules" }, - { UNITS_KILOJOULES, "kilojoules" }, { UNITS_WATT_HOURS, "watt-hours" }, - { UNITS_KILOWATT_HOURS, "kilowatt-hours" }, { UNITS_BTUS, "btus" }, - { UNITS_THERMS, "therms" }, { UNITS_TON_HOURS, "ton-hours" }, + { UNITS_POWER_FACTOR, "power-factor" }, + { UNITS_JOULES, "joules" }, + { UNITS_KILOJOULES, "kilojoules" }, + { UNITS_WATT_HOURS, "watt-hours" }, + { UNITS_KILOWATT_HOURS, "kilowatt-hours" }, + { UNITS_BTUS, "btus" }, + { UNITS_THERMS, "therms" }, + { UNITS_TON_HOURS, "ton-hours" }, { UNITS_JOULES_PER_KILOGRAM_DRY_AIR, "joules-per-kilogram-dry-air" }, { UNITS_BTUS_PER_POUND_DRY_AIR, "btus-per-pound-dry-air" }, { UNITS_CYCLES_PER_HOUR, "cycles-per-hour" }, - { UNITS_CYCLES_PER_MINUTE, "cycles-per-minute" }, { UNITS_HERTZ, "hertz" }, + { UNITS_CYCLES_PER_MINUTE, "cycles-per-minute" }, + { UNITS_HERTZ, "hertz" }, { UNITS_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR, - "grams-of-water-per-kilogram-dry-air" }, + "grams-of-water-per-kilogram-dry-air" }, { UNITS_PERCENT_RELATIVE_HUMIDITY, "percent-relative-humidity" }, - { UNITS_MILLIMETERS, "millimeters" }, { UNITS_METERS, "meters" }, - { UNITS_INCHES, "inches" }, { UNITS_FEET, "feet" }, + { UNITS_MILLIMETERS, "millimeters" }, + { UNITS_METERS, "meters" }, + { UNITS_INCHES, "inches" }, + { UNITS_FEET, "feet" }, { UNITS_WATTS_PER_SQUARE_FOOT, "watts-per-square-foot" }, { UNITS_WATTS_PER_SQUARE_METER, "watts-per-square-meter" }, - { UNITS_LUMENS, "lumens" }, { UNITS_LUXES, "luxes" }, - { UNITS_FOOT_CANDLES, "foot-candles" }, { UNITS_KILOGRAMS, "kilograms" }, - { UNITS_POUNDS_MASS, "pounds-mass" }, { UNITS_TONS, "tons" }, + { UNITS_LUMENS, "lumens" }, + { UNITS_LUXES, "luxes" }, + { UNITS_FOOT_CANDLES, "foot-candles" }, + { UNITS_KILOGRAMS, "kilograms" }, + { UNITS_POUNDS_MASS, "pounds-mass" }, + { UNITS_TONS, "tons" }, { UNITS_KILOGRAMS_PER_SECOND, "kilograms-per-second" }, { UNITS_KILOGRAMS_PER_MINUTE, "kilograms-per-minute" }, { UNITS_KILOGRAMS_PER_HOUR, "kilograms-per-hour" }, { UNITS_POUNDS_MASS_PER_MINUTE, "pounds-mass-per-minute" }, { UNITS_POUNDS_MASS_PER_HOUR, "pounds-mass-per-hour" }, - { UNITS_WATTS, "watts" }, { UNITS_KILOWATTS, "kilowatts" }, - { UNITS_MEGAWATTS, "megawatts" }, { UNITS_BTUS_PER_HOUR, "btus-per-hour" }, + { UNITS_WATTS, "watts" }, + { UNITS_KILOWATTS, "kilowatts" }, + { UNITS_MEGAWATTS, "megawatts" }, + { UNITS_BTUS_PER_HOUR, "btus-per-hour" }, { UNITS_HORSEPOWER, "horsepower" }, { UNITS_TONS_REFRIGERATION, "tons-refrigeration" }, - { UNITS_PASCALS, "pascals" }, { UNITS_KILOPASCALS, "kilopascals" }, + { UNITS_PASCALS, "pascals" }, + { UNITS_KILOPASCALS, "kilopascals" }, { UNITS_BARS, "bars" }, { UNITS_POUNDS_FORCE_PER_SQUARE_INCH, "pounds-force-per-square-inch" }, { UNITS_CENTIMETERS_OF_WATER, "centimeters-of-water" }, @@ -827,16 +909,22 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_DEGREES_FAHRENHEIT, "degrees-fahrenheit" }, { UNITS_DEGREE_DAYS_CELSIUS, "degree-days-celsius" }, { UNITS_DEGREE_DAYS_FAHRENHEIT, "degree-days-fahrenheit" }, - { UNITS_YEARS, "years" }, { UNITS_MONTHS, "months" }, - { UNITS_WEEKS, "weeks" }, { UNITS_DAYS, "days" }, { UNITS_HOURS, "hours" }, - { UNITS_MINUTES, "minutes" }, { UNITS_SECONDS, "seconds" }, + { UNITS_YEARS, "years" }, + { UNITS_MONTHS, "months" }, + { UNITS_WEEKS, "weeks" }, + { UNITS_DAYS, "days" }, + { UNITS_HOURS, "hours" }, + { UNITS_MINUTES, "minutes" }, + { UNITS_SECONDS, "seconds" }, { UNITS_METERS_PER_SECOND, "meters-per-second" }, { UNITS_KILOMETERS_PER_HOUR, "kilometers-per-hour" }, { UNITS_FEET_PER_SECOND, "feet-per-second" }, { UNITS_FEET_PER_MINUTE, "feet-per-minute" }, { UNITS_MILES_PER_HOUR, "miles-per-hour" }, - { UNITS_CUBIC_FEET, "cubic-feet" }, { UNITS_CUBIC_METERS, "cubic-meters" }, - { UNITS_IMPERIAL_GALLONS, "imperial-gallons" }, { UNITS_LITERS, "liters" }, + { UNITS_CUBIC_FEET, "cubic-feet" }, + { UNITS_CUBIC_METERS, "cubic-meters" }, + { UNITS_IMPERIAL_GALLONS, "imperial-gallons" }, + { UNITS_LITERS, "liters" }, { UNITS_US_GALLONS, "us-gallons" }, { UNITS_CUBIC_FEET_PER_MINUTE, "cubic-feet-per-minute" }, { UNITS_CUBIC_METERS_PER_SECOND, "cubic-meters-per-second" }, @@ -854,15 +942,21 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_PARTS_PER_BILLION, "parts-per-billion" }, { UNITS_PERCENT, "percent" }, { UNITS_PERCENT_PER_SECOND, "percent-per-second" }, - { UNITS_PER_MINUTE, "per-minute" }, { UNITS_PER_SECOND, "per-second" }, + { UNITS_PER_MINUTE, "per-minute" }, + { UNITS_PER_SECOND, "per-second" }, { UNITS_PSI_PER_DEGREE_FAHRENHEIT, "psi-per-degree-fahrenheit" }, { UNITS_RADIANS, "radians" }, { UNITS_REVOLUTIONS_PER_MINUTE, "revolutions-per-minute" }, - { UNITS_CURRENCY1, "currency1" }, { UNITS_CURRENCY2, "currency2" }, - { UNITS_CURRENCY3, "currency3" }, { UNITS_CURRENCY4, "currency4" }, - { UNITS_CURRENCY5, "currency5" }, { UNITS_CURRENCY6, "currency6" }, - { UNITS_CURRENCY7, "currency7" }, { UNITS_CURRENCY8, "currency8" }, - { UNITS_CURRENCY9, "currency9" }, { UNITS_CURRENCY10, "currency10" }, + { UNITS_CURRENCY1, "currency1" }, + { UNITS_CURRENCY2, "currency2" }, + { UNITS_CURRENCY3, "currency3" }, + { UNITS_CURRENCY4, "currency4" }, + { UNITS_CURRENCY5, "currency5" }, + { UNITS_CURRENCY6, "currency6" }, + { UNITS_CURRENCY7, "currency7" }, + { UNITS_CURRENCY8, "currency8" }, + { UNITS_CURRENCY9, "currency9" }, + { UNITS_CURRENCY10, "currency10" }, { UNITS_SQUARE_INCHES, "square-inches" }, { UNITS_SQUARE_CENTIMETERS, "square-centimeters" }, { UNITS_BTUS_PER_POUND, "btus-per-pound" }, @@ -870,16 +964,20 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_POUNDS_MASS_PER_SECOND, "pounds-mass-per-second" }, { UNITS_DELTA_DEGREES_FAHRENHEIT, "delta-degrees-fahrenheit" }, { UNITS_DELTA_KELVIN, "delta-kelvin" }, - { UNITS_KILOHMS, "kilohms" }, { UNITS_MEGOHMS, "megohms" }, + { UNITS_KILOHMS, "kilohms" }, + { UNITS_MEGOHMS, "megohms" }, { UNITS_MILLIVOLTS, "millivolts" }, { UNITS_KILOJOULES_PER_KILOGRAM, "kilojoules-per-kilogram" }, { UNITS_MEGAJOULES, "megajoules" }, { UNITS_JOULES_PER_DEGREE_KELVIN, "joules-per-degree-kelvin" }, { UNITS_JOULES_PER_KILOGRAM_DEGREE_KELVIN, - "joules-per-kilogram-degree-kelvin" }, - { UNITS_KILOHERTZ, "kilohertz" }, { UNITS_MEGAHERTZ, "megahertz" }, - { UNITS_PER_HOUR, "per-hour" }, { UNITS_MILLIWATTS, "milliwatts" }, - { UNITS_HECTOPASCALS, "hectopascals" }, { UNITS_MILLIBARS, "millibars" }, + "joules-per-kilogram-degree-kelvin" }, + { UNITS_KILOHERTZ, "kilohertz" }, + { UNITS_MEGAHERTZ, "megahertz" }, + { UNITS_PER_HOUR, "per-hour" }, + { UNITS_MILLIWATTS, "milliwatts" }, + { UNITS_HECTOPASCALS, "hectopascals" }, + { UNITS_MILLIBARS, "millibars" }, { UNITS_CUBIC_METERS_PER_HOUR, "cubic-meters-per-hour" }, { UNITS_LITERS_PER_HOUR, "liters-per-hour" }, { UNITS_KW_HOURS_PER_SQUARE_METER, "kilowatt-hours-per-square-meter" }, @@ -888,19 +986,21 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_MEGAJOULES_PER_SQUARE_FOOT, "megajoules-per-square-foot" }, { UNITS_CUBIC_FEET_PER_SECOND, "cubic-feet-per-second" }, { UNITS_WATTS_PER_SQUARE_METER_DEGREE_KELVIN, - "watts-per-square-meter-degree-kelvin" }, + "watts-per-square-meter-degree-kelvin" }, { UNITS_PERCENT_OBSCURATION_PER_FOOT, "percent-obscuration-per-foot" }, { UNITS_PERCENT_OBSCURATION_PER_METER, "percent-obscuration-per-meter" }, { UNITS_MILLIOHMS, "milliohms" }, { UNITS_MEGAWATT_HOURS, "megawatt-hours" }, - { UNITS_KILO_BTUS, "kilo-btus" }, { UNITS_MEGA_BTUS, "mega-btus" }, + { UNITS_KILO_BTUS, "kilo-btus" }, + { UNITS_MEGA_BTUS, "mega-btus" }, { UNITS_KILOJOULES_PER_KILOGRAM_DRY_AIR, - "kilojoules-per-kilogram-dry-air" }, + "kilojoules-per-kilogram-dry-air" }, { UNITS_MEGAJOULES_PER_KILOGRAM_DRY_AIR, - "megajoules-per-kilogram-dry-air" }, + "megajoules-per-kilogram-dry-air" }, { UNITS_KILOJOULES_PER_DEGREE_KELVIN, "kilojoules-per-degree-kelvin" }, { UNITS_MEGAJOULES_PER_DEGREE_KELVIN, "megajoules-per-degree-kelvin" }, - { UNITS_NEWTON, "newton" }, { UNITS_GRAMS_PER_SECOND, "grams-per-second" }, + { UNITS_NEWTON, "newton" }, + { UNITS_GRAMS_PER_SECOND, "grams-per-second" }, { UNITS_GRAMS_PER_MINUTE, "grams-per-minute" }, { UNITS_TONS_PER_HOUR, "tons-per-hour" }, { UNITS_KILO_BTUS_PER_HOUR, "kilo-btus-per-hour" }, @@ -916,12 +1016,15 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_AMPERES_PER_METER, "amperes-per-meter" }, { UNITS_AMPERES_PER_SQUARE_METER, "amperes-per-square-meter" }, { UNITS_AMPERE_SQUARE_METERS, "ampere-square-meters" }, - { UNITS_FARADS, "farads" }, { UNITS_HENRYS, "henrys" }, - { UNITS_OHM_METERS, "ohm-meters" }, { UNITS_SIEMENS, "siemens" }, + { UNITS_FARADS, "farads" }, + { UNITS_HENRYS, "henrys" }, + { UNITS_OHM_METERS, "ohm-meters" }, + { UNITS_SIEMENS, "siemens" }, { UNITS_SIEMENS_PER_METER, "siemens-per-meter" }, { UNITS_TESLAS, "teslas" }, { UNITS_VOLTS_PER_DEGREE_KELVIN, "volts-per-degree-kelvin" }, - { UNITS_VOLTS_PER_METER, "volts-per-meter" }, { UNITS_WEBERS, "webers" }, + { UNITS_VOLTS_PER_METER, "volts-per-meter" }, + { UNITS_WEBERS, "webers" }, { UNITS_CANDELAS, "candelas" }, { UNITS_CANDELAS_PER_SQUARE_METER, "candelas-per-square-meter" }, { UNITS_KELVIN_PER_HOUR, "kelvin-per-hour" }, @@ -933,12 +1036,14 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_NEWTON_SECONDS, "newton-seconds" }, { UNITS_NEWTONS_PER_METER, "newtons-per-meter" }, { UNITS_WATTS_PER_METER_PER_DEGREE_KELVIN, - "watts-per-meter-per-degree-kelvin" }, + "watts-per-meter-per-degree-kelvin" }, { UNITS_MICROSIEMENS, "micro-siemens" }, { UNITS_CUBIC_FEET_PER_HOUR, "cubic-feet-per-hour" }, { UNITS_US_GALLONS_PER_HOUR, "us-gallons-per-hour" }, - { UNITS_KILOMETERS, "kilometers" }, { UNITS_MICROMETERS, "micrometers" }, - { UNITS_GRAMS, "grams" }, { UNITS_MILLIGRAMS, "milligrams" }, + { UNITS_KILOMETERS, "kilometers" }, + { UNITS_MICROMETERS, "micrometers" }, + { UNITS_GRAMS, "grams" }, + { UNITS_MILLIGRAMS, "milligrams" }, { UNITS_MILLILITERS, "milliliters" }, { UNITS_MILLILITERS_PER_SECOND, "milliliters-per-second" }, { UNITS_DECIBELS, "decibels" }, @@ -966,9 +1071,12 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_GRAMS_PER_CUBIC_CENTIMETER, "grams-per-cubic-centimeter" }, { UNITS_BECQUERELS, "becquerels" }, { UNITS_KILOBECQUERELS, "kilobecquerels" }, - { UNITS_MEGABECQUERELS, "megabecquerels" }, { UNITS_GRAY, "gray" }, - { UNITS_MILLIGRAY, "milligray" }, { UNITS_MICROGRAY, "microgray" }, - { UNITS_SIEVERTS, "sieverts" }, { UNITS_MILLISIEVERTS, "millisieverts" }, + { UNITS_MEGABECQUERELS, "megabecquerels" }, + { UNITS_GRAY, "gray" }, + { UNITS_MILLIGRAY, "milligray" }, + { UNITS_MICROGRAY, "microgray" }, + { UNITS_SIEVERTS, "sieverts" }, + { UNITS_MILLISIEVERTS, "millisieverts" }, { UNITS_MICROSIEVERTS, "microsieverts" }, { UNITS_MICROSIEVERTS_PER_HOUR, "microsieverts-per-hour" }, { UNITS_DECIBELS_A, "decibels-a" }, @@ -994,13 +1102,13 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_MOLE_PERCENT, "mole-percent" }, { UNITS_PASCAL_SECONDS, "pascal-seconds" }, { UNITS_MILLION_STANDARD_CUBIC_FEET_PER_MINUTE, - "million-standard-cubic-feet-per-minute" }, + "million-standard-cubic-feet-per-minute" }, { UNITS_STANDARD_CUBIC_FEET_PER_DAY, "standard-cubic-feet-per-day" }, { UNITS_MILLION_STANDARD_CUBIC_FEET_PER_DAY, - "million-standard-cubic-feet-per-day" }, + "million-standard-cubic-feet-per-day" }, { UNITS_THOUSAND_CUBIC_FEET_PER_DAY, "thousand-cubic-feet-per-day" }, { UNITS_THOUSAND_STANDARD_CUBIC_FEET_PER_DAY, - "thousand-standard-cubic-feet-per-day" }, + "thousand-standard-cubic-feet-per-day" }, { UNITS_POUNDS_MASS_PER_DAY, "pounds-mass-per-day" }, { UNITS_MILLIREMS, "millirems" }, { UNITS_MILLIREMS_PER_HOUR, "millirems-per-hour" }, @@ -1083,20 +1191,25 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_NANOGRAMS_PER_MILLILITER, "nanograms-per-milliliter" }, { UNITS_KILOGRAMS_PER_LITER, "kilograms-per-liter" }, { UNITS_NANOGRAMS_PER_LITER, "nanograms-per-liter" }, - { UNITS_MILLIGRAMS_PER_CUBIC_CENTIMETER, "milligrams-per-cubic-centimeter" }, - { UNITS_MICROGRAMS_PER_CUBIC_CENTIMETER, "micrograms-per-cubic-centimeter" }, + { UNITS_MILLIGRAMS_PER_CUBIC_CENTIMETER, + "milligrams-per-cubic-centimeter" }, + { UNITS_MICROGRAMS_PER_CUBIC_CENTIMETER, + "micrograms-per-cubic-centimeter" }, { UNITS_NANOGRAMS_PER_CUBIC_CENTIMETER, "nanograms-per-cubic-centimeter" }, { UNITS_BTU_PER_HOUR_PER_WATT, "btu-per-hour-per-watt" }, { UNITS_BTU_PER_WATT_HOUR_SEASONAL, "btu-per-watt-hour-seasonal" }, { UNITS_COEFFICIENT_OF_PERFORMANCE, "coefficient-of-performance" }, - { UNITS_COEFFICIENT_OF_PERFORMANCE_SEASONAL, "coefficient-of-performance-seasonal" }, + { UNITS_COEFFICIENT_OF_PERFORMANCE_SEASONAL, + "coefficient-of-performance-seasonal" }, { UNITS_KILOWATT_PER_TON_REFRIGERATION, "kilowatt-per-ton-refrigeration" }, { UNITS_LUMENS_PER_WATT, "lumens-per-watt" }, { UNITS_POUND_FORCE_FEET, "pound-force-feet" }, { UNITS_POUND_FORCE_INCHES, "pound-force-inches" }, { UNITS_OUNCE_FORCE_INCHES, "ounce-force-inches" }, - { UNITS_POUNDS_FORCE_PER_SQUARE_INCH_ABSOLUTE, "pounds-force-per-square-inch-absolute" }, - { UNITS_POUNDS_FORCE_PER_SQUARE_INCH_GAUGE, "pounds-force-per-square-inch-gauge" }, + { UNITS_POUNDS_FORCE_PER_SQUARE_INCH_ABSOLUTE, + "pounds-force-per-square-inch-absolute" }, + { UNITS_POUNDS_FORCE_PER_SQUARE_INCH_GAUGE, + "pounds-force-per-square-inch-gauge" }, { UNITS_MICROSIEMENS_PER_CENTIMETER, "microsiemens-per-centimeter" }, { UNITS_ACTIVE_ENERGY_PULSE_VALUE, "active-energy-pulse-value" }, { UNITS_MILLISIEMENS_PER_CENTIMETER, "millisiemens-per-centimeter" }, @@ -1110,7 +1223,8 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_REACTIVE_ENERGY_PULSE_VALUE, "reactive-energy-pulse-value" }, { UNITS_APPARENT_ENERGY_PULSE_VALUE, "apparent-energy-pulse-value" }, { UNITS_VOLT_SQUARED_HOUR_PULSE_VALUE, "volt-squared-hour-pulse-value" }, - { UNITS_AMPERE_SQUARED_HOUR_PULSE_VALUE, "ampere-squared-hour-pulse-value" }, + { UNITS_AMPERE_SQUARED_HOUR_PULSE_VALUE, + "ampere-squared-hour-pulse-value" }, { UNITS_CUBIC_METER_PULSE_VALUE, "cubic-meter-pulse-value" }, { UNITS_GIGAWATTS, "gigawatts" }, { UNITS_GIGAJOULES, "gigajoules" }, @@ -1156,9 +1270,9 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = { { UNITS_SITE_UNIT9, "site-unit9" }, { UNITS_SITE_UNIT10, "site-unit10" }, { 0, NULL } - /* Enumerated values 0-255 and 47808-49999 are reserved for definition by ASHRAE. - Enumerated values 256-47807 and 50000-65535 may be used by others subject to - the procedures and constraints described in Clause 23. */ + /* Enumerated values 0-255 and 47808-49999 are reserved for definition by + ASHRAE. Enumerated values 256-47807 and 50000-65535 may be used by others + subject to the procedures and constraints described in Clause 23. */ }; bool bactext_engineering_unit_name_proprietary(unsigned index) @@ -1168,7 +1282,8 @@ bool bactext_engineering_unit_name_proprietary(unsigned index) if ((index >= UNITS_PROPRIETARY_RANGE_MIN) && (index <= UNITS_PROPRIETARY_RANGE_MAX)) { status = true; - } else if ((index >= UNITS_PROPRIETARY_RANGE_MIN2) && + } else if ( + (index >= UNITS_PROPRIETARY_RANGE_MIN2) && (index <= UNITS_PROPRIETARY_RANGE_MAX2)) { status = true; } @@ -1195,11 +1310,12 @@ bool bactext_engineering_unit_index( bacnet_engineering_unit_names, search_name, found_index); } -INDTEXT_DATA bacnet_reject_reason_names[] = { { REJECT_REASON_OTHER, "Other" }, +INDTEXT_DATA bacnet_reject_reason_names[] = { + { REJECT_REASON_OTHER, "Other" }, { REJECT_REASON_BUFFER_OVERFLOW, "Buffer Overflow" }, { REJECT_REASON_INCONSISTENT_PARAMETERS, "Inconsistent Parameters" }, { REJECT_REASON_INVALID_PARAMETER_DATA_TYPE, - "Invalid Parameter Data Type" }, + "Invalid Parameter Data Type" }, { REJECT_REASON_INVALID_TAG, "Invalid Tag" }, { REJECT_REASON_MISSING_REQUIRED_PARAMETER, "Missing Required Parameter" }, { REJECT_REASON_PARAMETER_OUT_OF_RANGE, "Parameter Out of Range" }, @@ -1207,53 +1323,64 @@ INDTEXT_DATA bacnet_reject_reason_names[] = { { REJECT_REASON_OTHER, "Other" }, { REJECT_REASON_UNDEFINED_ENUMERATION, "Undefined Enumeration" }, { REJECT_REASON_UNRECOGNIZED_SERVICE, "Unrecognized Service" }, { REJECT_REASON_INVALID_DATA_ENCODING, "invalid-data-encoding" }, - { REJECT_REASON_PROPRIETARY_FIRST, "Proprietary" }, { 0, NULL } }; + { REJECT_REASON_PROPRIETARY_FIRST, "Proprietary" }, + { 0, NULL } +}; const char *bactext_reject_reason_name(unsigned index) { - return indtext_by_index_split_default(bacnet_reject_reason_names, index, - REJECT_REASON_PROPRIETARY_FIRST, ASHRAE_Reserved_String, - Vendor_Proprietary_String); + return indtext_by_index_split_default( + bacnet_reject_reason_names, index, REJECT_REASON_PROPRIETARY_FIRST, + ASHRAE_Reserved_String, Vendor_Proprietary_String); } -INDTEXT_DATA bacnet_abort_reason_names[] = { { ABORT_REASON_OTHER, "Other" }, +INDTEXT_DATA bacnet_abort_reason_names[] = { + { ABORT_REASON_OTHER, "Other" }, { ABORT_REASON_BUFFER_OVERFLOW, "Buffer Overflow" }, { ABORT_REASON_INVALID_APDU_IN_THIS_STATE, "Invalid APDU in this State" }, { ABORT_REASON_PREEMPTED_BY_HIGHER_PRIORITY_TASK, - "Preempted by Higher Priority Task" }, + "Preempted by Higher Priority Task" }, { ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, "Segmentation Not Supported" }, { ABORT_REASON_SECURITY_ERROR, "Security Error" }, { ABORT_REASON_INSUFFICIENT_SECURITY, "Insufficient Security" }, { ABORT_REASON_WINDOW_SIZE_OUT_OF_RANGE, "window-size-out-of-range" }, { ABORT_REASON_APPLICATION_EXCEEDED_REPLY_TIME, - "application-exceeded-reply-time" }, + "application-exceeded-reply-time" }, { ABORT_REASON_OUT_OF_RESOURCES, "out-of-resources" }, { ABORT_REASON_TSM_TIMEOUT, "tsm-timeout" }, { ABORT_REASON_APDU_TOO_LONG, "apdu-too-long" }, - { ABORT_REASON_PROPRIETARY_FIRST, "Proprietary" }, { 0, NULL } }; + { ABORT_REASON_PROPRIETARY_FIRST, "Proprietary" }, + { 0, NULL } +}; const char *bactext_abort_reason_name(unsigned index) { - return indtext_by_index_split_default(bacnet_abort_reason_names, index, - ABORT_REASON_PROPRIETARY_FIRST, ASHRAE_Reserved_String, - Vendor_Proprietary_String); + return indtext_by_index_split_default( + bacnet_abort_reason_names, index, ABORT_REASON_PROPRIETARY_FIRST, + ASHRAE_Reserved_String, Vendor_Proprietary_String); } -INDTEXT_DATA bacnet_error_class_names[] = { { ERROR_CLASS_DEVICE, "device" }, - { ERROR_CLASS_OBJECT, "object" }, { ERROR_CLASS_PROPERTY, "property" }, +INDTEXT_DATA bacnet_error_class_names[] = { + { ERROR_CLASS_DEVICE, "device" }, + { ERROR_CLASS_OBJECT, "object" }, + { ERROR_CLASS_PROPERTY, "property" }, { ERROR_CLASS_RESOURCES, "resources" }, - { ERROR_CLASS_SECURITY, "security" }, { ERROR_CLASS_SERVICES, "services" }, - { ERROR_CLASS_VT, "vt" }, { ERROR_CLASS_COMMUNICATION, "communication" }, - { 0, NULL } }; + { ERROR_CLASS_SECURITY, "security" }, + { ERROR_CLASS_SERVICES, "services" }, + { ERROR_CLASS_VT, "vt" }, + { ERROR_CLASS_COMMUNICATION, "communication" }, + { 0, NULL } +}; const char *bactext_error_class_name(unsigned index) { - return indtext_by_index_split_default(bacnet_error_class_names, index, - ERROR_CLASS_PROPRIETARY_FIRST, ASHRAE_Reserved_String, - Vendor_Proprietary_String); + return indtext_by_index_split_default( + bacnet_error_class_names, index, ERROR_CLASS_PROPRIETARY_FIRST, + ASHRAE_Reserved_String, Vendor_Proprietary_String); } -INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, +INDTEXT_DATA bacnet_error_code_names[] = { + { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_AUTHENTICATION_FAILED, "authentication-failed" }, { ERROR_CODE_CHARACTER_SET_NOT_SUPPORTED, "character-set-not-supported" }, { ERROR_CODE_CONFIGURATION_IN_PROGRESS, "configuration-in-progress" }, @@ -1262,18 +1389,18 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_DUPLICATE_NAME, "duplicate-name" }, { ERROR_CODE_DUPLICATE_OBJECT_ID, "duplicate-object-id" }, { ERROR_CODE_DYNAMIC_CREATION_NOT_SUPPORTED, - "dynamic-creation-not-supported" }, + "dynamic-creation-not-supported" }, { ERROR_CODE_FILE_ACCESS_DENIED, "file-access-denied" }, { ERROR_CODE_INCOMPATIBLE_SECURITY_LEVELS, "incompatible-security-levels" }, { ERROR_CODE_INCONSISTENT_PARAMETERS, "inconsistent-parameters" }, { ERROR_CODE_INCONSISTENT_SELECTION_CRITERION, - "inconsistent-selection-criterion" }, + "inconsistent-selection-criterion" }, { ERROR_CODE_INVALID_ARRAY_INDEX, "invalid-array-index" }, { ERROR_CODE_INVALID_CONFIGURATION_DATA, "invalid-configuration-data" }, { ERROR_CODE_INVALID_DATA_TYPE, "invalid-data-type" }, { ERROR_CODE_INVALID_FILE_ACCESS_METHOD, "invalid-file-access-method" }, { ERROR_CODE_INVALID_FILE_START_POSITION, - "error-code-invalid-file-start-position" }, + "error-code-invalid-file-start-position" }, { ERROR_CODE_INVALID_OPERATOR_NAME, "invalid-operator-name" }, { ERROR_CODE_INVALID_PARAMETER_DATA_TYPE, "invalid-parameter-data-type" }, { ERROR_CODE_INVALID_TIME_STAMP, "invalid-time-stamp" }, @@ -1285,12 +1412,12 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_NO_SPACE_TO_WRITE_PROPERTY, "no-space-to-write-property" }, { ERROR_CODE_NO_VT_SESSIONS_AVAILABLE, "no-vt-sessions-available" }, { ERROR_CODE_OBJECT_DELETION_NOT_PERMITTED, - "object-deletion-not-permitted" }, + "object-deletion-not-permitted" }, { ERROR_CODE_OBJECT_IDENTIFIER_ALREADY_EXISTS, - "object-identifier-already-exists" }, + "object-identifier-already-exists" }, { ERROR_CODE_OPERATIONAL_PROBLEM, "operational-problem" }, { ERROR_CODE_OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED, - "optional-functionality-not-supported" }, + "optional-functionality-not-supported" }, { ERROR_CODE_PASSWORD_FAILURE, "password-failure" }, { ERROR_CODE_PROPERTY_IS_NOT_A_LIST, "property-is-not-a-list" }, { ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY, "property-is-not-an-array" }, @@ -1307,31 +1434,31 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_VALUE_OUT_OF_RANGE, "value-out-of-range" }, { ERROR_CODE_VT_SESSION_ALREADY_CLOSED, "vt-session-already-closed" }, { ERROR_CODE_VT_SESSION_TERMINATION_FAILURE, - "vt-session-termination-failure" }, + "vt-session-termination-failure" }, { ERROR_CODE_WRITE_ACCESS_DENIED, "write-access-denied" }, { ERROR_CODE_COV_SUBSCRIPTION_FAILED, "cov-subscription-failed" }, { ERROR_CODE_NOT_COV_PROPERTY, "not-cov-property" }, { ERROR_CODE_ABORT_BUFFER_OVERFLOW, "abort-buffer-overflow" }, { ERROR_CODE_ABORT_INVALID_APDU_IN_THIS_STATE, - "abort-invalid-apdu-in-this-state" }, + "abort-invalid-apdu-in-this-state" }, { ERROR_CODE_ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK, - "abort-preempted-by-higher-priority-task" }, + "abort-preempted-by-higher-priority-task" }, { ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED, - "abort-segmentation-not-supported" }, + "abort-segmentation-not-supported" }, { ERROR_CODE_ABORT_PROPRIETARY, "abort-proprietary" }, { ERROR_CODE_ABORT_OTHER, "abort-other" }, { ERROR_CODE_INVALID_TAG, "invalid-tag" }, { ERROR_CODE_NETWORK_DOWN, "network-down" }, { ERROR_CODE_REJECT_BUFFER_OVERFLOW, "reject-buffer-overflow" }, { ERROR_CODE_REJECT_INCONSISTENT_PARAMETERS, - "reject-inconsistent-parameters" }, + "reject-inconsistent-parameters" }, { ERROR_CODE_REJECT_INVALID_PARAMETER_DATA_TYPE, - "reject-invalid-parameter-data-type" }, + "reject-invalid-parameter-data-type" }, { ERROR_CODE_REJECT_INVALID_TAG, "reject-invalid-tag" }, { ERROR_CODE_REJECT_MISSING_REQUIRED_PARAMETER, - "reject-missing-required-parameter" }, + "reject-missing-required-parameter" }, { ERROR_CODE_REJECT_PARAMETER_OUT_OF_RANGE, - "reject-parameter-out-of-range" }, + "reject-parameter-out-of-range" }, { ERROR_CODE_REJECT_TOO_MANY_ARGUMENTS, "reject-too-many-arguments" }, { ERROR_CODE_REJECT_UNDEFINED_ENUMERATION, "reject-undefined-enumeration" }, { ERROR_CODE_REJECT_UNRECOGNIZED_SERVICE, "reject-unrecognized-service" }, @@ -1346,7 +1473,7 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_LOGGED_VALUE_PURGED, "logged-value-purged" }, { ERROR_CODE_NO_PROPERTY_SPECIFIED, "no-property-specified" }, { ERROR_CODE_NOT_CONFIGURED_FOR_TRIGGERED_LOGGING, - "not-configured-for-triggered-logging" }, + "not-configured-for-triggered-logging" }, { ERROR_CODE_UNKNOWN_SUBSCRIPTION, "unknown-subscription" }, { ERROR_CODE_PARAMETER_OUT_OF_RANGE, "parameter-out-of-range" }, { ERROR_CODE_LIST_ELEMENT_NOT_FOUND, "list-element-not-found" }, @@ -1364,7 +1491,7 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_CANNOT_VERIFY_MESSAGE_ID, "cannot-verify-message-id" }, { ERROR_CODE_CORRECT_KEY_REVISION, "correct-key-revision" }, { ERROR_CODE_DESTINATION_DEVICE_ID_REQUIRED, - "destination-device-id-required" }, + "destination-device-id-required" }, { ERROR_CODE_DUPLICATE_MESSAGE, "duplicate-message" }, { ERROR_CODE_ENCRYPTION_NOT_CONFIGURED, "encryption-not-configured" }, { ERROR_CODE_ENCRYPTION_REQUIRED, "encryption-required" }, @@ -1389,18 +1516,18 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_WRITE_BDT_FAILED, "write-bdt-failed" }, { ERROR_CODE_READ_BDT_FAILED, "read-bdt-failed" }, { ERROR_CODE_REGISTER_FOREIGN_DEVICE_FAILED, - "register-foreign-device-failed" }, + "register-foreign-device-failed" }, { ERROR_CODE_READ_FDT_FAILED, "read-fdt-failed" }, { ERROR_CODE_DELETE_FDT_ENTRY_FAILED, "delete-fdt-entry-failed" }, { ERROR_CODE_DISTRIBUTE_BROADCAST_FAILED, "distribute-broadcast-failed" }, { ERROR_CODE_UNKNOWN_FILE_SIZE, "unknown-file-size" }, { ERROR_CODE_ABORT_APDU_TOO_LONG, "abort-apdu-too-long" }, { ERROR_CODE_ABORT_APPLICATION_EXCEEDED_REPLY_TIME, - "abort-application-exceeded-reply-time" }, + "abort-application-exceeded-reply-time" }, { ERROR_CODE_ABORT_OUT_OF_RESOURCES, "abort-out-of-resources" }, { ERROR_CODE_ABORT_TSM_TIMEOUT, "abort-tsm-timeout" }, { ERROR_CODE_ABORT_WINDOW_SIZE_OUT_OF_RANGE, - "abort-window-size-out-of-range" }, + "abort-window-size-out-of-range" }, { ERROR_CODE_FILE_FULL, "file-full" }, { ERROR_CODE_INCONSISTENT_CONFIGURATION, "inconsistent-configuration" }, { ERROR_CODE_INCONSISTENT_OBJECT_TYPE, "inconsistent-object-type" }, @@ -1413,13 +1540,13 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_DUPLICATE_ENTRY, "duplicate-entry" }, { ERROR_CODE_INVALID_VALUE_IN_THIS_STATE, "invalid-value-in-this-state" }, { ERROR_CODE_INVALID_OPERATION_IN_THIS_STATE, - "invalid-operation-in-this-state" }, + "invalid-operation-in-this-state" }, { ERROR_CODE_LIST_ITEM_NOT_NUMBERED, "list-item-not-numbered" }, { ERROR_CODE_LIST_ITEM_NOT_TIMESTAMPED, "list-item-not-timestamped" }, { ERROR_CODE_INVALID_DATA_ENCODING, "invalid-data-encoding" }, { ERROR_CODE_BVLC_FUNCTION_UNKNOWN, "bvlc-function-unknown" }, { ERROR_CODE_BVLC_PROPRIETARY_FUNCTION_UNKNOWN, - "bvlc-proprietary-function-unknown" }, + "bvlc-proprietary-function-unknown" }, { ERROR_CODE_HEADER_ENCODING_ERROR, "header-encoding-error" }, { ERROR_CODE_HEADER_NOT_UNDERSTOOD, "header-not-understood" }, { ERROR_CODE_MESSAGE_INCOMPLETE, "message-incomplete" }, @@ -1428,11 +1555,11 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_UNEXPECTED_DATA, "unexpected-data" }, { ERROR_CODE_NODE_DUPLICATE_VMAC, "node-duplicate-vmac" }, { ERROR_CODE_HTTP_UNEXPECTED_RESPONSE_CODE, - "http-unexpected-response-code" }, + "http-unexpected-response-code" }, { ERROR_CODE_HTTP_NO_UPGRADE, "http-no-upgrade" }, { ERROR_CODE_HTTP_RESOURCE_NOT_LOCAL, "http-resource-not-local" }, { ERROR_CODE_HTTP_PROXY_AUTHENTICATION_FAILED, - "http-proxy-authentication-failed" }, + "http-proxy-authentication-failed" }, { ERROR_CODE_HTTP_RESPONSE_TIMEOUT, "http-response-timeout" }, { ERROR_CODE_HTTP_RESPONSE_SYNTAX_ERROR, "http-response-syntax-error" }, { ERROR_CODE_HTTP_RESPONSE_VALUE_ERROR, "http-response-value-error" }, @@ -1444,9 +1571,9 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_HTTP_NOT_A_SERVER, "http-not-a-server" }, { ERROR_CODE_HTTP_ERROR, "http-error" }, { ERROR_CODE_WEBSOCKET_SCHEME_NOT_SUPPORTED, - "websocket-scheme-not-supported" }, + "websocket-scheme-not-supported" }, { ERROR_CODE_WEBSOCKET_UNKNOWN_CONTROL_MESSAGE, - "websocket-unknown-control-message" }, + "websocket-unknown-control-message" }, { ERROR_CODE_WEBSOCKET_CLOSE_ERROR, "websocket-close-error" }, { ERROR_CODE_WEBSOCKET_CLOSED_BY_PEER, "websocket-closed-by-peer" }, { ERROR_CODE_WEBSOCKET_ENDPOINT_LEAVES, "websocket-endpoint-leaves" }, @@ -1455,26 +1582,26 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_WEBSOCKET_CLOSED_ABNORMALLY, "websocket-closed-abnormally" }, { ERROR_CODE_WEBSOCKET_DATA_INCONSISTENT, "websocket-data-inconsistent" }, { ERROR_CODE_WEBSOCKET_DATA_AGAINST_POLICY, - "websocket-data-against-policy" }, + "websocket-data-against-policy" }, { ERROR_CODE_WEBSOCKET_FRAME_TOO_LONG, "websocket-frame-too-long" }, { ERROR_CODE_WEBSOCKET_EXTENSION_MISSING, "websocket-extension-missing" }, { ERROR_CODE_WEBSOCKET_REQUEST_UNAVAILABLE, - "websocket-request-unavailable" }, + "websocket-request-unavailable" }, { ERROR_CODE_WEBSOCKET_ERROR, "websocket-error" }, { ERROR_CODE_TLS_CLIENT_CERTIFICATE_ERROR, "tls-client-certificate-error" }, { ERROR_CODE_TLS_SERVER_CERTIFICATE_ERROR, "tls-server-certificate-error" }, { ERROR_CODE_TLS_CLIENT_AUTHENTICATION_FAILED, - "tls-client-authentication-failed" }, + "tls-client-authentication-failed" }, { ERROR_CODE_TLS_SERVER_AUTHENTICATION_FAILED, - "tls-server-authentication-failed" }, + "tls-server-authentication-failed" }, { ERROR_CODE_TLS_CLIENT_CERTIFICATE_EXPIRED, - "tls-client-certificate-expired" }, + "tls-client-certificate-expired" }, { ERROR_CODE_TLS_SERVER_CERTIFICATE_EXPIRED, - "tls-server-certificate-expired" }, + "tls-server-certificate-expired" }, { ERROR_CODE_TLS_CLIENT_CERTIFICATE_REVOKED, - "tls-client-certificate-revoked" }, + "tls-client-certificate-revoked" }, { ERROR_CODE_TLS_SERVER_CERTIFICATE_REVOKED, - "tls-server-certificate-revoked" }, + "tls-server-certificate-revoked" }, { ERROR_CODE_TLS_ERROR, "tls-error" }, { ERROR_CODE_DNS_UNAVAILABLE, "dns-unavailable" }, { ERROR_CODE_DNS_NAME_RESOLUTION_FAILED, "dns-name-resolution-failed" }, @@ -1495,20 +1622,24 @@ INDTEXT_DATA bacnet_error_code_names[] = { { ERROR_CODE_OTHER, "other" }, { ERROR_CODE_REFERENCED_PORT_IN_ERROR, "referenced-port-in-error" }, /* Enumerated values 256-65535 may be used by others subject to */ /* the procedures and constraints described in Clause 23. */ - { 0, NULL } }; + { 0, NULL } +}; const char *bactext_error_code_name(unsigned index) { - return indtext_by_index_split_default(bacnet_error_code_names, index, - ERROR_CODE_PROPRIETARY_FIRST, ASHRAE_Reserved_String, - Vendor_Proprietary_String); + return indtext_by_index_split_default( + bacnet_error_code_names, index, ERROR_CODE_PROPRIETARY_FIRST, + ASHRAE_Reserved_String, Vendor_Proprietary_String); } -INDTEXT_DATA bacnet_month_names[] = { { 1, "January" }, { 2, "February" }, - { 3, "March" }, { 4, "April" }, { 5, "May" }, { 6, "June" }, { 7, "July" }, - { 8, "August" }, { 9, "September" }, { 10, "October" }, { 11, "November" }, - { 12, "December" }, { 13, "Odd Months" }, { 14, "Even Months" }, - { 255, "Any Month" }, { 0, NULL } }; +INDTEXT_DATA bacnet_month_names[] = { + { 1, "January" }, { 2, "February" }, { 3, "March" }, + { 4, "April" }, { 5, "May" }, { 6, "June" }, + { 7, "July" }, { 8, "August" }, { 9, "September" }, + { 10, "October" }, { 11, "November" }, { 12, "December" }, + { 13, "Odd Months" }, { 14, "Even Months" }, { 255, "Any Month" }, + { 0, NULL } +}; const char *bactext_month_name(unsigned index) { @@ -1516,11 +1647,12 @@ const char *bactext_month_name(unsigned index) bacnet_month_names, index, ASHRAE_Reserved_String); } -INDTEXT_DATA bacnet_week_of_month_names[] = { { 1, "days numbered 1-7" }, - { 2, "days numbered 8-14" }, { 3, "days numbered 15-21" }, - { 4, "days numbered 22-28" }, { 5, "days numbered 29-31" }, - { 6, "last 7 days of this month" }, { 255, "any week of this month" }, - { 0, NULL } }; +INDTEXT_DATA bacnet_week_of_month_names[] = { + { 1, "days numbered 1-7" }, { 2, "days numbered 8-14" }, + { 3, "days numbered 15-21" }, { 4, "days numbered 22-28" }, + { 5, "days numbered 29-31" }, { 6, "last 7 days of this month" }, + { 255, "any week of this month" }, { 0, NULL } +}; const char *bactext_week_of_month_name(unsigned index) { @@ -1529,9 +1661,13 @@ const char *bactext_week_of_month_name(unsigned index) } /* note: different than DaysOfWeek bit string where 0=monday */ -INDTEXT_DATA bacnet_day_of_week_names[] = { { 1, "Monday" }, { 2, "Tuesday" }, - { 3, "Wednesday" }, { 4, "Thursday" }, { 5, "Friday" }, { 6, "Saturday" }, - { 7, "Sunday" }, { 255, "any day of week" }, { 0, NULL } }; +INDTEXT_DATA bacnet_day_of_week_names[] = { + { 1, "Monday" }, { 2, "Tuesday" }, + { 3, "Wednesday" }, { 4, "Thursday" }, + { 5, "Friday" }, { 6, "Saturday" }, + { 7, "Sunday" }, { 255, "any day of week" }, + { 0, NULL } +}; const char *bactext_day_of_week_name(unsigned index) { @@ -1540,14 +1676,16 @@ const char *bactext_day_of_week_name(unsigned index) } /* note: different than DayOfWeek bit string where 1=monday */ -INDTEXT_DATA bacnet_days_of_week_names[] = { { BACNET_DAYS_OF_WEEK_MONDAY, - "Monday" }, +INDTEXT_DATA bacnet_days_of_week_names[] = { + { BACNET_DAYS_OF_WEEK_MONDAY, "Monday" }, { BACNET_DAYS_OF_WEEK_TUESDAY, "Tuesday" }, { BACNET_DAYS_OF_WEEK_WEDNESDAY, "Wednesday" }, { BACNET_DAYS_OF_WEEK_THURSDAY, "Thursday" }, { BACNET_DAYS_OF_WEEK_FRIDAY, "Friday" }, { BACNET_DAYS_OF_WEEK_SATURDAY, "Saturday" }, - { BACNET_DAYS_OF_WEEK_SUNDAY, "Sunday" }, { 0, NULL } }; + { BACNET_DAYS_OF_WEEK_SUNDAY, "Sunday" }, + { 0, NULL } +}; const char *bactext_days_of_week_name(unsigned index) { @@ -1562,8 +1700,10 @@ bool bactext_days_of_week_index(const char *search_name, unsigned *found_index) } INDTEXT_DATA bacnet_notify_type_names[] = { { NOTIFY_ALARM, "alarm" }, - { NOTIFY_EVENT, "event" }, { NOTIFY_ACK_NOTIFICATION, "ack-notification" }, - { 0, NULL } }; + { NOTIFY_EVENT, "event" }, + { NOTIFY_ACK_NOTIFICATION, + "ack-notification" }, + { 0, NULL } }; const char *bactext_notify_type_name(unsigned index) { @@ -1577,10 +1717,12 @@ bool bactext_notify_type_index(const char *search_name, unsigned *found_index) bacnet_notify_type_names, search_name, found_index); } -INDTEXT_DATA bacnet_event_transition_names[] = { { TRANSITION_TO_OFFNORMAL, - "offnormal" }, - { TRANSITION_TO_NORMAL, "normal" }, { TRANSITION_TO_FAULT, "fault" }, - { 0, NULL } }; +INDTEXT_DATA bacnet_event_transition_names[] = { + { TRANSITION_TO_OFFNORMAL, "offnormal" }, + { TRANSITION_TO_NORMAL, "normal" }, + { TRANSITION_TO_FAULT, "fault" }, + { 0, NULL } +}; const char *bactext_event_transition_name(unsigned index) { @@ -1595,10 +1737,14 @@ bool bactext_event_transition_index( bacnet_event_transition_names, search_name, found_index); } -INDTEXT_DATA bacnet_event_state_names[] = { { EVENT_STATE_NORMAL, "normal" }, - { EVENT_STATE_FAULT, "fault" }, { EVENT_STATE_OFFNORMAL, "offnormal" }, +INDTEXT_DATA bacnet_event_state_names[] = { + { EVENT_STATE_NORMAL, "normal" }, + { EVENT_STATE_FAULT, "fault" }, + { EVENT_STATE_OFFNORMAL, "offnormal" }, { EVENT_STATE_HIGH_LIMIT, "high limit" }, - { EVENT_STATE_LOW_LIMIT, "low limit" }, { 0, NULL } }; + { EVENT_STATE_LOW_LIMIT, "low limit" }, + { 0, NULL } +}; const char *bactext_event_state_name(unsigned index) { @@ -1618,15 +1764,16 @@ bool bactext_event_state_strtol(const char *search_name, unsigned *found_index) bacnet_event_state_names, search_name, found_index); } -INDTEXT_DATA bacnet_event_type_names[] = { { EVENT_CHANGE_OF_BITSTRING, - "change-of-bitstring" }, +INDTEXT_DATA bacnet_event_type_names[] = { + { EVENT_CHANGE_OF_BITSTRING, "change-of-bitstring" }, { EVENT_CHANGE_OF_STATE, "change-of-state" }, { EVENT_CHANGE_OF_VALUE, "change-of-value" }, { EVENT_COMMAND_FAILURE, "command-failure" }, { EVENT_FLOATING_LIMIT, "floating-limit" }, { EVENT_OUT_OF_RANGE, "out-of-range" }, { EVENT_CHANGE_OF_LIFE_SAFETY, "change-of-life-safety" }, - { EVENT_EXTENDED, "extended" }, { EVENT_BUFFER_READY, "buffer-ready" }, + { EVENT_EXTENDED, "extended" }, + { EVENT_BUFFER_READY, "buffer-ready" }, { EVENT_UNSIGNED_RANGE, "unsigned-range" }, { EVENT_ACCESS_EVENT, "access-event" }, { EVENT_DOUBLE_OUT_OF_RANGE, "double-out-of-range" }, @@ -1637,13 +1784,15 @@ INDTEXT_DATA bacnet_event_type_names[] = { { EVENT_CHANGE_OF_BITSTRING, { EVENT_CHANGE_OF_RELIABILITY, "change-of-reliability" }, { EVENT_NONE, "none" }, { EVENT_CHANGE_OF_DISCRETE_VALUE, "change-of-discrete-value" }, - { EVENT_CHANGE_OF_TIMER, "change-of-timer" }, { 0, NULL } }; + { EVENT_CHANGE_OF_TIMER, "change-of-timer" }, + { 0, NULL } +}; const char *bactext_event_type_name(unsigned index) { - return indtext_by_index_split_default(bacnet_event_type_names, index, - EVENT_PROPRIETARY_MIN, ASHRAE_Reserved_String, - Vendor_Proprietary_String); + return indtext_by_index_split_default( + bacnet_event_type_names, index, EVENT_PROPRIETARY_MIN, + ASHRAE_Reserved_String, Vendor_Proprietary_String); } bool bactext_event_type_index(const char *search_name, unsigned *found_index) @@ -1670,7 +1819,8 @@ bool bactext_binary_present_value_index( } INDTEXT_DATA bacnet_binary_polarity_names[] = { { POLARITY_NORMAL, "normal" }, - { POLARITY_REVERSE, "reverse" }, { 0, NULL } }; + { POLARITY_REVERSE, "reverse" }, + { 0, NULL } }; const char *bactext_binary_polarity_name(unsigned index) { @@ -1678,8 +1828,8 @@ const char *bactext_binary_polarity_name(unsigned index) bacnet_binary_polarity_names, index, ASHRAE_Reserved_String); } -INDTEXT_DATA bacnet_reliability_names[] = { { RELIABILITY_NO_FAULT_DETECTED, - "no-fault-detected" }, +INDTEXT_DATA bacnet_reliability_names[] = { + { RELIABILITY_NO_FAULT_DETECTED, "no-fault-detected" }, { RELIABILITY_NO_SENSOR, "no-sensor" }, { RELIABILITY_OVER_RANGE, "over-range" }, { RELIABILITY_UNDER_RANGE, "under-range" }, @@ -1698,15 +1848,16 @@ INDTEXT_DATA bacnet_reliability_names[] = { { RELIABILITY_NO_FAULT_DETECTED, { RELIABILITY_ACTIVATION_FAILURE, "activation-failure" }, { RELIABILITY_RENEW_DHCP_FAILURE, "renew-dhcp-failure" }, { RELIABILITY_RENEW_FD_REGISTRATION_FAILURE, - "renew-fd-registration-failure" }, + "renew-fd-registration-failure" }, { RELIABILITY_RESTART_AUTO_NEGOTIATION_FAILURE, - "restart-auto-negotiation-failure" }, + "restart-auto-negotiation-failure" }, { RELIABILITY_RESTART_FAILURE, "restart-failure" }, { RELIABILITY_PROPRIETARY_COMMAND_FAILURE, "proprietary-command-failure" }, { RELIABILITY_FAULTS_LISTED, "faults-listed" }, { RELIABILITY_REFERENCED_OBJECT_FAULT, "referenced-object-fault" }, { RELIABILITY_MULTI_STATE_OUT_OF_RANGE, "multi-state-out-of-range" }, - { 0, NULL } }; + { 0, NULL } +}; const char *bactext_reliability_name(unsigned index) { @@ -1714,13 +1865,15 @@ const char *bactext_reliability_name(unsigned index) bacnet_reliability_names, index, ASHRAE_Reserved_String); } -INDTEXT_DATA bacnet_device_status_names[] = { { STATUS_OPERATIONAL, - "operational" }, +INDTEXT_DATA bacnet_device_status_names[] = { + { STATUS_OPERATIONAL, "operational" }, { STATUS_OPERATIONAL_READ_ONLY, "operational-read-only" }, { STATUS_DOWNLOAD_REQUIRED, "download-required" }, { STATUS_DOWNLOAD_IN_PROGRESS, "download-in-progress" }, { STATUS_NON_OPERATIONAL, "non-operational" }, - { STATUS_BACKUP_IN_PROGRESS, "backup-in-progress" }, { 0, NULL } }; + { STATUS_BACKUP_IN_PROGRESS, "backup-in-progress" }, + { 0, NULL } +}; const char *bactext_device_status_name(unsigned index) { @@ -1728,11 +1881,13 @@ const char *bactext_device_status_name(unsigned index) bacnet_device_status_names, index, ASHRAE_Reserved_String); } -INDTEXT_DATA bacnet_segmentation_names[] = { { SEGMENTATION_BOTH, - "segmented-both" }, +INDTEXT_DATA bacnet_segmentation_names[] = { + { SEGMENTATION_BOTH, "segmented-both" }, { SEGMENTATION_TRANSMIT, "segmented-transmit" }, { SEGMENTATION_RECEIVE, "segmented-receive" }, - { SEGMENTATION_NONE, "no-segmentation" }, { 0, NULL } }; + { SEGMENTATION_NONE, "no-segmentation" }, + { 0, NULL } +}; const char *bactext_segmentation_name(unsigned index) { @@ -1746,15 +1901,21 @@ bool bactext_segmentation_index(const char *search_name, unsigned *found_index) bacnet_segmentation_names, search_name, found_index); } -INDTEXT_DATA bacnet_node_type_names[] = { { BACNET_NODE_UNKNOWN, "unknown" }, - { BACNET_NODE_SYSTEM, "system" }, { BACNET_NODE_NETWORK, "network" }, +INDTEXT_DATA bacnet_node_type_names[] = { + { BACNET_NODE_UNKNOWN, "unknown" }, + { BACNET_NODE_SYSTEM, "system" }, + { BACNET_NODE_NETWORK, "network" }, { BACNET_NODE_DEVICE, "device" }, { BACNET_NODE_ORGANIZATIONAL, "organizational" }, - { BACNET_NODE_AREA, "area" }, { BACNET_NODE_EQUIPMENT, "equipment" }, - { BACNET_NODE_POINT, "point" }, { BACNET_NODE_COLLECTION, "collection" }, + { BACNET_NODE_AREA, "area" }, + { BACNET_NODE_EQUIPMENT, "equipment" }, + { BACNET_NODE_POINT, "point" }, + { BACNET_NODE_COLLECTION, "collection" }, { BACNET_NODE_PROPERTY, "property" }, - { BACNET_NODE_FUNCTIONAL, "functional" }, { BACNET_NODE_OTHER, "other" }, - { 0, NULL } }; + { BACNET_NODE_FUNCTIONAL, "functional" }, + { BACNET_NODE_OTHER, "other" }, + { 0, NULL } +}; const char *bactext_node_type_name(unsigned index) { @@ -1766,15 +1927,15 @@ INDTEXT_DATA network_layer_msg_names[] = { { NETWORK_MESSAGE_WHO_IS_ROUTER_TO_NETWORK, "Who-Is-Router-To-Network" }, { NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK, "I-Am-Router-To-Network" }, { NETWORK_MESSAGE_I_COULD_BE_ROUTER_TO_NETWORK, - "I-Could-Be-Router-To-Network" }, + "I-Could-Be-Router-To-Network" }, { NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK, "Reject-Message-to-Network" }, { NETWORK_MESSAGE_ROUTER_BUSY_TO_NETWORK, "Router-Busy-To-Network" }, { NETWORK_MESSAGE_ROUTER_AVAILABLE_TO_NETWORK, - "Router-Available-To-Network" }, + "Router-Available-To-Network" }, { NETWORK_MESSAGE_INIT_RT_TABLE, "Initialize-Routing-Table" }, { NETWORK_MESSAGE_INIT_RT_TABLE_ACK, "Initialize-Routing-Table-Ack" }, { NETWORK_MESSAGE_ESTABLISH_CONNECTION_TO_NETWORK, - "Est-Conn-Ntwk" }, /* Terse since unused */ + "Est-Conn-Ntwk" }, /* Terse since unused */ { NETWORK_MESSAGE_DISCONNECT_CONNECTION_TO_NETWORK, "Dsc-Conn-Ntwk" }, { 0, NULL } }; @@ -1791,9 +1952,11 @@ const char *bactext_network_layer_msg_name(unsigned index) } } -INDTEXT_DATA life_safety_state_names[] = { { LIFE_SAFETY_STATE_QUIET, "quiet" }, +INDTEXT_DATA life_safety_state_names[] = { + { LIFE_SAFETY_STATE_QUIET, "quiet" }, { LIFE_SAFETY_STATE_PRE_ALARM, "pre-alarm" }, - { LIFE_SAFETY_STATE_ALARM, "alarm" }, { LIFE_SAFETY_STATE_FAULT, "fault" }, + { LIFE_SAFETY_STATE_ALARM, "alarm" }, + { LIFE_SAFETY_STATE_FAULT, "fault" }, { LIFE_SAFETY_STATE_FAULT_PRE_ALARM, "fault-pre-alarm" }, { LIFE_SAFETY_STATE_FAULT_ALARM, "fault-alarm" }, { LIFE_SAFETY_STATE_NOT_READY, "not-ready" }, @@ -1813,7 +1976,9 @@ INDTEXT_DATA life_safety_state_names[] = { { LIFE_SAFETY_STATE_QUIET, "quiet" }, { LIFE_SAFETY_STATE_LOCAL_ALARM, "local-alarm" }, { LIFE_SAFETY_STATE_GENERAL_ALARM, "general-alarm" }, { LIFE_SAFETY_STATE_SUPERVISORY, "supervisory" }, - { LIFE_SAFETY_STATE_TEST_SUPERVISORY, "test-supervisory" }, { 0, NULL } }; + { LIFE_SAFETY_STATE_TEST_SUPERVISORY, "test-supervisory" }, + { 0, NULL } +}; const char *bactext_life_safety_state_name(unsigned index) { @@ -1825,12 +1990,15 @@ const char *bactext_life_safety_state_name(unsigned index) } } -INDTEXT_DATA lighting_in_progress[] = { { BACNET_LIGHTING_IDLE, "idle" }, +INDTEXT_DATA lighting_in_progress[] = { + { BACNET_LIGHTING_IDLE, "idle" }, { BACNET_LIGHTING_FADE_ACTIVE, "fade" }, { BACNET_LIGHTING_RAMP_ACTIVE, "ramp" }, { BACNET_LIGHTING_NOT_CONTROLLED, "not-controlled" }, { BACNET_LIGHTING_OTHER, "other" }, - { BACNET_LIGHTING_TRIM_ACTIVE, "trim-active" }, { 0, NULL } }; + { BACNET_LIGHTING_TRIM_ACTIVE, "trim-active" }, + { 0, NULL } +}; const char *bactext_lighting_in_progress(unsigned index) { @@ -1845,7 +2013,9 @@ const char *bactext_lighting_in_progress(unsigned index) INDTEXT_DATA lighting_transition[] = { { BACNET_LIGHTING_TRANSITION_NONE, "none" }, { BACNET_LIGHTING_TRANSITION_FADE, "fade" }, - { BACNET_LIGHTING_TRANSITION_RAMP, "ramp" }, { 0, NULL } }; + { BACNET_LIGHTING_TRANSITION_RAMP, "ramp" }, + { 0, NULL } +}; const char *bactext_lighting_transition(unsigned index) { @@ -1860,14 +2030,18 @@ const char *bactext_lighting_transition(unsigned index) } INDTEXT_DATA bacnet_lighting_operation_names[] = { - { BACNET_LIGHTS_NONE, "none" }, { BACNET_LIGHTS_FADE_TO, "fade-to" }, - { BACNET_LIGHTS_RAMP_TO, "ramp-to" }, { BACNET_LIGHTS_STEP_UP, "step-up" }, + { BACNET_LIGHTS_NONE, "none" }, + { BACNET_LIGHTS_FADE_TO, "fade-to" }, + { BACNET_LIGHTS_RAMP_TO, "ramp-to" }, + { BACNET_LIGHTS_STEP_UP, "step-up" }, { BACNET_LIGHTS_STEP_DOWN, "step-down" }, { BACNET_LIGHTS_STEP_ON, "step-on" }, - { BACNET_LIGHTS_STEP_OFF, "step-off" }, { BACNET_LIGHTS_WARN, "warn" }, + { BACNET_LIGHTS_STEP_OFF, "step-off" }, + { BACNET_LIGHTS_WARN, "warn" }, { BACNET_LIGHTS_WARN_OFF, "warn-off" }, { BACNET_LIGHTS_WARN_RELINQUISH, "warn-relinquish" }, - { BACNET_LIGHTS_STOP, "stop" }, { 0, NULL } + { BACNET_LIGHTS_STOP, "stop" }, + { 0, NULL } }; const char *bactext_lighting_operation_name(unsigned index) @@ -1882,7 +2056,8 @@ const char *bactext_lighting_operation_name(unsigned index) } } -bool bactext_lighting_operation_strtol(const char *search_name, unsigned *found_index) +bool bactext_lighting_operation_strtol( + const char *search_name, unsigned *found_index) { return bactext_strtol_index( bacnet_lighting_operation_names, search_name, found_index); @@ -1910,21 +2085,23 @@ const char *bactext_binary_lighting_pv_name(unsigned index) } } -bool bactext_binary_lighting_pv_names_strtol(const char *search_name, - unsigned *found_index) +bool bactext_binary_lighting_pv_names_strtol( + const char *search_name, unsigned *found_index) { return bactext_strtol_index( bacnet_binary_lighting_pv_names, search_name, found_index); } -INDTEXT_DATA bacnet_color_operation_names[] = { { BACNET_COLOR_OPERATION_NONE, - "none" }, +INDTEXT_DATA bacnet_color_operation_names[] = { + { BACNET_COLOR_OPERATION_NONE, "none" }, { BACNET_COLOR_OPERATION_FADE_TO_COLOR, "fade-to-color" }, { BACNET_COLOR_OPERATION_FADE_TO_CCT, "fade-to-cct" }, { BACNET_COLOR_OPERATION_RAMP_TO_CCT, "ramp-to-cct" }, { BACNET_COLOR_OPERATION_STEP_UP_CCT, "step-up-cct" }, { BACNET_COLOR_OPERATION_STEP_DOWN_CCT, "step-down-cct" }, - { BACNET_COLOR_OPERATION_STOP, "stop" }, { 0, NULL } }; + { BACNET_COLOR_OPERATION_STOP, "stop" }, + { 0, NULL } +}; const char *bactext_color_operation_name(unsigned index) { @@ -1933,8 +2110,10 @@ const char *bactext_color_operation_name(unsigned index) } INDTEXT_DATA bacnet_device_communications_names[] = { - { COMMUNICATION_ENABLE, "enabled" }, { COMMUNICATION_DISABLE, "disabled" }, - { COMMUNICATION_DISABLE_INITIATION, "initiation disabled" }, { 0, NULL } + { COMMUNICATION_ENABLE, "enabled" }, + { COMMUNICATION_DISABLE, "disabled" }, + { COMMUNICATION_DISABLE_INITIATION, "initiation disabled" }, + { 0, NULL } }; const char *bactext_device_communications_name(unsigned index) diff --git a/src/bacnet/bactext.h b/src/bacnet/bactext.h index 5ffae2ec..59802ac8 100644 --- a/src/bacnet/bactext.h +++ b/src/bacnet/bactext.h @@ -24,193 +24,136 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - const char *bactext_confirmed_service_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_unconfirmed_service_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_application_tag_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_application_tag_index( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_object_type_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_object_type_index( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - bool bactext_object_type_strtol( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - bool bactext_property_name_proprietary( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_property_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_property_name_default( - unsigned index, - const char *default_string); - BACNET_STACK_EXPORT - bool bactext_property_index( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - bool bactext_property_strtol( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - bool bactext_engineering_unit_name_proprietary( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_engineering_unit_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_engineering_unit_index( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_reject_reason_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_abort_reason_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_error_class_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_error_code_name( - unsigned index); - BACNET_STACK_EXPORT - unsigned bactext_property_id( - const char *name); - BACNET_STACK_EXPORT - const char *bactext_month_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_week_of_month_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_day_of_week_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_notify_type_name(unsigned index); - BACNET_STACK_EXPORT - bool bactext_notify_type_index( - const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_event_state_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_event_state_index( - const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - bool bactext_event_state_strtol( - const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_event_type_name(unsigned index); - BACNET_STACK_EXPORT - bool bactext_event_type_index( - const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_binary_present_value_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_binary_polarity_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_binary_present_value_index( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_reliability_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_device_status_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_segmentation_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_segmentation_index( - const char *search_name, - unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_node_type_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_character_string_encoding_name( - unsigned index); - BACNET_STACK_EXPORT - const char *bactext_event_transition_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_event_transition_index( - const char *search_name, - unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_confirmed_service_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_unconfirmed_service_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_application_tag_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_application_tag_index( + const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_object_type_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_object_type_index(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +bool bactext_object_type_strtol(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +bool bactext_property_name_proprietary(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_property_name(unsigned index); +BACNET_STACK_EXPORT +const char * +bactext_property_name_default(unsigned index, const char *default_string); +BACNET_STACK_EXPORT +bool bactext_property_index(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +bool bactext_property_strtol(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +bool bactext_engineering_unit_name_proprietary(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_engineering_unit_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_engineering_unit_index( + const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_reject_reason_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_abort_reason_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_error_class_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_error_code_name(unsigned index); +BACNET_STACK_EXPORT +unsigned bactext_property_id(const char *name); +BACNET_STACK_EXPORT +const char *bactext_month_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_week_of_month_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_day_of_week_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_notify_type_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_notify_type_index(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_event_state_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_event_state_index(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +bool bactext_event_state_strtol(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_event_type_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_event_type_index(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_binary_present_value_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_binary_polarity_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_binary_present_value_index( + const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_reliability_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_device_status_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_segmentation_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_segmentation_index(const char *search_name, unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_node_type_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_character_string_encoding_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_event_transition_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_event_transition_index( + const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_days_of_week_name( - unsigned index); - BACNET_STACK_EXPORT - bool bactext_days_of_week_index( - const char *search_name, - unsigned *found_index); +BACNET_STACK_EXPORT +const char *bactext_days_of_week_name(unsigned index); +BACNET_STACK_EXPORT +bool bactext_days_of_week_index(const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_network_layer_msg_name( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_network_layer_msg_name(unsigned index); - BACNET_STACK_EXPORT - const char *bactext_life_safety_state_name( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_life_safety_state_name(unsigned index); - BACNET_STACK_EXPORT - const char *bactext_device_communications_name( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_device_communications_name(unsigned index); - BACNET_STACK_EXPORT - const char *bactext_lighting_operation_name( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_lighting_operation_name(unsigned index); - BACNET_STACK_EXPORT - bool bactext_lighting_operation_strtol( - const char *search_name, - unsigned *found_index); +BACNET_STACK_EXPORT +bool bactext_lighting_operation_strtol( + const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_binary_lighting_pv_name( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_binary_lighting_pv_name(unsigned index); - BACNET_STACK_EXPORT - bool bactext_binary_lighting_pv_names_strtol( - const char *search_name, - unsigned *found_index); +BACNET_STACK_EXPORT +bool bactext_binary_lighting_pv_names_strtol( + const char *search_name, unsigned *found_index); - BACNET_STACK_EXPORT - const char *bactext_lighting_in_progress( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_lighting_in_progress(unsigned index); - BACNET_STACK_EXPORT - const char *bactext_lighting_transition( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_lighting_transition(unsigned index); - BACNET_STACK_EXPORT - const char *bactext_color_operation_name( - unsigned index); +BACNET_STACK_EXPORT +const char *bactext_color_operation_name(unsigned index); - BACNET_STACK_EXPORT - const char *bactext_shed_state_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_shed_state_name(unsigned index); - BACNET_STACK_EXPORT - const char *bactext_shed_level_type_name(unsigned index); +BACNET_STACK_EXPORT +const char *bactext_shed_level_type_name(unsigned index); #ifdef __cplusplus } diff --git a/src/bacnet/bactimevalue.h b/src/bacnet/bactimevalue.h index f2bdde2c..8211a744 100644 --- a/src/bacnet/bactimevalue.h +++ b/src/bacnet/bactimevalue.h @@ -26,7 +26,7 @@ * small. Besides, schedule can't contain complex types. */ typedef struct BACnet_Primitive_Data_Value { - uint8_t tag; /* application tag data type */ + uint8_t tag; /* application tag data type */ union { /* * ATTENTION! If a new type is added here, update @@ -34,22 +34,22 @@ typedef struct BACnet_Primitive_Data_Value { */ /* NULL - not needed as it is encoded in the tag alone */ -#if defined (BACAPP_BOOLEAN) +#if defined(BACAPP_BOOLEAN) bool Boolean; #endif -#if defined (BACAPP_UNSIGNED) +#if defined(BACAPP_UNSIGNED) BACNET_UNSIGNED_INTEGER Unsigned_Int; #endif -#if defined (BACAPP_SIGNED) +#if defined(BACAPP_SIGNED) int32_t Signed_Int; #endif -#if defined (BACAPP_REAL) +#if defined(BACAPP_REAL) float Real; #endif -#if defined (BACAPP_DOUBLE) +#if defined(BACAPP_DOUBLE) double Double; #endif -#if defined (BACAPP_ENUMERATED) +#if defined(BACAPP_ENUMERATED) uint32_t Enumerated; #endif } type; @@ -60,95 +60,95 @@ typedef struct BACnet_Time_Value { BACNET_PRIMITIVE_DATA_VALUE Value; } BACNET_TIME_VALUE; - #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - struct BACnet_Application_Data_Value; +struct BACnet_Application_Data_Value; - /** returns 0 if OK, -1 on error */ - BACNET_STACK_EXPORT - int bacnet_application_to_primitive_data_value(BACNET_PRIMITIVE_DATA_VALUE * dest, - const struct BACnet_Application_Data_Value * src); +/** returns 0 if OK, -1 on error */ +BACNET_STACK_EXPORT +int bacnet_application_to_primitive_data_value( + BACNET_PRIMITIVE_DATA_VALUE *dest, + const struct BACnet_Application_Data_Value *src); - /** returns 0 if OK, -1 on error */ - BACNET_STACK_EXPORT - int bacnet_primitive_to_application_data_value( - struct BACnet_Application_Data_Value * dest, - const BACNET_PRIMITIVE_DATA_VALUE * src); +/** returns 0 if OK, -1 on error */ +BACNET_STACK_EXPORT +int bacnet_primitive_to_application_data_value( + struct BACnet_Application_Data_Value *dest, + const BACNET_PRIMITIVE_DATA_VALUE *src); - BACNET_STACK_EXPORT - int bacnet_time_value_encode(uint8_t * apdu, - const BACNET_TIME_VALUE * value); +BACNET_STACK_EXPORT +int bacnet_time_value_encode(uint8_t *apdu, const BACNET_TIME_VALUE *value); - BACNET_STACK_DEPRECATED("Use bacnet_time_value_encode() instead") - BACNET_STACK_EXPORT - int bacapp_encode_time_value(uint8_t *apdu, - const BACNET_TIME_VALUE *value); +BACNET_STACK_DEPRECATED("Use bacnet_time_value_encode() instead") +BACNET_STACK_EXPORT +int bacapp_encode_time_value(uint8_t *apdu, const BACNET_TIME_VALUE *value); - BACNET_STACK_EXPORT - int bacnet_time_value_context_encode(uint8_t * apdu, - uint8_t tag_number, - const BACNET_TIME_VALUE * value); +BACNET_STACK_EXPORT +int bacnet_time_value_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_TIME_VALUE *value); - BACNET_STACK_DEPRECATED("Use bacnet_time_value_context_encode() instead") - BACNET_STACK_EXPORT - int bacapp_encode_context_time_value( - uint8_t *apdu, uint8_t tag_number, const BACNET_TIME_VALUE *value); +BACNET_STACK_DEPRECATED("Use bacnet_time_value_context_encode() instead") +BACNET_STACK_EXPORT +int bacapp_encode_context_time_value( + uint8_t *apdu, uint8_t tag_number, const BACNET_TIME_VALUE *value); - BACNET_STACK_DEPRECATED("Use bacnet_time_value_decode() instead") - BACNET_STACK_EXPORT - int bacapp_decode_time_value(const uint8_t * apdu, - BACNET_TIME_VALUE * value); +BACNET_STACK_DEPRECATED("Use bacnet_time_value_decode() instead") +BACNET_STACK_EXPORT +int bacapp_decode_time_value(const uint8_t *apdu, BACNET_TIME_VALUE *value); - BACNET_STACK_EXPORT - int bacnet_time_value_decode(const uint8_t *apdu, int max_apdu_len, - BACNET_TIME_VALUE *value); +BACNET_STACK_EXPORT +int bacnet_time_value_decode( + const uint8_t *apdu, int max_apdu_len, BACNET_TIME_VALUE *value); - BACNET_STACK_DEPRECATED("Use bacnet_time_value_context_decode() instead") - BACNET_STACK_EXPORT - int bacapp_decode_context_time_value(const uint8_t * apdu, - uint8_t tag_number, - BACNET_TIME_VALUE * value); +BACNET_STACK_DEPRECATED("Use bacnet_time_value_context_decode() instead") +BACNET_STACK_EXPORT +int bacapp_decode_context_time_value( + const uint8_t *apdu, uint8_t tag_number, BACNET_TIME_VALUE *value); - BACNET_STACK_EXPORT - int bacnet_time_value_context_decode(const uint8_t *apdu, int max_apdu_len, - uint8_t tag_number, BACNET_TIME_VALUE *value); +BACNET_STACK_EXPORT +int bacnet_time_value_context_decode( + const uint8_t *apdu, + int max_apdu_len, + uint8_t tag_number, + BACNET_TIME_VALUE *value); - /** - * Decode array of time-values wrapped in a context tag - * @param apdu - * @param max_apdu_len - * @param tag_number - number expected in the context tag; 0 used for DailySchedule - * @param time_values - * @param max_time_values - number of time values to encode - * @param[out] out_count - actual number of time values found - * @return used bytes, <0 if decoding failed - */ - BACNET_STACK_EXPORT - int bacnet_time_values_context_decode( - const uint8_t * apdu, - int max_apdu_len, - uint8_t tag_number, - BACNET_TIME_VALUE *time_values, - unsigned int max_time_values, - unsigned int *out_count); +/** + * Decode array of time-values wrapped in a context tag + * @param apdu + * @param max_apdu_len + * @param tag_number - number expected in the context tag; 0 used for + * DailySchedule + * @param time_values + * @param max_time_values - number of time values to encode + * @param[out] out_count - actual number of time values found + * @return used bytes, <0 if decoding failed + */ +BACNET_STACK_EXPORT +int bacnet_time_values_context_decode( + const uint8_t *apdu, + int max_apdu_len, + uint8_t tag_number, + BACNET_TIME_VALUE *time_values, + unsigned int max_time_values, + unsigned int *out_count); - /** - * Encode array of time-values wrapped in a context tag - * @param apdu - output buffer, NULL to just measure length - * @param max_apdu_len - * @param tag_number - number to use for the context tag; 0 used for DailySchedule - * @param time_values - * @param max_time_values - number of time values to encode - * @return used bytes, <=0 if encoding failed - */ - BACNET_STACK_EXPORT - int bacnet_time_values_context_encode( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_TIME_VALUE * time_values, - unsigned int max_time_values); +/** + * Encode array of time-values wrapped in a context tag + * @param apdu - output buffer, NULL to just measure length + * @param max_apdu_len + * @param tag_number - number to use for the context tag; 0 used for + * DailySchedule + * @param time_values + * @param max_time_values - number of time values to encode + * @return used bytes, <=0 if encoding failed + */ +BACNET_STACK_EXPORT +int bacnet_time_values_context_encode( + uint8_t *apdu, + uint8_t tag_number, + const BACNET_TIME_VALUE *time_values, + unsigned int max_time_values); #ifdef __cplusplus } diff --git a/src/bacnet/basic/bbmd/h_bbmd.c b/src/bacnet/basic/bbmd/h_bbmd.c index 9aa7d48d..fae36028 100644 --- a/src/bacnet/basic/bbmd/h_bbmd.c +++ b/src/bacnet/basic/bbmd/h_bbmd.c @@ -55,7 +55,7 @@ static uint16_t Remote_BBMD_TTL_Seconds; static uint8_t BVLC_Buffer[BIP_MPDU_MAX]; static uint16_t BVLC_Buffer_Len; #endif -#if BBMD_ENABLED/* Broadcast Distribution Table */ +#if BBMD_ENABLED /* Broadcast Distribution Table */ #ifndef MAX_BBMD_ENTRIES #define MAX_BBMD_ENTRIES 128 #endif @@ -93,7 +93,8 @@ static void debug_print_bip(const char *str, const BACNET_IP_ADDRESS *addr) { #if PRINT_ENABLED if (BVLC_Debug) { - printf("BVLC: %s %u.%u.%u.%u:%u\n", str, (unsigned)addr->address[0], + printf( + "BVLC: %s %u.%u.%u.%u:%u\n", str, (unsigned)addr->address[0], (unsigned)addr->address[1], (unsigned)addr->address[2], (unsigned)addr->address[3], (unsigned)addr->port); } @@ -187,7 +188,8 @@ void bvlc_bdt_backup_local(void) } fseek(bdt_file_ptr, 0, SEEK_SET); - fwrite(BBMD_Table, sizeof(BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY), + fwrite( + BBMD_Table, sizeof(BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY), MAX_BBMD_ENTRIES, bdt_file_ptr); fflush(bdt_file_ptr); } @@ -212,12 +214,14 @@ void bvlc_bdt_restore_local(void) BBMD_Table_tmp[MAX_BBMD_ENTRIES]; size_t entries = 0; - entries = fread(BBMD_Table_tmp, + entries = fread( + BBMD_Table_tmp, sizeof(BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY), MAX_BBMD_ENTRIES, bdt_file_ptr); if (entries == MAX_BBMD_ENTRIES) { /* success reading the BDT table. */ - memcpy(BBMD_Table, BBMD_Table_tmp, + memcpy( + BBMD_Table, BBMD_Table_tmp, sizeof(BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY) * MAX_BBMD_ENTRIES); } @@ -312,9 +316,7 @@ static bool bbmd_bdt_member_mask_is_unicast(const BACNET_IP_ADDRESS *addr) * @return number of bytes encoded in the Forwarded NPDU */ static uint16_t bbmd_forward_npdu( - const BACNET_IP_ADDRESS *bip_src, - const uint8_t *npdu, - uint16_t npdu_length) + const BACNET_IP_ADDRESS *bip_src, const uint8_t *npdu, uint16_t npdu_length) { BACNET_IP_ADDRESS broadcast_address = { 0 }; uint8_t mtu[BIP_MPDU_MAX] = { 0 }; @@ -340,7 +342,8 @@ static uint16_t bbmd_forward_npdu( * @param original - was the message an original (not forwarded) * @return number of bytes encoded in the Forwarded NPDU */ -static uint16_t bbmd_bdt_forward_npdu(const BACNET_IP_ADDRESS *bip_src, +static uint16_t bbmd_bdt_forward_npdu( + const BACNET_IP_ADDRESS *bip_src, const uint8_t *npdu, uint16_t npdu_length, bool original) @@ -361,8 +364,9 @@ static uint16_t bbmd_bdt_forward_npdu(const BACNET_IP_ADDRESS *bip_src, * or the NAT handling is disabled, leave the source address as is. */ if (BVLC_NAT_Handling && original) { - mtu_len = (uint16_t)bvlc_encode_forwarded_npdu(&mtu[0], - (uint16_t)sizeof(mtu), &BVLC_Global_Address, npdu, npdu_length); + mtu_len = (uint16_t)bvlc_encode_forwarded_npdu( + &mtu[0], (uint16_t)sizeof(mtu), &BVLC_Global_Address, npdu, + npdu_length); } else { mtu_len = (uint16_t)bvlc_encode_forwarded_npdu( &mtu[0], (uint16_t)sizeof(mtu), bip_src, npdu, npdu_length); @@ -405,7 +409,8 @@ static uint16_t bbmd_bdt_forward_npdu(const BACNET_IP_ADDRESS *bip_src, * @param original - was the message an original (not forwarded) * @return number of bytes encoded in the Forwarded NPDU */ -static uint16_t bbmd_fdt_forward_npdu(const BACNET_IP_ADDRESS *bip_src, +static uint16_t bbmd_fdt_forward_npdu( + const BACNET_IP_ADDRESS *bip_src, const uint8_t *npdu, uint16_t npdu_length, bool original) @@ -426,8 +431,9 @@ static uint16_t bbmd_fdt_forward_npdu(const BACNET_IP_ADDRESS *bip_src, * or the NAT handling is disabled, leave the source address as is. */ if (BVLC_NAT_Handling && original) { - mtu_len = (uint16_t)bvlc_encode_forwarded_npdu(&mtu[0], - (uint16_t)sizeof(mtu), &BVLC_Global_Address, npdu, npdu_length); + mtu_len = (uint16_t)bvlc_encode_forwarded_npdu( + &mtu[0], (uint16_t)sizeof(mtu), &BVLC_Global_Address, npdu, + npdu_length); } else { mtu_len = (uint16_t)bvlc_encode_forwarded_npdu( &mtu[0], (uint16_t)sizeof(mtu), bip_src, npdu, npdu_length); @@ -478,14 +484,16 @@ static void bbmd_read_bdt_ack_handler( unsigned count = 1; int len = 0; - printf("BBMD: %u.%u.%u.%u:%u\n", (unsigned)addr->address[0], + printf( + "BBMD: %u.%u.%u.%u:%u\n", (unsigned)addr->address[0], (unsigned)addr->address[1], (unsigned)addr->address[2], (unsigned)addr->address[3], (unsigned)addr->port); while (npdu_length >= BACNET_IP_BDT_ENTRY_SIZE) { len = bvlc_decode_broadcast_distribution_table_entry( &npdu[offset], npdu_length, &bdt_entry); if (len > 0) { - printf("BDT-%03u: %u.%u.%u.%u:%u %u.%u.%u.%u\n", count, + printf( + "BDT-%03u: %u.%u.%u.%u:%u %u.%u.%u.%u\n", count, (unsigned)bdt_entry.dest_address.address[0], (unsigned)bdt_entry.dest_address.address[1], (unsigned)bdt_entry.dest_address.address[2], @@ -526,14 +534,16 @@ static void bbmd_read_fdt_ack_handler( unsigned count = 1; int len = 0; - printf("BBMD: %u.%u.%u.%u:%u\n", (unsigned)addr->address[0], + printf( + "BBMD: %u.%u.%u.%u:%u\n", (unsigned)addr->address[0], (unsigned)addr->address[1], (unsigned)addr->address[2], (unsigned)addr->address[3], (unsigned)addr->port); while (npdu_length >= BACNET_IP_FDT_ENTRY_SIZE) { len = bvlc_decode_foreign_device_table_entry( &npdu[offset], npdu_length, &fdt_entry); if (len > 0) { - printf("FDT-%03u: %u.%u.%u.%u:%u %us %us\n", count, + printf( + "FDT-%03u: %u.%u.%u.%u:%u %us %us\n", count, (unsigned)fdt_entry.dest_address.address[0], (unsigned)fdt_entry.dest_address.address[1], (unsigned)fdt_entry.dest_address.address[2], @@ -568,7 +578,8 @@ static void bbmd_read_fdt_ack_handler( * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -int bvlc_send_pdu(const BACNET_ADDRESS *dest, +int bvlc_send_pdu( + const BACNET_ADDRESS *dest, const BACNET_NPDU_DATA *npdu_data, const uint8_t *pdu, unsigned pdu_len) @@ -639,8 +650,8 @@ int bvlc_send_pdu(const BACNET_ADDRESS *dest, * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -static int bvlc_send_result( - const BACNET_IP_ADDRESS *dest_addr, uint16_t result_code) +static int +bvlc_send_result(const BACNET_IP_ADDRESS *dest_addr, uint16_t result_code) { uint8_t mtu[BIP_MPDU_MAX] = { 0 }; uint16_t mtu_len = 0; @@ -661,7 +672,8 @@ static int bvlc_send_result( * * @return number of bytes offset into the NPDU for APDU, or 0 if handled */ -int bvlc_bbmd_disabled_handler(BACNET_IP_ADDRESS *addr, +int bvlc_bbmd_disabled_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *mtu, uint16_t mtu_len) @@ -822,7 +834,8 @@ int bvlc_bbmd_disabled_handler(BACNET_IP_ADDRESS *addr, * * @return number of bytes offset into the NPDU for APDU, or 0 if handled */ -int bvlc_bbmd_enabled_handler(BACNET_IP_ADDRESS *addr, +int bvlc_bbmd_enabled_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *mtu, uint16_t mtu_len) @@ -940,7 +953,8 @@ int bvlc_bbmd_enabled_handler(BACNET_IP_ADDRESS *addr, the BBMD's FDT. */ offset = header_len + function_len - npdu_len; npdu = &mtu[offset]; - (void)bbmd_fdt_forward_npdu(&fwd_address, npdu, npdu_len, false); + (void)bbmd_fdt_forward_npdu( + &fwd_address, npdu, npdu_len, false); /* prepare the message for me! */ bvlc_ip_address_to_bacnet_local(src, &fwd_address); debug_print_npdu("Forwarded-NPDU", offset, npdu_len); @@ -1145,7 +1159,8 @@ int bvlc_bbmd_enabled_handler(BACNET_IP_ADDRESS *addr, * * @return number of bytes offset into the NPDU for APDU, or 0 if handled */ -int bvlc_handler(BACNET_IP_ADDRESS *addr, +int bvlc_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *npdu, uint16_t npdu_len) @@ -1159,7 +1174,8 @@ int bvlc_handler(BACNET_IP_ADDRESS *addr, #endif } -int bvlc_broadcast_handler(BACNET_IP_ADDRESS *addr, +int bvlc_broadcast_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *npdu, uint16_t npdu_len) @@ -1249,7 +1265,8 @@ int bvlc_bbmd_read_bdt(const BACNET_IP_ADDRESS *bbmd_addr) * @param bbmd_addr - IPv4 address of BBMD with which to read * @return Positive number (of bytes sent) on success */ -int bvlc_bbmd_write_bdt(const BACNET_IP_ADDRESS *bbmd_addr, +int bvlc_bbmd_write_bdt( + const BACNET_IP_ADDRESS *bbmd_addr, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list) { BVLC_Buffer_Len = bvlc_encode_write_broadcast_distribution_table( diff --git a/src/bacnet/basic/bbmd/h_bbmd.h b/src/bacnet/basic/bbmd/h_bbmd.h index d4be6a6e..6d7fd103 100644 --- a/src/bacnet/basic/bbmd/h_bbmd.h +++ b/src/bacnet/basic/bbmd/h_bbmd.h @@ -22,32 +22,36 @@ extern "C" { /* user application function prototypes */ BACNET_STACK_EXPORT -int bvlc_handler(BACNET_IP_ADDRESS *addr, +int bvlc_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *npdu, uint16_t npdu_len); BACNET_STACK_EXPORT -int bvlc_broadcast_handler(BACNET_IP_ADDRESS *addr, +int bvlc_broadcast_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *npdu, uint16_t npdu_len); BACNET_STACK_EXPORT -int bvlc_bbmd_enabled_handler(BACNET_IP_ADDRESS *addr, +int bvlc_bbmd_enabled_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *mtu, uint16_t mtu_len); BACNET_STACK_EXPORT -int bvlc_bbmd_disabled_handler(BACNET_IP_ADDRESS *addr, +int bvlc_bbmd_disabled_handler( + BACNET_IP_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *mtu, uint16_t mtu_len); - BACNET_STACK_EXPORT -int bvlc_send_pdu(const BACNET_ADDRESS *dest, +int bvlc_send_pdu( + const BACNET_ADDRESS *dest, const BACNET_NPDU_DATA *npdu_data, const uint8_t *pdu, unsigned pdu_len); @@ -78,7 +82,8 @@ void bvlc_debug_disable(void); BACNET_STACK_EXPORT int bvlc_bbmd_read_bdt(const BACNET_IP_ADDRESS *bbmd_addr); BACNET_STACK_EXPORT -int bvlc_bbmd_write_bdt(const BACNET_IP_ADDRESS *bbmd_addr, +int bvlc_bbmd_write_bdt( + const BACNET_IP_ADDRESS *bbmd_addr, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); /* send a Read FDT request */ BACNET_STACK_EXPORT @@ -89,11 +94,9 @@ BACNET_STACK_EXPORT int bvlc_register_with_bbmd( const BACNET_IP_ADDRESS *address, uint16_t time_to_live_seconds); BACNET_STACK_EXPORT -void bvlc_remote_bbmd_address( - BACNET_IP_ADDRESS *address); +void bvlc_remote_bbmd_address(BACNET_IP_ADDRESS *address); BACNET_STACK_EXPORT -uint16_t bvlc_remote_bbmd_lifetime( - void); +uint16_t bvlc_remote_bbmd_lifetime(void); /* Local interface to manage BBMD. * The interface user needs to handle mutual exclusion if needed i.e. diff --git a/src/bacnet/basic/bbmd6/h_bbmd6.c b/src/bacnet/basic/bbmd6/h_bbmd6.c index d6ffe512..221da8b3 100644 --- a/src/bacnet/basic/bbmd6/h_bbmd6.c +++ b/src/bacnet/basic/bbmd6/h_bbmd6.c @@ -36,7 +36,8 @@ static int printf_stderr(const char *format, ...) return length; } #else -static int printf_stderr(const char *format, ...) { +static int printf_stderr(const char *format, ...) +{ (void)format; return 0; } @@ -113,8 +114,8 @@ void bvlc6_maintenance_timer(uint16_t seconds) * * @return true if the address was set */ -static bool bbmd6_address_from_vmac( - BACNET_IP6_ADDRESS *addr, const struct vmac_data *vmac) +static bool +bbmd6_address_from_vmac(BACNET_IP6_ADDRESS *addr, const struct vmac_data *vmac) { bool status = false; unsigned int i = 0; @@ -138,8 +139,8 @@ static bool bbmd6_address_from_vmac( * * @return true if the address was set */ -static bool bbmd6_address_to_vmac( - struct vmac_data *vmac, const BACNET_IP6_ADDRESS *addr) +static bool +bbmd6_address_to_vmac(struct vmac_data *vmac, const BACNET_IP6_ADDRESS *addr) { bool status = false; unsigned int i = 0; @@ -178,13 +179,15 @@ static void bbmd6_add_vmac(uint32_t device_id, const BACNET_IP6_ADDRESS *addr) } else { /* VMAC exists, but device ID changed */ VMAC_Delete(list_device_id); - PRINTF("BVLC6: VMAC existed for %u [", + PRINTF( + "BVLC6: VMAC existed for %u [", (unsigned int)list_device_id); for (i = 0; i < new_vmac.mac_len; i++) { PRINTF("%02X", new_vmac.mac[i]); } PRINTF("]\n"); - PRINTF("BVLC6: Removed VMAC for %lu.\n", + PRINTF( + "BVLC6: Removed VMAC for %lu.\n", (unsigned long)list_device_id); } } @@ -193,25 +196,23 @@ static void bbmd6_add_vmac(uint32_t device_id, const BACNET_IP6_ADDRESS *addr) if (vmac) { /* device ID already exists. Update MAC. */ memmove(vmac, &new_vmac, sizeof(struct vmac_data)); - PRINTF("BVLC6: VMAC for %u [", - (unsigned int)device_id); + PRINTF("BVLC6: VMAC for %u [", (unsigned int)device_id); for (i = 0; i < new_vmac.mac_len; i++) { PRINTF("%02X", new_vmac.mac[i]); } PRINTF("]\n"); - PRINTF("BVLC6: Updated VMAC for %lu.\n", - (unsigned long)device_id); + PRINTF( + "BVLC6: Updated VMAC for %lu.\n", (unsigned long)device_id); } else { /* new entry - add it! */ VMAC_Add(device_id, &new_vmac); - PRINTF("BVLC6: VMAC for %u [", - (unsigned int)device_id); + PRINTF("BVLC6: VMAC for %u [", (unsigned int)device_id); for (i = 0; i < new_vmac.mac_len; i++) { PRINTF("%02X", new_vmac.mac[i]); } PRINTF("]\n"); - PRINTF("BVLC6: Added VMAC for %lu.\n", - (unsigned long)device_id); + PRINTF( + "BVLC6: Added VMAC for %lu.\n", (unsigned long)device_id); } } } @@ -260,7 +261,8 @@ static bool bbmd6_address_from_bacnet_address( if (status) { vmac = VMAC_Find_By_Key(device_id); if (vmac) { - PRINTF("BVLC6: Found VMAC %lu (len=%u).\n", + PRINTF( + "BVLC6: Found VMAC %lu (len=%u).\n", (unsigned long)device_id, (unsigned)vmac->mac_len); status = bbmd6_address_from_vmac(addr, vmac); if (vmac_src) { @@ -285,7 +287,8 @@ static bool bbmd6_address_from_bacnet_address( * @return Upon successful completion, returns the number of bytes sent. * Otherwise, -1 shall be returned and errno set to indicate the error. */ -int bvlc6_send_pdu(const BACNET_ADDRESS *dest, +int bvlc6_send_pdu( + const BACNET_ADDRESS *dest, const BACNET_NPDU_DATA *npdu_data, const uint8_t *pdu, unsigned pdu_len) @@ -408,7 +411,8 @@ static void bbmd6_send_pdu_fdt(uint8_t *mtu, unsigned int mtu_len) * @param npdu - the bytes of NPDU+APDU data to send * @param npdu_len - the number of bytes of NPDU+APDU data to send */ -static void bbmd6_send_forward_npdu(BACNET_IP6_ADDRESS *address, +static void bbmd6_send_forward_npdu( + BACNET_IP6_ADDRESS *address, uint32_t vmac_src, uint8_t *npdu, unsigned int npdu_len) @@ -647,7 +651,8 @@ static void bbmd6_address_resolution_ack_handler( * * @return number of bytes offset into the NPDU for APDU, or 0 if handled */ -int bvlc6_bbmd_disabled_handler(BACNET_IP6_ADDRESS *addr, +int bvlc6_bbmd_disabled_handler( + BACNET_IP6_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *mtu, uint16_t mtu_len) @@ -766,8 +771,9 @@ int bvlc6_bbmd_disabled_handler(BACNET_IP6_ADDRESS *addr, /* ignore messages from my IPv6 address */ PRINTF("BIP6: Forwarded-NPDU is me!\n"); } else { - function_len = bvlc6_decode_forwarded_npdu(pdu, pdu_len, - &vmac_src, &fwd_address, NULL, 0, &npdu_len); + function_len = bvlc6_decode_forwarded_npdu( + pdu, pdu_len, &vmac_src, &fwd_address, NULL, 0, + &npdu_len); if (function_len) { /* The Virtual MAC address table shall be updated using the respective parameter values of the @@ -825,7 +831,8 @@ int bvlc6_bbmd_disabled_handler(BACNET_IP6_ADDRESS *addr, * * @return number of bytes offset into the NPDU for APDU, or 0 if handled */ -int bvlc6_bbmd_enabled_handler(BACNET_IP6_ADDRESS *addr, +int bvlc6_bbmd_enabled_handler( + BACNET_IP6_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *mtu, uint16_t mtu_len) @@ -1020,7 +1027,8 @@ int bvlc6_bbmd_enabled_handler(BACNET_IP6_ADDRESS *addr, * * @return number of bytes offset into the NPDU for APDU, or 0 if handled */ -int bvlc6_handler(BACNET_IP6_ADDRESS *addr, +int bvlc6_handler( + BACNET_IP6_ADDRESS *addr, BACNET_ADDRESS *src, uint8_t *npdu, uint16_t npdu_len) @@ -1041,8 +1049,8 @@ int bvlc6_handler(BACNET_IP6_ADDRESS *addr, * 0 if no registration request is sent, or * -1 if registration fails. */ -int bvlc6_register_with_bbmd(const BACNET_IP6_ADDRESS *bbmd_addr, - uint16_t ttl_seconds) +int bvlc6_register_with_bbmd( + const BACNET_IP6_ADDRESS *bbmd_addr, uint16_t ttl_seconds) { uint8_t mtu[BIP6_MPDU_MAX] = { 0 }; uint16_t mtu_len = 0; diff --git a/src/bacnet/basic/bbmd6/h_bbmd6.h b/src/bacnet/basic/bbmd6/h_bbmd6.h index d5c9f7a9..9975b590 100644 --- a/src/bacnet/basic/bbmd6/h_bbmd6.h +++ b/src/bacnet/basic/bbmd6/h_bbmd6.h @@ -20,66 +20,62 @@ extern "C" { #endif /* __cplusplus */ - /* user application function prototypes */ - BACNET_STACK_EXPORT - int bvlc6_handler( - BACNET_IP6_ADDRESS *addr, - BACNET_ADDRESS * src, - uint8_t * npdu, - uint16_t npdu_len); +/* user application function prototypes */ +BACNET_STACK_EXPORT +int bvlc6_handler( + BACNET_IP6_ADDRESS *addr, + BACNET_ADDRESS *src, + uint8_t *npdu, + uint16_t npdu_len); - BACNET_STACK_EXPORT - int bvlc6_bbmd_enabled_handler(BACNET_IP6_ADDRESS *addr, - BACNET_ADDRESS *src, - uint8_t *mtu, - uint16_t mtu_len); +BACNET_STACK_EXPORT +int bvlc6_bbmd_enabled_handler( + BACNET_IP6_ADDRESS *addr, + BACNET_ADDRESS *src, + uint8_t *mtu, + uint16_t mtu_len); - BACNET_STACK_EXPORT - int bvlc6_bbmd_disabled_handler(BACNET_IP6_ADDRESS *addr, - BACNET_ADDRESS *src, - uint8_t *mtu, - uint16_t mtu_len); +BACNET_STACK_EXPORT +int bvlc6_bbmd_disabled_handler( + BACNET_IP6_ADDRESS *addr, + BACNET_ADDRESS *src, + uint8_t *mtu, + uint16_t mtu_len); - BACNET_STACK_EXPORT - int bvlc6_send_pdu(const BACNET_ADDRESS *dest, - const BACNET_NPDU_DATA *npdu_data, - const uint8_t *pdu, - unsigned pdu_len); +BACNET_STACK_EXPORT +int bvlc6_send_pdu( + const BACNET_ADDRESS *dest, + const BACNET_NPDU_DATA *npdu_data, + const uint8_t *pdu, + unsigned pdu_len); - BACNET_STACK_EXPORT - int bvlc6_register_with_bbmd( - const BACNET_IP6_ADDRESS *bbmd_addr, - uint16_t time_to_live_seconds); +BACNET_STACK_EXPORT +int bvlc6_register_with_bbmd( + const BACNET_IP6_ADDRESS *bbmd_addr, uint16_t time_to_live_seconds); - BACNET_STACK_EXPORT - void bvlc6_remote_bbmd_address( - BACNET_IP6_ADDRESS *bbmd_addr); +BACNET_STACK_EXPORT +void bvlc6_remote_bbmd_address(BACNET_IP6_ADDRESS *bbmd_addr); - BACNET_STACK_EXPORT - uint16_t bvlc6_remote_bbmd_lifetime( - void); +BACNET_STACK_EXPORT +uint16_t bvlc6_remote_bbmd_lifetime(void); - BACNET_STACK_EXPORT - uint16_t bvlc6_get_last_result( - void); +BACNET_STACK_EXPORT +uint16_t bvlc6_get_last_result(void); - BACNET_STACK_EXPORT - uint8_t bvlc6_get_function_code( - void); +BACNET_STACK_EXPORT +uint8_t bvlc6_get_function_code(void); - BACNET_STACK_EXPORT - void bvlc6_maintenance_timer( - uint16_t seconds); +BACNET_STACK_EXPORT +void bvlc6_maintenance_timer(uint16_t seconds); - BACNET_STACK_EXPORT - void bvlc6_debug_enable( - void); +BACNET_STACK_EXPORT +void bvlc6_debug_enable(void); - BACNET_STACK_EXPORT - void bvlc6_cleanup(void); +BACNET_STACK_EXPORT +void bvlc6_cleanup(void); - BACNET_STACK_EXPORT - void bvlc6_init(void); +BACNET_STACK_EXPORT +void bvlc6_init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/bbmd6/vmac.c b/src/bacnet/basic/bbmd6/vmac.c index e0afed56..1f7f1562 100644 --- a/src/bacnet/basic/bbmd6/vmac.c +++ b/src/bacnet/basic/bbmd6/vmac.c @@ -127,8 +127,7 @@ struct vmac_data *VMAC_Find_By_Key(uint32_t device_id) * @return true if the addresses are different */ bool VMAC_Different( - const struct vmac_data *vmac1, - const struct vmac_data *vmac2) + const struct vmac_data *vmac1, const struct vmac_data *vmac2) { bool status = false; unsigned int i = 0; @@ -159,9 +158,7 @@ bool VMAC_Different( * * @return true if the addresses are the same */ -bool VMAC_Match( - const struct vmac_data *vmac1, - const struct vmac_data *vmac2) +bool VMAC_Match(const struct vmac_data *vmac1, const struct vmac_data *vmac2) { bool status = false; unsigned int i = 0; diff --git a/src/bacnet/basic/bbmd6/vmac.h b/src/bacnet/basic/bbmd6/vmac.h index 68e9d52e..1943f96b 100644 --- a/src/bacnet/basic/bbmd6/vmac.h +++ b/src/bacnet/basic/bbmd6/vmac.h @@ -16,10 +16,10 @@ /* define the max MAC as big as IPv6 + port number */ #define VMAC_MAC_MAX 18 /** -* VMAC data structure -* -* @{ -*/ + * VMAC data structure + * + * @{ + */ struct vmac_data { uint8_t mac[VMAC_MAC_MAX]; uint8_t mac_len; @@ -30,30 +30,27 @@ struct vmac_data { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - unsigned int VMAC_Count(void); - BACNET_STACK_EXPORT - struct vmac_data *VMAC_Find_By_Key(uint32_t device_id); - BACNET_STACK_EXPORT - bool VMAC_Find_By_Data(const struct vmac_data *vmac, uint32_t *device_id); - BACNET_STACK_EXPORT - bool VMAC_Add(uint32_t device_id, const struct vmac_data *pVMAC); - BACNET_STACK_EXPORT - bool VMAC_Delete(uint32_t device_id); - BACNET_STACK_EXPORT - bool VMAC_Different( - const struct vmac_data *vmac1, - const struct vmac_data *vmac2); - BACNET_STACK_EXPORT - bool VMAC_Match( - const struct vmac_data *vmac1, - const struct vmac_data *vmac2); - BACNET_STACK_EXPORT - void VMAC_Cleanup(void); - BACNET_STACK_EXPORT - void VMAC_Init(void); - BACNET_STACK_EXPORT - void VMAC_Debug_Enable(void); +BACNET_STACK_EXPORT +unsigned int VMAC_Count(void); +BACNET_STACK_EXPORT +struct vmac_data *VMAC_Find_By_Key(uint32_t device_id); +BACNET_STACK_EXPORT +bool VMAC_Find_By_Data(const struct vmac_data *vmac, uint32_t *device_id); +BACNET_STACK_EXPORT +bool VMAC_Add(uint32_t device_id, const struct vmac_data *pVMAC); +BACNET_STACK_EXPORT +bool VMAC_Delete(uint32_t device_id); +BACNET_STACK_EXPORT +bool VMAC_Different( + const struct vmac_data *vmac1, const struct vmac_data *vmac2); +BACNET_STACK_EXPORT +bool VMAC_Match(const struct vmac_data *vmac1, const struct vmac_data *vmac2); +BACNET_STACK_EXPORT +void VMAC_Cleanup(void); +BACNET_STACK_EXPORT +void VMAC_Init(void); +BACNET_STACK_EXPORT +void VMAC_Debug_Enable(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/binding/address.c b/src/bacnet/basic/binding/address.c index b4b8b727..3bc4cd66 100644 --- a/src/bacnet/basic/binding/address.c +++ b/src/bacnet/basic/binding/address.c @@ -144,7 +144,7 @@ static struct Address_Cache_Entry *address_remove_oldest(void) for (index = Top_Protected_Entry; index < MAX_ADDRESS_CACHE; index++) { pMatch = &Address_Cache[index]; if ((pMatch->Flags & - (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ | BAC_ADDR_STATIC)) == + (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ | BAC_ADDR_STATIC)) == BAC_ADDR_IN_USE) { if (pMatch->TimeToLive <= ulTime) { /* Shorter lived entry found */ @@ -166,7 +166,7 @@ static struct Address_Cache_Entry *address_remove_oldest(void) for (index = 0; index < MAX_ADDRESS_CACHE; index++) { pMatch = &Address_Cache[index]; if ((pMatch->Flags & - (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ | BAC_ADDR_STATIC)) == + (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ | BAC_ADDR_STATIC)) == ((uint8_t)(BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ))) { if (pMatch->TimeToLive <= ulTime) { /* Shorter lived entry found */ ulTime = pMatch->TimeToLive; @@ -211,7 +211,8 @@ static void address_file_init(const char *pFilename) while (fgets(line, (int)sizeof(line), pFile) != NULL) { /* ignore comments */ if (line[0] != ';') { - if (sscanf(line, "%7ld %79s %5u %79s %4u", &device_id, + if (sscanf( + line, "%7ld %79s %5u %79s %4u", &device_id, &mac_string[0], &snet, &sadr_string[0], &max_apdu) == 5) { if (bacnet_address_mac_from_ascii(&mac, mac_string)) { @@ -503,7 +504,8 @@ void address_add( * * @return true if device is already bound */ -bool address_device_bind_request(uint32_t device_id, +bool address_device_bind_request( + uint32_t device_id, uint32_t *device_ttl, unsigned *max_apdu, BACNET_ADDRESS *src) @@ -633,7 +635,8 @@ void address_add_binding( * * @return true/false */ -bool address_device_get_by_index(unsigned index, +bool address_device_get_by_index( + unsigned index, uint32_t *device_id, uint32_t *device_ttl, unsigned *max_apdu, @@ -676,7 +679,8 @@ bool address_device_get_by_index(unsigned index, * * @return true/false */ -bool address_get_by_index(unsigned index, +bool address_get_by_index( + unsigned index, uint32_t *device_id, unsigned *max_apdu, BACNET_ADDRESS *src) @@ -880,7 +884,7 @@ int rr_address_list_encode(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest) pMatch = Address_Cache; uiIndex = 1; while ((pMatch->Flags & (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ)) != - BAC_ADDR_IN_USE) { /* Find first bound entry */ + BAC_ADDR_IN_USE) { /* Find first bound entry */ pMatch++; /* Shall not happen as the count has been checked first. */ if (pMatch > &Address_Cache[MAX_ADDRESS_CACHE - 1]) { @@ -947,7 +951,7 @@ int rr_address_list_encode(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest) pRequest->ItemCount++; while ((pMatch->Flags & (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ)) != - BAC_ADDR_IN_USE) { + BAC_ADDR_IN_USE) { /* Find next bound entry */ pMatch++; /* Can normally not happen. */ @@ -987,8 +991,8 @@ void address_cache_timer(uint16_t uSeconds) pMatch = &Address_Cache[index]; if (((pMatch->Flags & (BAC_ADDR_IN_USE | BAC_ADDR_RESERVED)) != 0) && ((pMatch->Flags & BAC_ADDR_STATIC) == - 0)) { /* Check all entries holding a slot except statics - */ + 0)) { /* Check all entries holding a slot except statics + */ if (pMatch->TimeToLive >= uSeconds) { pMatch->TimeToLive -= uSeconds; } else { diff --git a/src/bacnet/basic/binding/address.h b/src/bacnet/basic/binding/address.h index ff5b36fa..059dc1c4 100644 --- a/src/bacnet/basic/binding/address.h +++ b/src/bacnet/basic/binding/address.h @@ -18,105 +18,84 @@ #include "bacnet/readrange.h" /* refactored utility functions - see bacaddr.c module */ -#define address_mac_init(m,a,l) bacnet_address_mac_init(m,a,l) -#define address_mac_from_ascii(m,a) bacnet_address_mac_from_ascii(m,a) -#define address_match(d,s) bacnet_address_same(d,s) +#define address_mac_init(m, a, l) bacnet_address_mac_init(m, a, l) +#define address_mac_from_ascii(m, a) bacnet_address_mac_from_ascii(m, a) +#define address_match(d, s) bacnet_address_same(d, s) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void address_init( - void); +BACNET_STACK_EXPORT +void address_init(void); - BACNET_STACK_EXPORT - void address_init_partial( - void); +BACNET_STACK_EXPORT +void address_init_partial(void); - BACNET_STACK_EXPORT - void address_add( - uint32_t device_id, - unsigned max_apdu, - const BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void address_add( + uint32_t device_id, unsigned max_apdu, const BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - void address_remove_device( - uint32_t device_id); +BACNET_STACK_EXPORT +void address_remove_device(uint32_t device_id); - BACNET_STACK_EXPORT - bool address_get_by_device( - uint32_t device_id, - unsigned *max_apdu, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +bool address_get_by_device( + uint32_t device_id, unsigned *max_apdu, BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - bool address_get_by_index( - unsigned index, - uint32_t * device_id, - unsigned *max_apdu, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +bool address_get_by_index( + unsigned index, + uint32_t *device_id, + unsigned *max_apdu, + BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - bool address_device_get_by_index( - unsigned index, - uint32_t * device_id, - uint32_t * device_ttl, - unsigned *max_apdu, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +bool address_device_get_by_index( + unsigned index, + uint32_t *device_id, + uint32_t *device_ttl, + unsigned *max_apdu, + BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - bool address_get_device_id( - const BACNET_ADDRESS * src, - uint32_t * device_id); +BACNET_STACK_EXPORT +bool address_get_device_id(const BACNET_ADDRESS *src, uint32_t *device_id); - BACNET_STACK_EXPORT - unsigned address_count( - void); +BACNET_STACK_EXPORT +unsigned address_count(void); - BACNET_STACK_EXPORT - bool address_bind_request( - uint32_t device_id, - unsigned *max_apdu, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +bool address_bind_request( + uint32_t device_id, unsigned *max_apdu, BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - bool address_device_bind_request( - uint32_t device_id, - uint32_t * device_ttl, - unsigned *max_apdu, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +bool address_device_bind_request( + uint32_t device_id, + uint32_t *device_ttl, + unsigned *max_apdu, + BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - void address_add_binding( - uint32_t device_id, - unsigned max_apdu, - const BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void address_add_binding( + uint32_t device_id, unsigned max_apdu, const BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - int address_list_encode( - uint8_t * apdu, - unsigned apdu_len); +BACNET_STACK_EXPORT +int address_list_encode(uint8_t *apdu, unsigned apdu_len); - BACNET_STACK_EXPORT - int rr_address_list_encode( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); +BACNET_STACK_EXPORT +int rr_address_list_encode(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); - BACNET_STACK_EXPORT - void address_set_device_TTL( - uint32_t device_id, - uint32_t TimeOut, - bool StaticFlag); +BACNET_STACK_EXPORT +void address_set_device_TTL( + uint32_t device_id, uint32_t TimeOut, bool StaticFlag); - BACNET_STACK_EXPORT - void address_cache_timer( - uint16_t uSeconds); +BACNET_STACK_EXPORT +void address_cache_timer(uint16_t uSeconds); - BACNET_STACK_EXPORT - void address_protected_entry_index_set(uint32_t top_protected_entry_index); - BACNET_STACK_EXPORT - void address_own_device_id_set(uint32_t own_id); +BACNET_STACK_EXPORT +void address_protected_entry_index_set(uint32_t top_protected_entry_index); +BACNET_STACK_EXPORT +void address_own_device_id_set(uint32_t own_id); #ifdef __cplusplus } diff --git a/src/bacnet/basic/client/bac-data.c b/src/bacnet/basic/client/bac-data.c index 27a2bf12..77b683fe 100644 --- a/src/bacnet/basic/client/bac-data.c +++ b/src/bacnet/basic/client/bac-data.c @@ -108,7 +108,8 @@ static void bacnet_data_object_init(void) } } -static void bacnet_data_object_store(int index, +static void bacnet_data_object_store( + int index, const BACNET_READ_PROPERTY_DATA *rp_data, const BACNET_APPLICATION_DATA_VALUE *value) { @@ -149,7 +150,8 @@ static void bacnet_data_object_store(int index, * @param value [in] pointer to the BACNET_APPLICATION_DATA_VALUE structure * which is packed with the decoded value from the ReadProperty request. */ -void bacnet_data_value_save(uint32_t device_instance, +void bacnet_data_value_save( + uint32_t device_instance, BACNET_READ_PROPERTY_DATA *rp_data, BACNET_APPLICATION_DATA_VALUE *value) { @@ -172,8 +174,9 @@ void bacnet_data_value_save(uint32_t device_instance, case OBJECT_MULTI_STATE_INPUT: case OBJECT_MULTI_STATE_OUTPUT: case OBJECT_MULTI_STATE_VALUE: - index = bacnet_data_object_index_find(device_instance, - rp_data->object_type, rp_data->object_instance); + index = bacnet_data_object_index_find( + device_instance, rp_data->object_type, + rp_data->object_instance); if (index != BACNET_STATUS_ERROR) { bacnet_data_object_store(index, rp_data, value); } @@ -193,9 +196,9 @@ static void bacnet_data_object_process(const BACNET_DATA_OBJECT *object) { if (object && (object->Device_ID < BACNET_MAX_INSTANCE) && (object->Object_ID < BACNET_MAX_INSTANCE)) { - bacnet_read_property_queue(object->Device_ID, - (BACNET_OBJECT_TYPE)object->Object_Type, object->Object_ID, - PROP_PRESENT_VALUE, BACNET_ARRAY_ALL); + bacnet_read_property_queue( + object->Device_ID, (BACNET_OBJECT_TYPE)object->Object_Type, + object->Object_ID, PROP_PRESENT_VALUE, BACNET_ARRAY_ALL); } } @@ -206,7 +209,8 @@ static void bacnet_data_object_process(const BACNET_DATA_OBJECT *object) * @param object_instance - Instance # of the object to be read. * @return true if added or existing, false if not added or existing */ -bool bacnet_data_object_add(uint32_t device_id, +bool bacnet_data_object_add( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { @@ -258,7 +262,8 @@ bool bacnet_data_object_add(uint32_t device_id, * @param float_value [out] property value stored if available * @return true if found and value loaded */ -bool bacnet_data_analog_present_value(uint32_t device_id, +bool bacnet_data_analog_present_value( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, float *float_value) @@ -291,7 +296,8 @@ bool bacnet_data_analog_present_value(uint32_t device_id, * @param bool_value [out] property value stored if available * @return true if found and value loaded */ -bool bacnet_data_binary_present_value(uint32_t device_id, +bool bacnet_data_binary_present_value( + uint32_t device_id, uint16_t object_type, uint32_t object_instance, bool *bool_value) @@ -329,7 +335,8 @@ bool bacnet_data_binary_present_value(uint32_t device_id, * @param bool_value [out] property value stored if available * @return true if found and value loaded */ -bool bacnet_data_multistate_present_value(uint32_t device_id, +bool bacnet_data_multistate_present_value( + uint32_t device_id, uint16_t object_type, uint32_t object_instance, uint32_t *unsigned_value) diff --git a/src/bacnet/basic/client/bac-data.h b/src/bacnet/basic/client/bac-data.h index c4ede763..300ba07f 100644 --- a/src/bacnet/basic/client/bac-data.h +++ b/src/bacnet/basic/client/bac-data.h @@ -35,25 +35,30 @@ void bacnet_data_poll_seconds_set(unsigned int seconds); BACNET_STACK_EXPORT unsigned int bacnet_data_poll_seconds(void); BACNET_STACK_EXPORT -void bacnet_data_value_save(uint32_t device_instance, +void bacnet_data_value_save( + uint32_t device_instance, BACNET_READ_PROPERTY_DATA *rp_data, BACNET_APPLICATION_DATA_VALUE *value); BACNET_STACK_EXPORT -bool bacnet_data_object_add(uint32_t device_id, +bool bacnet_data_object_add( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance); BACNET_STACK_EXPORT -bool bacnet_data_analog_present_value(uint32_t device_id, +bool bacnet_data_analog_present_value( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, float *float_value); BACNET_STACK_EXPORT -bool bacnet_data_multistate_present_value(uint32_t device_id, +bool bacnet_data_multistate_present_value( + uint32_t device_id, uint16_t object_type, uint32_t object_instance, uint32_t *unsigned_value); BACNET_STACK_EXPORT -bool bacnet_data_binary_present_value(uint32_t device_id, +bool bacnet_data_binary_present_value( + uint32_t device_id, uint16_t object_type, uint32_t object_instance, bool *bool_value); diff --git a/src/bacnet/basic/client/bac-discover.c b/src/bacnet/basic/client/bac-discover.c index 10b951a8..c5817088 100644 --- a/src/bacnet/basic/client/bac-discover.c +++ b/src/bacnet/basic/client/bac-discover.c @@ -224,8 +224,8 @@ static BACNET_DEVICE_DATA *bacnet_device_data_add(uint32_t device_instance) * @param device_id - BACnet device instance * @return Pointer to the device data structure */ -static BACNET_DEVICE_DATA *bacnet_device_data( - OS_Keylist list, uint32_t device_id) +static BACNET_DEVICE_DATA * +bacnet_device_data(OS_Keylist list, uint32_t device_id) { KEY key = device_id; BACNET_DEVICE_DATA *device_data; @@ -395,7 +395,8 @@ unsigned long bacnet_discover_device_elapsed_milliseconds(uint32_t device_id) * @param value property value stored if available (see tag for type) * @return true if found and value loaded */ -bool bacnet_discover_property_value(uint32_t device_id, +bool bacnet_discover_property_value( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -420,10 +421,10 @@ bool bacnet_discover_property_value(uint32_t device_id, property = Keylist_Data(object->Property_List, key); if (property) { if (property->application_data_len > 0) { - len = - bacapp_decode_known_property(property->application_data, - property->application_data_len, value, object_type, - object_property); + len = bacapp_decode_known_property( + property->application_data, + property->application_data_len, value, object_type, + object_property); if (len > 0) { status = true; } @@ -449,7 +450,8 @@ bool bacnet_discover_property_value(uint32_t device_id, * @param default_string [in] String to use if the property is not found. * @return true if found and value copied, else false and default_string copied. */ -bool bacnet_discover_property_name(uint32_t device_id, +bool bacnet_discover_property_name( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -465,8 +467,8 @@ bool bacnet_discover_property_name(uint32_t device_id, device_id, object_type, object_instance, object_property, &value); if (status && value.tag == BACNET_APPLICATION_TAG_CHARACTER_STRING) { if (characterstring_valid(&value.type.Character_String)) { - strncpy(buffer, - characterstring_value(&value.type.Character_String), + strncpy( + buffer, characterstring_value(&value.type.Character_String), buffer_len - 1); } else { status = false; @@ -487,7 +489,8 @@ bool bacnet_discover_property_name(uint32_t device_id, * @param object_instance - Instance number of the object to be read. * @return number of object properties */ -unsigned int bacnet_discover_object_property_count(uint32_t device_id, +unsigned int bacnet_discover_object_property_count( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { @@ -517,7 +520,8 @@ unsigned int bacnet_discover_object_property_count(uint32_t device_id, * @param property_id - property identifier if object exists * @return true if an object property ID was found at this index */ -bool bacnet_discover_object_property_identifier(uint32_t device_id, +bool bacnet_discover_object_property_identifier( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, unsigned index, @@ -554,7 +558,8 @@ bool bacnet_discover_object_property_identifier(uint32_t device_id, * which is packed with the decoded value from the ReadProperty request. * @param device_data [in] Pointer to the device data structure */ -static void bacnet_device_object_property_add(uint32_t device_id, +static void bacnet_device_object_property_add( + uint32_t device_id, const BACNET_READ_PROPERTY_DATA *rp_data, const BACNET_APPLICATION_DATA_VALUE *value, BACNET_DEVICE_DATA *device_data) @@ -578,9 +583,11 @@ static void bacnet_device_object_property_add(uint32_t device_id, } } else if (value->tag == BACNET_APPLICATION_TAG_OBJECT_ID) { if (rp_data->array_index <= device_data->Object_List_Size) { - object_data = bacnet_object_data_add(device_data->Object_List, - value->type.Object_Id.type, value->type.Object_Id.instance); - debug_printf("add %u object-list[%u] %s-%lu %s.\n", device_id, + object_data = bacnet_object_data_add( + device_data->Object_List, value->type.Object_Id.type, + value->type.Object_Id.instance); + debug_printf( + "add %u object-list[%u] %s-%lu %s.\n", device_id, device_data->Object_List_Index, bactext_object_type_name(value->type.Object_Id.type), (unsigned long)value->type.Object_Id.instance, @@ -599,10 +606,12 @@ static void bacnet_device_object_property_add(uint32_t device_id, device_data->Discovery_State = BACNET_DISCOVER_STATE_OBJECT_GET_PROPERTY_RESPONSE; } - object_data = bacnet_object_data_add(device_data->Object_List, - rp_data->object_type, rp_data->object_instance); + object_data = bacnet_object_data_add( + device_data->Object_List, rp_data->object_type, + rp_data->object_instance); if (!object_data) { - debug_perror("%s-%u object fail to add!\n", + debug_perror( + "%s-%u object fail to add!\n", bactext_object_type_name(rp_data->object_type), rp_data->object_instance); return; @@ -610,7 +619,8 @@ static void bacnet_device_object_property_add(uint32_t device_id, property_data = bacnet_property_data_add( object_data->Property_List, rp_data->object_property); if (!property_data) { - debug_perror("%s-%u %s property fail to add!\n", + debug_perror( + "%s-%u %s property fail to add!\n", bactext_object_type_name(rp_data->object_type), rp_data->object_instance, bactext_property_name(rp_data->object_property)); @@ -626,10 +636,12 @@ static void bacnet_device_object_property_add(uint32_t device_id, if (property_data->application_data) { property_data->application_data_len = rp_data->application_data_len; - memcpy(property_data->application_data, - rp_data->application_data, rp_data->application_data_len); + memcpy( + property_data->application_data, rp_data->application_data, + rp_data->application_data_len); } else { - debug_perror("%s-%u %s property fail to allocate!\n", + debug_perror( + "%s-%u %s property fail to allocate!\n", bactext_object_type_name(rp_data->object_type), rp_data->object_instance, bactext_property_name(rp_data->object_property)); @@ -640,17 +652,20 @@ static void bacnet_device_object_property_add(uint32_t device_id, property_data->application_data_len = 0; } if (rp_data->array_index == BACNET_ARRAY_ALL) { - debug_printf("%u object-list[%d] %s-%lu %s added.\n", device_id, - bacnet_object_list_index(device_data->Object_List, - rp_data->object_type, rp_data->object_instance), + debug_printf( + "%u object-list[%d] %s-%lu %s added.\n", device_id, + bacnet_object_list_index( + device_data->Object_List, rp_data->object_type, + rp_data->object_instance), bactext_object_type_name(rp_data->object_type), (unsigned long)rp_data->object_instance, bactext_property_name(rp_data->object_property)); } else { - debug_printf("%u object-list[%d] %s-%lu %s[%lu] added.\n", - device_id, - bacnet_object_list_index(device_data->Object_List, - rp_data->object_type, rp_data->object_instance), + debug_printf( + "%u object-list[%d] %s-%lu %s[%lu] added.\n", device_id, + bacnet_object_list_index( + device_data->Object_List, rp_data->object_type, + rp_data->object_instance), bactext_object_type_name(rp_data->object_type), (unsigned long)rp_data->object_instance, bactext_property_name(rp_data->object_property), @@ -664,7 +679,8 @@ static void bacnet_device_object_property_add(uint32_t device_id, * @param device_id - device instance number where data originated * @param error_code - BACnet Error code */ -static void Device_Error_Handler(uint32_t device_id, +static void Device_Error_Handler( + uint32_t device_id, BACNET_ERROR_CODE error_code, BACNET_DEVICE_DATA *device_data) { @@ -702,7 +718,8 @@ static void Device_Error_Handler(uint32_t device_id, * @param value [in] pointer to the BACNET_APPLICATION_DATA_VALUE structure * which is packed with the decoded value from the ReadProperty request. */ -static void bacnet_read_property_reply(uint32_t device_id, +static void bacnet_read_property_reply( + uint32_t device_id, BACNET_READ_PROPERTY_DATA *rp_data, BACNET_APPLICATION_DATA_VALUE *value) { @@ -728,8 +745,8 @@ static void bacnet_read_property_reply(uint32_t device_id, * @param device_id - Device ID from discovered device * @param device_data - Pointer to the device data structure */ -static void bacnet_discover_device_fsm( - uint32_t device_id, BACNET_DEVICE_DATA *device_data) +static void +bacnet_discover_device_fsm(uint32_t device_id, BACNET_DEVICE_DATA *device_data) { KEY key = 0; BACNET_OBJECT_TYPE object_type = 0; @@ -765,19 +782,21 @@ static void bacnet_discover_device_fsm( device_data->Object_List_Index++; if (device_data->Object_List_Index <= device_data->Object_List_Size) { - debug_printf("%u object-list[%u] size=%u.\n", device_id, + debug_printf( + "%u object-list[%u] size=%u.\n", device_id, device_data->Object_List_Index, device_data->Object_List_Size); - status = bacnet_read_property_queue(device_id, OBJECT_DEVICE, - device_id, PROP_OBJECT_LIST, + status = bacnet_read_property_queue( + device_id, OBJECT_DEVICE, device_id, PROP_OBJECT_LIST, device_data->Object_List_Index); if (status) { device_data->Discovery_State = BACNET_DISCOVER_STATE_OBJECT_LIST_REQUEST; return; } else { - debug_perror("%u object-list[%u] %s-%u fail to queue!\n", - device_id, device_data->Object_List_Index, + debug_perror( + "%u object-list[%u] %s-%u fail to queue!\n", device_id, + device_data->Object_List_Index, bactext_object_type_name(object_type), (unsigned)object_instance); device_data->Object_List_Index--; @@ -794,24 +813,28 @@ static void bacnet_discover_device_fsm( case BACNET_DISCOVER_STATE_OBJECT_GET_PROPERTY_RESPONSE: if (device_data->Object_List_Index < device_data->Object_List_Size) { - if (Keylist_Index_Key(device_data->Object_List, + if (Keylist_Index_Key( + device_data->Object_List, device_data->Object_List_Index, &key)) { object_type = KEY_DECODE_TYPE(key); object_instance = KEY_DECODE_ID(key); - debug_printf("%u object-list[%u] %s-%u read ALL.\n", - device_id, device_data->Object_List_Index, + debug_printf( + "%u object-list[%u] %s-%u read ALL.\n", device_id, + device_data->Object_List_Index, bactext_object_type_name(object_type), (unsigned)object_instance); - status = bacnet_read_property_queue(device_id, object_type, - object_instance, PROP_ALL, BACNET_ARRAY_ALL); + status = bacnet_read_property_queue( + device_id, object_type, object_instance, PROP_ALL, + BACNET_ARRAY_ALL); } if (status) { device_data->Discovery_State = BACNET_DISCOVER_STATE_OBJECT_GET_PROPERTY_REQUEST; device_data->Object_List_Index++; } else { - debug_perror("%u object-list[%u] %s-%u fail to queue!\n", - device_id, device_data->Object_List_Index, + debug_perror( + "%u object-list[%u] %s-%u fail to queue!\n", device_id, + device_data->Object_List_Index, bactext_object_type_name(object_type), (unsigned)object_instance); } @@ -833,7 +856,8 @@ static void bacnet_discover_device_fsm( } break; default: - debug_perror("%u unknown state %u!\n", device_id, + debug_perror( + "%u unknown state %u!\n", device_id, device_data->Discovery_State); break; } @@ -873,7 +897,8 @@ static void bacnet_discover_devices_task(void) * @param context - pointer to user data * @return true if the iteration completed, false if it stopped early */ -bool bacnet_discover_device_object_property_iterate(uint32_t device_id, +bool bacnet_discover_device_object_property_iterate( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, bacnet_discover_device_callback callback, @@ -918,8 +943,9 @@ bool bacnet_discover_device_object_property_iterate(uint32_t device_id, rp_data.error_code = ERROR_CODE_SUCCESS; rp_data.application_data = property->application_data; rp_data.application_data_len = property->application_data_len; - status = callback(device_id, device_index, object_index, - property_index, &rp_data, context); + status = callback( + device_id, device_index, object_index, property_index, &rp_data, + context); /* callback returns true if the iteration should continue, false if it should stop */ if (!status) { @@ -930,8 +956,9 @@ bool bacnet_discover_device_object_property_iterate(uint32_t device_id, rp_data.application_data_len = 0; rp_data.error_class = ERROR_CLASS_PROPERTY; rp_data.error_code = ERROR_CODE_UNKNOWN_PROPERTY; - status = callback(device_id, device_index, object_index, - property_index, &rp_data, context); + status = callback( + device_id, device_index, object_index, property_index, &rp_data, + context); /* callback returns true if the iteration should continue, false if it should stop */ if (!status) { @@ -1118,7 +1145,8 @@ unsigned long bacnet_discover_read_process_milliseconds(void) * @param segmentation [in] segmentation flag * @param vendor_id [in] vendor identifier */ -void bacnet_discover_device_add(uint32_t device_instance, +void bacnet_discover_device_add( + uint32_t device_instance, unsigned max_apdu, int segmentation, uint16_t vendor_id) @@ -1128,7 +1156,8 @@ void bacnet_discover_device_add(uint32_t device_instance, (void)max_apdu; (void)segmentation; device_data = bacnet_device_data_add(device_instance); - debug_printf("device[%d] %lu - vendor=%u %s.\n", + debug_printf( + "device[%d] %lu - vendor=%u %s.\n", Keylist_Index(Device_List, device_instance), device_instance, vendor_id, device_data ? "success" : "fail"); } diff --git a/src/bacnet/basic/client/bac-discover.h b/src/bacnet/basic/client/bac-discover.h index 1cfb4ca9..70bec7f8 100644 --- a/src/bacnet/basic/client/bac-discover.h +++ b/src/bacnet/basic/client/bac-discover.h @@ -18,19 +18,22 @@ /** * @brief Callback function for iterating the results of the device discovery. * @param device_id [in] The device ID of the data - * @param device_index [in] The index of the device in the list of discovered devices - * @param object_index [in] The index of the object in the list of discovered objects in the device - * @param property_index [in] The index of the property in the list of discovered properties in the object in the device + * @param device_index [in] The index of the device in the list of discovered + * devices + * @param object_index [in] The index of the object in the list of discovered + * objects in the device + * @param property_index [in] The index of the property in the list of + * discovered properties in the object in the device * @param rp_data [in] The contents of the device object property * @param context_data [in] The context data passed to the discover function * @return true if the iteration should continue, false if it should stop -*/ -typedef bool (*bacnet_discover_device_callback) ( + */ +typedef bool (*bacnet_discover_device_callback)( uint32_t device_id, unsigned device_index, unsigned object_index, unsigned property_index, - BACNET_READ_PROPERTY_DATA * rp_data, + BACNET_READ_PROPERTY_DATA *rp_data, void *context_data); #ifdef __cplusplus @@ -47,14 +50,12 @@ uint32_t bacnet_discover_device_instance(unsigned index); BACNET_STACK_EXPORT int bacnet_discover_device_object_count(uint32_t device_id); BACNET_STACK_EXPORT -bool bacnet_discover_device_object_identifier(uint32_t device_id, - unsigned index, BACNET_OBJECT_ID *object_id); +bool bacnet_discover_device_object_identifier( + uint32_t device_id, unsigned index, BACNET_OBJECT_ID *object_id); BACNET_STACK_EXPORT -unsigned long bacnet_discover_device_elapsed_milliseconds( - uint32_t device_id); +unsigned long bacnet_discover_device_elapsed_milliseconds(uint32_t device_id); BACNET_STACK_EXPORT -size_t bacnet_discover_device_memory( - uint32_t device_id); +size_t bacnet_discover_device_memory(uint32_t device_id); BACNET_STACK_EXPORT unsigned int bacnet_discover_object_property_count( uint32_t device_id, @@ -68,13 +69,15 @@ bool bacnet_discover_object_property_identifier( unsigned index, uint32_t *property_id); BACNET_STACK_EXPORT -bool bacnet_discover_property_value(uint32_t device_id, +bool bacnet_discover_property_value( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, BACNET_APPLICATION_DATA_VALUE *value); BACNET_STACK_EXPORT -bool bacnet_discover_property_name(uint32_t device_id, +bool bacnet_discover_property_name( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -87,11 +90,13 @@ bool bacnet_discover_device_object_property_iterate( uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, - bacnet_discover_device_callback callback, void *context); + bacnet_discover_device_callback callback, + void *context); BACNET_STACK_EXPORT bool bacnet_discover_device_object_iterate( uint32_t device_id, - bacnet_discover_device_callback callback, void *context); + bacnet_discover_device_callback callback, + void *context); BACNET_STACK_EXPORT bool bacnet_discover_device_iterate( bacnet_discover_device_callback callback, void *context); diff --git a/src/bacnet/basic/client/bac-rw.c b/src/bacnet/basic/client/bac-rw.c index 0e248fe3..07c0fb87 100644 --- a/src/bacnet/basic/client/bac-rw.c +++ b/src/bacnet/basic/client/bac-rw.c @@ -89,7 +89,8 @@ static BACNET_CLIENT_STATE RW_State = BACNET_CLIENT_IDLE; * @param error_class [in] the error class * @param error_code [in] the error code */ -static void MyErrorHandler(BACNET_ADDRESS *src, +static void MyErrorHandler( + BACNET_ADDRESS *src, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code) @@ -127,8 +128,8 @@ static void MyAbortHandler( * @param invoke_id [in] the invokeID from the rejected message * @param reject_reason [in] the reason for the rejection */ -static void MyRejectHandler( - BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) +static void +MyRejectHandler(BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -187,8 +188,8 @@ static void My_I_Am_Bind( * @param src [in] BACNET_ADDRESS of the source of the message * @param invoke_id [in] the invokeID from the rejected message */ -static void MyWritePropertySimpleAckHandler( - BACNET_ADDRESS *src, uint8_t invoke_id) +static void +MyWritePropertySimpleAckHandler(BACNET_ADDRESS *src, uint8_t invoke_id) { if (address_match(&Target_Address, src) && (invoke_id == Request_Invoke_ID)) { @@ -219,8 +220,9 @@ static void bacnet_read_property_ack_process( apdu_len = rp_data->application_data_len; while (apdu_len) { value = &Target_Decoded_Property_Value; - len = bacapp_decode_known_property(apdu, (unsigned)apdu_len, value, - rp_data->object_type, rp_data->object_property); + len = bacapp_decode_known_property( + apdu, (unsigned)apdu_len, value, rp_data->object_type, + rp_data->object_property); if (len > 0) { if ((len < apdu_len) && (rp_data->array_index == BACNET_ARRAY_ALL)) { @@ -268,7 +270,8 @@ static void bacnet_read_property_ack_process( * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -static void My_Read_Property_Ack_Handler(uint8_t *service_request, +static void My_Read_Property_Ack_Handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -303,7 +306,8 @@ static void My_Read_Property_Ack_Handler(uint8_t *service_request, * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -static void My_Read_Property_Multiple_Ack_Handler(uint8_t *apdu, +static void My_Read_Property_Multiple_Ack_Handler( + uint8_t *apdu, uint16_t apdu_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) @@ -315,8 +319,8 @@ static void My_Read_Property_Multiple_Ack_Handler(uint8_t *apdu, if (address_match(&Target_Address, src) && (service_data->invoke_id == Request_Invoke_ID)) { rp_data.error_code = ERROR_CODE_SUCCESS; - rpm_ack_object_property_process(apdu, apdu_len, - device_id, &rp_data, + rpm_ack_object_property_process( + apdu, apdu_len, device_id, &rp_data, bacnet_read_property_ack_process); } } @@ -328,7 +332,8 @@ static void My_Read_Property_Multiple_Ack_Handler(uint8_t *apdu, * @param object_instance [in] The contents of the service request. * @return invoke_id of request */ -static uint8_t Send_RPM_All_Request(uint32_t device_id, +static uint8_t Send_RPM_All_Request( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { @@ -450,13 +455,14 @@ static bool bacnet_read_write_process(const TARGET_DATA *target) } } else { if (target->object_property == PROP_ALL) { - Request_Invoke_ID = Send_RPM_All_Request(target->device_id, - target->object_type, target->object_instance); + Request_Invoke_ID = Send_RPM_All_Request( + target->device_id, target->object_type, + target->object_instance); } else { - Request_Invoke_ID = - Send_Read_Property_Request(target->device_id, - target->object_type, target->object_instance, - target->object_property, target->array_index); + Request_Invoke_ID = Send_Read_Property_Request( + target->device_id, target->object_type, + target->object_instance, target->object_property, + target->array_index); } } if (Request_Invoke_ID == 0) { @@ -564,7 +570,8 @@ void bacnet_read_write_task(void) * - BACNET_ARRAY_ALL (~0) for the full array to be read. * @return true if added, false if not added */ -bool bacnet_read_property_queue(uint32_t device_id, +bool bacnet_read_property_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -599,7 +606,8 @@ bool bacnet_read_property_queue(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the full array to be read. * @return true if added, false if not added */ -bool bacnet_write_property_real_queue(uint32_t device_id, +bool bacnet_write_property_real_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -639,7 +647,8 @@ bool bacnet_write_property_real_queue(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the full array to be read. * @return true if added, false if not added */ -bool bacnet_write_property_null_queue(uint32_t device_id, +bool bacnet_write_property_null_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -677,7 +686,8 @@ bool bacnet_write_property_null_queue(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the full array to be read. * @return true if added, false if not added */ -bool bacnet_write_property_enumerated_queue(uint32_t device_id, +bool bacnet_write_property_enumerated_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -717,7 +727,8 @@ bool bacnet_write_property_enumerated_queue(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the full array to be read. * @return true if added, false if not added */ -bool bacnet_write_property_unsigned_queue(uint32_t device_id, +bool bacnet_write_property_unsigned_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -757,7 +768,8 @@ bool bacnet_write_property_unsigned_queue(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the full array to be read. * @return true if added, false if not added */ -bool bacnet_write_property_signed_queue(uint32_t device_id, +bool bacnet_write_property_signed_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -797,7 +809,8 @@ bool bacnet_write_property_signed_queue(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the full array to be read. * @return true if added, false if not added */ -bool bacnet_write_property_boolean_queue(uint32_t device_id, +bool bacnet_write_property_boolean_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -865,14 +878,16 @@ uint16_t bacnet_read_write_vendor_id_filter(void) */ void bacnet_read_write_init(void) { - Ringbuf_Init(&Target_Data_Queue, (uint8_t *)&Target_Data_Buffer, + Ringbuf_Init( + &Target_Data_Queue, (uint8_t *)&Target_Data_Buffer, TARGET_DATA_QUEUE_SIZE, TARGET_DATA_QUEUE_COUNT); /* handle i-am to support binding to other devices */ apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_I_AM, My_I_Am_Bind); /* handle the data coming back from confirmed requests */ apdu_set_confirmed_ack_handler( SERVICE_CONFIRMED_READ_PROPERTY, My_Read_Property_Ack_Handler); - apdu_set_confirmed_ack_handler(SERVICE_CONFIRMED_READ_PROP_MULTIPLE, + apdu_set_confirmed_ack_handler( + SERVICE_CONFIRMED_READ_PROP_MULTIPLE, My_Read_Property_Multiple_Ack_Handler); /* handle the Simple ACK coming back */ apdu_set_confirmed_simple_ack_handler( diff --git a/src/bacnet/basic/client/bac-rw.h b/src/bacnet/basic/client/bac-rw.h index b59745b9..da0f299c 100644 --- a/src/bacnet/basic/client/bac-rw.h +++ b/src/bacnet/basic/client/bac-rw.h @@ -23,7 +23,8 @@ * @param value [in] pointer to the BACNET_APPLICATION_DATA_VALUE structure * which is packed with the decoded value from the ReadProperty request. */ -typedef void (*bacnet_read_write_value_callback_t)(uint32_t device_instance, +typedef void (*bacnet_read_write_value_callback_t)( + uint32_t device_instance, BACNET_READ_PROPERTY_DATA *rp_data, BACNET_APPLICATION_DATA_VALUE *value); @@ -35,7 +36,8 @@ typedef void (*bacnet_read_write_value_callback_t)(uint32_t device_instance, * @param segmentation [in] segmentation flag * @param vendor_id [in] vendor identifier */ -typedef void (*bacnet_read_write_device_callback_t)(uint32_t device_instance, +typedef void (*bacnet_read_write_device_callback_t)( + uint32_t device_instance, unsigned max_apdu, int segmentation, uint16_t vendor_id); @@ -53,13 +55,15 @@ bool bacnet_read_write_idle(void); BACNET_STACK_EXPORT bool bacnet_read_write_busy(void); BACNET_STACK_EXPORT -bool bacnet_read_property_queue(uint32_t device_id, +bool bacnet_read_property_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, uint32_t array_index); BACNET_STACK_EXPORT -bool bacnet_write_property_real_queue(uint32_t device_id, +bool bacnet_write_property_real_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -67,14 +71,16 @@ bool bacnet_write_property_real_queue(uint32_t device_id, uint8_t priority, uint32_t array_index); BACNET_STACK_EXPORT -bool bacnet_write_property_null_queue(uint32_t device_id, +bool bacnet_write_property_null_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, uint8_t priority, uint32_t array_index); BACNET_STACK_EXPORT -bool bacnet_write_property_enumerated_queue(uint32_t device_id, +bool bacnet_write_property_enumerated_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -82,7 +88,8 @@ bool bacnet_write_property_enumerated_queue(uint32_t device_id, uint8_t priority, uint32_t array_index); BACNET_STACK_EXPORT -bool bacnet_write_property_unsigned_queue(uint32_t device_id, +bool bacnet_write_property_unsigned_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -90,7 +97,8 @@ bool bacnet_write_property_unsigned_queue(uint32_t device_id, uint8_t priority, uint32_t array_index); BACNET_STACK_EXPORT -bool bacnet_write_property_signed_queue(uint32_t device_id, +bool bacnet_write_property_signed_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -98,7 +106,8 @@ bool bacnet_write_property_signed_queue(uint32_t device_id, uint8_t priority, uint32_t array_index); BACNET_STACK_EXPORT -bool bacnet_write_property_boolean_queue(uint32_t device_id, +bool bacnet_write_property_boolean_queue( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, diff --git a/src/bacnet/basic/client/bac-task.c b/src/bacnet/basic/client/bac-task.c index c25a9fa5..fa9f2861 100644 --- a/src/bacnet/basic/client/bac-task.c +++ b/src/bacnet/basic/client/bac-task.c @@ -100,7 +100,8 @@ void bacnet_task_init(void) apdu_set_confirmed_handler( SERVICE_CONFIRMED_READ_PROP_MULTIPLE, handler_read_property_multiple); /* handle communication so we can shutup when asked */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, + apdu_set_confirmed_handler( + SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, handler_device_communication_control); bacnet_data_init(); mstimer_set(&BACnet_Task_Timer, 1000); diff --git a/src/bacnet/basic/npdu/h_npdu.h b/src/bacnet/basic/npdu/h_npdu.h index 7368f2a7..7f0903b3 100644 --- a/src/bacnet/basic/npdu/h_npdu.h +++ b/src/bacnet/basic/npdu/h_npdu.h @@ -21,52 +21,37 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void npdu_handler( - BACNET_ADDRESS * src, - uint8_t * pdu, - uint16_t pdu_len); +BACNET_STACK_EXPORT +void npdu_handler(BACNET_ADDRESS *src, uint8_t *pdu, uint16_t pdu_len); - BACNET_STACK_EXPORT - uint16_t npdu_network_number(void); - BACNET_STACK_EXPORT - void npdu_network_number_set(uint16_t net); - BACNET_STACK_EXPORT - int npdu_send_network_number_is( - BACNET_ADDRESS *dst, - uint16_t net, - uint8_t status); - BACNET_STACK_EXPORT - int npdu_send_what_is_network_number( - BACNET_ADDRESS *dst); +BACNET_STACK_EXPORT +uint16_t npdu_network_number(void); +BACNET_STACK_EXPORT +void npdu_network_number_set(uint16_t net); +BACNET_STACK_EXPORT +int npdu_send_network_number_is( + BACNET_ADDRESS *dst, uint16_t net, uint8_t status); +BACNET_STACK_EXPORT +int npdu_send_what_is_network_number(BACNET_ADDRESS *dst); - BACNET_STACK_EXPORT - void npdu_handler_cleanup(void); - BACNET_STACK_EXPORT - void npdu_handler_init( - uint16_t bip_net, - uint16_t mstp_net); - BACNET_STACK_EXPORT - void npdu_router_handler( - uint16_t snet, - BACNET_ADDRESS * src, - uint8_t * pdu, - uint16_t pdu_len); - BACNET_STACK_EXPORT - int npdu_router_send_pdu( - uint16_t dnet, - BACNET_ADDRESS * dest, - BACNET_NPDU_DATA * npdu_data, - uint8_t * pdu, - unsigned int pdu_len); - BACNET_STACK_EXPORT - void npdu_router_get_my_address( - uint16_t dnet, - BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - int npdu_send_reject_message_to_network( - BACNET_ADDRESS *dst, - uint16_t net); +BACNET_STACK_EXPORT +void npdu_handler_cleanup(void); +BACNET_STACK_EXPORT +void npdu_handler_init(uint16_t bip_net, uint16_t mstp_net); +BACNET_STACK_EXPORT +void npdu_router_handler( + uint16_t snet, BACNET_ADDRESS *src, uint8_t *pdu, uint16_t pdu_len); +BACNET_STACK_EXPORT +int npdu_router_send_pdu( + uint16_t dnet, + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *npdu_data, + uint8_t *pdu, + unsigned int pdu_len); +BACNET_STACK_EXPORT +void npdu_router_get_my_address(uint16_t dnet, BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +int npdu_send_reject_message_to_network(BACNET_ADDRESS *dst, uint16_t net); #ifdef __cplusplus } diff --git a/src/bacnet/basic/npdu/h_routed_npdu.c b/src/bacnet/basic/npdu/h_routed_npdu.c index 113a02e3..a03e809b 100644 --- a/src/bacnet/basic/npdu/h_routed_npdu.c +++ b/src/bacnet/basic/npdu/h_routed_npdu.c @@ -48,7 +48,8 @@ * bytes that have already been decoded. * @param npdu_len [in] The length of the remaining NPDU message in npdu[]. */ -static void network_control_handler(BACNET_ADDRESS *src, +static void network_control_handler( + BACNET_ADDRESS *src, int *DNET_list, BACNET_NPDU_DATA *npdu_data, uint8_t *npdu, @@ -86,7 +87,8 @@ static void network_control_handler(BACNET_ADDRESS *src, * -- Unless we act upon NETWORK_MESSAGE_ROUTER_BUSY_TO_NETWORK * later for congestion control - then it could matter. */ - debug_printf("%s for Networks: ", + debug_printf( + "%s for Networks: ", bactext_network_layer_msg_name( NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK)); while (npdu_len >= 2) { @@ -106,7 +108,8 @@ static void network_control_handler(BACNET_ADDRESS *src, case NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK: if (npdu_len >= 3) { decode_unsigned16(&npdu[1], &dnet); - debug_printf("Received %s for Network: ", + debug_printf( + "Received %s for Network: ", bactext_network_layer_msg_name( NETWORK_MESSAGE_I_COULD_BE_ROUTER_TO_NETWORK)); debug_printf("%hu, Reason code: %d \n", dnet, npdu[0]); @@ -175,7 +178,8 @@ static void network_control_handler(BACNET_ADDRESS *src, * @param apdu [in] The apdu portion of the request, to be processed. * @param apdu_len [in] The total (remaining) length of the apdu. */ -static void routed_apdu_handler(BACNET_ADDRESS *src, +static void routed_apdu_handler( + BACNET_ADDRESS *src, BACNET_ADDRESS *dest, int *DNET_list, uint8_t *apdu, @@ -269,8 +273,9 @@ void routing_npdu_handler( debug_printf("NPDU: Decoding failed; Discarded!\n"); } else if (npdu_data.network_layer_message) { if ((dest.net == 0) || (dest.net == BACNET_BROADCAST_NETWORK)) { - network_control_handler(src, DNET_list, &npdu_data, - &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); + network_control_handler( + src, DNET_list, &npdu_data, &pdu[apdu_offset], + (uint16_t)(pdu_len - apdu_offset)); } else { debug_printf("NPDU: message for our router? Discarded!\n"); /* The DNET is set, but we don't support downstream routers, @@ -279,7 +284,8 @@ void routing_npdu_handler( } } else if (apdu_offset <= pdu_len) { if ((dest.net == 0) || (npdu_data.hop_count > 1)) { - routed_apdu_handler(src, &dest, DNET_list, &pdu[apdu_offset], + routed_apdu_handler( + src, &dest, DNET_list, &pdu[apdu_offset], (uint16_t)(pdu_len - apdu_offset)); } /* Else, hop_count bottomed out and we discard this one. */ diff --git a/src/bacnet/basic/npdu/h_routed_npdu.h b/src/bacnet/basic/npdu/h_routed_npdu.h index 102e8571..43ea9830 100644 --- a/src/bacnet/basic/npdu/h_routed_npdu.h +++ b/src/bacnet/basic/npdu/h_routed_npdu.h @@ -20,12 +20,9 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void routing_npdu_handler( - BACNET_ADDRESS * src, - int *DNET_list, - uint8_t * pdu, - uint16_t pdu_len); +BACNET_STACK_EXPORT +void routing_npdu_handler( + BACNET_ADDRESS *src, int *DNET_list, uint8_t *pdu, uint16_t pdu_len); #ifdef __cplusplus } diff --git a/src/bacnet/basic/npdu/s_router.c b/src/bacnet/basic/npdu/s_router.c index ff6a2d18..80a85032 100644 --- a/src/bacnet/basic/npdu/s_router.c +++ b/src/bacnet/basic/npdu/s_router.c @@ -44,7 +44,8 @@ * the type of message. * @return Number of bytes sent, or <=0 if no message was sent. */ -int Send_Network_Layer_Message(BACNET_NETWORK_MESSAGE_TYPE network_message_type, +int Send_Network_Layer_Message( + BACNET_NETWORK_MESSAGE_TYPE network_message_type, BACNET_ADDRESS *dst, const int *iArgs) { @@ -69,8 +70,9 @@ int Send_Network_Layer_Message(BACNET_NETWORK_MESSAGE_TYPE network_message_type, if (network_message_type == NETWORK_MESSAGE_INIT_RT_TABLE) { data_expecting_reply = true; /* DER in this one case */ } - npdu_encode_npdu_network(&npdu_data, network_message_type, - data_expecting_reply, MESSAGE_PRIORITY_NORMAL); + npdu_encode_npdu_network( + &npdu_data, network_message_type, data_expecting_reply, + MESSAGE_PRIORITY_NORMAL); /* We don't need src information, since a message can't originate from * our downstream BACnet network. @@ -152,16 +154,19 @@ int Send_Network_Layer_Message(BACNET_NETWORK_MESSAGE_TYPE network_message_type, break; default: - debug_printf("Not sent: %s message unsupported \n", + debug_printf( + "Not sent: %s message unsupported \n", bactext_network_layer_msg_name(network_message_type)); return 0; } if (dst != NULL) { - debug_printf("Sending %s message to BACnet network %u \n", + debug_printf( + "Sending %s message to BACnet network %u \n", bactext_network_layer_msg_name(network_message_type), dst->net); } else { - debug_printf("Sending %s message to local BACnet network \n", + debug_printf( + "Sending %s message to local BACnet network \n", bactext_network_layer_msg_name(network_message_type)); } @@ -171,7 +176,8 @@ int Send_Network_Layer_Message(BACNET_NETWORK_MESSAGE_TYPE network_message_type, #if PRINT_ENABLED if (bytes_sent <= 0) { int wasErrno = errno; /* preserve the errno */ - debug_printf("Failed to send %s message (%s)!\n", + debug_printf( + "Failed to send %s message (%s)!\n", bactext_network_layer_msg_name(network_message_type), strerror(wasErrno)); } @@ -252,8 +258,7 @@ void Send_Reject_Message_To_Network( void Send_Initialize_Routing_Table(BACNET_ADDRESS *dst, const int DNET_list[]) { /* Use a NULL dst here since we want a broadcast MAC address. */ - Send_Network_Layer_Message( - NETWORK_MESSAGE_INIT_RT_TABLE, dst, DNET_list); + Send_Network_Layer_Message(NETWORK_MESSAGE_INIT_RT_TABLE, dst, DNET_list); } /** Sends our Routing Table, built from our DNET[] array, as an ACK. diff --git a/src/bacnet/basic/npdu/s_router.h b/src/bacnet/basic/npdu/s_router.h index 3fa7bdfd..2a114bec 100644 --- a/src/bacnet/basic/npdu/s_router.h +++ b/src/bacnet/basic/npdu/s_router.h @@ -1,10 +1,10 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WritePropertyMultiple service send -* @copyright SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WritePropertyMultiple service send + * @copyright SPDX-License-Identifier: MIT + */ #ifndef BACNET_BASIC_NPDU_SEND_ROUTER_H #define BACNET_BASIC_NPDU_SEND_ROUTER_H #include @@ -21,36 +21,25 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int Send_Network_Layer_Message( - BACNET_NETWORK_MESSAGE_TYPE network_message_type, - BACNET_ADDRESS * dst, - const int *iArgs); - BACNET_STACK_EXPORT - void Send_Who_Is_Router_To_Network( - BACNET_ADDRESS * dst, - int dnet); - BACNET_STACK_EXPORT - void Send_I_Am_Router_To_Network( - const int DNET_list[]); - BACNET_STACK_EXPORT - void Send_Reject_Message_To_Network( - BACNET_ADDRESS * dst, - uint8_t reject_reason, - int dnet); - BACNET_STACK_EXPORT - void Send_Initialize_Routing_Table( - BACNET_ADDRESS * dst, - const int DNET_list[]); - BACNET_STACK_EXPORT - void Send_Initialize_Routing_Table_Ack( - BACNET_ADDRESS * dst, - const int DNET_list[]); - BACNET_STACK_EXPORT - void Send_Network_Number_Is( - BACNET_ADDRESS *dst, - int dnet, - int status); +BACNET_STACK_EXPORT +int Send_Network_Layer_Message( + BACNET_NETWORK_MESSAGE_TYPE network_message_type, + BACNET_ADDRESS *dst, + const int *iArgs); +BACNET_STACK_EXPORT +void Send_Who_Is_Router_To_Network(BACNET_ADDRESS *dst, int dnet); +BACNET_STACK_EXPORT +void Send_I_Am_Router_To_Network(const int DNET_list[]); +BACNET_STACK_EXPORT +void Send_Reject_Message_To_Network( + BACNET_ADDRESS *dst, uint8_t reject_reason, int dnet); +BACNET_STACK_EXPORT +void Send_Initialize_Routing_Table(BACNET_ADDRESS *dst, const int DNET_list[]); +BACNET_STACK_EXPORT +void Send_Initialize_Routing_Table_Ack( + BACNET_ADDRESS *dst, const int DNET_list[]); +BACNET_STACK_EXPORT +void Send_Network_Number_Is(BACNET_ADDRESS *dst, int dnet, int status); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/acc.c b/src/bacnet/basic/object/acc.c index 3e5b803f..1d489ab0 100644 --- a/src/bacnet/basic/object/acc.c +++ b/src/bacnet/basic/object/acc.c @@ -27,9 +27,16 @@ static struct object_data Object_List[MAX_ACCUMULATORS]; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_SCALE, PROP_UNITS, - PROP_MAX_PRES_VALUE, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_SCALE, + PROP_UNITS, + PROP_MAX_PRES_VALUE, + -1 }; static const int Properties_Optional[] = { PROP_DESCRIPTION, -1 }; @@ -138,8 +145,9 @@ bool Accumulator_Object_Name( bool status = false; if (object_instance < MAX_ACCUMULATORS) { - snprintf(text, sizeof(text), - "ACCUMULATOR-%lu", (unsigned long)object_instance); + snprintf( + text, sizeof(text), "ACCUMULATOR-%lu", + (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -314,7 +322,8 @@ int Accumulator_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_SCALE: /* context tagged choice: [0]=REAL, [1]=INTEGER */ - apdu_len = encode_context_signed(&apdu[apdu_len], 1, + apdu_len = encode_context_signed( + &apdu[apdu_len], 1, Accumulator_Scale_Integer(rpdata->object_instance)); break; case PROP_MAX_PRES_VALUE: diff --git a/src/bacnet/basic/object/acc.h b/src/bacnet/basic/object/acc.h index ed888f6f..63ae1121 100644 --- a/src/bacnet/basic/object/acc.h +++ b/src/bacnet/basic/object/acc.h @@ -20,95 +20,71 @@ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Accumulator_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Accumulator_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Accumulator_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Accumulator_Count( - void); - BACNET_STACK_EXPORT - uint32_t Accumulator_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Accumulator_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Accumulator_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +bool Accumulator_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Accumulator_Count(void); +BACNET_STACK_EXPORT +uint32_t Accumulator_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Accumulator_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Accumulator_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - char *Accumulator_Name( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Accumulator_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +char *Accumulator_Name(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Accumulator_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - char *Accumulator_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Accumulator_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +char *Accumulator_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Accumulator_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - bool Accumulator_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); +BACNET_STACK_EXPORT +bool Accumulator_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Accumulator_Units_Set(uint32_t instance, uint16_t units); +BACNET_STACK_EXPORT +uint16_t Accumulator_Units(uint32_t instance); - BACNET_STACK_EXPORT - bool Accumulator_Units_Set( - uint32_t instance, - uint16_t units); - BACNET_STACK_EXPORT - uint16_t Accumulator_Units( - uint32_t instance); +BACNET_STACK_EXPORT +int Accumulator_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Accumulator_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - int Accumulator_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Accumulator_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +BACNET_UNSIGNED_INTEGER Accumulator_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Accumulator_Present_Value_Set( + uint32_t object_instance, BACNET_UNSIGNED_INTEGER value); - BACNET_STACK_EXPORT - BACNET_UNSIGNED_INTEGER Accumulator_Present_Value(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Accumulator_Present_Value_Set( - uint32_t object_instance, - BACNET_UNSIGNED_INTEGER value); +BACNET_STACK_EXPORT +BACNET_UNSIGNED_INTEGER Accumulator_Max_Pres_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Accumulator_Max_Pres_Value_Set( + uint32_t object_instance, BACNET_UNSIGNED_INTEGER value); - BACNET_STACK_EXPORT - BACNET_UNSIGNED_INTEGER Accumulator_Max_Pres_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Accumulator_Max_Pres_Value_Set( - uint32_t object_instance, - BACNET_UNSIGNED_INTEGER value); +BACNET_STACK_EXPORT +int32_t Accumulator_Scale_Integer(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Accumulator_Scale_Integer_Set(uint32_t object_instance, int32_t); - BACNET_STACK_EXPORT - int32_t Accumulator_Scale_Integer(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Accumulator_Scale_Integer_Set(uint32_t object_instance, int32_t); - - BACNET_STACK_EXPORT - void Accumulator_Init( - void); +BACNET_STACK_EXPORT +void Accumulator_Init(void); #ifdef __cplusplus } #endif /* __cplusplus */ -#define ACCUMULATOR_OBJ_FUNCTIONS \ - OBJECT_ACCUMULATOR, Accumulator_Init, Accumulator_Count, \ - Accumulator_Index_To_Instance, Accumulator_Valid_Instance, \ - Accumulator_Name, Accumulator_Read_Property, Accumulator_Write_Property, \ - Accumulator_Property_Lists, NULL, NULL +#define ACCUMULATOR_OBJ_FUNCTIONS \ + OBJECT_ACCUMULATOR, Accumulator_Init, Accumulator_Count, \ + Accumulator_Index_To_Instance, Accumulator_Valid_Instance, \ + Accumulator_Name, Accumulator_Read_Property, \ + Accumulator_Write_Property, Accumulator_Property_Lists, NULL, NULL #endif diff --git a/src/bacnet/basic/object/access_credential.c b/src/bacnet/basic/object/access_credential.c index ba8d4fab..ac82ca6a 100644 --- a/src/bacnet/basic/object/access_credential.c +++ b/src/bacnet/basic/object/access_credential.c @@ -24,11 +24,19 @@ static ACCESS_CREDENTIAL_DESCR ac_descr[MAX_ACCESS_CREDENTIALS]; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GLOBAL_IDENTIFIER, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_CREDENTIAL_STATUS, - PROP_REASON_FOR_DISABLE, PROP_AUTHENTICATION_FACTORS, PROP_ACTIVATION_TIME, - PROP_EXPIRATION_TIME, PROP_CREDENTIAL_DISABLE, PROP_ASSIGNED_ACCESS_RIGHTS, - -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_CREDENTIAL_STATUS, + PROP_REASON_FOR_DISABLE, + PROP_AUTHENTICATION_FACTORS, + PROP_ACTIVATION_TIME, + PROP_EXPIRATION_TIME, + PROP_CREDENTIAL_DISABLE, + PROP_ASSIGNED_ACCESS_RIGHTS, + -1 }; static const int Properties_Optional[] = { -1 }; @@ -123,7 +131,8 @@ bool Access_Credential_Object_Name( bool status = false; if (object_instance < MAX_ACCESS_CREDENTIALS) { - snprintf(text, sizeof(text), "ACCESS CREDENTIAL %lu", + snprintf( + text, sizeof(text), "ACCESS CREDENTIAL %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -250,8 +259,8 @@ int Access_Credential_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } break; case PROP_AUTHENTICATION_FACTORS: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, Access_Credential_Authentication_Factor_Array_Encode, ac_descr[object_index].auth_factors_count, apdu, apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { @@ -275,10 +284,11 @@ int Access_Credential_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) &apdu[0], ac_descr[object_index].credential_disable); break; case PROP_ASSIGNED_ACCESS_RIGHTS: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, Access_Credential_Assigned_Access_Rights_Array_Encode, - ac_descr[object_index].assigned_access_rights_count, apdu, apdu_size); + ac_descr[object_index].assigned_access_rights_count, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; diff --git a/src/bacnet/basic/object/access_credential.h b/src/bacnet/basic/object/access_credential.h index 38a12fc0..361d4bd8 100644 --- a/src/bacnet/basic/object/access_credential.h +++ b/src/bacnet/basic/object/access_credential.h @@ -21,7 +21,6 @@ #include "bacnet/rp.h" #include "bacnet/wp.h" - #ifndef MAX_ACCESS_CREDENTIALS #define MAX_ACCESS_CREDENTIALS 4 #endif @@ -42,73 +41,56 @@ extern "C" { #endif /* __cplusplus */ - typedef struct { - uint32_t global_identifier; - BACNET_RELIABILITY reliability; - bool credential_status; - uint32_t reasons_count; - BACNET_ACCESS_CREDENTIAL_DISABLE_REASON - reason_for_disable[MAX_REASONS_FOR_DISABLE]; - uint32_t auth_factors_count; - BACNET_CREDENTIAL_AUTHENTICATION_FACTOR - auth_factors[MAX_AUTHENTICATION_FACTORS]; - BACNET_DATE_TIME activation_time, expiration_time; - BACNET_ACCESS_CREDENTIAL_DISABLE credential_disable; - uint32_t assigned_access_rights_count; - BACNET_ASSIGNED_ACCESS_RIGHTS - assigned_access_rights[MAX_ASSIGNED_ACCESS_RIGHTS]; - } ACCESS_CREDENTIAL_DESCR; +typedef struct { + uint32_t global_identifier; + BACNET_RELIABILITY reliability; + bool credential_status; + uint32_t reasons_count; + BACNET_ACCESS_CREDENTIAL_DISABLE_REASON + reason_for_disable[MAX_REASONS_FOR_DISABLE]; + uint32_t auth_factors_count; + BACNET_CREDENTIAL_AUTHENTICATION_FACTOR + auth_factors[MAX_AUTHENTICATION_FACTORS]; + BACNET_DATE_TIME activation_time, expiration_time; + BACNET_ACCESS_CREDENTIAL_DISABLE credential_disable; + uint32_t assigned_access_rights_count; + BACNET_ASSIGNED_ACCESS_RIGHTS + assigned_access_rights[MAX_ASSIGNED_ACCESS_RIGHTS]; +} ACCESS_CREDENTIAL_DESCR; - BACNET_STACK_EXPORT - void Access_Credential_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Access_Credential_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Access_Credential_Count( - void); - BACNET_STACK_EXPORT - uint32_t Access_Credential_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Access_Credential_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Credential_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Access_Credential_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Access_Credential_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Access_Credential_Count(void); +BACNET_STACK_EXPORT +uint32_t Access_Credential_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Access_Credential_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Credential_Object_Instance_Add(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Credential_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Access_Credential_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - bool Access_Credential_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Access_Credential_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +int Access_Credential_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Access_Credential_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - int Access_Credential_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Access_Credential_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); - - BACNET_STACK_EXPORT - uint32_t Access_Credential_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_Credential_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Access_Credential_Cleanup( - void); - BACNET_STACK_EXPORT - void Access_Credential_Init( - void); +BACNET_STACK_EXPORT +uint32_t Access_Credential_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_Credential_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Access_Credential_Cleanup(void); +BACNET_STACK_EXPORT +void Access_Credential_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/access_door.c b/src/bacnet/basic/object/access_door.c index 24fbbdad..b3dff56b 100644 --- a/src/bacnet/basic/object/access_door.c +++ b/src/bacnet/basic/object/access_door.c @@ -23,14 +23,25 @@ static ACCESS_DOOR_DESCR ad_descr[MAX_ACCESS_DOORS]; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_DOOR_PULSE_TIME, - PROP_DOOR_EXTENDED_PULSE_TIME, PROP_DOOR_OPEN_TOO_LONG_TIME, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_DOOR_PULSE_TIME, + PROP_DOOR_EXTENDED_PULSE_TIME, + PROP_DOOR_OPEN_TOO_LONG_TIME, + -1 }; -static const int Properties_Optional[] = { PROP_DOOR_STATUS, PROP_LOCK_STATUS, - PROP_SECURED_STATUS, PROP_DOOR_UNLOCK_DELAY_TIME, PROP_DOOR_ALARM_STATE, - -1 }; +static const int Properties_Optional[] = { + PROP_DOOR_STATUS, PROP_LOCK_STATUS, + PROP_SECURED_STATUS, PROP_DOOR_UNLOCK_DELAY_TIME, + PROP_DOOR_ALARM_STATE, -1 +}; static const int Properties_Proprietary[] = { -1 }; @@ -260,7 +271,8 @@ bool Access_Door_Object_Name( bool status = false; if (object_instance < MAX_ACCESS_DOORS) { - snprintf(text, sizeof(text), "ACCESS DOOR %lu", + snprintf( + text, sizeof(text), "ACCESS DOOR %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -349,9 +361,10 @@ int Access_Door_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_boolean(&apdu[0], state); break; case PROP_PRIORITY_ARRAY: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Access_Door_Priority_Array_Encode, - BACNET_MAX_PRIORITY, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Access_Door_Priority_Array_Encode, BACNET_MAX_PRIORITY, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -361,7 +374,8 @@ int Access_Door_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } break; case PROP_RELINQUISH_DEFAULT: - apdu_len = encode_application_enumerated(&apdu[0], + apdu_len = encode_application_enumerated( + &apdu[0], Access_Door_Relinquish_Default(rpdata->object_instance)); break; case PROP_DOOR_STATUS: @@ -447,7 +461,8 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any object. */ - status = Access_Door_Present_Value_Set(wp_data->object_instance, + status = Access_Door_Present_Value_Set( + wp_data->object_instance, (BACNET_DOOR_VALUE)value.type.Enumerated, wp_data->priority); if (wp_data->priority == 6) { diff --git a/src/bacnet/basic/object/access_door.h b/src/bacnet/basic/object/access_door.h index 302327f1..412cc49d 100644 --- a/src/bacnet/basic/object/access_door.h +++ b/src/bacnet/basic/object/access_door.h @@ -17,131 +17,96 @@ #include "bacnet/rp.h" #include "bacnet/wp.h" - #ifndef MAX_ACCESS_DOORS #define MAX_ACCESS_DOORS 4 #endif - #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - typedef struct { - bool value_active[BACNET_MAX_PRIORITY]; - BACNET_DOOR_VALUE priority_array[BACNET_MAX_PRIORITY]; - BACNET_DOOR_VALUE relinquish_default; - BACNET_EVENT_STATE event_state; - BACNET_RELIABILITY reliability; - bool out_of_service; - BACNET_DOOR_STATUS door_status; - BACNET_LOCK_STATUS lock_status; - BACNET_DOOR_SECURED_STATUS secured_status; - uint32_t door_pulse_time, door_extended_pulse_time, - door_unlock_delay_time, door_open_too_long_time; - BACNET_DOOR_ALARM_STATE door_alarm_state; - } ACCESS_DOOR_DESCR; +typedef struct { + bool value_active[BACNET_MAX_PRIORITY]; + BACNET_DOOR_VALUE priority_array[BACNET_MAX_PRIORITY]; + BACNET_DOOR_VALUE relinquish_default; + BACNET_EVENT_STATE event_state; + BACNET_RELIABILITY reliability; + bool out_of_service; + BACNET_DOOR_STATUS door_status; + BACNET_LOCK_STATUS lock_status; + BACNET_DOOR_SECURED_STATUS secured_status; + uint32_t door_pulse_time, door_extended_pulse_time, door_unlock_delay_time, + door_open_too_long_time; + BACNET_DOOR_ALARM_STATE door_alarm_state; +} ACCESS_DOOR_DESCR; - BACNET_STACK_EXPORT - void Access_Door_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Access_Door_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Access_Door_Count( - void); - BACNET_STACK_EXPORT - uint32_t Access_Door_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Access_Door_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Door_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Access_Door_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Access_Door_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Access_Door_Count(void); +BACNET_STACK_EXPORT +uint32_t Access_Door_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Access_Door_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Door_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - BACNET_DOOR_VALUE Access_Door_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Access_Door_Present_Value_Priority( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_Door_Present_Value_Set( - uint32_t object_instance, - BACNET_DOOR_VALUE value, - unsigned priority); - BACNET_STACK_EXPORT - bool Access_Door_Present_Value_Relinquish( - uint32_t object_instance, - unsigned priority); +BACNET_STACK_EXPORT +BACNET_DOOR_VALUE Access_Door_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Access_Door_Present_Value_Priority(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_Door_Present_Value_Set( + uint32_t object_instance, BACNET_DOOR_VALUE value, unsigned priority); +BACNET_STACK_EXPORT +bool Access_Door_Present_Value_Relinquish( + uint32_t object_instance, unsigned priority); - BACNET_STACK_EXPORT - BACNET_DOOR_VALUE Access_Door_Relinquish_Default( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_Door_Relinquish_Default_Set( - uint32_t object_instance, - float value); +BACNET_STACK_EXPORT +BACNET_DOOR_VALUE Access_Door_Relinquish_Default(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_Door_Relinquish_Default_Set(uint32_t object_instance, float value); - BACNET_STACK_EXPORT - bool Access_Door_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Access_Door_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Door_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +bool Access_Door_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Access_Door_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Door_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - bool Access_Door_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Access_Door_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +bool Access_Door_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Access_Door_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - char *Access_Door_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Door_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +char *Access_Door_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Door_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - bool Access_Door_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Access_Door_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Access_Door_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Access_Door_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - int Access_Door_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Access_Door_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Access_Door_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - uint32_t Access_Door_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_Door_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Access_Door_Cleanup( - void); - BACNET_STACK_EXPORT - void Access_Door_Init( - void); +BACNET_STACK_EXPORT +uint32_t Access_Door_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_Door_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Access_Door_Cleanup(void); +BACNET_STACK_EXPORT +void Access_Door_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/access_point.c b/src/bacnet/basic/object/access_point.c index c5784213..58289d70 100644 --- a/src/bacnet/basic/object/access_point.c +++ b/src/bacnet/basic/object/access_point.c @@ -22,13 +22,26 @@ static bool Access_Point_Initialized = false; static ACCESS_POINT_DESCR ap_descr[MAX_ACCESS_POINTS]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, - PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_AUTHENTICATION_STATUS, - PROP_ACTIVE_AUTHENTICATION_POLICY, PROP_NUMBER_OF_AUTHENTICATION_POLICIES, - PROP_AUTHORIZATION_MODE, PROP_ACCESS_EVENT, PROP_ACCESS_EVENT_TAG, - PROP_ACCESS_EVENT_TIME, PROP_ACCESS_EVENT_CREDENTIAL, PROP_ACCESS_DOORS, - PROP_PRIORITY_FOR_WRITING, -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_AUTHENTICATION_STATUS, + PROP_ACTIVE_AUTHENTICATION_POLICY, + PROP_NUMBER_OF_AUTHENTICATION_POLICIES, + PROP_AUTHORIZATION_MODE, + PROP_ACCESS_EVENT, + PROP_ACCESS_EVENT_TAG, + PROP_ACCESS_EVENT_TIME, + PROP_ACCESS_EVENT_CREDENTIAL, + PROP_ACCESS_DOORS, + PROP_PRIORITY_FOR_WRITING, + -1 +}; static const int Properties_Optional[] = { -1 }; @@ -126,7 +139,8 @@ bool Access_Point_Object_Name( bool status = false; if (object_instance < MAX_ACCESS_POINTS) { - snprintf(text, sizeof(text), "ACCESS POINT %lu", + snprintf( + text, sizeof(text), "ACCESS POINT %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -219,7 +233,8 @@ int Access_Point_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) &apdu[0], ap_descr[object_index].active_authentication_policy); break; case PROP_NUMBER_OF_AUTHENTICATION_POLICIES: - apdu_len = encode_application_unsigned(&apdu[0], + apdu_len = encode_application_unsigned( + &apdu[0], ap_descr[object_index].number_of_authentication_policies); break; case PROP_AUTHORIZATION_MODE: @@ -261,7 +276,8 @@ int Access_Point_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } } else { if (rpdata->array_index <= ap_descr[object_index].num_doors) { - apdu_len = bacapp_encode_device_obj_ref(&apdu[0], + apdu_len = bacapp_encode_device_obj_ref( + &apdu[0], &ap_descr[object_index] .access_doors[rpdata->array_index - 1]); } else { diff --git a/src/bacnet/basic/object/access_point.h b/src/bacnet/basic/object/access_point.h index cc1edce8..13608f6f 100644 --- a/src/bacnet/basic/object/access_point.h +++ b/src/bacnet/basic/object/access_point.h @@ -19,7 +19,6 @@ #include "bacnet/rp.h" #include "bacnet/wp.h" - #ifndef MAX_ACCESS_POINTS #define MAX_ACCESS_POINTS 4 #endif @@ -32,81 +31,59 @@ extern "C" { #endif /* __cplusplus */ - typedef struct { - BACNET_EVENT_STATE event_state; - BACNET_RELIABILITY reliability; - bool out_of_service; - BACNET_AUTHENTICATION_STATUS authentication_status; - uint32_t active_authentication_policy, - number_of_authentication_policies; - BACNET_AUTHORIZATION_MODE authorization_mode; - BACNET_ACCESS_EVENT access_event; - uint32_t access_event_tag; - BACNET_TIMESTAMP access_event_time; - BACNET_DEVICE_OBJECT_REFERENCE access_event_credential; - uint32_t num_doors; /* helper value, not a property */ - BACNET_DEVICE_OBJECT_REFERENCE access_doors[MAX_ACCESS_DOORS_COUNT]; - uint8_t priority_for_writing; - } ACCESS_POINT_DESCR; +typedef struct { + BACNET_EVENT_STATE event_state; + BACNET_RELIABILITY reliability; + bool out_of_service; + BACNET_AUTHENTICATION_STATUS authentication_status; + uint32_t active_authentication_policy, number_of_authentication_policies; + BACNET_AUTHORIZATION_MODE authorization_mode; + BACNET_ACCESS_EVENT access_event; + uint32_t access_event_tag; + BACNET_TIMESTAMP access_event_time; + BACNET_DEVICE_OBJECT_REFERENCE access_event_credential; + uint32_t num_doors; /* helper value, not a property */ + BACNET_DEVICE_OBJECT_REFERENCE access_doors[MAX_ACCESS_DOORS_COUNT]; + uint8_t priority_for_writing; +} ACCESS_POINT_DESCR; - BACNET_STACK_EXPORT - void Access_Point_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Access_Point_Valid_Instance( - uint32_t object_instance); - unsigned Access_Point_Count( - void); - BACNET_STACK_EXPORT - uint32_t Access_Point_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Access_Point_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Point_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Access_Point_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Access_Point_Valid_Instance(uint32_t object_instance); +unsigned Access_Point_Count(void); +BACNET_STACK_EXPORT +uint32_t Access_Point_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Access_Point_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Point_Object_Instance_Add(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Point_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Access_Point_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - bool Access_Point_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Access_Point_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +bool Access_Point_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Access_Point_Out_Of_Service_Set(uint32_t instance, bool oos_flag); +BACNET_STACK_EXPORT +int Access_Point_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Access_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool Access_Point_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Access_Point_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); - - BACNET_STACK_EXPORT - int Access_Point_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Access_Point_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); - - BACNET_STACK_EXPORT - uint32_t Access_Point_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_Point_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Access_Point_Cleanup( - void); - BACNET_STACK_EXPORT - void Access_Point_Init( - void); +BACNET_STACK_EXPORT +uint32_t Access_Point_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_Point_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Access_Point_Cleanup(void); +BACNET_STACK_EXPORT +void Access_Point_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/access_rights.c b/src/bacnet/basic/object/access_rights.c index a573175a..1fe2982e 100644 --- a/src/bacnet/basic/object/access_rights.c +++ b/src/bacnet/basic/object/access_rights.c @@ -24,9 +24,15 @@ static ACCESS_RIGHTS_DESCR ar_descr[MAX_ACCESS_RIGHTSS]; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GLOBAL_IDENTIFIER, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_ENABLE, - PROP_NEGATIVE_ACCESS_RULES, PROP_POSITIVE_ACCESS_RULES, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_ENABLE, + PROP_NEGATIVE_ACCESS_RULES, + PROP_POSITIVE_ACCESS_RULES, + -1 }; static const int Properties_Optional[] = { -1 }; @@ -118,7 +124,8 @@ bool Access_Rights_Object_Name( bool status = false; if (object_instance < MAX_ACCESS_RIGHTSS) { - snprintf(text, sizeof(text), "ACCESS RIGHTS %lu", + snprintf( + text, sizeof(text), "ACCESS RIGHTS %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -179,13 +186,15 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_NEGATIVE_ACCESS_RULES: if (rpdata->array_index == 0) { - apdu_len = encode_application_unsigned(&apdu[0], + apdu_len = encode_application_unsigned( + &apdu[0], ar_descr[object_index].negative_access_rules_count); } else if (rpdata->array_index == BACNET_ARRAY_ALL) { for (i = 0; i < ar_descr[object_index].negative_access_rules_count; i++) { - len = bacapp_encode_access_rule(&apdu[0], + len = bacapp_encode_access_rule( + &apdu[0], &ar_descr[object_index].negative_access_rules[i]); if (apdu_len + len < MAX_APDU) { apdu_len += len; @@ -199,7 +208,8 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } else { if (rpdata->array_index <= ar_descr[object_index].negative_access_rules_count) { - apdu_len = bacapp_encode_access_rule(&apdu[0], + apdu_len = bacapp_encode_access_rule( + &apdu[0], &ar_descr[object_index] .negative_access_rules[rpdata->array_index - 1]); } else { @@ -211,13 +221,15 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_POSITIVE_ACCESS_RULES: if (rpdata->array_index == 0) { - apdu_len = encode_application_unsigned(&apdu[0], + apdu_len = encode_application_unsigned( + &apdu[0], ar_descr[object_index].positive_access_rules_count); } else if (rpdata->array_index == BACNET_ARRAY_ALL) { for (i = 0; i < ar_descr[object_index].positive_access_rules_count; i++) { - len = bacapp_encode_access_rule(&apdu[0], + len = bacapp_encode_access_rule( + &apdu[0], &ar_descr[object_index].positive_access_rules[i]); if (apdu_len + len < MAX_APDU) { apdu_len += len; @@ -231,7 +243,8 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } else { if (rpdata->array_index <= ar_descr[object_index].positive_access_rules_count) { - apdu_len = bacapp_encode_access_rule(&apdu[0], + apdu_len = bacapp_encode_access_rule( + &apdu[0], &ar_descr[object_index] .positive_access_rules[rpdata->array_index - 1]); } else { diff --git a/src/bacnet/basic/object/access_rights.h b/src/bacnet/basic/object/access_rights.h index 79493f72..f6333e4e 100644 --- a/src/bacnet/basic/object/access_rights.h +++ b/src/bacnet/basic/object/access_rights.h @@ -19,7 +19,6 @@ #include "bacnet/rp.h" #include "bacnet/wp.h" - #ifndef MAX_ACCESS_RIGHTSS #define MAX_ACCESS_RIGHTSS 4 #endif @@ -36,65 +35,49 @@ extern "C" { #endif /* __cplusplus */ - typedef struct { - uint32_t global_identifier; - BACNET_RELIABILITY reliability; - bool enable; - uint32_t negative_access_rules_count, positive_access_rules_count; - BACNET_ACCESS_RULE - negative_access_rules[MAX_NEGATIVE_ACCESS_RIGHTS_RULES]; - BACNET_ACCESS_RULE - positive_access_rules[MAX_POSITIVE_ACCESS_RIGHTS_RULES]; - } ACCESS_RIGHTS_DESCR; +typedef struct { + uint32_t global_identifier; + BACNET_RELIABILITY reliability; + bool enable; + uint32_t negative_access_rules_count, positive_access_rules_count; + BACNET_ACCESS_RULE + negative_access_rules[MAX_NEGATIVE_ACCESS_RIGHTS_RULES]; + BACNET_ACCESS_RULE + positive_access_rules[MAX_POSITIVE_ACCESS_RIGHTS_RULES]; +} ACCESS_RIGHTS_DESCR; - BACNET_STACK_EXPORT - void Access_Rights_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Access_Rights_Valid_Instance( - uint32_t object_instance); - unsigned Access_Rights_Count( - void); - BACNET_STACK_EXPORT - uint32_t Access_Rights_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Access_Rights_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Rights_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Access_Rights_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Access_Rights_Valid_Instance(uint32_t object_instance); +unsigned Access_Rights_Count(void); +BACNET_STACK_EXPORT +uint32_t Access_Rights_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Access_Rights_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Rights_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Rights_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Access_Rights_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +bool Access_Rights_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Access_Rights_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - int Access_Rights_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Access_Rights_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - uint32_t Access_Rights_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_Rights_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Access_Rights_Cleanup( - void); - BACNET_STACK_EXPORT - void Access_Rights_Init( - void); +BACNET_STACK_EXPORT +uint32_t Access_Rights_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_Rights_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Access_Rights_Cleanup(void); +BACNET_STACK_EXPORT +void Access_Rights_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/access_user.c b/src/bacnet/basic/object/access_user.c index ab383f26..0ecd85b4 100644 --- a/src/bacnet/basic/object/access_user.c +++ b/src/bacnet/basic/object/access_user.c @@ -22,9 +22,11 @@ static bool Access_User_Initialized = false; static ACCESS_USER_DESCR au_descr[MAX_ACCESS_USERS]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GLOBAL_IDENTIFIER, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_USER_TYPE, PROP_CREDENTIALS, -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, PROP_STATUS_FLAGS, PROP_RELIABILITY, + PROP_USER_TYPE, PROP_CREDENTIALS, -1 +}; static const int Properties_Optional[] = { -1 }; @@ -115,7 +117,8 @@ bool Access_User_Object_Name( bool status = false; if (object_instance < MAX_ACCESS_USERS) { - snprintf(text, sizeof(text), "ACCESS USER %lu", + snprintf( + text, sizeof(text), "ACCESS USER %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } diff --git a/src/bacnet/basic/object/access_user.h b/src/bacnet/basic/object/access_user.h index d5041e09..b19ff9a7 100644 --- a/src/bacnet/basic/object/access_user.h +++ b/src/bacnet/basic/object/access_user.h @@ -18,7 +18,6 @@ #include "bacnet/rp.h" #include "bacnet/wp.h" - #ifndef MAX_ACCESS_USERS #define MAX_ACCESS_USERS 4 #endif @@ -31,63 +30,47 @@ extern "C" { #endif /* __cplusplus */ - typedef struct { - uint32_t global_identifier; - BACNET_RELIABILITY reliability; - BACNET_ACCESS_USER_TYPE user_type; - uint32_t credentials_count; - BACNET_DEVICE_OBJECT_REFERENCE - credentials[MAX_ACCESS_USER_CREDENTIALS_COUNT]; - } ACCESS_USER_DESCR; +typedef struct { + uint32_t global_identifier; + BACNET_RELIABILITY reliability; + BACNET_ACCESS_USER_TYPE user_type; + uint32_t credentials_count; + BACNET_DEVICE_OBJECT_REFERENCE + credentials[MAX_ACCESS_USER_CREDENTIALS_COUNT]; +} ACCESS_USER_DESCR; - BACNET_STACK_EXPORT - void Access_User_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Access_User_Valid_Instance( - uint32_t object_instance); - unsigned Access_User_Count( - void); - BACNET_STACK_EXPORT - uint32_t Access_User_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Access_User_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_User_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Access_User_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Access_User_Valid_Instance(uint32_t object_instance); +unsigned Access_User_Count(void); +BACNET_STACK_EXPORT +uint32_t Access_User_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Access_User_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_User_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Access_User_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Access_User_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +bool Access_User_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Access_User_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - int Access_User_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Access_User_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Access_User_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Access_User_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - uint32_t Access_User_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_User_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Access_User_Cleanup( - void); - BACNET_STACK_EXPORT - void Access_User_Init( - void); +BACNET_STACK_EXPORT +uint32_t Access_User_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_User_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Access_User_Cleanup(void); +BACNET_STACK_EXPORT +void Access_User_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/access_zone.c b/src/bacnet/basic/object/access_zone.c index 98758d24..30cddde1 100644 --- a/src/bacnet/basic/object/access_zone.c +++ b/src/bacnet/basic/object/access_zone.c @@ -23,10 +23,12 @@ static bool Access_Zone_Initialized = false; static ACCESS_ZONE_DESCR az_descr[MAX_ACCESS_ZONES]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GLOBAL_IDENTIFIER, - PROP_OCCUPANCY_STATE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_RELIABILITY, - PROP_OUT_OF_SERVICE, PROP_ENTRY_POINTS, PROP_EXIT_POINTS, -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, PROP_OCCUPANCY_STATE, PROP_STATUS_FLAGS, + PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, + PROP_ENTRY_POINTS, PROP_EXIT_POINTS, -1 +}; static const int Properties_Optional[] = { -1 }; @@ -120,7 +122,8 @@ bool Access_Zone_Object_Name( bool status = false; if (object_instance < MAX_ACCESS_ZONES) { - snprintf(text, sizeof(text), "ACCESS ZONE %lu", + snprintf( + text, sizeof(text), "ACCESS ZONE %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } diff --git a/src/bacnet/basic/object/access_zone.h b/src/bacnet/basic/object/access_zone.h index 5572b19b..6dc797c2 100644 --- a/src/bacnet/basic/object/access_zone.h +++ b/src/bacnet/basic/object/access_zone.h @@ -34,75 +34,56 @@ extern "C" { #endif /* __cplusplus */ - typedef struct { - uint32_t global_identifier; - BACNET_ACCESS_ZONE_OCCUPANCY_STATE occupancy_state; - BACNET_EVENT_STATE event_state; - BACNET_RELIABILITY reliability; - bool out_of_service; - uint32_t entry_points_count, exit_points_count; - BACNET_DEVICE_OBJECT_REFERENCE - entry_points[MAX_ACCESS_ZONE_ENTRY_POINTS]; - BACNET_DEVICE_OBJECT_REFERENCE - exit_points[MAX_ACCESS_ZONE_EXIT_POINTS]; - } ACCESS_ZONE_DESCR; +typedef struct { + uint32_t global_identifier; + BACNET_ACCESS_ZONE_OCCUPANCY_STATE occupancy_state; + BACNET_EVENT_STATE event_state; + BACNET_RELIABILITY reliability; + bool out_of_service; + uint32_t entry_points_count, exit_points_count; + BACNET_DEVICE_OBJECT_REFERENCE + entry_points[MAX_ACCESS_ZONE_ENTRY_POINTS]; + BACNET_DEVICE_OBJECT_REFERENCE + exit_points[MAX_ACCESS_ZONE_EXIT_POINTS]; +} ACCESS_ZONE_DESCR; - BACNET_STACK_EXPORT - void Access_Zone_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Access_Zone_Valid_Instance( - uint32_t object_instance); - unsigned Access_Zone_Count( - void); - BACNET_STACK_EXPORT - uint32_t Access_Zone_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Access_Zone_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Zone_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Access_Zone_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Access_Zone_Valid_Instance(uint32_t object_instance); +unsigned Access_Zone_Count(void); +BACNET_STACK_EXPORT +uint32_t Access_Zone_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Access_Zone_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Access_Zone_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Access_Zone_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Access_Zone_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +bool Access_Zone_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Access_Zone_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - bool Access_Zone_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Access_Zone_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Access_Zone_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Access_Zone_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - int Access_Zone_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Access_Zone_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Access_Zone_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Access_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - uint32_t Access_Zone_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Access_Zone_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Access_Zone_Cleanup( - void); - BACNET_STACK_EXPORT - void Access_Zone_Init( - void); +BACNET_STACK_EXPORT +uint32_t Access_Zone_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Access_Zone_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Access_Zone_Cleanup(void); +BACNET_STACK_EXPORT +void Access_Zone_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/ai.c b/src/bacnet/basic/object/ai.c index ff7a8552..5f21afee 100644 --- a/src/bacnet/basic/object/ai.c +++ b/src/bacnet/basic/object/ai.c @@ -1044,10 +1044,11 @@ void Analog_Input_Intrinsic_Reporting(uint32_t object_instance) EVENT_HIGH_LIMIT_ENABLE) && ((CurrentAI->Event_Enable & EVENT_ENABLE_TO_OFFNORMAL) == EVENT_ENABLE_TO_OFFNORMAL)) { - if (!CurrentAI->Remaining_Time_Delay) + if (!CurrentAI->Remaining_Time_Delay) { CurrentAI->Event_State = EVENT_STATE_HIGH_LIMIT; - else + } else { CurrentAI->Remaining_Time_Delay--; + } break; } /* A TO-OFFNORMAL event is generated under these conditions: @@ -1062,10 +1063,11 @@ void Analog_Input_Intrinsic_Reporting(uint32_t object_instance) EVENT_LOW_LIMIT_ENABLE) && ((CurrentAI->Event_Enable & EVENT_ENABLE_TO_OFFNORMAL) == EVENT_ENABLE_TO_OFFNORMAL)) { - if (!CurrentAI->Remaining_Time_Delay) + if (!CurrentAI->Remaining_Time_Delay) { CurrentAI->Event_State = EVENT_STATE_LOW_LIMIT; - else + } else { CurrentAI->Remaining_Time_Delay--; + } break; } /* value of the object is still in the same event state */ @@ -1091,10 +1093,12 @@ void Analog_Input_Intrinsic_Reporting(uint32_t object_instance) * indicate a transition to the NORMAL event state. */ (!(CurrentAI->Limit_Enable & EVENT_HIGH_LIMIT_ENABLE))) { if ((!CurrentAI->Remaining_Time_Delay) || - (!(CurrentAI->Limit_Enable & EVENT_HIGH_LIMIT_ENABLE))) + (!(CurrentAI->Limit_Enable & + EVENT_HIGH_LIMIT_ENABLE))) { CurrentAI->Event_State = EVENT_STATE_NORMAL; - else + } else { CurrentAI->Remaining_Time_Delay--; + } break; } /* value of the object is still in the same event state */ @@ -1121,10 +1125,11 @@ void Analog_Input_Intrinsic_Reporting(uint32_t object_instance) * indicate a transition to the NORMAL event state. */ (!(CurrentAI->Limit_Enable & EVENT_LOW_LIMIT_ENABLE))) { if ((!CurrentAI->Remaining_Time_Delay) || - (!(CurrentAI->Limit_Enable & EVENT_LOW_LIMIT_ENABLE))) + (!(CurrentAI->Limit_Enable & EVENT_LOW_LIMIT_ENABLE))) { CurrentAI->Event_State = EVENT_STATE_NORMAL; - else + } else { CurrentAI->Remaining_Time_Delay--; + } break; } /* value of the object is still in the same event state */ @@ -1239,8 +1244,9 @@ void Analog_Input_Intrinsic_Reporting(uint32_t object_instance) /* Notify Type */ /* filled before */ /* From State */ - if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) + if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) { event_data.fromState = FromState; + } /* To State */ event_data.toState = CurrentAI->Event_State; /* Event Values */ @@ -1395,8 +1401,9 @@ int Analog_Input_Event_Information( pObject->Notification_Class, getevent_data->eventPriorities); return 1; /* active event */ - } else + } else { return 0; /* no active event at this index */ + } } /** diff --git a/src/bacnet/basic/object/ai.h b/src/bacnet/basic/object/ai.h index e53231bc..e0c80d16 100644 --- a/src/bacnet/basic/object/ai.h +++ b/src/bacnet/basic/object/ai.h @@ -24,7 +24,7 @@ #endif typedef struct analog_input_descr { - unsigned Event_State:3; + unsigned Event_State : 3; float Present_Value; BACNET_RELIABILITY Reliability; bool Out_Of_Service; @@ -32,17 +32,17 @@ typedef struct analog_input_descr { float Prior_Value; float COV_Increment; bool Changed; - const char* Object_Name; - const char* Description; + const char *Object_Name; + const char *Description; #if defined(INTRINSIC_REPORTING) uint32_t Time_Delay; uint32_t Notification_Class; float High_Limit; float Low_Limit; float Deadband; - unsigned Limit_Enable:2; - unsigned Event_Enable:3; - unsigned Notify_Type:1; + unsigned Limit_Enable : 2; + unsigned Event_Enable : 3; + unsigned Notify_Type : 1; ACKED_INFO Acked_Transitions[MAX_BACNET_EVENT_TRANSITION]; BACNET_DATE_TIME Event_Time_Stamps[MAX_BACNET_EVENT_TRANSITION]; /* time to generate event notification */ @@ -56,144 +56,103 @@ typedef struct analog_input_descr { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Analog_Input_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Analog_Input_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Analog_Input_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Analog_Input_Count( - void); - BACNET_STACK_EXPORT - uint32_t Analog_Input_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Analog_Input_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Input_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Input_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Analog_Input_Count(void); +BACNET_STACK_EXPORT +uint32_t Analog_Input_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Analog_Input_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Input_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Input_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Analog_Input_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char * Analog_Input_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Input_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Analog_Input_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Analog_Input_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - const char *Analog_Input_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Input_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Analog_Input_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Input_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Analog_Input_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Input_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Analog_Input_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Input_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - bool Analog_Input_Units_Set( - uint32_t instance, - uint16_t units); - BACNET_STACK_EXPORT - uint16_t Analog_Input_Units( - uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Input_Units_Set(uint32_t instance, uint16_t units); +BACNET_STACK_EXPORT +uint16_t Analog_Input_Units(uint32_t instance); - BACNET_STACK_EXPORT - int Analog_Input_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Analog_Input_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Analog_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - float Analog_Input_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Analog_Input_Present_Value_Set( - uint32_t object_instance, - float value); +BACNET_STACK_EXPORT +float Analog_Input_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +void Analog_Input_Present_Value_Set(uint32_t object_instance, float value); - BACNET_STACK_EXPORT - bool Analog_Input_Out_Of_Service( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Analog_Input_Out_Of_Service_Set( - uint32_t object_instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Analog_Input_Out_Of_Service(uint32_t object_instance); +BACNET_STACK_EXPORT +void Analog_Input_Out_Of_Service_Set(uint32_t object_instance, bool oos_flag); - BACNET_STACK_EXPORT - unsigned Analog_Input_Event_State(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Input_Event_State_Set(uint32_t object_instance, unsigned state); +BACNET_STACK_EXPORT +unsigned Analog_Input_Event_State(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Input_Event_State_Set(uint32_t object_instance, unsigned state); - BACNET_STACK_EXPORT - bool Analog_Input_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Input_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Input_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - float Analog_Input_COV_Increment( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Input_COV_Increment_Set( - uint32_t instance, - float value); +BACNET_STACK_EXPORT +bool Analog_Input_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Input_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Input_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +float Analog_Input_COV_Increment(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Input_COV_Increment_Set(uint32_t instance, float value); - /* note: header of Intrinsic_Reporting function is required - even when INTRINSIC_REPORTING is not defined */ - BACNET_STACK_EXPORT - void Analog_Input_Intrinsic_Reporting( - uint32_t object_instance); +/* note: header of Intrinsic_Reporting function is required + even when INTRINSIC_REPORTING is not defined */ +BACNET_STACK_EXPORT +void Analog_Input_Intrinsic_Reporting(uint32_t object_instance); #if defined(INTRINSIC_REPORTING) - BACNET_STACK_EXPORT - int Analog_Input_Event_Information( - unsigned index, - BACNET_GET_EVENT_INFORMATION_DATA * getevent_data); +BACNET_STACK_EXPORT +int Analog_Input_Event_Information( + unsigned index, BACNET_GET_EVENT_INFORMATION_DATA *getevent_data); - BACNET_STACK_EXPORT - int Analog_Input_Alarm_Ack( - BACNET_ALARM_ACK_DATA * alarmack_data, - BACNET_ERROR_CODE * error_code); +BACNET_STACK_EXPORT +int Analog_Input_Alarm_Ack( + BACNET_ALARM_ACK_DATA *alarmack_data, BACNET_ERROR_CODE *error_code); - BACNET_STACK_EXPORT - int Analog_Input_Alarm_Summary( - unsigned index, - BACNET_GET_ALARM_SUMMARY_DATA * getalarm_data); +BACNET_STACK_EXPORT +int Analog_Input_Alarm_Summary( + unsigned index, BACNET_GET_ALARM_SUMMARY_DATA *getalarm_data); #endif - BACNET_STACK_EXPORT - uint32_t Analog_Input_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Input_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Analog_Input_Cleanup( - void); - BACNET_STACK_EXPORT - void Analog_Input_Init( - void); +BACNET_STACK_EXPORT +uint32_t Analog_Input_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Input_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Analog_Input_Cleanup(void); +BACNET_STACK_EXPORT +void Analog_Input_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/ao.c b/src/bacnet/basic/object/ao.c index 71989a6f..53607adb 100644 --- a/src/bacnet/basic/object/ao.c +++ b/src/bacnet/basic/object/ao.c @@ -57,18 +57,27 @@ static analog_output_write_present_value_callback /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Analog_Output_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_UNITS, PROP_PRIORITY_ARRAY, +static const int Analog_Output_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_UNITS, + PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, #if (BACNET_PROTOCOL_REVISION >= 17) PROP_CURRENT_COMMAND_PRIORITY, #endif - -1 }; + -1 +}; -static const int Analog_Output_Properties_Optional[] = { PROP_RELIABILITY, - PROP_DESCRIPTION, PROP_COV_INCREMENT, PROP_MIN_PRES_VALUE, - PROP_MAX_PRES_VALUE, -1 }; +static const int Analog_Output_Properties_Optional[] = { + PROP_RELIABILITY, PROP_DESCRIPTION, PROP_COV_INCREMENT, + PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, -1 +}; static const int Analog_Output_Properties_Proprietary[] = { -1 }; @@ -278,8 +287,8 @@ bool Analog_Output_Relinquish_Default_Set(uint32_t object_instance, float value) * @param pObject - specific object with valid data * @param value - floating point analog value */ -static void Analog_Output_Present_Value_COV_Detect( - struct object_data *pObject, float value) +static void +Analog_Output_Present_Value_COV_Detect(struct object_data *pObject, float value) { float prior_value = 0.0; float cov_increment = 0.0; @@ -366,7 +375,8 @@ bool Analog_Output_Present_Value_Relinquish( * @param error_code - BACnet Error code * @return true if values are within range and present-value is set. */ -static bool Analog_Output_Present_Value_Write(uint32_t object_instance, +static bool Analog_Output_Present_Value_Write( + uint32_t object_instance, float value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -380,7 +390,8 @@ static bool Analog_Output_Present_Value_Write(uint32_t object_instance, pObject = Keylist_Data(Object_List, object_instance); if (pObject) { if ((priority >= 1) && (priority <= BACNET_MAX_PRIORITY) && - (value >= pObject->Min_Pres_Value) && (value <= pObject->Max_Pres_Value)) { + (value >= pObject->Min_Pres_Value) && + (value <= pObject->Max_Pres_Value)) { if (priority != 6) { old_value = Analog_Output_Present_Value(object_instance); Analog_Output_Present_Value_Set( @@ -491,7 +502,8 @@ bool Analog_Output_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "ANALOG OUTPUT %lu", + snprintf( + name_text, sizeof(name_text), "ANALOG OUTPUT %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -907,8 +919,9 @@ bool Analog_Output_Encode_Value_List( if (pObject->Reliability != RELIABILITY_NO_FAULT_DETECTED) { fault = true; } - status = cov_value_list_encode_real(value_list, pObject->Prior_Value, - in_alarm, fault, overridden, pObject->Out_Of_Service); + status = cov_value_list_encode_real( + value_list, pObject->Prior_Value, in_alarm, fault, overridden, + pObject->Out_Of_Service); } return status; @@ -1028,9 +1041,10 @@ int Analog_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_enumerated(&apdu[0], units); break; case PROP_PRIORITY_ARRAY: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Analog_Output_Priority_Array_Encode, - BACNET_MAX_PRIORITY, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Analog_Output_Priority_Array_Encode, BACNET_MAX_PRIORITY, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -1045,7 +1059,8 @@ int Analog_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_real(&apdu[0], real_value); break; case PROP_DESCRIPTION: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Analog_Output_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); @@ -1118,10 +1133,10 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_REAL); if (status) { - status = - Analog_Output_Present_Value_Write(wp_data->object_instance, - value.type.Real, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Analog_Output_Present_Value_Write( + wp_data->object_instance, value.type.Real, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } else { status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_NULL); diff --git a/src/bacnet/basic/object/ao.h b/src/bacnet/basic/object/ao.h index 0415b79f..89998e0d 100644 --- a/src/bacnet/basic/object/ao.h +++ b/src/bacnet/basic/object/ao.h @@ -13,7 +13,7 @@ #define BACNET_BASIC_OBJECT_ANALOG_OUTPUT_H #include #include -#include "bacnet/bacdef.h" /* Must be before all other bacnet *.h files */ +#include "bacnet/bacdef.h" /* Must be before all other bacnet *.h files */ #include "bacnet/bacerror.h" #include "bacnet/rp.h" #include "bacnet/wp.h" @@ -31,155 +31,108 @@ typedef void (*analog_output_write_present_value_callback)( extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Analog_Output_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Analog_Output_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Analog_Output_Count( - void); - BACNET_STACK_EXPORT - uint32_t Analog_Output_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Analog_Output_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Output_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Output_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Analog_Output_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Analog_Output_Count(void); +BACNET_STACK_EXPORT +uint32_t Analog_Output_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Analog_Output_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Output_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - float Analog_Output_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Output_Present_Value_Set( - uint32_t object_instance, - float value, - unsigned priority); - BACNET_STACK_EXPORT - bool Analog_Output_Present_Value_Relinquish( - uint32_t object_instance, - unsigned priority); - BACNET_STACK_EXPORT - unsigned Analog_Output_Present_Value_Priority( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Analog_Output_Write_Present_Value_Callback_Set( - analog_output_write_present_value_callback cb); +BACNET_STACK_EXPORT +float Analog_Output_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Output_Present_Value_Set( + uint32_t object_instance, float value, unsigned priority); +BACNET_STACK_EXPORT +bool Analog_Output_Present_Value_Relinquish( + uint32_t object_instance, unsigned priority); +BACNET_STACK_EXPORT +unsigned Analog_Output_Present_Value_Priority(uint32_t object_instance); +BACNET_STACK_EXPORT +void Analog_Output_Write_Present_Value_Callback_Set( + analog_output_write_present_value_callback cb); - BACNET_STACK_EXPORT - float Analog_Output_Relinquish_Default( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Output_Relinquish_Default_Set( - uint32_t object_instance, - float value); +BACNET_STACK_EXPORT +float Analog_Output_Relinquish_Default(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Output_Relinquish_Default_Set( + uint32_t object_instance, float value); - BACNET_STACK_EXPORT - bool Analog_Output_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Output_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Output_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - BACNET_STACK_EXPORT - float Analog_Output_COV_Increment( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Output_COV_Increment_Set( - uint32_t instance, - float value); +BACNET_STACK_EXPORT +bool Analog_Output_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Output_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Output_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +BACNET_STACK_EXPORT +float Analog_Output_COV_Increment(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Output_COV_Increment_Set(uint32_t instance, float value); - BACNET_STACK_EXPORT - bool Analog_Output_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Analog_Output_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char * Analog_Output_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Output_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Analog_Output_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Analog_Output_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - const char *Analog_Output_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Output_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Analog_Output_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Output_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - bool Analog_Output_Units_Set( - uint32_t instance, - uint16_t units); - BACNET_STACK_EXPORT - uint16_t Analog_Output_Units( - uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Output_Units_Set(uint32_t instance, uint16_t units); +BACNET_STACK_EXPORT +uint16_t Analog_Output_Units(uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Output_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Output_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Analog_Output_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Output_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - bool Analog_Output_Overridden( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Output_Overridden_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Analog_Output_Overridden(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Output_Overridden_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Analog_Output_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Output_Reliability_Set( - uint32_t object_instance, BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Analog_Output_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Output_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - float Analog_Output_Min_Pres_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Output_Min_Pres_Value_Set( - uint32_t object_instance, float value); - BACNET_STACK_EXPORT - float Analog_Output_Max_Pres_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Output_Max_Pres_Value_Set( - uint32_t object_instance, float value); +BACNET_STACK_EXPORT +float Analog_Output_Min_Pres_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Output_Min_Pres_Value_Set(uint32_t object_instance, float value); +BACNET_STACK_EXPORT +float Analog_Output_Max_Pres_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Output_Max_Pres_Value_Set(uint32_t object_instance, float value); - BACNET_STACK_EXPORT - int Analog_Output_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Analog_Output_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Analog_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - uint32_t Analog_Output_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Output_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Analog_Output_Cleanup( - void); - BACNET_STACK_EXPORT - void Analog_Output_Init( - void); +BACNET_STACK_EXPORT +uint32_t Analog_Output_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Output_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Analog_Output_Cleanup(void); +BACNET_STACK_EXPORT +void Analog_Output_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/av.c b/src/bacnet/basic/object/av.c index b390a954..fc5d746e 100644 --- a/src/bacnet/basic/object/av.c +++ b/src/bacnet/basic/object/av.c @@ -1082,10 +1082,11 @@ void Analog_Value_Intrinsic_Reporting(uint32_t object_instance) EVENT_HIGH_LIMIT_ENABLE) && ((CurrentAV->Event_Enable & EVENT_ENABLE_TO_OFFNORMAL) == EVENT_ENABLE_TO_OFFNORMAL)) { - if (!CurrentAV->Remaining_Time_Delay) + if (!CurrentAV->Remaining_Time_Delay) { CurrentAV->Event_State = EVENT_STATE_HIGH_LIMIT; - else + } else { CurrentAV->Remaining_Time_Delay--; + } break; } @@ -1101,10 +1102,11 @@ void Analog_Value_Intrinsic_Reporting(uint32_t object_instance) EVENT_LOW_LIMIT_ENABLE) && ((CurrentAV->Event_Enable & EVENT_ENABLE_TO_OFFNORMAL) == EVENT_ENABLE_TO_OFFNORMAL)) { - if (!CurrentAV->Remaining_Time_Delay) + if (!CurrentAV->Remaining_Time_Delay) { CurrentAV->Event_State = EVENT_STATE_LOW_LIMIT; - else + } else { CurrentAV->Remaining_Time_Delay--; + } break; } /* value of the object is still in the same event state */ @@ -1131,10 +1133,12 @@ void Analog_Value_Intrinsic_Reporting(uint32_t object_instance) * indicate a transition to the NORMAL event state. */ (!(CurrentAV->Limit_Enable & EVENT_HIGH_LIMIT_ENABLE))) { if ((!CurrentAV->Remaining_Time_Delay) || - (!(CurrentAV->Limit_Enable & EVENT_HIGH_LIMIT_ENABLE))) + (!(CurrentAV->Limit_Enable & + EVENT_HIGH_LIMIT_ENABLE))) { CurrentAV->Event_State = EVENT_STATE_NORMAL; - else + } else { CurrentAV->Remaining_Time_Delay--; + } break; } /* value of the object is still in the same event state */ @@ -1162,10 +1166,11 @@ void Analog_Value_Intrinsic_Reporting(uint32_t object_instance) * indicate a transition to the NORMAL event state. */ (!(CurrentAV->Limit_Enable & EVENT_LOW_LIMIT_ENABLE))) { if ((!CurrentAV->Remaining_Time_Delay) || - (!(CurrentAV->Limit_Enable & EVENT_LOW_LIMIT_ENABLE))) + (!(CurrentAV->Limit_Enable & EVENT_LOW_LIMIT_ENABLE))) { CurrentAV->Event_State = EVENT_STATE_NORMAL; - else + } else { CurrentAV->Remaining_Time_Delay--; + } break; } /* value of the object is still in the same event state */ @@ -1288,8 +1293,9 @@ void Analog_Value_Intrinsic_Reporting(uint32_t object_instance) /* filled before */ /* From State */ - if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) + if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) { event_data.fromState = FromState; + } /* To State */ event_data.toState = CurrentAV->Event_State; @@ -1447,8 +1453,9 @@ int Analog_Value_Event_Information( pObject->Notification_Class, getevent_data->eventPriorities); return 1; /* active event */ - } else + } else { return 0; /* no active event at this index */ + } } /** @@ -1601,10 +1608,12 @@ int Analog_Value_Alarm_Summary( pObject->Acked_Transitions[TRANSITION_TO_NORMAL].bIsAcked); return 1; /* active alarm */ - } else + } else { return 0; /* no active alarm at this index */ - } else + } + } else { return -1; /* end of list */ + } } #endif /* defined(INTRINSIC_REPORTING) */ diff --git a/src/bacnet/basic/object/av.h b/src/bacnet/basic/object/av.h index 1e9add7f..853c6309 100644 --- a/src/bacnet/basic/object/av.h +++ b/src/bacnet/basic/object/av.h @@ -26,15 +26,15 @@ #endif typedef struct analog_value_descr { - unsigned Event_State:3; + unsigned Event_State : 3; bool Out_Of_Service; uint16_t Units; float Present_Value; float Prior_Value; float COV_Increment; bool Changed; - const char* Object_Name; - const char* Description; + const char *Object_Name; + const char *Description; BACNET_RELIABILITY Reliability; #if defined(INTRINSIC_REPORTING) uint32_t Time_Delay; @@ -42,9 +42,9 @@ typedef struct analog_value_descr { float High_Limit; float Low_Limit; float Deadband; - unsigned Limit_Enable:2; - unsigned Event_Enable:3; - unsigned Notify_Type:1; + unsigned Limit_Enable : 2; + unsigned Event_Enable : 3; + unsigned Notify_Type : 1; ACKED_INFO Acked_Transitions[MAX_BACNET_EVENT_TRANSITION]; BACNET_DATE_TIME Event_Time_Stamps[MAX_BACNET_EVENT_TRANSITION]; /* time to generate event notification */ @@ -57,146 +57,103 @@ typedef struct analog_value_descr { #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Analog_Value_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Analog_Value_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Analog_Value_Count( - void); - BACNET_STACK_EXPORT - uint32_t Analog_Value_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Analog_Value_Instance_To_Index( - uint32_t object_instance); +BACNET_STACK_EXPORT +void Analog_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Analog_Value_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Analog_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t Analog_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Analog_Value_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Value_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Analog_Value_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Analog_Value_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Analog_Value_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Analog_Value_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - int Analog_Value_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Analog_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Analog_Value_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool Analog_Value_Present_Value_Set( - uint32_t object_instance, - float value, - uint8_t priority); - BACNET_STACK_EXPORT - float Analog_Value_Present_Value( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Value_Present_Value_Set( + uint32_t object_instance, float value, uint8_t priority); +BACNET_STACK_EXPORT +float Analog_Value_Present_Value(uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Analog_Value_Event_State( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Value_Event_State_Set( - uint32_t object_instance, - unsigned state); +BACNET_STACK_EXPORT +unsigned Analog_Value_Event_State(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Value_Event_State_Set(uint32_t object_instance, unsigned state); - BACNET_STACK_EXPORT - bool Analog_Value_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Value_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Value_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - BACNET_STACK_EXPORT - float Analog_Value_COV_Increment( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Value_COV_Increment_Set( - uint32_t instance, - float value); +BACNET_STACK_EXPORT +bool Analog_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Value_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +BACNET_STACK_EXPORT +float Analog_Value_COV_Increment(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Value_COV_Increment_Set(uint32_t instance, float value); - BACNET_STACK_EXPORT - const char *Analog_Value_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Value_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Analog_Value_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Value_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Analog_Value_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Value_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Analog_Value_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Value_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - uint16_t Analog_Value_Units( - uint32_t instance); - BACNET_STACK_EXPORT - bool Analog_Value_Units_Set( - uint32_t instance, - uint16_t unit); +BACNET_STACK_EXPORT +uint16_t Analog_Value_Units(uint32_t instance); +BACNET_STACK_EXPORT +bool Analog_Value_Units_Set(uint32_t instance, uint16_t unit); - BACNET_STACK_EXPORT - bool Analog_Value_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Analog_Value_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Analog_Value_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Analog_Value_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - /* note: header of Intrinsic_Reporting function is required - even when INTRINSIC_REPORTING is not defined */ - BACNET_STACK_EXPORT - void Analog_Value_Intrinsic_Reporting( - uint32_t object_instance); +/* note: header of Intrinsic_Reporting function is required + even when INTRINSIC_REPORTING is not defined */ +BACNET_STACK_EXPORT +void Analog_Value_Intrinsic_Reporting(uint32_t object_instance); #if defined(INTRINSIC_REPORTING) - BACNET_STACK_EXPORT - int Analog_Value_Event_Information( - unsigned index, - BACNET_GET_EVENT_INFORMATION_DATA * getevent_data); +BACNET_STACK_EXPORT +int Analog_Value_Event_Information( + unsigned index, BACNET_GET_EVENT_INFORMATION_DATA *getevent_data); - BACNET_STACK_EXPORT - int Analog_Value_Alarm_Ack( - BACNET_ALARM_ACK_DATA * alarmack_data, - BACNET_ERROR_CODE * error_code); +BACNET_STACK_EXPORT +int Analog_Value_Alarm_Ack( + BACNET_ALARM_ACK_DATA *alarmack_data, BACNET_ERROR_CODE *error_code); - BACNET_STACK_EXPORT - int Analog_Value_Alarm_Summary( - unsigned index, - BACNET_GET_ALARM_SUMMARY_DATA * getalarm_data); +BACNET_STACK_EXPORT +int Analog_Value_Alarm_Summary( + unsigned index, BACNET_GET_ALARM_SUMMARY_DATA *getalarm_data); #endif - BACNET_STACK_EXPORT - uint32_t Analog_Value_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Analog_Value_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Analog_Value_Cleanup( - void); - BACNET_STACK_EXPORT - void Analog_Value_Init( - void); +BACNET_STACK_EXPORT +uint32_t Analog_Value_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Analog_Value_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Analog_Value_Cleanup(void); +BACNET_STACK_EXPORT +void Analog_Value_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/bacfile.c b/src/bacnet/basic/object/bacfile.c index 43958e12..3cfec39d 100644 --- a/src/bacnet/basic/object/bacfile.c +++ b/src/bacnet/basic/object/bacfile.c @@ -37,7 +37,7 @@ struct object_data { char *Pathname; BACNET_DATE_TIME Modification_Date; char *File_Type; - bool File_Access_Stream:1; + bool File_Access_Stream : 1; bool Read_Only : 1; bool Archive : 1; }; @@ -47,9 +47,15 @@ static OS_Keylist Object_List; static const BACNET_OBJECT_TYPE Object_Type = OBJECT_FILE; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int bacfile_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_FILE_TYPE, PROP_FILE_SIZE, - PROP_MODIFICATION_DATE, PROP_ARCHIVE, PROP_READ_ONLY, - PROP_FILE_ACCESS_METHOD, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_FILE_TYPE, + PROP_FILE_SIZE, + PROP_MODIFICATION_DATE, + PROP_ARCHIVE, + PROP_READ_ONLY, + PROP_FILE_ACCESS_METHOD, + -1 }; static const int bacfile_Properties_Optional[] = { PROP_DESCRIPTION, -1 }; @@ -86,7 +92,8 @@ void BACfile_Property_Lists( * @param s - string to duplicate * @return a pointer to a new string on success, or a null pointer */ -static char *bacfile_strdup(const char *s) { +static char *bacfile_strdup(const char *s) +{ size_t size = strlen(s) + 1; char *p = malloc(size); if (p != NULL) { @@ -137,8 +144,7 @@ void bacfile_pathname_set(uint32_t object_instance, const char *pathname) * @return object-instance number of the object, * or #BACNET_MAX_INSTANCE if not found */ -uint32_t bacfile_pathname_instance( - const char *pathname) +uint32_t bacfile_pathname_instance(const char *pathname) { struct object_data *pObject; int count = 0; @@ -179,11 +185,10 @@ bool bacfile_object_name( pObject = Keylist_Data(Object_List, object_instance); if (pObject) { if (pObject->Object_Name) { - status = characterstring_init_ansi(object_name, - pObject->Object_Name); + status = + characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "FILE %u", - object_instance); + snprintf(name_text, sizeof(name_text), "FILE %u", object_instance); status = characterstring_init_ansi(object_name, name_text); } } @@ -232,7 +237,6 @@ const char *bacfile_name_ansi(uint32_t object_instance) return name; } - /** * @brief Determines if a given object instance is valid * @param object_instance - object-instance number of the object @@ -300,8 +304,8 @@ static long fsize(FILE *pFile) * @param buffer_size - in bytes * @return file size in bytes */ -uint32_t bacfile_read(uint32_t object_instance, uint8_t *buffer, - uint32_t buffer_size) +uint32_t +bacfile_read(uint32_t object_instance, uint8_t *buffer, uint32_t buffer_size) { const char *pFilename = NULL; FILE *pFile = NULL; @@ -331,8 +335,8 @@ uint32_t bacfile_read(uint32_t object_instance, uint8_t *buffer, * @param buffer_size - in bytes * @return file size in bytes */ -uint32_t bacfile_write(uint32_t object_instance, const uint8_t *buffer, - uint32_t buffer_size) +uint32_t bacfile_write( + uint32_t object_instance, const uint8_t *buffer, uint32_t buffer_size) { const char *pFilename = NULL; FILE *pFile = NULL; @@ -387,8 +391,7 @@ BACNET_UNSIGNED_INTEGER bacfile_file_size(uint32_t object_instance) * @return true if file size is writable */ bool bacfile_file_size_set( - uint32_t object_instance, - BACNET_UNSIGNED_INTEGER file_size) + uint32_t object_instance, BACNET_UNSIGNED_INTEGER file_size) { bool status = false; struct object_data *pObject; @@ -404,17 +407,15 @@ bool bacfile_file_size_set( return status; } - /** * @brief Determines the file size property value * @param object_instance - object-instance number of the object * @return value of the file size property */ -const char * bacfile_file_type( - uint32_t object_instance) +const char *bacfile_file_type(uint32_t object_instance) { struct object_data *pObject; - const char * mime_type = "application/octet-stream"; + const char *mime_type = "application/octet-stream"; pObject = Keylist_Data(Object_List, object_instance); if (pObject) { @@ -431,9 +432,7 @@ const char * bacfile_file_type( * @param object_instance - object-instance number of the object * @param mime_type - value of the file type property */ -void bacfile_file_type_set( - uint32_t object_instance, - const char *mime_type) +void bacfile_file_type_set(uint32_t object_instance, const char *mime_type) { struct object_data *pObject; @@ -461,8 +460,7 @@ void bacfile_file_type_set( * @param object_instance - object-instance number of the object * @return true if the property is true */ -bool bacfile_archive( - uint32_t object_instance) +bool bacfile_archive(uint32_t object_instance) { bool status = false; struct object_data *pObject; @@ -486,8 +484,7 @@ bool bacfile_archive( * @param object_instance - object-instance number of the object * @return true if the property is true */ -bool bacfile_archive_set( - uint32_t object_instance, bool archive) +bool bacfile_archive_set(uint32_t object_instance, bool archive) { bool status = false; struct object_data *pObject; @@ -506,8 +503,7 @@ bool bacfile_archive_set( * @param object_instance - object-instance number of the object * @return true if the property is true */ -bool bacfile_read_only( - uint32_t object_instance) +bool bacfile_read_only(uint32_t object_instance) { bool status = false; struct object_data *pObject; @@ -526,9 +522,7 @@ bool bacfile_read_only( * @param archive - value of the file archive property * @return true if the file exists and read-only is writeable */ -bool bacfile_read_only_set( - uint32_t object_instance, - bool read_only) +bool bacfile_read_only_set(uint32_t object_instance, bool read_only) { bool status = false; struct object_data *pObject; @@ -547,8 +541,8 @@ bool bacfile_read_only_set( * @param object_instance - object-instance number of the object * @param bdatetime */ -static void bacfile_modification_date( - uint32_t object_instance, BACNET_DATE_TIME *bdatetime) +static void +bacfile_modification_date(uint32_t object_instance, BACNET_DATE_TIME *bdatetime) { struct object_data *pObject; @@ -563,8 +557,7 @@ static void bacfile_modification_date( * @param object_instance - object-instance number of the object * @return true if the property is true */ -bool bacfile_file_access_stream( - uint32_t object_instance) +bool bacfile_file_access_stream(uint32_t object_instance) { bool status = false; struct object_data *pObject; @@ -583,9 +576,7 @@ bool bacfile_file_access_stream( * @param access - value of the property * @return true if the file exists and property is writeable */ -bool bacfile_file_access_stream_set( - uint32_t object_instance, - bool access) +bool bacfile_file_access_stream_set(uint32_t object_instance, bool access) { bool status = false; struct object_data *pObject; @@ -630,8 +621,7 @@ int bacfile_read_property(BACNET_READ_PROPERTY_DATA *rpdata) encode_application_character_string(&apdu[0], &char_string); break; case PROP_OBJECT_TYPE: - apdu_len = - encode_application_enumerated(&apdu[0], Object_Type); + apdu_len = encode_application_enumerated(&apdu[0], Object_Type); break; case PROP_DESCRIPTION: characterstring_init_ansi( @@ -640,8 +630,8 @@ int bacfile_read_property(BACNET_READ_PROPERTY_DATA *rpdata) encode_application_character_string(&apdu[0], &char_string); break; case PROP_FILE_TYPE: - characterstring_init_ansi(&char_string, - bacfile_file_type(rpdata->object_instance)); + characterstring_init_ansi( + &char_string, bacfile_file_type(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); break; @@ -654,20 +644,20 @@ int bacfile_read_property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = bacapp_encode_datetime(apdu, &bdatetime); break; case PROP_ARCHIVE: - apdu_len = encode_application_boolean(&apdu[0], - bacfile_archive(rpdata->object_instance)); + apdu_len = encode_application_boolean( + &apdu[0], bacfile_archive(rpdata->object_instance)); break; case PROP_READ_ONLY: - apdu_len = encode_application_boolean(&apdu[0], - bacfile_read_only(rpdata->object_instance)); + apdu_len = encode_application_boolean( + &apdu[0], bacfile_read_only(rpdata->object_instance)); break; case PROP_FILE_ACCESS_METHOD: if (bacfile_file_access_stream(rpdata->object_instance)) { - apdu_len = encode_application_enumerated( - &apdu[0], FILE_STREAM_ACCESS); + apdu_len = + encode_application_enumerated(&apdu[0], FILE_STREAM_ACCESS); } else { - apdu_len = encode_application_enumerated( - &apdu[0], FILE_RECORD_ACCESS); + apdu_len = + encode_application_enumerated(&apdu[0], FILE_RECORD_ACCESS); } break; default: @@ -730,9 +720,8 @@ bool bacfile_write_property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { - status = - bacfile_file_size_set(wp_data->object_instance, - value.type.Unsigned_Int); + status = bacfile_file_size_set( + wp_data->object_instance, value.type.Unsigned_Int); if (!status) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; @@ -786,9 +775,9 @@ uint32_t bacfile_instance_from_tsm(uint8_t invokeID) if (!npdu_data.network_layer_message && npdu_data.data_expecting_reply && ((apdu[0] & 0xF0) == PDU_TYPE_CONFIRMED_SERVICE_REQUEST)) { - len = apdu_decode_confirmed_service_request(&apdu[0], apdu_len, - &service_data, &service_choice, &service_request, - &service_request_len); + len = apdu_decode_confirmed_service_request( + &apdu[0], apdu_len, &service_data, &service_choice, + &service_request, &service_request_len); if ((len > 0) && (service_choice == SERVICE_CONFIRMED_ATOMIC_READ_FILE)) { len = arf_decode_service_request( @@ -819,7 +808,8 @@ bool bacfile_read_stream_data(BACNET_ATOMIC_READ_FILE_DATA *data) pFile = fopen(pFilename, "rb"); if (pFile) { (void)fseek(pFile, data->type.stream.fileStartPosition, SEEK_SET); - len = fread(octetstring_value(&data->fileData[0]), 1, + len = fread( + octetstring_value(&data->fileData[0]), 1, data->type.stream.requestedOctetCount, pFile); if (len < data->type.stream.requestedOctetCount) { data->endOfFile = true; @@ -866,7 +856,8 @@ bool bacfile_write_stream_data(BACNET_ATOMIC_WRITE_FILE_DATA *data) (void)fseek( pFile, data->type.stream.fileStartPosition, SEEK_SET); } - if (fwrite(octetstring_value(&data->fileData[0]), + if (fwrite( + octetstring_value(&data->fileData[0]), octetstring_length(&data->fileData[0]), 1, pFile) != 1) { /* do something if it fails? */ } @@ -913,7 +904,9 @@ bool bacfile_write_record_data(const BACNET_ATOMIC_WRITE_FILE_DATA *data) } } for (i = 0; i < data->type.record.returnedRecordCount; i++) { - if (fwrite(octetstring_value((BACNET_OCTET_STRING*)&data->fileData[i]), + if (fwrite( + octetstring_value( + (BACNET_OCTET_STRING *)&data->fileData[i]), octetstring_length(&data->fileData[i]), 1, pFile) != 1) { /* do something if it fails? */ @@ -939,10 +932,13 @@ bool bacfile_read_ack_stream_data( pFile = fopen(pFilename, "rb+"); if (pFile) { (void)fseek(pFile, data->type.stream.fileStartPosition, SEEK_SET); - if (fwrite(octetstring_value((BACNET_OCTET_STRING*)&data->fileData[0]), + if (fwrite( + octetstring_value( + (BACNET_OCTET_STRING *)&data->fileData[0]), octetstring_length(&data->fileData[0]), 1, pFile) != 1) { #if PRINT_ENABLED - fprintf(stderr, "Failed to write to %s (%lu)!\n", pFilename, + fprintf( + stderr, "Failed to write to %s (%lu)!\n", pFilename, (unsigned long)instance); #endif } @@ -978,11 +974,14 @@ bool bacfile_read_ack_record_data( } } for (i = 0; i < data->type.record.RecordCount; i++) { - if (fwrite(octetstring_value((BACNET_OCTET_STRING*)&data->fileData[i]), + if (fwrite( + octetstring_value( + (BACNET_OCTET_STRING *)&data->fileData[i]), octetstring_length(&data->fileData[i]), 1, pFile) != 1) { #if PRINT_ENABLED - fprintf(stderr, "Failed to write to %s (%lu)!\n", pFilename, + fprintf( + stderr, "Failed to write to %s (%lu)!\n", pFilename, (unsigned long)instance); #endif } @@ -994,7 +993,6 @@ bool bacfile_read_ack_record_data( return found; } - /** * @brief Creates a File object * @param object_instance - object-instance number of the object @@ -1022,8 +1020,8 @@ uint32_t bacfile_create(uint32_t object_instance) pObject->Object_Name = NULL; pObject->Pathname = NULL; /* April Fool's Day */ - datetime_set_values(&pObject->Modification_Date, - 2006, 4, 1, 7, 0, 3, 1); + datetime_set_values( + &pObject->Modification_Date, 2006, 4, 1, 7, 0, 3, 1); pObject->Read_Only = false; pObject->Archive = false; pObject->File_Access_Stream = true; diff --git a/src/bacnet/basic/object/bacfile.h b/src/bacnet/basic/object/bacfile.h index 05b06c71..89934467 100644 --- a/src/bacnet/basic/object/bacfile.h +++ b/src/bacnet/basic/object/bacfile.h @@ -24,152 +24,107 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void BACfile_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void BACfile_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool bacfile_object_name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool bacfile_object_name_set( - uint32_t object_instance, - char *new_name); - BACNET_STACK_EXPORT - const char * bacfile_name_ansi( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool bacfile_object_name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool bacfile_object_name_set(uint32_t object_instance, char *new_name); +BACNET_STACK_EXPORT +const char *bacfile_name_ansi(uint32_t object_instance); - BACNET_STACK_EXPORT - bool bacfile_valid_instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - uint32_t bacfile_count( - void); - BACNET_STACK_EXPORT - uint32_t bacfile_index_to_instance( - unsigned find_index); - BACNET_STACK_EXPORT - unsigned bacfile_instance_to_index( - uint32_t instance); +BACNET_STACK_EXPORT +bool bacfile_valid_instance(uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t bacfile_count(void); +BACNET_STACK_EXPORT +uint32_t bacfile_index_to_instance(unsigned find_index); +BACNET_STACK_EXPORT +unsigned bacfile_instance_to_index(uint32_t instance); - BACNET_STACK_EXPORT - const char * bacfile_file_type( - uint32_t object_instance); - BACNET_STACK_EXPORT - void bacfile_file_type_set( - uint32_t object_instance, - const char *mime_type); +BACNET_STACK_EXPORT +const char *bacfile_file_type(uint32_t object_instance); +BACNET_STACK_EXPORT +void bacfile_file_type_set(uint32_t object_instance, const char *mime_type); - BACNET_STACK_EXPORT - bool bacfile_archive( - uint32_t instance); - BACNET_STACK_EXPORT - bool bacfile_archive_set( - uint32_t instance, bool status); +BACNET_STACK_EXPORT +bool bacfile_archive(uint32_t instance); +BACNET_STACK_EXPORT +bool bacfile_archive_set(uint32_t instance, bool status); - BACNET_STACK_EXPORT - bool bacfile_read_only( - uint32_t instance); - BACNET_STACK_EXPORT - bool bacfile_read_only_set( - uint32_t object_instance, - bool read_only); +BACNET_STACK_EXPORT +bool bacfile_read_only(uint32_t instance); +BACNET_STACK_EXPORT +bool bacfile_read_only_set(uint32_t object_instance, bool read_only); - BACNET_STACK_EXPORT - bool bacfile_file_access_stream( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool bacfile_file_access_stream_set( - uint32_t object_instance, - bool access); +BACNET_STACK_EXPORT +bool bacfile_file_access_stream(uint32_t object_instance); +BACNET_STACK_EXPORT +bool bacfile_file_access_stream_set(uint32_t object_instance, bool access); - BACNET_STACK_EXPORT - BACNET_UNSIGNED_INTEGER bacfile_file_size( - uint32_t instance); - BACNET_STACK_EXPORT - bool bacfile_file_size_set( - uint32_t object_instance, - BACNET_UNSIGNED_INTEGER file_size); +BACNET_STACK_EXPORT +BACNET_UNSIGNED_INTEGER bacfile_file_size(uint32_t instance); +BACNET_STACK_EXPORT +bool bacfile_file_size_set( + uint32_t object_instance, BACNET_UNSIGNED_INTEGER file_size); - /* this is one way to match up the invoke ID with */ - /* the file ID from the AtomicReadFile request. */ - /* Another way would be to store the */ - /* invokeID and file instance in a list or table */ - /* when the request was sent */ - BACNET_STACK_EXPORT - uint32_t bacfile_instance_from_tsm( - uint8_t invokeID); +/* this is one way to match up the invoke ID with */ +/* the file ID from the AtomicReadFile request. */ +/* Another way would be to store the */ +/* invokeID and file instance in a list or table */ +/* when the request was sent */ +BACNET_STACK_EXPORT +uint32_t bacfile_instance_from_tsm(uint8_t invokeID); - /* handler ACK helper */ - BACNET_STACK_EXPORT - bool bacfile_read_stream_data( - BACNET_ATOMIC_READ_FILE_DATA * data); - BACNET_STACK_EXPORT - bool bacfile_read_ack_stream_data( - uint32_t instance, - const BACNET_ATOMIC_READ_FILE_DATA * data); - BACNET_STACK_EXPORT - bool bacfile_write_stream_data( - BACNET_ATOMIC_WRITE_FILE_DATA * data); - BACNET_STACK_EXPORT - bool bacfile_read_record_data( - BACNET_ATOMIC_READ_FILE_DATA * data); - BACNET_STACK_EXPORT - bool bacfile_read_ack_record_data( - uint32_t instance, - const BACNET_ATOMIC_READ_FILE_DATA * data); - BACNET_STACK_EXPORT - bool bacfile_write_record_data( - const BACNET_ATOMIC_WRITE_FILE_DATA * data); +/* handler ACK helper */ +BACNET_STACK_EXPORT +bool bacfile_read_stream_data(BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +bool bacfile_read_ack_stream_data( + uint32_t instance, const BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +bool bacfile_write_stream_data(BACNET_ATOMIC_WRITE_FILE_DATA *data); +BACNET_STACK_EXPORT +bool bacfile_read_record_data(BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +bool bacfile_read_ack_record_data( + uint32_t instance, const BACNET_ATOMIC_READ_FILE_DATA *data); +BACNET_STACK_EXPORT +bool bacfile_write_record_data(const BACNET_ATOMIC_WRITE_FILE_DATA *data); - /* handling for read property service */ - BACNET_STACK_EXPORT - int bacfile_read_property( - BACNET_READ_PROPERTY_DATA * rpdata); +/* handling for read property service */ +BACNET_STACK_EXPORT +int bacfile_read_property(BACNET_READ_PROPERTY_DATA *rpdata); - /* handling for write property service */ - BACNET_STACK_EXPORT - bool bacfile_write_property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +/* handling for write property service */ +BACNET_STACK_EXPORT +bool bacfile_write_property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - const char *bacfile_pathname( - uint32_t instance); - BACNET_STACK_EXPORT - void bacfile_pathname_set( - uint32_t instance, - const char *pathname); - BACNET_STACK_EXPORT - uint32_t bacfile_pathname_instance( - const char *pathname); +BACNET_STACK_EXPORT +const char *bacfile_pathname(uint32_t instance); +BACNET_STACK_EXPORT +void bacfile_pathname_set(uint32_t instance, const char *pathname); +BACNET_STACK_EXPORT +uint32_t bacfile_pathname_instance(const char *pathname); - BACNET_STACK_EXPORT - uint32_t bacfile_read( - uint32_t object_instance, - uint8_t *buffer, - uint32_t buffer_size); - BACNET_STACK_EXPORT - uint32_t bacfile_write( - uint32_t object_instance, - const uint8_t *buffer, - uint32_t buffer_size); - - BACNET_STACK_EXPORT - uint32_t bacfile_create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool bacfile_delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void bacfile_cleanup( - void); - BACNET_STACK_EXPORT - void bacfile_init( - void); +BACNET_STACK_EXPORT +uint32_t +bacfile_read(uint32_t object_instance, uint8_t *buffer, uint32_t buffer_size); +BACNET_STACK_EXPORT +uint32_t bacfile_write( + uint32_t object_instance, const uint8_t *buffer, uint32_t buffer_size); +BACNET_STACK_EXPORT +uint32_t bacfile_create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool bacfile_delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void bacfile_cleanup(void); +BACNET_STACK_EXPORT +void bacfile_init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/bi.c b/src/bacnet/basic/object/bi.c index cd0b1ffb..7f6eb389 100644 --- a/src/bacnet/basic/object/bi.c +++ b/src/bacnet/basic/object/bi.c @@ -1573,8 +1573,9 @@ int Binary_Input_Event_Information( false) | (pObject->Acked_Transitions[TRANSITION_TO_NORMAL].bIsAcked == false); - } else + } else { return -1; /* end of list */ + } if ((IsActiveEvent) || (IsNotAckedTransitions)) { /* Object Identifier */ @@ -1618,8 +1619,9 @@ int Binary_Input_Event_Information( pObject->Notification_Class, getevent_data->eventPriorities); return 1; /* active event */ - } else + } else { return 0; /* no active event at this index */ + } } int Binary_Input_Alarm_Ack( @@ -1759,10 +1761,12 @@ int Binary_Input_Alarm_Summary( &getalarm_data->acknowledgedTransitions, TRANSITION_TO_NORMAL, pObject->Acked_Transitions[TRANSITION_TO_NORMAL].bIsAcked); return 1; /* active alarm */ - } else + } else { return 0; /* no active alarm at this index */ - } else + } + } else { return -1; /* end of list */ + } } /** @@ -1935,10 +1939,11 @@ void Binary_Input_Intrinsic_Reporting(uint32_t object_instance) if ((PresentVal == pObject->Alarm_Value) && ((pObject->Event_Enable & EVENT_ENABLE_TO_OFFNORMAL) == EVENT_ENABLE_TO_OFFNORMAL)) { - if (!pObject->Remaining_Time_Delay) + if (!pObject->Remaining_Time_Delay) { pObject->Event_State = EVENT_STATE_OFFNORMAL; - else + } else { pObject->Remaining_Time_Delay--; + } break; } @@ -1955,10 +1960,11 @@ void Binary_Input_Intrinsic_Reporting(uint32_t object_instance) if ((PresentVal != pObject->Alarm_Value) && ((pObject->Event_Enable & EVENT_ENABLE_TO_NORMAL) == EVENT_ENABLE_TO_NORMAL)) { - if (!pObject->Remaining_Time_Delay) + if (!pObject->Remaining_Time_Delay) { pObject->Event_State = EVENT_STATE_NORMAL; - else + } else { pObject->Remaining_Time_Delay--; + } break; } @@ -2070,8 +2076,9 @@ void Binary_Input_Intrinsic_Reporting(uint32_t object_instance) /* filled before */ /* From State */ - if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) + if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) { event_data.fromState = FromState; + } /* To State */ event_data.toState = pObject->Event_State; diff --git a/src/bacnet/basic/object/bi.h b/src/bacnet/basic/object/bi.h index e5da481c..054944e6 100644 --- a/src/bacnet/basic/object/bi.h +++ b/src/bacnet/basic/object/bi.h @@ -32,221 +32,166 @@ * @param value - binary preset-value of the write */ typedef void (*binary_input_write_present_value_callback)( - uint32_t object_instance, BACNET_BINARY_PV old_value, + uint32_t object_instance, + BACNET_BINARY_PV old_value, BACNET_BINARY_PV value); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Binary_Input_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Binary_Input_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Binary_Input_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Binary_Input_Count( - void); - BACNET_STACK_EXPORT - uint32_t Binary_Input_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Binary_Input_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Input_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Input_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Binary_Input_Count(void); +BACNET_STACK_EXPORT +uint32_t Binary_Input_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Binary_Input_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Input_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Input_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Binary_Input_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Binary_Input_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Input_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Binary_Input_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Input_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - BACNET_BINARY_PV Binary_Input_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Present_Value_Set( - uint32_t object_instance, - BACNET_BINARY_PV value); +BACNET_STACK_EXPORT +BACNET_BINARY_PV Binary_Input_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Input_Present_Value_Set( + uint32_t object_instance, BACNET_BINARY_PV value); - BACNET_STACK_EXPORT - const char *Binary_Input_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Input_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Input_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Input_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Binary_Input_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Binary_Input_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Input_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - const char *Binary_Input_Inactive_Text( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Input_Inactive_Text_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Input_Inactive_Text(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Input_Inactive_Text_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - const char *Binary_Input_Active_Text( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Input_Active_Text_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Input_Active_Text(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Input_Active_Text_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - BACNET_POLARITY Binary_Input_Polarity( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Polarity_Set( - uint32_t object_instance, - BACNET_POLARITY polarity); +BACNET_STACK_EXPORT +BACNET_POLARITY Binary_Input_Polarity(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Input_Polarity_Set( + uint32_t object_instance, BACNET_POLARITY polarity); - BACNET_STACK_EXPORT - bool Binary_Input_Out_Of_Service( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Binary_Input_Out_Of_Service_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Binary_Input_Out_Of_Service(uint32_t object_instance); +BACNET_STACK_EXPORT +void Binary_Input_Out_Of_Service_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - unsigned Binary_Input_Event_State( - uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Binary_Input_Event_State(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - BACNET_STACK_EXPORT - bool Binary_Input_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Input_Change_Of_Value_Clear( - uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Input_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +BACNET_STACK_EXPORT +bool Binary_Input_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Input_Change_Of_Value_Clear(uint32_t instance); - BACNET_STACK_EXPORT - int Binary_Input_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Binary_Input_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); - BACNET_STACK_EXPORT - void Binary_Input_Write_Present_Value_Callback_Set( - binary_input_write_present_value_callback cb); +BACNET_STACK_EXPORT +int Binary_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Binary_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); +BACNET_STACK_EXPORT +void Binary_Input_Write_Present_Value_Callback_Set( + binary_input_write_present_value_callback cb); - BACNET_STACK_EXPORT - bool Binary_Input_Write_Enabled(uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Input_Write_Enable(uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Input_Write_Disable(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Input_Write_Enabled(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Input_Write_Enable(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Input_Write_Disable(uint32_t instance); - BACNET_STACK_EXPORT - uint32_t Binary_Input_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Binary_Input_Cleanup( - void); - BACNET_STACK_EXPORT - void Binary_Input_Init( - void); +BACNET_STACK_EXPORT +uint32_t Binary_Input_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Input_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Binary_Input_Cleanup(void); +BACNET_STACK_EXPORT +void Binary_Input_Init(void); #if defined(INTRINSIC_REPORTING) && (BINARY_INPUT_INTRINSIC_REPORTING) - BACNET_STACK_EXPORT - bool Binary_Input_Event_Detection_Enable( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Event_Detection_Enable_Set( - uint32_t object_instance, bool value); +BACNET_STACK_EXPORT +bool Binary_Input_Event_Detection_Enable(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Input_Event_Detection_Enable_Set( + uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - int Binary_Input_Event_Information( - unsigned index, - BACNET_GET_EVENT_INFORMATION_DATA * getevent_data); +BACNET_STACK_EXPORT +int Binary_Input_Event_Information( + unsigned index, BACNET_GET_EVENT_INFORMATION_DATA *getevent_data); - BACNET_STACK_EXPORT - int Binary_Input_Alarm_Ack( - BACNET_ALARM_ACK_DATA * alarmack_data, - BACNET_ERROR_CODE * error_code); +BACNET_STACK_EXPORT +int Binary_Input_Alarm_Ack( + BACNET_ALARM_ACK_DATA *alarmack_data, BACNET_ERROR_CODE *error_code); - BACNET_STACK_EXPORT - int Binary_Input_Alarm_Summary( - unsigned index, - BACNET_GET_ALARM_SUMMARY_DATA * getalarm_data); +BACNET_STACK_EXPORT +int Binary_Input_Alarm_Summary( + unsigned index, BACNET_GET_ALARM_SUMMARY_DATA *getalarm_data); - BACNET_STACK_EXPORT - uint32_t Binary_Input_Time_Delay( - uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t Binary_Input_Time_Delay(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Time_Delay_Set( - uint32_t object_instance, - uint32_t time_delay); +BACNET_STACK_EXPORT +bool Binary_Input_Time_Delay_Set(uint32_t object_instance, uint32_t time_delay); - BACNET_STACK_EXPORT - uint32_t Binary_Input_Notification_Class( - uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t Binary_Input_Notification_Class(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Notification_Class_Set( - uint32_t object_instance, - uint32_t notification_class); +BACNET_STACK_EXPORT +bool Binary_Input_Notification_Class_Set( + uint32_t object_instance, uint32_t notification_class); - BACNET_STACK_EXPORT - BACNET_BINARY_PV Binary_Input_Alarm_Value( - uint32_t object_instance); +BACNET_STACK_EXPORT +BACNET_BINARY_PV Binary_Input_Alarm_Value(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Alarm_Value_Set( - uint32_t object_instance, BACNET_BINARY_PV value); +BACNET_STACK_EXPORT +bool Binary_Input_Alarm_Value_Set( + uint32_t object_instance, BACNET_BINARY_PV value); - BACNET_STACK_EXPORT - uint32_t Binary_Input_Event_Enable( - uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t Binary_Input_Event_Enable(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Event_Enable_Set( - uint32_t object_instance, - uint32_t event_enable); +BACNET_STACK_EXPORT +bool Binary_Input_Event_Enable_Set( + uint32_t object_instance, uint32_t event_enable); - BACNET_STACK_EXPORT - BACNET_NOTIFY_TYPE Binary_Input_Notify_Type( - uint32_t object_instance); +BACNET_STACK_EXPORT +BACNET_NOTIFY_TYPE Binary_Input_Notify_Type(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Input_Notify_Type_Set( - uint32_t object_instance, - BACNET_NOTIFY_TYPE notify_type); +BACNET_STACK_EXPORT +bool Binary_Input_Notify_Type_Set( + uint32_t object_instance, BACNET_NOTIFY_TYPE notify_type); #endif - BACNET_STACK_EXPORT - void Binary_Input_Intrinsic_Reporting( - uint32_t object_instance); - - +BACNET_STACK_EXPORT +void Binary_Input_Intrinsic_Reporting(uint32_t object_instance); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/bitstring_value.c b/src/bacnet/basic/object/bitstring_value.c index 76d9d692..acbb6342 100644 --- a/src/bacnet/basic/object/bitstring_value.c +++ b/src/bacnet/basic/object/bitstring_value.c @@ -41,12 +41,14 @@ static bitstring_value_write_present_value_callback BitString_Value_Write_Present_Value_Callback; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; static const int Properties_Optional[] = { PROP_RELIABILITY, - PROP_OUT_OF_SERVICE, PROP_DESCRIPTION, -1 }; + PROP_OUT_OF_SERVICE, + PROP_DESCRIPTION, -1 }; static const int Properties_Proprietary[] = { -1 }; @@ -265,8 +267,7 @@ bool BitString_Value_Out_Of_Service(uint32_t object_instance) * @param object_instance - object-instance number of the object * @param true/false */ -void BitString_Value_Out_Of_Service_Set( - uint32_t object_instance, bool value) +void BitString_Value_Out_Of_Service_Set(uint32_t object_instance, bool value) { struct object_data *pObject; @@ -286,8 +287,7 @@ void BitString_Value_Out_Of_Service_Set( * @param object_instance - object-instance number of the object * @return BACNET_RELIABILITY value */ -BACNET_RELIABILITY BitString_Value_Reliablity( - uint32_t object_instance) +BACNET_RELIABILITY BitString_Value_Reliablity(uint32_t object_instance) { BACNET_RELIABILITY value = RELIABILITY_NO_FAULT_DETECTED; struct object_data *pObject; @@ -298,7 +298,6 @@ BACNET_RELIABILITY BitString_Value_Reliablity( } return value; - } /** @@ -411,8 +410,8 @@ bool BitString_Value_Encode_Value_List( pObject = BitString_Value_Object(object_instance); if (pObject) { - status = cov_value_list_encode_bit_string(value_list, - &pObject->Present_Value, in_alarm, fault, overridden, + status = cov_value_list_encode_bit_string( + value_list, &pObject->Present_Value, in_alarm, fault, overridden, pObject->Out_Of_Service); } @@ -442,7 +441,8 @@ bool BitString_Value_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "BITSTRING_VALUE-%u", + snprintf( + name_text, sizeof(name_text), "BITSTRING_VALUE-%u", object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -562,8 +562,8 @@ int BitString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu = rpdata->application_data; switch (rpdata->object_property) { case PROP_OBJECT_IDENTIFIER: - apdu_len = encode_application_object_id(&apdu[0], - OBJECT_BITSTRING_VALUE, rpdata->object_instance); + apdu_len = encode_application_object_id( + &apdu[0], OBJECT_BITSTRING_VALUE, rpdata->object_instance); break; case PROP_OBJECT_NAME: if (BitString_Value_Object_Name( @@ -574,13 +574,13 @@ int BitString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_DESCRIPTION: characterstring_init_ansi( - &char_string, BitString_Value_Description( - rpdata->object_instance)); + &char_string, + BitString_Value_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(apdu, &char_string); break; case PROP_OBJECT_TYPE: - apdu_len = encode_application_enumerated( - &apdu[0], OBJECT_BITSTRING_VALUE); + apdu_len = + encode_application_enumerated(&apdu[0], OBJECT_BITSTRING_VALUE); break; case PROP_PRESENT_VALUE: BitString_Value_Present_Value(rpdata->object_instance, &bit_string); @@ -602,9 +602,8 @@ int BitString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_boolean(&apdu[0], state); break; case PROP_RELIABILITY: - apdu_len = - encode_application_enumerated(&apdu[0], - BitString_Value_Reliablity(rpdata->object_instance)); + apdu_len = encode_application_enumerated( + &apdu[0], BitString_Value_Reliablity(rpdata->object_instance)); break; default: rpdata->error_class = ERROR_CLASS_PROPERTY; @@ -684,8 +683,8 @@ bool BitString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; default: if (property_lists_member( - Properties_Required, Properties_Optional, - Properties_Proprietary, wp_data->object_property)) { + Properties_Required, Properties_Optional, + Properties_Proprietary, wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; } else { diff --git a/src/bacnet/basic/object/bitstring_value.h b/src/bacnet/basic/object/bitstring_value.h index e9721f12..e15c64f8 100644 --- a/src/bacnet/basic/object/bitstring_value.h +++ b/src/bacnet/basic/object/bitstring_value.h @@ -33,113 +33,89 @@ typedef void (*bitstring_value_write_present_value_callback)( #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void BitString_Value_Write_Present_Value_Callback_Set( - bitstring_value_write_present_value_callback cb); +BACNET_STACK_EXPORT +void BitString_Value_Write_Present_Value_Callback_Set( + bitstring_value_write_present_value_callback cb); - BACNET_STACK_EXPORT - void BitString_Value_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void BitString_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool BitString_Value_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned BitString_Value_Count( - void); - BACNET_STACK_EXPORT - uint32_t BitString_Value_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned BitString_Value_Instance_To_Index( - uint32_t instance); +BACNET_STACK_EXPORT +bool BitString_Value_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned BitString_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t BitString_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned BitString_Value_Instance_To_Index(uint32_t instance); - BACNET_STACK_EXPORT - int BitString_Value_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int BitString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool BitString_Value_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool BitString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - /* optional API */ - BACNET_STACK_EXPORT - bool BitString_Value_Object_Instance_Add( - uint32_t instance); +/* optional API */ +BACNET_STACK_EXPORT +bool BitString_Value_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool BitString_Value_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool BitString_Value_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *BitString_Value_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool BitString_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool BitString_Value_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *BitString_Value_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - bool BitString_Value_Present_Value( - uint32_t object_instance, - BACNET_BIT_STRING * value); - BACNET_STACK_EXPORT - bool BitString_Value_Present_Value_Set( - uint32_t object_instance, - const BACNET_BIT_STRING * value); +BACNET_STACK_EXPORT +bool BitString_Value_Present_Value( + uint32_t object_instance, BACNET_BIT_STRING *value); +BACNET_STACK_EXPORT +bool BitString_Value_Present_Value_Set( + uint32_t object_instance, const BACNET_BIT_STRING *value); - BACNET_STACK_EXPORT - const char *BitString_Value_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool BitString_Value_Description_Set( - uint32_t object_instance, - const char *text_string); +BACNET_STACK_EXPORT +const char *BitString_Value_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool BitString_Value_Description_Set( + uint32_t object_instance, const char *text_string); - BACNET_STACK_EXPORT - bool BitString_Value_Out_Of_Service( - uint32_t object_instance); - BACNET_STACK_EXPORT - void BitString_Value_Out_Of_Service_Set( - uint32_t object_instance, bool value); +BACNET_STACK_EXPORT +bool BitString_Value_Out_Of_Service(uint32_t object_instance); +BACNET_STACK_EXPORT +void BitString_Value_Out_Of_Service_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - BACNET_RELIABILITY BitString_Value_Reliablity( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool BitString_Value_Reliablity_Set( - uint32_t object_instance, BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY BitString_Value_Reliablity(uint32_t object_instance); +BACNET_STACK_EXPORT +bool BitString_Value_Reliablity_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - bool BitString_Value_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void BitString_Value_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool BitString_Value_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +bool BitString_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void BitString_Value_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool BitString_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - bool BitString_Value_Write_Enabled(uint32_t instance); - BACNET_STACK_EXPORT - void BitString_Value_Write_Enable(uint32_t instance); - BACNET_STACK_EXPORT - void BitString_Value_Write_Disable(uint32_t instance); +BACNET_STACK_EXPORT +bool BitString_Value_Write_Enabled(uint32_t instance); +BACNET_STACK_EXPORT +void BitString_Value_Write_Enable(uint32_t instance); +BACNET_STACK_EXPORT +void BitString_Value_Write_Disable(uint32_t instance); - BACNET_STACK_EXPORT - uint32_t BitString_Value_Create(uint32_t object_instance); - BACNET_STACK_EXPORT - bool BitString_Value_Delete(uint32_t object_instance); - BACNET_STACK_EXPORT - void BitString_Value_Cleanup(void); +BACNET_STACK_EXPORT +uint32_t BitString_Value_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool BitString_Value_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void BitString_Value_Cleanup(void); - BACNET_STACK_EXPORT - void BitString_Value_Init( - void); +BACNET_STACK_EXPORT +void BitString_Value_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/blo.c b/src/bacnet/basic/object/blo.c index a0e4e814..a3e298be 100644 --- a/src/bacnet/basic/object/blo.c +++ b/src/bacnet/basic/object/blo.c @@ -61,10 +61,17 @@ static binary_lighting_output_blink_warn_callback /* These arrays are used by the ReadPropertyMultiple handler and property-list property (as of protocol-revision 14) */ static const int Binary_Lighting_Output_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_OUT_OF_SERVICE, - PROP_BLINK_WARN_ENABLE, PROP_EGRESS_TIME, PROP_EGRESS_ACTIVE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_OUT_OF_SERVICE, + PROP_BLINK_WARN_ENABLE, + PROP_EGRESS_TIME, + PROP_EGRESS_ACTIVE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, #if (BACNET_PROTOCOL_REVISION >= 17) PROP_CURRENT_COMMAND_PRIORITY, #endif @@ -216,8 +223,8 @@ static BACNET_BINARY_LIGHTING_PV Priority_Array_Next_Value( * * @return present-value of the object */ -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Present_Value( - uint32_t object_instance) +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Present_Value(uint32_t object_instance) { BACNET_BINARY_LIGHTING_PV value = BINARY_LIGHTING_PV_OFF; struct object_data *pObject; @@ -314,8 +321,8 @@ static unsigned Present_Value_Priority(const struct object_data *pObject) * * @return true if values are within range and present-value is set. */ -static bool Present_Value_Relinquish( - struct object_data *pObject, unsigned priority) +static bool +Present_Value_Relinquish(struct object_data *pObject, unsigned priority) { bool status = false; @@ -340,7 +347,8 @@ static bool Present_Value_Relinquish( * * @return true if values are within range and present-value is set. */ -static bool Present_Value_Set(struct object_data *pObject, +static bool Present_Value_Set( + struct object_data *pObject, BACNET_BINARY_LIGHTING_PV value, unsigned priority) { @@ -391,7 +399,8 @@ unsigned Binary_Lighting_Output_Present_Value_Priority(uint32_t object_instance) * * @return true if values are within range and present-value is set. */ -bool Binary_Lighting_Output_Present_Value_Set(uint32_t object_instance, +bool Binary_Lighting_Output_Present_Value_Set( + uint32_t object_instance, BACNET_BINARY_LIGHTING_PV value, unsigned priority) { @@ -426,8 +435,9 @@ static void Present_Value_On_Off_Handler(uint32_t object_instance) if (pObject->Feedback_Value != pObject->Target_Value) { if ((!pObject->Out_Of_Service) && (Binary_Lighting_Output_Write_Value_Callback)) { - Binary_Lighting_Output_Write_Value_Callback(object_instance, - pObject->Feedback_Value, pObject->Target_Value); + Binary_Lighting_Output_Write_Value_Callback( + object_instance, pObject->Feedback_Value, + pObject->Target_Value); } pObject->Feedback_Value = pObject->Target_Value; } @@ -563,8 +573,7 @@ static void Present_Value_Warn_Handler(uint32_t object_instance) pObject->Target_Value = BINARY_LIGHTING_PV_ON; } else if (pObject->Target_Value == BINARY_LIGHTING_PV_WARN_OFF) { pObject->Target_Value = BINARY_LIGHTING_PV_OFF; - } else if (pObject->Target_Value == - BINARY_LIGHTING_PV_WARN_RELINQUISH) { + } else if (pObject->Target_Value == BINARY_LIGHTING_PV_WARN_RELINQUISH) { pObject->Target_Value = BINARY_LIGHTING_PV_OFF; } } @@ -629,7 +638,8 @@ void Binary_Lighting_Output_Timer( * * @return true if values are within range and present-value is set. */ -static bool Binary_Lighting_Output_Present_Value_Write(uint32_t object_instance, +static bool Binary_Lighting_Output_Present_Value_Write( + uint32_t object_instance, BACNET_BINARY_LIGHTING_PV value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -656,7 +666,8 @@ static bool Binary_Lighting_Output_Present_Value_Write(uint32_t object_instance, Present_Value_On_Off_Handler(object_instance); } status = true; - } else if ((value >= BINARY_LIGHTING_PV_PROPRIETARY_MIN) && + } else if ( + (value >= BINARY_LIGHTING_PV_PROPRIETARY_MIN) && (value <= BINARY_LIGHTING_PV_PROPRIETARY_MAX)) { pObject->Target_Priority = priority; pObject->Target_Value = value; @@ -770,7 +781,8 @@ bool Binary_Lighting_Output_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "BINARY-LIGHTING-OUTPUT-%u", + snprintf( + name_text, sizeof(name_text), "BINARY-LIGHTING-OUTPUT-%u", object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -876,7 +888,8 @@ bool Binary_Lighting_Output_Description_Set( * * @return true if lighting target value was set */ -bool Binary_Lighting_Output_Lighting_Command_Set(uint32_t object_instance, +bool Binary_Lighting_Output_Lighting_Command_Set( + uint32_t object_instance, BACNET_BINARY_LIGHTING_PV value, unsigned priority) { @@ -898,8 +911,8 @@ bool Binary_Lighting_Output_Lighting_Command_Set(uint32_t object_instance, * @param object_instance - object-instance number of the object * @return lighting command target value */ -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Lighting_Command_Target_Value( - uint32_t object_instance) +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Lighting_Command_Target_Value(uint32_t object_instance) { BACNET_BINARY_LIGHTING_PV value = BINARY_LIGHTING_PV_OFF; struct object_data *pObject; @@ -939,8 +952,8 @@ unsigned Binary_Lighting_Output_Lighting_Command_Target_Priority( * * @return the tracking-value of this object instance. */ -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Feedback_Value( - uint32_t object_instance) +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Feedback_Value(uint32_t object_instance) { BACNET_BINARY_LIGHTING_PV value = BINARY_LIGHTING_PV_OFF; struct object_data *pObject; @@ -1142,8 +1155,8 @@ void Binary_Lighting_Output_Out_Of_Service_Set( * * @return relinquish-default property value */ -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Relinquish_Default( - uint32_t object_instance) +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Relinquish_Default(uint32_t object_instance) { BACNET_BINARY_LIGHTING_PV value = BINARY_LIGHTING_PV_OFF; struct object_data *pObject; @@ -1310,8 +1323,8 @@ int Binary_Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_boolean(&apdu[0], state); break; case PROP_PRIORITY_ARRAY: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, Binary_Lighting_Output_Priority_Array_Encode, BACNET_MAX_PRIORITY, apdu, apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { @@ -1339,7 +1352,8 @@ int Binary_Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; #endif case PROP_DESCRIPTION: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Binary_Lighting_Output_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); diff --git a/src/bacnet/basic/object/blo.h b/src/bacnet/basic/object/blo.h index 527283c8..22f0146e 100644 --- a/src/bacnet/basic/object/blo.h +++ b/src/bacnet/basic/object/blo.h @@ -53,13 +53,14 @@ BACNET_STACK_EXPORT bool Binary_Lighting_Output_Object_Instance_Add(uint32_t instance); BACNET_STACK_EXPORT -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Present_Value( - uint32_t object_instance); +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Present_Value(uint32_t object_instance); BACNET_STACK_EXPORT -unsigned Binary_Lighting_Output_Present_Value_Priority( - uint32_t object_instance); +unsigned +Binary_Lighting_Output_Present_Value_Priority(uint32_t object_instance); BACNET_STACK_EXPORT -bool Binary_Lighting_Output_Present_Value_Set(uint32_t object_instance, +bool Binary_Lighting_Output_Present_Value_Set( + uint32_t object_instance, BACNET_BINARY_LIGHTING_PV value, unsigned priority); BACNET_STACK_EXPORT @@ -67,15 +68,14 @@ bool Binary_Lighting_Output_Present_Value_Relinquish( uint32_t object_instance, unsigned priority); BACNET_STACK_EXPORT -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Relinquish_Default( - uint32_t object_instance); +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Relinquish_Default(uint32_t object_instance); BACNET_STACK_EXPORT bool Binary_Lighting_Output_Relinquish_Default_Set( uint32_t object_instance, BACNET_BINARY_LIGHTING_PV value); BACNET_STACK_EXPORT -BACNET_RELIABILITY Binary_Lighting_Output_Reliability( - uint32_t object_instance); +BACNET_RELIABILITY Binary_Lighting_Output_Reliability(uint32_t object_instance); BACNET_STACK_EXPORT bool Binary_Lighting_Output_Reliability_Set( uint32_t object_instance, BACNET_RELIABILITY value); @@ -102,18 +102,20 @@ void Binary_Lighting_Output_Out_Of_Service_Set( uint32_t instance, bool oos_flag); BACNET_STACK_EXPORT -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Lighting_Command_Target_Value( - uint32_t object_instance); +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Lighting_Command_Target_Value(uint32_t object_instance); BACNET_STACK_EXPORT unsigned Binary_Lighting_Output_Lighting_Command_Target_Priority( uint32_t object_instance); BACNET_STACK_EXPORT bool Binary_Lighting_Output_Lighting_Command_Set( - uint32_t object_instance, BACNET_BINARY_LIGHTING_PV value, unsigned priority); + uint32_t object_instance, + BACNET_BINARY_LIGHTING_PV value, + unsigned priority); BACNET_STACK_EXPORT -BACNET_BINARY_LIGHTING_PV Binary_Lighting_Output_Feedback_Value( - uint32_t object_instance); +BACNET_BINARY_LIGHTING_PV +Binary_Lighting_Output_Feedback_Value(uint32_t object_instance); BACNET_STACK_EXPORT bool Binary_Lighting_Output_Feedback_Value_Set( uint32_t object_instance, BACNET_BINARY_LIGHTING_PV value); diff --git a/src/bacnet/basic/object/bo.c b/src/bacnet/basic/object/bo.c index 66088515..323aaeef 100644 --- a/src/bacnet/basic/object/bo.c +++ b/src/bacnet/basic/object/bo.c @@ -57,16 +57,23 @@ static binary_output_write_present_value_callback /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_POLARITY, PROP_PRIORITY_ARRAY, - PROP_RELINQUISH_DEFAULT, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_POLARITY, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, #if (BACNET_PROTOCOL_REVISION >= 17) - PROP_CURRENT_COMMAND_PRIORITY, + PROP_CURRENT_COMMAND_PRIORITY, #endif - -1 }; + -1 }; -static const int Properties_Optional[] = { PROP_RELIABILITY, - PROP_DESCRIPTION, PROP_ACTIVE_TEXT, PROP_INACTIVE_TEXT, -1 }; +static const int Properties_Optional[] = { PROP_RELIABILITY, PROP_DESCRIPTION, + PROP_ACTIVE_TEXT, PROP_INACTIVE_TEXT, + -1 }; static const int Properties_Proprietary[] = { -1 }; @@ -162,8 +169,7 @@ unsigned Binary_Output_Instance_To_Index(uint32_t object_instance) * @param pObject - pointer to the object data * @return The present-value of the object */ -static BACNET_BINARY_PV Object_Present_Value( - struct object_data *pObject) +static BACNET_BINARY_PV Object_Present_Value(struct object_data *pObject) { BACNET_BINARY_PV value = BINARY_INACTIVE; unsigned p = 0; @@ -352,7 +358,8 @@ bool Binary_Output_Present_Value_Relinquish( * @param error_code - BACnet Error code * @return true if values are within range and present-value is set. */ -static bool Binary_Output_Present_Value_Write(uint32_t object_instance, +static bool Binary_Output_Present_Value_Write( + uint32_t object_instance, BACNET_BINARY_PV value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -519,7 +526,8 @@ bool Binary_Output_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "BINARY OUTPUT %lu", + snprintf( + name_text, sizeof(name_text), "BINARY OUTPUT %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -942,14 +950,13 @@ bool Binary_Output_Encode_Value_List( const bool overridden = false; BACNET_BINARY_PV value; - pObject = Keylist_Data(Object_List, object_instance); if (pObject) { fault = Binary_Output_Object_Fault(pObject); value = Object_Present_Value(pObject); - status = - cov_value_list_encode_enumerated(value_list, value, - in_alarm, fault, overridden, pObject->Out_Of_Service); + status = cov_value_list_encode_enumerated( + value_list, value, in_alarm, fault, overridden, + pObject->Out_Of_Service); } return status; } @@ -1028,9 +1035,10 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_enumerated(&apdu[0], polarity); break; case PROP_PRIORITY_ARRAY: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Binary_Output_Priority_Array_Encode, - BACNET_MAX_PRIORITY, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Binary_Output_Priority_Array_Encode, BACNET_MAX_PRIORITY, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -1045,19 +1053,22 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_enumerated(&apdu[0], present_value); break; case PROP_DESCRIPTION: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Binary_Output_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); break; case PROP_ACTIVE_TEXT: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Binary_Output_Active_Text(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); break; case PROP_INACTIVE_TEXT: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Binary_Output_Inactive_Text(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); @@ -1126,10 +1137,10 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { - status = - Binary_Output_Present_Value_Write(wp_data->object_instance, - value.type.Enumerated, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Binary_Output_Present_Value_Write( + wp_data->object_instance, value.type.Enumerated, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } else { status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_NULL); @@ -1149,7 +1160,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; default: - if (property_lists_member(Properties_Required, Properties_Optional, + if (property_lists_member( + Properties_Required, Properties_Optional, Properties_Proprietary, wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; diff --git a/src/bacnet/basic/object/bo.h b/src/bacnet/basic/object/bo.h index 6422d102..25fb75f3 100644 --- a/src/bacnet/basic/object/bo.h +++ b/src/bacnet/basic/object/bo.h @@ -26,152 +26,112 @@ * @param value - binary preset-value of the write */ typedef void (*binary_output_write_present_value_callback)( - uint32_t object_instance, BACNET_BINARY_PV old_value, + uint32_t object_instance, + BACNET_BINARY_PV old_value, BACNET_BINARY_PV value); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Binary_Output_Init( - void); +BACNET_STACK_EXPORT +void Binary_Output_Init(void); - BACNET_STACK_EXPORT - void Binary_Output_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Binary_Output_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Binary_Output_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Binary_Output_Count( - void); - BACNET_STACK_EXPORT - uint32_t Binary_Output_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Binary_Output_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Output_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Binary_Output_Count(void); +BACNET_STACK_EXPORT +uint32_t Binary_Output_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Binary_Output_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Output_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Binary_Output_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Binary_Output_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Output_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Binary_Output_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Output_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - const char *Binary_Output_Inactive_Text( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Output_Inactive_Text_Set( - uint32_t instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Binary_Output_Active_Text( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Output_Active_Text_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Output_Inactive_Text(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Inactive_Text_Set(uint32_t instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Output_Active_Text(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Active_Text_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - BACNET_BINARY_PV Binary_Output_Present_Value( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Output_Present_Value_Set( - uint32_t instance, - BACNET_BINARY_PV binary_value, - unsigned priority); - BACNET_STACK_EXPORT - bool Binary_Output_Present_Value_Relinquish( - uint32_t instance, - unsigned priority); - BACNET_STACK_EXPORT - unsigned Binary_Output_Present_Value_Priority( - uint32_t object_instance); +BACNET_STACK_EXPORT +BACNET_BINARY_PV Binary_Output_Present_Value(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Present_Value_Set( + uint32_t instance, BACNET_BINARY_PV binary_value, unsigned priority); +BACNET_STACK_EXPORT +bool Binary_Output_Present_Value_Relinquish( + uint32_t instance, unsigned priority); +BACNET_STACK_EXPORT +unsigned Binary_Output_Present_Value_Priority(uint32_t object_instance); - BACNET_STACK_EXPORT - void Binary_Output_Write_Present_Value_Callback_Set( - binary_output_write_present_value_callback cb); +BACNET_STACK_EXPORT +void Binary_Output_Write_Present_Value_Callback_Set( + binary_output_write_present_value_callback cb); - BACNET_STACK_EXPORT - bool Binary_Output_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Output_Out_Of_Service_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Binary_Output_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Output_Out_Of_Service_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - const char *Binary_Output_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Output_Description_Set( - uint32_t object_instance, - const char *text_string); +BACNET_STACK_EXPORT +const char *Binary_Output_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Description_Set( + uint32_t object_instance, const char *text_string); - BACNET_STACK_EXPORT - BACNET_POLARITY Binary_Output_Polarity( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Output_Polarity_Set( - uint32_t object_instance, - BACNET_POLARITY polarity); +BACNET_STACK_EXPORT +BACNET_POLARITY Binary_Output_Polarity(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Polarity_Set( + uint32_t object_instance, BACNET_POLARITY polarity); - BACNET_STACK_EXPORT - bool Binary_Output_Reliability_Set( - uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Binary_Output_Reliability( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Output_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Binary_Output_Reliability(uint32_t object_instance); - BACNET_STACK_EXPORT - BACNET_BINARY_PV Binary_Output_Relinquish_Default( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Output_Relinquish_Default_Set( - uint32_t object_instance, - BACNET_BINARY_PV value); +BACNET_STACK_EXPORT +BACNET_BINARY_PV Binary_Output_Relinquish_Default(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Output_Relinquish_Default_Set( + uint32_t object_instance, BACNET_BINARY_PV value); - BACNET_STACK_EXPORT - bool Binary_Output_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - BACNET_STACK_EXPORT - bool Binary_Output_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Output_Change_Of_Value_Clear( - uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Output_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +BACNET_STACK_EXPORT +bool Binary_Output_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Output_Change_Of_Value_Clear(uint32_t instance); - BACNET_STACK_EXPORT - int Binary_Output_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Binary_Output_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - uint32_t Binary_Output_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Output_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Binary_Output_Cleanup( - void); +BACNET_STACK_EXPORT +uint32_t Binary_Output_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Output_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Binary_Output_Cleanup(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/bv.c b/src/bacnet/basic/object/bv.c index d0ec9f98..0ba1bec6 100644 --- a/src/bacnet/basic/object/bv.c +++ b/src/bacnet/basic/object/bv.c @@ -1588,8 +1588,9 @@ int Binary_Value_Event_Information( false) | (pObject->Acked_Transitions[TRANSITION_TO_NORMAL].bIsAcked == false); - } else + } else { return -1; /* end of list */ + } if ((IsActiveEvent) || (IsNotAckedTransitions)) { /* Object Identifier */ @@ -1633,8 +1634,9 @@ int Binary_Value_Event_Information( pObject->Notification_Class, getevent_data->eventPriorities); return 1; /* active event */ - } else + } else { return 0; /* no active event at this index */ + } } int Binary_Value_Alarm_Ack( @@ -1774,10 +1776,12 @@ int Binary_Value_Alarm_Summary( &getalarm_data->acknowledgedTransitions, TRANSITION_TO_NORMAL, pObject->Acked_Transitions[TRANSITION_TO_NORMAL].bIsAcked); return 1; /* active alarm */ - } else + } else { return 0; /* no active alarm at this index */ - } else + } + } else { return -1; /* end of list */ + } } /** @@ -1958,10 +1962,11 @@ void Binary_Value_Intrinsic_Reporting(uint32_t object_instance) if ((PresentVal == pObject->Alarm_Value) && ((pObject->Event_Enable & EVENT_ENABLE_TO_OFFNORMAL) == EVENT_ENABLE_TO_OFFNORMAL)) { - if (!pObject->Remaining_Time_Delay) + if (!pObject->Remaining_Time_Delay) { pObject->Event_State = EVENT_STATE_OFFNORMAL; - else + } else { pObject->Remaining_Time_Delay--; + } break; } @@ -1978,10 +1983,11 @@ void Binary_Value_Intrinsic_Reporting(uint32_t object_instance) if ((PresentVal != pObject->Alarm_Value) && ((pObject->Event_Enable & EVENT_ENABLE_TO_NORMAL) == EVENT_ENABLE_TO_NORMAL)) { - if (!pObject->Remaining_Time_Delay) + if (!pObject->Remaining_Time_Delay) { pObject->Event_State = EVENT_STATE_NORMAL; - else + } else { pObject->Remaining_Time_Delay--; + } break; } @@ -2093,8 +2099,9 @@ void Binary_Value_Intrinsic_Reporting(uint32_t object_instance) /* filled before */ /* From State */ - if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) + if (event_data.notifyType != NOTIFY_ACK_NOTIFICATION) { event_data.fromState = FromState; + } /* To State */ event_data.toState = pObject->Event_State; diff --git a/src/bacnet/basic/object/bv.h b/src/bacnet/basic/object/bv.h index d25dc761..811e6f4e 100644 --- a/src/bacnet/basic/object/bv.h +++ b/src/bacnet/basic/object/bv.h @@ -31,219 +31,166 @@ * @param value - binary preset-value of the write */ typedef void (*binary_value_write_present_value_callback)( - uint32_t object_instance, BACNET_BINARY_PV old_value, + uint32_t object_instance, + BACNET_BINARY_PV old_value, BACNET_BINARY_PV value); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Binary_Value_Init( - void); +BACNET_STACK_EXPORT +void Binary_Value_Init(void); - BACNET_STACK_EXPORT - void Binary_Value_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Binary_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Binary_Value_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Binary_Value_Count( - void); - BACNET_STACK_EXPORT - uint32_t Binary_Value_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Binary_Value_Instance_To_Index( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Binary_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t Binary_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Binary_Value_Instance_To_Index(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Value_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Value_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Binary_Value_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Binary_Value_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Binary_Value_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Value_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Binary_Value_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Binary_Value_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Value_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - int Binary_Value_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Binary_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Binary_Value_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool Binary_Value_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - BACNET_STACK_EXPORT - bool Binary_Value_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Value_Change_Of_Value_Clear( - uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +BACNET_STACK_EXPORT +bool Binary_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Value_Change_Of_Value_Clear(uint32_t instance); - BACNET_STACK_EXPORT - BACNET_BINARY_PV Binary_Value_Present_Value( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Value_Present_Value_Set( - uint32_t instance, - BACNET_BINARY_PV value); - BACNET_STACK_EXPORT - void Binary_Value_Write_Present_Value_Callback_Set( - binary_value_write_present_value_callback cb); +BACNET_STACK_EXPORT +BACNET_BINARY_PV Binary_Value_Present_Value(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Present_Value_Set(uint32_t instance, BACNET_BINARY_PV value); +BACNET_STACK_EXPORT +void Binary_Value_Write_Present_Value_Callback_Set( + binary_value_write_present_value_callback cb); - BACNET_STACK_EXPORT - bool Binary_Value_Write_Enabled(uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Value_Write_Enable(uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Value_Write_Disable(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Write_Enabled(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Value_Write_Enable(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Value_Write_Disable(uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Value_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Binary_Value_Out_Of_Service_Set( - uint32_t instance, - bool value); +BACNET_STACK_EXPORT +bool Binary_Value_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Binary_Value_Out_Of_Service_Set(uint32_t instance, bool value); - BACNET_STACK_EXPORT - const char *Binary_Value_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Value_Description_Set( - uint32_t object_instance, - const char *text_string); +BACNET_STACK_EXPORT +const char *Binary_Value_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Description_Set( + uint32_t object_instance, const char *text_string); - BACNET_STACK_EXPORT - const char *Binary_Value_Inactive_Text( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Value_Inactive_Text_Set( - uint32_t instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Binary_Value_Active_Text( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Value_Active_Text_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Value_Inactive_Text(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Inactive_Text_Set(uint32_t instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Binary_Value_Active_Text(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Active_Text_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - BACNET_POLARITY Binary_Value_Polarity( - uint32_t instance); - BACNET_STACK_EXPORT - bool Binary_Value_Polarity_Set( - uint32_t object_instance, - BACNET_POLARITY polarity); - BACNET_STACK_EXPORT - uint32_t Binary_Value_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Binary_Value_Cleanup( - void); +BACNET_STACK_EXPORT +BACNET_POLARITY Binary_Value_Polarity(uint32_t instance); +BACNET_STACK_EXPORT +bool Binary_Value_Polarity_Set( + uint32_t object_instance, BACNET_POLARITY polarity); +BACNET_STACK_EXPORT +uint32_t Binary_Value_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Value_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Binary_Value_Cleanup(void); - BACNET_STACK_EXPORT - unsigned Binary_Value_Event_State( - uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Binary_Value_Event_State(uint32_t object_instance); #if defined(INTRINSIC_REPORTING) && (BINARY_VALUE_INTRINSIC_REPORTING) - BACNET_STACK_EXPORT - bool Binary_Value_Event_Detection_Enable( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Event_Detection_Enable_Set( - uint32_t object_instance, bool value); +BACNET_STACK_EXPORT +bool Binary_Value_Event_Detection_Enable(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Binary_Value_Event_Detection_Enable_Set( + uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - int Binary_Value_Event_Information( - unsigned index, - BACNET_GET_EVENT_INFORMATION_DATA * getevent_data); +BACNET_STACK_EXPORT +int Binary_Value_Event_Information( + unsigned index, BACNET_GET_EVENT_INFORMATION_DATA *getevent_data); - BACNET_STACK_EXPORT - int Binary_Value_Alarm_Ack( - BACNET_ALARM_ACK_DATA * alarmack_data, - BACNET_ERROR_CODE * error_code); +BACNET_STACK_EXPORT +int Binary_Value_Alarm_Ack( + BACNET_ALARM_ACK_DATA *alarmack_data, BACNET_ERROR_CODE *error_code); - BACNET_STACK_EXPORT - int Binary_Value_Alarm_Summary( - unsigned index, - BACNET_GET_ALARM_SUMMARY_DATA * getalarm_data); +BACNET_STACK_EXPORT +int Binary_Value_Alarm_Summary( + unsigned index, BACNET_GET_ALARM_SUMMARY_DATA *getalarm_data); - BACNET_STACK_EXPORT - uint32_t Binary_Value_Time_Delay( - uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t Binary_Value_Time_Delay(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Time_Delay_Set( - uint32_t object_instance, - uint32_t time_delay); +BACNET_STACK_EXPORT +bool Binary_Value_Time_Delay_Set(uint32_t object_instance, uint32_t time_delay); - BACNET_STACK_EXPORT - uint32_t Binary_Value_Notification_Class( - uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t Binary_Value_Notification_Class(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Notification_Class_Set( - uint32_t object_instance, - uint32_t notification_class); +BACNET_STACK_EXPORT +bool Binary_Value_Notification_Class_Set( + uint32_t object_instance, uint32_t notification_class); - BACNET_STACK_EXPORT - BACNET_BINARY_PV Binary_Value_Alarm_Value( - uint32_t object_instance); +BACNET_STACK_EXPORT +BACNET_BINARY_PV Binary_Value_Alarm_Value(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Alarm_Value_Set( - uint32_t object_instance, BACNET_BINARY_PV value); +BACNET_STACK_EXPORT +bool Binary_Value_Alarm_Value_Set( + uint32_t object_instance, BACNET_BINARY_PV value); - BACNET_STACK_EXPORT - uint32_t Binary_Value_Event_Enable( - uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t Binary_Value_Event_Enable(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Event_Enable_Set( - uint32_t object_instance, - uint32_t event_enable); +BACNET_STACK_EXPORT +bool Binary_Value_Event_Enable_Set( + uint32_t object_instance, uint32_t event_enable); - BACNET_STACK_EXPORT - BACNET_NOTIFY_TYPE Binary_Value_Notify_Type( - uint32_t object_instance); +BACNET_STACK_EXPORT +BACNET_NOTIFY_TYPE Binary_Value_Notify_Type(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Binary_Value_Notify_Type_Set( - uint32_t object_instance, - BACNET_NOTIFY_TYPE notify_type); +BACNET_STACK_EXPORT +bool Binary_Value_Notify_Type_Set( + uint32_t object_instance, BACNET_NOTIFY_TYPE notify_type); #endif - BACNET_STACK_EXPORT - void Binary_Value_Intrinsic_Reporting( - uint32_t object_instance); +BACNET_STACK_EXPORT +void Binary_Value_Intrinsic_Reporting(uint32_t object_instance); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/calendar.h b/src/bacnet/basic/object/calendar.h index b32ab198..1a446dd5 100644 --- a/src/bacnet/basic/object/calendar.h +++ b/src/bacnet/basic/object/calendar.h @@ -64,8 +64,8 @@ void Calendar_Write_Present_Value_Callback_Set( calendar_write_present_value_callback cb); BACNET_STACK_EXPORT -BACNET_CALENDAR_ENTRY *Calendar_Date_List_Get( - uint32_t object_instance, uint8_t index); +BACNET_CALENDAR_ENTRY * +Calendar_Date_List_Get(uint32_t object_instance, uint8_t index); BACNET_STACK_EXPORT bool Calendar_Date_List_Add( uint32_t object_instance, const BACNET_CALENDAR_ENTRY *value); diff --git a/src/bacnet/basic/object/channel.c b/src/bacnet/basic/object/channel.c index 3589a42c..e3844347 100644 --- a/src/bacnet/basic/object/channel.c +++ b/src/bacnet/basic/object/channel.c @@ -53,11 +53,20 @@ static write_property_function Write_Property_Internal_Callback; /* These arrays are used by the ReadPropertyMultiple handler property-list property (as of protocol-revision 14) */ -static const int Channel_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_LAST_PRIORITY, - PROP_WRITE_STATUS, PROP_STATUS_FLAGS, PROP_OUT_OF_SERVICE, - PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, PROP_CHANNEL_NUMBER, - PROP_CONTROL_GROUPS, -1 }; +static const int Channel_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_LAST_PRIORITY, + PROP_WRITE_STATUS, + PROP_STATUS_FLAGS, + PROP_OUT_OF_SERVICE, + PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, + PROP_CHANNEL_NUMBER, + PROP_CONTROL_GROUPS, + -1 +}; static const int Channel_Properties_Optional[] = { -1 }; @@ -346,7 +355,8 @@ BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *Channel_Reference_List_Member_Element( * * @return pointer to member element or NULL if not found */ -bool Channel_Reference_List_Member_Element_Set(uint32_t object_instance, +bool Channel_Reference_List_Member_Element_Set( + uint32_t object_instance, unsigned array_index, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *pMemberSrc) { @@ -359,7 +369,8 @@ bool Channel_Reference_List_Member_Element_Set(uint32_t object_instance, array_index--; if (array_index < CHANNEL_MEMBERS_MAX) { pMember = &pObject->Members[array_index]; - memcpy(pMember, pMemberSrc, + memcpy( + pMember, pMemberSrc, sizeof(BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE)); status = true; } @@ -377,7 +388,8 @@ bool Channel_Reference_List_Member_Element_Set(uint32_t object_instance, * @return array_index - 1-based array index value for added element, or * zero if not added */ -unsigned Channel_Reference_List_Member_Element_Add(uint32_t object_instance, +unsigned Channel_Reference_List_Member_Element_Add( + uint32_t object_instance, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *pMemberSrc) { BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *pMember = NULL; @@ -392,7 +404,8 @@ unsigned Channel_Reference_List_Member_Element_Add(uint32_t object_instance, if (!Channel_Reference_List_Member_Valid(pMember)) { /* first empty slot */ array_index = 1 + m; - memcpy(pMember, pMemberSrc, + memcpy( + pMember, pMemberSrc, sizeof(BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE)); break; } @@ -410,8 +423,8 @@ unsigned Channel_Reference_List_Member_Element_Add(uint32_t object_instance, * * @return group number in the array, or 0 if invalid */ -uint16_t Channel_Control_Groups_Element( - uint32_t object_instance, int32_t array_index) +uint16_t +Channel_Control_Groups_Element(uint32_t object_instance, int32_t array_index) { uint16_t value = 0; const struct object_data *pObject; @@ -705,8 +718,8 @@ int Channel_Value_Encode( #endif #if defined(CHANNEL_OBJECT_ID) case BACNET_APPLICATION_TAG_OBJECT_ID: - apdu_len = encode_application_object_id(apdu, - (int)value->type.Object_Id.type, + apdu_len = encode_application_object_id( + apdu, (int)value->type.Object_Id.type, value->type.Object_Id.instance); break; #endif @@ -742,7 +755,8 @@ int Channel_Value_Encode( * * @return number of bytes in the APDU, or BACNET_STATUS_ERROR if error. */ -static int Coerce_Data_Encode(uint8_t *apdu, +static int Coerce_Data_Encode( + uint8_t *apdu, const BACNET_APPLICATION_DATA_VALUE *value, BACNET_APPLICATION_TAG tag) { @@ -1058,7 +1072,8 @@ static int Coerce_Data_Encode(uint8_t *apdu, * * @return number of bytes in the APDU, or BACNET_STATUS_ERROR if error. */ -int Channel_Coerce_Data_Encode(uint8_t *apdu, +int Channel_Coerce_Data_Encode( + uint8_t *apdu, size_t apdu_size, const BACNET_APPLICATION_DATA_VALUE *value, BACNET_APPLICATION_TAG tag) @@ -1084,43 +1099,46 @@ int Channel_Coerce_Data_Encode(uint8_t *apdu, * @return true if values are within range and present-value is sent. */ bool Channel_Write_Member_Value( - BACNET_WRITE_PROPERTY_DATA *wp_data, const BACNET_APPLICATION_DATA_VALUE *value) + BACNET_WRITE_PROPERTY_DATA *wp_data, + const BACNET_APPLICATION_DATA_VALUE *value) { bool status = false; int apdu_len = 0; if (wp_data && value) { if (((wp_data->object_type == OBJECT_ANALOG_INPUT) || - (wp_data->object_type == OBJECT_ANALOG_OUTPUT) || - (wp_data->object_type == OBJECT_ANALOG_VALUE)) && + (wp_data->object_type == OBJECT_ANALOG_OUTPUT) || + (wp_data->object_type == OBJECT_ANALOG_VALUE)) && (wp_data->object_property == PROP_PRESENT_VALUE) && (wp_data->array_index == BACNET_ARRAY_ALL)) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, value, BACNET_APPLICATION_TAG_REAL); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; status = true; } - } else if (((wp_data->object_type == OBJECT_BINARY_INPUT) || - (wp_data->object_type == OBJECT_BINARY_OUTPUT) || - (wp_data->object_type == OBJECT_BINARY_VALUE)) && + } else if ( + ((wp_data->object_type == OBJECT_BINARY_INPUT) || + (wp_data->object_type == OBJECT_BINARY_OUTPUT) || + (wp_data->object_type == OBJECT_BINARY_VALUE)) && (wp_data->object_property == PROP_PRESENT_VALUE) && (wp_data->array_index == BACNET_ARRAY_ALL)) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, value, BACNET_APPLICATION_TAG_ENUMERATED); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; status = true; } - } else if (((wp_data->object_type == OBJECT_MULTI_STATE_INPUT) || - (wp_data->object_type == OBJECT_MULTI_STATE_OUTPUT) || - (wp_data->object_type == OBJECT_MULTI_STATE_VALUE)) && + } else if ( + ((wp_data->object_type == OBJECT_MULTI_STATE_INPUT) || + (wp_data->object_type == OBJECT_MULTI_STATE_OUTPUT) || + (wp_data->object_type == OBJECT_MULTI_STATE_VALUE)) && (wp_data->object_property == PROP_PRESENT_VALUE) && (wp_data->array_index == BACNET_ARRAY_ALL)) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, value, BACNET_APPLICATION_TAG_UNSIGNED_INT); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; @@ -1129,18 +1147,19 @@ bool Channel_Write_Member_Value( } else if (wp_data->object_type == OBJECT_LIGHTING_OUTPUT) { if ((wp_data->object_property == PROP_PRESENT_VALUE) && (wp_data->array_index == BACNET_ARRAY_ALL)) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, - BACNET_APPLICATION_TAG_REAL); + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, + value, BACNET_APPLICATION_TAG_REAL); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; status = true; } - } else if ((wp_data->object_property == PROP_LIGHTING_COMMAND) && + } else if ( + (wp_data->object_property == PROP_LIGHTING_COMMAND) && (wp_data->array_index == BACNET_ARRAY_ALL)) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, - BACNET_APPLICATION_TAG_LIGHTING_COMMAND); + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, + value, BACNET_APPLICATION_TAG_LIGHTING_COMMAND); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; status = true; @@ -1149,26 +1168,27 @@ bool Channel_Write_Member_Value( } else if (wp_data->object_type == OBJECT_COLOR) { if ((wp_data->object_property == PROP_PRESENT_VALUE) && (wp_data->array_index == BACNET_ARRAY_ALL)) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, - BACNET_APPLICATION_TAG_XY_COLOR); + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, + value, BACNET_APPLICATION_TAG_XY_COLOR); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; status = true; } - } else if ((wp_data->object_property == PROP_COLOR_COMMAND) && + } else if ( + (wp_data->object_property == PROP_COLOR_COMMAND) && (wp_data->array_index == BACNET_ARRAY_ALL)) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, - BACNET_APPLICATION_TAG_COLOR_COMMAND); + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, + value, BACNET_APPLICATION_TAG_COLOR_COMMAND); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; status = true; } } } else if (wp_data->object_type == OBJECT_COLOR_TEMPERATURE) { - apdu_len = Channel_Coerce_Data_Encode(wp_data->application_data, - wp_data->application_data_len, value, + apdu_len = Channel_Coerce_Data_Encode( + wp_data->application_data, wp_data->application_data_len, value, BACNET_APPLICATION_TAG_UNSIGNED_INT); if (apdu_len != BACNET_STATUS_ERROR) { wp_data->application_data_len = apdu_len; @@ -1190,7 +1210,8 @@ bool Channel_Write_Member_Value( * * @return true if values are within range and present-value is sent. */ -static bool Channel_Write_Members(struct object_data *pObject, +static bool Channel_Write_Members( + struct object_data *pObject, const BACNET_APPLICATION_DATA_VALUE *value, uint8_t priority) { @@ -1244,7 +1265,8 @@ static bool Channel_Write_Members(struct object_data *pObject, * @return true if values are within range and present-value is sent. */ bool Channel_Present_Value_Set( - BACNET_WRITE_PROPERTY_DATA *wp_data, const BACNET_APPLICATION_DATA_VALUE *value) + BACNET_WRITE_PROPERTY_DATA *wp_data, + const BACNET_APPLICATION_DATA_VALUE *value) { bool status = false; struct object_data *pObject; @@ -1299,7 +1321,8 @@ bool Channel_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "CHANNEL-%lu", + snprintf( + name_text, sizeof(name_text), "CHANNEL-%lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -1459,8 +1482,8 @@ int Channel_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) case PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES: count = Channel_Reference_List_Member_Count(rpdata->object_instance); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, Channel_Reference_List_Member_Element_Encode, count, apdu, apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { @@ -1476,9 +1499,10 @@ int Channel_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_unsigned(apdu, unsigned_value); break; case PROP_CONTROL_GROUPS: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Channel_Control_Groups_Element_Encode, - CONTROL_GROUPS_MAX, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Channel_Control_Groups_Element_Encode, CONTROL_GROUPS_MAX, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -1586,7 +1610,7 @@ bool Channel_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) do { if ((element_len > 0) && (value.tag == - BACNET_APPLICATION_TAG_UNSIGNED_INT)) { + BACNET_APPLICATION_TAG_UNSIGNED_INT)) { if ((wp_data->array_index <= CONTROL_GROUPS_MAX) && (value.type.Unsigned_Int <= 65535)) { status = Channel_Control_Groups_Element_Set( diff --git a/src/bacnet/basic/object/channel.h b/src/bacnet/basic/object/channel.h index 10a6a58a..823914fb 100644 --- a/src/bacnet/basic/object/channel.h +++ b/src/bacnet/basic/object/channel.h @@ -19,7 +19,8 @@ /* BACNET_CHANNEL_VALUE decodes WriteProperty service requests Choose the datatypes that your application supports */ -#if !(defined(CHANNEL_NUMERIC) || defined(CHANNEL_NULL) || \ +#if !( \ + defined(CHANNEL_NUMERIC) || defined(CHANNEL_NULL) || \ defined(CHANNEL_BOOLEAN) || defined(CHANNEL_UNSIGNED) || \ defined(CHANNEL_SIGNED) || defined(CHANNEL_REAL) || \ defined(CHANNEL_DOUBLE) || defined(CHANNEL_OCTET_STRING) || \ @@ -132,7 +133,8 @@ BACNET_STACK_EXPORT BACNET_CHANNEL_VALUE *Channel_Present_Value(uint32_t object_instance); BACNET_STACK_EXPORT bool Channel_Present_Value_Set( - BACNET_WRITE_PROPERTY_DATA *wp_data, const BACNET_APPLICATION_DATA_VALUE *value); + BACNET_WRITE_PROPERTY_DATA *wp_data, + const BACNET_APPLICATION_DATA_VALUE *value); BACNET_STACK_EXPORT bool Channel_Out_Of_Service(uint32_t object_instance); @@ -153,15 +155,17 @@ BACNET_STACK_EXPORT BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *Channel_Reference_List_Member_Element( uint32_t object_instance, unsigned element); BACNET_STACK_EXPORT -bool Channel_Reference_List_Member_Element_Set(uint32_t object_instance, +bool Channel_Reference_List_Member_Element_Set( + uint32_t object_instance, unsigned array_index, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *pMemberSrc); BACNET_STACK_EXPORT -unsigned Channel_Reference_List_Member_Element_Add(uint32_t object_instance, +unsigned Channel_Reference_List_Member_Element_Add( + uint32_t object_instance, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *pMemberSrc); BACNET_STACK_EXPORT -uint16_t Channel_Control_Groups_Element( - uint32_t object_instance, int32_t array_index); +uint16_t +Channel_Control_Groups_Element(uint32_t object_instance, int32_t array_index); BACNET_STACK_EXPORT bool Channel_Control_Groups_Element_Set( uint32_t object_instance, int32_t array_index, uint16_t value); @@ -172,17 +176,18 @@ BACNET_STACK_EXPORT int Channel_Value_Encode( uint8_t *apdu, int apdu_max, const BACNET_CHANNEL_VALUE *value); BACNET_STACK_EXPORT -int Channel_Coerce_Data_Encode(uint8_t *apdu, +int Channel_Coerce_Data_Encode( + uint8_t *apdu, size_t apdu_size, const BACNET_APPLICATION_DATA_VALUE *value, BACNET_APPLICATION_TAG tag); BACNET_STACK_EXPORT bool Channel_Write_Member_Value( - BACNET_WRITE_PROPERTY_DATA *wp_data, const BACNET_APPLICATION_DATA_VALUE *value); + BACNET_WRITE_PROPERTY_DATA *wp_data, + const BACNET_APPLICATION_DATA_VALUE *value); BACNET_STACK_EXPORT -void Channel_Write_Property_Internal_Callback_Set( - write_property_function cb); +void Channel_Write_Property_Internal_Callback_Set(write_property_function cb); BACNET_STACK_EXPORT uint32_t Channel_Create(uint32_t object_instance); diff --git a/src/bacnet/basic/object/client/device-client.c b/src/bacnet/basic/object/client/device-client.c index 9b268b5d..df5311fc 100644 --- a/src/bacnet/basic/object/client/device-client.c +++ b/src/bacnet/basic/object/client/device-client.c @@ -84,39 +84,73 @@ static uint32_t Database_Revision = 0; /* external prototypes */ extern int Routed_Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata); -extern bool Routed_Device_Write_Property_Local( - BACNET_WRITE_PROPERTY_DATA *wp_data); +extern bool +Routed_Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data); /* All included BACnet objects */ static object_functions_t Object_Table[] = { - { OBJECT_DEVICE, NULL /* Init - don't init Device or it will recourse! */, - Device_Count, Device_Index_To_Instance, - Device_Valid_Object_Instance_Number, Device_Object_Name, - Device_Read_Property_Local, NULL /* Write_Property */, - Device_Property_Lists, NULL /* ReadRangeInfo */, NULL /* Iterator */, - NULL /* Value_Lists */, NULL /* COV */, NULL /* COV Clear */, - NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, + { OBJECT_DEVICE, + NULL /* Init - don't init Device or it will recourse! */, + Device_Count, + Device_Index_To_Instance, + Device_Valid_Object_Instance_Number, + Device_Object_Name, + Device_Read_Property_Local, + NULL /* Write_Property */, + Device_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, #if (BACNET_PROTOCOL_REVISION >= 17) - { OBJECT_NETWORK_PORT, Network_Port_Init, Network_Port_Count, - Network_Port_Index_To_Instance, Network_Port_Valid_Instance, - Network_Port_Object_Name, Network_Port_Read_Property, - Network_Port_Write_Property, Network_Port_Property_Lists, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, + { OBJECT_NETWORK_PORT, + Network_Port_Init, + Network_Port_Count, + Network_Port_Index_To_Instance, + Network_Port_Valid_Instance, + Network_Port_Object_Name, + Network_Port_Read_Property, + Network_Port_Write_Property, + Network_Port_Property_Lists, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, #endif - { MAX_BACNET_OBJECT_TYPE, NULL /* Init */, NULL /* Count */, - NULL /* Index_To_Instance */, NULL /* Valid_Instance */, - NULL /* Object_Name */, NULL /* Read_Property */, - NULL /* Write_Property */, NULL /* Property_Lists */, - NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */, - NULL /* COV */, NULL /* COV Clear */, - NULL /* Intrinsic Reporting */, - NULL /* Add_List_Element */, NULL /* Remove_List_Element */, - NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, + { MAX_BACNET_OBJECT_TYPE, + NULL /* Init */, + NULL /* Count */, + NULL /* Index_To_Instance */, + NULL /* Valid_Instance */, + NULL /* Object_Name */, + NULL /* Read_Property */, + NULL /* Write_Property */, + NULL /* Property_Lists */, + NULL /* ReadRangeInfo */, + NULL /* Iterator */, + NULL /* Value_Lists */, + NULL /* COV */, + NULL /* COV Clear */, + NULL /* Intrinsic Reporting */, + NULL /* Add_List_Element */, + NULL /* Remove_List_Element */, + NULL /* Create */, + NULL /* Delete */, + NULL /* Timer */ }, }; /** Glue function to let the Device object, when called by a handler, @@ -127,8 +161,8 @@ static object_functions_t Object_Table[] = { * @return Pointer to the group of object helper functions that implement this * type of Object. */ -static struct object_functions *Device_Objects_Find_Functions( - BACNET_OBJECT_TYPE Object_Type) +static struct object_functions * +Device_Objects_Find_Functions(BACNET_OBJECT_TYPE Object_Type) { struct object_functions *pObject = NULL; @@ -175,7 +209,8 @@ rr_info_function Device_Objects_RR_Info(BACNET_OBJECT_TYPE object_type) * list, separately, the Required, Optional, and Proprietary object * properties with their counts. */ -void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, +void Device_Objects_Property_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, struct special_property_list_t *pPropertyList) { @@ -193,8 +228,9 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, pObject = Device_Objects_Find_Functions(object_type); if ((pObject != NULL) && (pObject->Object_RPM_List != NULL)) { - pObject->Object_RPM_List(&pPropertyList->Required.pList, - &pPropertyList->Optional.pList, &pPropertyList->Proprietary.pList); + pObject->Object_RPM_List( + &pPropertyList->Required.pList, &pPropertyList->Optional.pList, + &pPropertyList->Proprietary.pList); } /* Fetch the counts if available otherwise zero them */ @@ -214,21 +250,35 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, } /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Device_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_SYSTEM_STATUS, PROP_VENDOR_NAME, - PROP_VENDOR_IDENTIFIER, PROP_MODEL_NAME, PROP_FIRMWARE_REVISION, - PROP_APPLICATION_SOFTWARE_VERSION, PROP_PROTOCOL_VERSION, - PROP_PROTOCOL_REVISION, PROP_PROTOCOL_SERVICES_SUPPORTED, - PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, PROP_OBJECT_LIST, - PROP_MAX_APDU_LENGTH_ACCEPTED, PROP_SEGMENTATION_SUPPORTED, - PROP_APDU_TIMEOUT, PROP_NUMBER_OF_APDU_RETRIES, PROP_DEVICE_ADDRESS_BINDING, - PROP_DATABASE_REVISION, -1 }; +static const int Device_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_SYSTEM_STATUS, + PROP_VENDOR_NAME, + PROP_VENDOR_IDENTIFIER, + PROP_MODEL_NAME, + PROP_FIRMWARE_REVISION, + PROP_APPLICATION_SOFTWARE_VERSION, + PROP_PROTOCOL_VERSION, + PROP_PROTOCOL_REVISION, + PROP_PROTOCOL_SERVICES_SUPPORTED, + PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, + PROP_OBJECT_LIST, + PROP_MAX_APDU_LENGTH_ACCEPTED, + PROP_SEGMENTATION_SUPPORTED, + PROP_APDU_TIMEOUT, + PROP_NUMBER_OF_APDU_RETRIES, + PROP_DEVICE_ADDRESS_BINDING, + PROP_DATABASE_REVISION, + -1 +}; static const int Device_Properties_Optional[] = { #if defined(BACDL_MSTP) - PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, + PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, #endif - PROP_DESCRIPTION, PROP_LOCATION, PROP_ACTIVE_COV_SUBSCRIPTIONS, -1 + PROP_DESCRIPTION, PROP_LOCATION, PROP_ACTIVE_COV_SUBSCRIPTIONS, -1 }; static const int Device_Properties_Proprietary[] = { -1 }; @@ -724,7 +774,8 @@ int Device_Object_List_Element_Encode( * Object. * @return True on success or else False if not found. */ -bool Device_Valid_Object_Name(const BACNET_CHARACTER_STRING *object_name1, +bool Device_Valid_Object_Name( + const BACNET_CHARACTER_STRING *object_name1, BACNET_OBJECT_TYPE *object_type, uint32_t *object_instance) { @@ -743,7 +794,7 @@ bool Device_Valid_Object_Name(const BACNET_CHARACTER_STRING *object_name1, pObject = Device_Objects_Find_Functions(type); if ((pObject != NULL) && (pObject->Object_Name != NULL) && (pObject->Object_Name(instance, &object_name2) && - characterstring_same(object_name1, &object_name2))) { + characterstring_same(object_name1, &object_name2))) { found = true; if (object_type) { *object_type = type; @@ -784,7 +835,8 @@ bool Device_Valid_Object_Id( * @param object_name [out] The Object Name found for this child Object. * @return True on success or else False if not found. */ -bool Device_Object_Name_Copy(BACNET_OBJECT_TYPE object_type, +bool Device_Object_Name_Copy( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_CHARACTER_STRING *object_name) { @@ -980,7 +1032,8 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_init(&bit_string); for (i = 0; i < MAX_BACNET_SERVICES_SUPPORTED; i++) { /* automatic lookup based on handlers set */ - bitstring_set_bit(&bit_string, (uint8_t)i, + bitstring_set_bit( + &bit_string, (uint8_t)i, apdu_service_supported((BACNET_SERVICES_SUPPORTED)i)); } apdu_len = encode_application_bitstring(&apdu[0], &bit_string); @@ -1006,10 +1059,9 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_OBJECT_LIST: count = Device_Object_List_Count(); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, - Device_Object_List_Element_Encode, - count, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Device_Object_List_Element_Encode, count, apdu, apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -1095,10 +1147,11 @@ int Device_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) if (pObject->Object_Read_Property) { #if (BACNET_PROTOCOL_REVISION >= 14) if ((int)rpdata->object_property == PROP_PROPERTY_LIST) { - Device_Objects_Property_List(rpdata->object_type, - rpdata->object_instance, &property_list); - apdu_len = property_list_encode(rpdata, - property_list.Required.pList, + Device_Objects_Property_List( + rpdata->object_type, rpdata->object_instance, + &property_list); + apdu_len = property_list_encode( + rpdata, property_list.Required.pList, property_list.Optional.pList, property_list.Proprietary.pList); } else @@ -1123,8 +1176,7 @@ int Device_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) * @brief Updates all the object timers with elapsed milliseconds * @param milliseconds - number of milliseconds elapsed */ -void Device_Timer( - uint16_t milliseconds) +void Device_Timer(uint16_t milliseconds) { struct object_functions *pObject; unsigned count = 0; diff --git a/src/bacnet/basic/object/color_object.c b/src/bacnet/basic/object/color_object.c index 100dd38e..78e9e255 100644 --- a/src/bacnet/basic/object/color_object.c +++ b/src/bacnet/basic/object/color_object.c @@ -62,13 +62,16 @@ static OS_Keylist Object_List; static color_write_present_value_callback Color_Write_Present_Value_Callback; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Color_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, - PROP_COLOR_COMMAND, PROP_IN_PROGRESS, PROP_DEFAULT_COLOR, - PROP_DEFAULT_FADE_TIME, -1 }; +static const int Color_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, PROP_COLOR_COMMAND, + PROP_IN_PROGRESS, PROP_DEFAULT_COLOR, + PROP_DEFAULT_FADE_TIME, -1 +}; static const int Color_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_TRANSITION, -1 }; + PROP_TRANSITION, -1 }; static const int Color_Properties_Proprietary[] = { -1 }; @@ -188,7 +191,8 @@ bool Color_Present_Value(uint32_t object_instance, BACNET_XY_COLOR *value) * * @return true if values are within range and present-value is set. */ -bool Color_Present_Value_Set(uint32_t object_instance, const BACNET_XY_COLOR *value) +bool Color_Present_Value_Set( + uint32_t object_instance, const BACNET_XY_COLOR *value) { bool status = false; struct object_data *pObject; @@ -213,7 +217,8 @@ bool Color_Present_Value_Set(uint32_t object_instance, const BACNET_XY_COLOR *va * * @return true if values are within range and present-value is set. */ -static bool Color_Present_Value_Write(uint32_t object_instance, +static bool Color_Present_Value_Write( + uint32_t object_instance, const BACNET_XY_COLOR *value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -342,7 +347,8 @@ bool Color_Command_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Command_Write(uint32_t object_instance, +static bool Color_Command_Write( + uint32_t object_instance, const BACNET_COLOR_COMMAND *value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -468,7 +474,8 @@ bool Color_Default_Color_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Default_Color_Write(uint32_t object_instance, +static bool Color_Default_Color_Write( + uint32_t object_instance, const BACNET_XY_COLOR *value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -532,7 +539,7 @@ bool Color_Default_Fade_Time_Set(uint32_t object_instance, uint32_t value) if (pObject) { if ((value == 0) || ((value >= BACNET_COLOR_FADE_TIME_MIN) && - (value <= BACNET_COLOR_FADE_TIME_MAX))) { + (value <= BACNET_COLOR_FADE_TIME_MAX))) { pObject->Default_Fade_Time = value; } status = true; @@ -552,7 +559,8 @@ bool Color_Default_Fade_Time_Set(uint32_t object_instance, uint32_t value) * * @return true if values are within range and present-value is set. */ -static bool Color_Default_Fade_Time_Write(uint32_t object_instance, +static bool Color_Default_Fade_Time_Write( + uint32_t object_instance, BACNET_UNSIGNED_INTEGER value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -567,7 +575,7 @@ static bool Color_Default_Fade_Time_Write(uint32_t object_instance, if (pObject->Write_Enabled) { if ((value == 0) || ((value >= BACNET_COLOR_FADE_TIME_MIN) && - (value <= BACNET_COLOR_FADE_TIME_MAX))) { + (value <= BACNET_COLOR_FADE_TIME_MAX))) { pObject->Default_Fade_Time = value; status = true; } else { @@ -640,7 +648,8 @@ bool Color_Transition_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Transition_Write(uint32_t object_instance, +static bool Color_Transition_Write( + uint32_t object_instance, uint32_t value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -802,8 +811,8 @@ bool Color_Description_Set(uint32_t object_instance, const char *new_name) * @param object_instance - object-instance number of the object * @param milliseconds - number of milliseconds elapsed */ -static void Color_Fade_To_Color_Handler( - uint32_t object_instance, uint16_t milliseconds) +static void +Color_Fade_To_Color_Handler(uint32_t object_instance, uint16_t milliseconds) { BACNET_XY_COLOR old_value; struct object_data *pObject; @@ -836,12 +845,12 @@ static void Color_Fade_To_Color_Handler( x3 = (float)pObject->Color_Command.transit.fade_time; y1 = old_value.x_coordinate; y3 = pObject->Color_Command.target.color.x_coordinate; - pObject->Tracking_Value.x_coordinate = linear_interpolate(x1, x2, - x3, y1, y3); + pObject->Tracking_Value.x_coordinate = + linear_interpolate(x1, x2, x3, y1, y3); y1 = old_value.y_coordinate; y3 = pObject->Color_Command.target.color.y_coordinate; - pObject->Tracking_Value.y_coordinate = linear_interpolate(x1, x2, - x3, y1, y3); + pObject->Tracking_Value.y_coordinate = + linear_interpolate(x1, x2, x3, y1, y3); pObject->Color_Command.transit.fade_time -= milliseconds; pObject->In_Progress = BACNET_COLOR_OPERATION_IN_PROGRESS_FADE_ACTIVE; @@ -870,8 +879,7 @@ void Color_Timer(uint32_t object_instance, uint16_t milliseconds) pObject->In_Progress = BACNET_COLOR_OPERATION_IN_PROGRESS_IDLE; break; case BACNET_COLOR_OPERATION_FADE_TO_COLOR: - Color_Fade_To_Color_Handler( - object_instance, milliseconds); + Color_Fade_To_Color_Handler(object_instance, milliseconds); break; case BACNET_COLOR_OPERATION_STOP: pObject->In_Progress = BACNET_COLOR_OPERATION_IN_PROGRESS_IDLE; @@ -995,8 +1003,9 @@ bool Color_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) /* decode the some of the request */ apdu = wp_data->application_data; apdu_size = wp_data->application_data_len; - len = bacapp_decode_known_property(apdu, apdu_size, &value, - wp_data->object_type, wp_data->object_property); + len = bacapp_decode_known_property( + apdu, apdu_size, &value, wp_data->object_type, + wp_data->object_property); /* FIXME: len < application_data_len: more data? */ if (len < 0) { /* error while decoding - a value larger than we can handle */ @@ -1017,45 +1026,50 @@ bool Color_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_XY_COLOR); if (status) { - status = Color_Present_Value_Write(wp_data->object_instance, - &value.type.XY_Color, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Color_Present_Value_Write( + wp_data->object_instance, &value.type.XY_Color, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } break; case PROP_COLOR_COMMAND: status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_COLOR_COMMAND); if (status) { - status = Color_Command_Write(wp_data->object_instance, - &value.type.Color_Command, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Color_Command_Write( + wp_data->object_instance, &value.type.Color_Command, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } break; case PROP_DEFAULT_COLOR: status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_XY_COLOR); if (status) { - status = Color_Default_Color_Write(wp_data->object_instance, - &value.type.XY_Color, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Color_Default_Color_Write( + wp_data->object_instance, &value.type.XY_Color, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } break; case PROP_DEFAULT_FADE_TIME: status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { - status = Color_Default_Fade_Time_Write(wp_data->object_instance, - value.type.Unsigned_Int, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Color_Default_Fade_Time_Write( + wp_data->object_instance, value.type.Unsigned_Int, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } break; case PROP_TRANSITION: status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { - status = Color_Transition_Write(wp_data->object_instance, - value.type.Enumerated, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Color_Transition_Write( + wp_data->object_instance, value.type.Enumerated, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } break; case PROP_OBJECT_IDENTIFIER: diff --git a/src/bacnet/basic/object/color_object.h b/src/bacnet/basic/object/color_object.h index f1e1e480..4914caba 100644 --- a/src/bacnet/basic/object/color_object.h +++ b/src/bacnet/basic/object/color_object.h @@ -24,7 +24,8 @@ * @param old_value - BACnetXYColor value prior to write * @param value - BACnetXYColor value of the write */ -typedef void (*color_write_present_value_callback)(uint32_t object_instance, +typedef void (*color_write_present_value_callback)( + uint32_t object_instance, BACNET_XY_COLOR *old_value, BACNET_XY_COLOR *value); diff --git a/src/bacnet/basic/object/color_temperature.c b/src/bacnet/basic/object/color_temperature.c index ac69ca89..d5ffe0e2 100644 --- a/src/bacnet/basic/object/color_temperature.c +++ b/src/bacnet/basic/object/color_temperature.c @@ -57,14 +57,24 @@ static color_temperature_write_present_value_callback /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Color_Temperature_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, PROP_COLOR_COMMAND, - PROP_IN_PROGRESS, PROP_DEFAULT_COLOR_TEMPERATURE, PROP_DEFAULT_FADE_TIME, - PROP_DEFAULT_RAMP_RATE, PROP_DEFAULT_STEP_INCREMENT, -1 + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, + PROP_COLOR_COMMAND, + PROP_IN_PROGRESS, + PROP_DEFAULT_COLOR_TEMPERATURE, + PROP_DEFAULT_FADE_TIME, + PROP_DEFAULT_RAMP_RATE, + PROP_DEFAULT_STEP_INCREMENT, + -1 }; -static const int Color_Temperature_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_TRANSITION, PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, -1 }; +static const int Color_Temperature_Properties_Optional[] = { + PROP_DESCRIPTION, PROP_TRANSITION, PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, + -1 +}; static const int Color_Temperature_Properties_Proprietary[] = { -1 }; @@ -208,7 +218,8 @@ bool Color_Temperature_Present_Value_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Temperature_Present_Value_Write(uint32_t object_instance, +static bool Color_Temperature_Present_Value_Write( + uint32_t object_instance, uint32_t value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -430,8 +441,8 @@ bool Color_Temperature_Command_Set( * @param object_instance - object-instance number of the object * @return property value */ -BACNET_COLOR_OPERATION_IN_PROGRESS Color_Temperature_In_Progress( - uint32_t object_instance) +BACNET_COLOR_OPERATION_IN_PROGRESS +Color_Temperature_In_Progress(uint32_t object_instance) { BACNET_COLOR_OPERATION_IN_PROGRESS value = BACNET_COLOR_OPERATION_IN_PROGRESS_MAX; @@ -523,7 +534,8 @@ bool Color_Temperature_Default_Color_Temperature_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Temperature_Default_Write(uint32_t object_instance, +static bool Color_Temperature_Default_Write( + uint32_t object_instance, BACNET_UNSIGNED_INTEGER value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -592,7 +604,7 @@ bool Color_Temperature_Default_Fade_Time_Set( if (pObject) { if ((value == 0) || ((value >= BACNET_COLOR_FADE_TIME_MIN) && - (value <= BACNET_COLOR_FADE_TIME_MAX))) { + (value <= BACNET_COLOR_FADE_TIME_MAX))) { pObject->Default_Fade_Time = value; } status = true; @@ -612,7 +624,8 @@ bool Color_Temperature_Default_Fade_Time_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Temperature_Default_Fade_Time_Write(uint32_t object_instance, +static bool Color_Temperature_Default_Fade_Time_Write( + uint32_t object_instance, BACNET_UNSIGNED_INTEGER value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -627,7 +640,7 @@ static bool Color_Temperature_Default_Fade_Time_Write(uint32_t object_instance, if (pObject->Write_Enabled) { if ((value == 0) || ((value >= BACNET_COLOR_FADE_TIME_MIN) && - (value <= BACNET_COLOR_FADE_TIME_MAX))) { + (value <= BACNET_COLOR_FADE_TIME_MAX))) { pObject->Default_Fade_Time = value; status = true; } else { @@ -698,7 +711,8 @@ bool Color_Temperature_Default_Ramp_Rate_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Temperature_Default_Ramp_Rate_Write(uint32_t object_instance, +static bool Color_Temperature_Default_Ramp_Rate_Write( + uint32_t object_instance, BACNET_UNSIGNED_INTEGER value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -713,7 +727,7 @@ static bool Color_Temperature_Default_Ramp_Rate_Write(uint32_t object_instance, if (pObject->Write_Enabled) { if ((value == 0) || ((value >= BACNET_COLOR_RAMP_RATE_MIN) && - (value <= BACNET_COLOR_RAMP_RATE_MAX))) { + (value <= BACNET_COLOR_RAMP_RATE_MAX))) { pObject->Default_Fade_Time = value; status = true; } else { @@ -800,7 +814,7 @@ static bool Color_Temperature_Default_Step_Increment_Write( if (pObject->Write_Enabled) { if ((value == 0) || ((value >= BACNET_COLOR_STEP_INCREMENT_MIN) && - (value <= BACNET_COLOR_STEP_INCREMENT_MAX))) { + (value <= BACNET_COLOR_STEP_INCREMENT_MAX))) { pObject->Default_Fade_Time = value; status = true; } else { @@ -873,7 +887,8 @@ bool Color_Temperature_Transition_Set( * * @return true if values are within range and present-value is set. */ -static bool Color_Transition_Write(uint32_t object_instance, +static bool Color_Transition_Write( + uint32_t object_instance, uint32_t value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -928,7 +943,8 @@ bool Color_Temperature_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "COLOR-TEMPERATURE-%u", + snprintf( + name_text, sizeof(name_text), "COLOR-TEMPERATURE-%u", object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -1074,9 +1090,9 @@ static void Color_Temperature_Fade_To_CCT_Handler( pObject->Color_Command.transit.fade_time = 0; } else { /* fading */ - pObject->Tracking_Value = linear_interpolate_int(0, milliseconds, - pObject->Color_Command.transit.fade_time, old_value, - target_value); + pObject->Tracking_Value = linear_interpolate_int( + 0, milliseconds, pObject->Color_Command.transit.fade_time, + old_value, target_value); pObject->Color_Command.transit.fade_time -= milliseconds; pObject->In_Progress = BACNET_COLOR_OPERATION_IN_PROGRESS_FADE_ACTIVE; @@ -1326,15 +1342,18 @@ int Color_Temperature_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu, Color_Temperature_Present_Value(rpdata->object_instance)); break; case PROP_MIN_PRES_VALUE: - apdu_len = encode_application_unsigned(apdu, + apdu_len = encode_application_unsigned( + apdu, Color_Temperature_Min_Pres_Value(rpdata->object_instance)); break; case PROP_MAX_PRES_VALUE: - apdu_len = encode_application_unsigned(apdu, + apdu_len = encode_application_unsigned( + apdu, Color_Temperature_Max_Pres_Value(rpdata->object_instance)); break; case PROP_TRACKING_VALUE: - apdu_len = encode_application_unsigned(apdu, + apdu_len = encode_application_unsigned( + apdu, Color_Temperature_Tracking_Value(rpdata->object_instance)); break; case PROP_COLOR_COMMAND: @@ -1348,20 +1367,24 @@ int Color_Temperature_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu, Color_Temperature_In_Progress(rpdata->object_instance)); break; case PROP_DEFAULT_COLOR_TEMPERATURE: - apdu_len = encode_application_unsigned(apdu, + apdu_len = encode_application_unsigned( + apdu, Color_Temperature_Default_Color_Temperature( rpdata->object_instance)); break; case PROP_DEFAULT_FADE_TIME: - apdu_len = encode_application_unsigned(apdu, + apdu_len = encode_application_unsigned( + apdu, Color_Temperature_Default_Fade_Time(rpdata->object_instance)); break; case PROP_DEFAULT_RAMP_RATE: - apdu_len = encode_application_unsigned(apdu, + apdu_len = encode_application_unsigned( + apdu, Color_Temperature_Default_Ramp_Rate(rpdata->object_instance)); break; case PROP_DEFAULT_STEP_INCREMENT: - apdu_len = encode_application_unsigned(apdu, + apdu_len = encode_application_unsigned( + apdu, Color_Temperature_Default_Step_Increment( rpdata->object_instance)); break; @@ -1370,7 +1393,8 @@ int Color_Temperature_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu, Color_Temperature_Transition(rpdata->object_instance)); break; case PROP_DESCRIPTION: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Color_Temperature_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(apdu, &char_string); break; @@ -1412,8 +1436,9 @@ bool Color_Temperature_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) /* decode the some of the request */ apdu = wp_data->application_data; apdu_size = wp_data->application_data_len; - len = bacapp_decode_known_property(apdu, apdu_size, &value, - wp_data->object_type, wp_data->object_property); + len = bacapp_decode_known_property( + apdu, apdu_size, &value, wp_data->object_type, + wp_data->object_property); if (len < 0) { /* error while decoding - a value larger than we can handle */ wp_data->error_class = ERROR_CLASS_PROPERTY; @@ -1443,10 +1468,10 @@ bool Color_Temperature_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { - status = - Color_Temperature_Default_Write(wp_data->object_instance, - value.type.Unsigned_Int, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Color_Temperature_Default_Write( + wp_data->object_instance, value.type.Unsigned_Int, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } break; case PROP_DEFAULT_FADE_TIME: @@ -1463,9 +1488,10 @@ bool Color_Temperature_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { - status = Color_Transition_Write(wp_data->object_instance, - value.type.Enumerated, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Color_Transition_Write( + wp_data->object_instance, value.type.Enumerated, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } break; case PROP_DEFAULT_RAMP_RATE: diff --git a/src/bacnet/basic/object/color_temperature.h b/src/bacnet/basic/object/color_temperature.h index dfb24a5b..10099967 100644 --- a/src/bacnet/basic/object/color_temperature.h +++ b/src/bacnet/basic/object/color_temperature.h @@ -45,8 +45,7 @@ BACNET_STACK_EXPORT bool Color_Temperature_Object_Name( uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); BACNET_STACK_EXPORT -bool Color_Temperature_Name_Set( - uint32_t object_instance, const char *new_name); +bool Color_Temperature_Name_Set(uint32_t object_instance, const char *new_name); BACNET_STACK_EXPORT const char *Color_Temperature_Name_ASCII(uint32_t object_instance); @@ -103,22 +102,20 @@ bool Color_Temperature_Default_Fade_Time_Set( uint32_t object_instance, uint32_t value); BACNET_STACK_EXPORT -uint32_t Color_Temperature_Default_Ramp_Rate( - uint32_t object_instance); +uint32_t Color_Temperature_Default_Ramp_Rate(uint32_t object_instance); BACNET_STACK_EXPORT bool Color_Temperature_Default_Ramp_Rate_Set( uint32_t object_instance, uint32_t value); BACNET_STACK_EXPORT -uint32_t Color_Temperature_Default_Step_Increment( - uint32_t object_instance); +uint32_t Color_Temperature_Default_Step_Increment(uint32_t object_instance); BACNET_STACK_EXPORT bool Color_Temperature_Default_Step_Increment_Set( uint32_t object_instance, uint32_t value); BACNET_STACK_EXPORT -BACNET_COLOR_OPERATION_IN_PROGRESS Color_Temperature_In_Progress( - uint32_t object_instance); +BACNET_COLOR_OPERATION_IN_PROGRESS +Color_Temperature_In_Progress(uint32_t object_instance); BACNET_STACK_EXPORT bool Color_Temperature_In_Progress_Set( uint32_t object_instance, BACNET_COLOR_OPERATION_IN_PROGRESS value); @@ -132,8 +129,7 @@ bool Color_Temperature_Transition_Set( BACNET_STACK_EXPORT const char *Color_Temperature_Description(uint32_t instance); BACNET_STACK_EXPORT -bool Color_Temperature_Description_Set( - uint32_t instance, const char *new_name); +bool Color_Temperature_Description_Set(uint32_t instance, const char *new_name); BACNET_STACK_EXPORT bool Color_Temperature_Write_Enabled(uint32_t instance); diff --git a/src/bacnet/basic/object/command.c b/src/bacnet/basic/object/command.c index 8cac65f3..9706c064 100644 --- a/src/bacnet/basic/object/command.c +++ b/src/bacnet/basic/object/command.c @@ -325,8 +325,7 @@ static COMMAND_DESCR *Object_Data(uint32_t object_instance) return NULL; } -BACNET_ACTION_LIST * Command_Action_List_Entry( - uint32_t instance, unsigned index) +BACNET_ACTION_LIST *Command_Action_List_Entry(uint32_t instance, unsigned index) { COMMAND_DESCR *pObject; BACNET_ACTION_LIST *pAction = NULL; @@ -342,8 +341,7 @@ BACNET_ACTION_LIST * Command_Action_List_Entry( /** * @brief For a given object instance-number, returns the number of actions */ -unsigned Command_Action_List_Count( - uint32_t instance) +unsigned Command_Action_List_Count(uint32_t instance) { (void)instance; return MAX_COMMAND_ACTIONS; @@ -367,8 +365,7 @@ static int Command_Action_List_Encode( pObject = Object_Data(object_instance); if (pObject && (index < MAX_COMMAND_ACTIONS)) { - apdu_len = bacnet_action_command_encode( - apdu, &pObject->Action[index]); + apdu_len = bacnet_action_command_encode(apdu, &pObject->Action[index]); } return apdu_len; @@ -427,9 +424,10 @@ int Command_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) Command_All_Writes_Successful(rpdata->object_instance)); break; case PROP_ACTION: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Command_Action_List_Encode, - MAX_COMMAND_ACTIONS, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Command_Action_List_Encode, MAX_COMMAND_ACTIONS, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; diff --git a/src/bacnet/basic/object/command.h b/src/bacnet/basic/object/command.h index 7bb498de..e07b8cbc 100644 --- a/src/bacnet/basic/object/command.h +++ b/src/bacnet/basic/object/command.h @@ -28,116 +28,83 @@ extern "C" { #endif /* __cplusplus */ - typedef struct command_descr { - uint32_t Present_Value; - bool In_Process; - bool All_Writes_Successful; - BACNET_ACTION_LIST Action[MAX_COMMAND_ACTIONS]; - } COMMAND_DESCR; +typedef struct command_descr { + uint32_t Present_Value; + bool In_Process; + bool All_Writes_Successful; + BACNET_ACTION_LIST Action[MAX_COMMAND_ACTIONS]; +} COMMAND_DESCR; - BACNET_STACK_EXPORT - void Command_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Command_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Command_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Command_Count( - void); - BACNET_STACK_EXPORT - uint32_t Command_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Command_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Command_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +bool Command_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Command_Count(void); +BACNET_STACK_EXPORT +uint32_t Command_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Command_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Command_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Command_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Command_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +bool Command_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Command_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - char *Command_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Command_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +char *Command_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Command_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - int Command_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Command_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Command_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Command_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - uint32_t Command_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Command_Present_Value_Set( - uint32_t object_instance, - uint32_t value); +BACNET_STACK_EXPORT +uint32_t Command_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Command_Present_Value_Set(uint32_t object_instance, uint32_t value); - BACNET_STACK_EXPORT - bool Command_In_Process( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Command_In_Process_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Command_In_Process(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Command_In_Process_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - bool Command_All_Writes_Successful( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Command_All_Writes_Successful_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Command_All_Writes_Successful(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Command_All_Writes_Successful_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - bool Command_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Command_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Command_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - float Command_COV_Increment( - uint32_t instance); - BACNET_STACK_EXPORT - void Command_COV_Increment_Set( - uint32_t instance, - float value); +BACNET_STACK_EXPORT +bool Command_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Command_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Command_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +float Command_COV_Increment(uint32_t instance); +BACNET_STACK_EXPORT +void Command_COV_Increment_Set(uint32_t instance, float value); - BACNET_STACK_EXPORT - BACNET_ACTION_LIST * Command_Action_List_Entry( - uint32_t instance, unsigned index); - BACNET_STACK_EXPORT - unsigned Command_Action_List_Count( - uint32_t instance); +BACNET_STACK_EXPORT +BACNET_ACTION_LIST * +Command_Action_List_Entry(uint32_t instance, unsigned index); +BACNET_STACK_EXPORT +unsigned Command_Action_List_Count(uint32_t instance); - /* note: header of Intrinsic_Reporting function is required - even when INTRINSIC_REPORTING is not defined */ - BACNET_STACK_EXPORT - void Command_Intrinsic_Reporting( - uint32_t object_instance); +/* note: header of Intrinsic_Reporting function is required + even when INTRINSIC_REPORTING is not defined */ +BACNET_STACK_EXPORT +void Command_Intrinsic_Reporting(uint32_t object_instance); - BACNET_STACK_EXPORT - void Command_Init( - void); +BACNET_STACK_EXPORT +void Command_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/credential_data_input.c b/src/bacnet/basic/object/credential_data_input.c index d22ef472..be1affca 100644 --- a/src/bacnet/basic/object/credential_data_input.c +++ b/src/bacnet/basic/object/credential_data_input.c @@ -24,10 +24,13 @@ static bool Credential_Data_Input_Initialized = false; static CREDENTIAL_DATA_INPUT_DESCR cdi_descr[MAX_CREDENTIAL_DATA_INPUTS]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_SUPPORTED_FORMATS, - PROP_UPDATE_TIME, -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, PROP_SUPPORTED_FORMATS, + PROP_UPDATE_TIME, -1 +}; static const int Properties_Optional[] = { -1 }; @@ -122,7 +125,8 @@ bool Credential_Data_Input_Object_Name( bool status = false; if (object_instance < MAX_CREDENTIAL_DATA_INPUTS) { - snprintf(text, sizeof(text), "CREDENTIAL DATA INPUT %lu", + snprintf( + text, sizeof(text), "CREDENTIAL DATA INPUT %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -174,8 +178,9 @@ int Credential_Data_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) Credential_Data_Input_Instance_To_Index(rpdata->object_instance); switch (rpdata->object_property) { case PROP_OBJECT_IDENTIFIER: - apdu_len = encode_application_object_id(&apdu[0], - OBJECT_CREDENTIAL_DATA_INPUT, rpdata->object_instance); + apdu_len = encode_application_object_id( + &apdu[0], OBJECT_CREDENTIAL_DATA_INPUT, + rpdata->object_instance); break; case PROP_OBJECT_NAME: Credential_Data_Input_Object_Name( @@ -217,7 +222,8 @@ int Credential_Data_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } else if (rpdata->array_index == BACNET_ARRAY_ALL) { for (i = 0; i < cdi_descr[object_index].supported_formats_count; i++) { - len = bacapp_encode_authentication_factor_format(&apdu[0], + len = bacapp_encode_authentication_factor_format( + &apdu[0], &cdi_descr[object_index].supported_formats[i]); if (apdu_len + len < MAX_APDU) { apdu_len += len; @@ -231,10 +237,10 @@ int Credential_Data_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } else { if (rpdata->array_index <= cdi_descr[object_index].supported_formats_count) { - apdu_len = - bacapp_encode_authentication_factor_format(&apdu[0], - &cdi_descr[object_index] - .supported_formats[rpdata->array_index - 1]); + apdu_len = bacapp_encode_authentication_factor_format( + &apdu[0], + &cdi_descr[object_index] + .supported_formats[rpdata->array_index - 1]); } else { rpdata->error_class = ERROR_CLASS_PROPERTY; rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX; @@ -300,7 +306,8 @@ bool Credential_Data_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) len = bacapp_decode_authentication_factor( wp_data->application_data, &tmp); if (len > 0) { - memcpy(&cdi_descr[object_index].present_value, &tmp, + memcpy( + &cdi_descr[object_index].present_value, &tmp, sizeof(BACNET_AUTHENTICATION_FACTOR)); } else { wp_data->error_class = ERROR_CLASS_PROPERTY; diff --git a/src/bacnet/basic/object/credential_data_input.h b/src/bacnet/basic/object/credential_data_input.h index 0225b8e1..be4ba554 100644 --- a/src/bacnet/basic/object/credential_data_input.h +++ b/src/bacnet/basic/object/credential_data_input.h @@ -21,7 +21,6 @@ #include "bacnet/rp.h" #include "bacnet/wp.h" - #ifndef MAX_CREDENTIAL_DATA_INPUTS #define MAX_CREDENTIAL_DATA_INPUTS 4 #endif @@ -34,75 +33,54 @@ extern "C" { #endif /* __cplusplus */ - typedef struct { - BACNET_AUTHENTICATION_FACTOR present_value; - BACNET_RELIABILITY reliability; - bool out_of_service; - uint32_t supported_formats_count; - BACNET_AUTHENTICATION_FACTOR_FORMAT - supported_formats[MAX_AUTHENTICATION_FACTOR_FORMAT_COUNT]; - BACNET_TIMESTAMP timestamp; - } CREDENTIAL_DATA_INPUT_DESCR; +typedef struct { + BACNET_AUTHENTICATION_FACTOR present_value; + BACNET_RELIABILITY reliability; + bool out_of_service; + uint32_t supported_formats_count; + BACNET_AUTHENTICATION_FACTOR_FORMAT + supported_formats[MAX_AUTHENTICATION_FACTOR_FORMAT_COUNT]; + BACNET_TIMESTAMP timestamp; +} CREDENTIAL_DATA_INPUT_DESCR; - BACNET_STACK_EXPORT - void Credential_Data_Input_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Credential_Data_Input_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Credential_Data_Input_Count( - void); - BACNET_STACK_EXPORT - uint32_t Credential_Data_Input_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Credential_Data_Input_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Credential_Data_Input_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Credential_Data_Input_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Credential_Data_Input_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Credential_Data_Input_Count(void); +BACNET_STACK_EXPORT +uint32_t Credential_Data_Input_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Credential_Data_Input_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Credential_Data_Input_Object_Instance_Add(uint32_t instance); +BACNET_STACK_EXPORT +bool Credential_Data_Input_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Credential_Data_Input_Name_Set(uint32_t object_instance, char *new_name); - BACNET_STACK_EXPORT - bool Credential_Data_Input_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Credential_Data_Input_Name_Set( - uint32_t object_instance, - char *new_name); +BACNET_STACK_EXPORT +bool Credential_Data_Input_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Credential_Data_Input_Out_Of_Service_Set(uint32_t instance, bool oos_flag); +BACNET_STACK_EXPORT +int Credential_Data_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Credential_Data_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool Credential_Data_Input_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Credential_Data_Input_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); - - BACNET_STACK_EXPORT - int Credential_Data_Input_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Credential_Data_Input_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); - - BACNET_STACK_EXPORT - uint32_t Credential_Data_Input_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Credential_Data_Input_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Credential_Data_Input_Cleanup( - void); - BACNET_STACK_EXPORT - void Credential_Data_Input_Init( - void); +BACNET_STACK_EXPORT +uint32_t Credential_Data_Input_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Credential_Data_Input_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Credential_Data_Input_Cleanup(void); +BACNET_STACK_EXPORT +void Credential_Data_Input_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/csv.c b/src/bacnet/basic/object/csv.c index d55be8fc..1bd0c5bd 100644 --- a/src/bacnet/basic/object/csv.c +++ b/src/bacnet/basic/object/csv.c @@ -34,12 +34,14 @@ static char Object_Description[MAX_CHARACTERSTRING_VALUES][64]; static bool Changed[MAX_CHARACTERSTRING_VALUES]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; static const int Properties_Optional[] = { PROP_EVENT_STATE, - PROP_OUT_OF_SERVICE, PROP_DESCRIPTION, -1 }; + PROP_OUT_OF_SERVICE, + PROP_DESCRIPTION, -1 }; static const int Properties_Proprietary[] = { -1 }; @@ -76,9 +78,11 @@ void CharacterString_Value_Init(void) /* initialize all Present Values */ for (i = 0; i < MAX_CHARACTERSTRING_VALUES; i++) { - snprintf(&Object_Name[i][0], sizeof(Object_Name[i]), + snprintf( + &Object_Name[i][0], sizeof(Object_Name[i]), "CHARACTER STRING VALUE %u", i + 1); - snprintf(&Object_Description[i][0], sizeof(Object_Description[i]), + snprintf( + &Object_Description[i][0], sizeof(Object_Description[i]), "A Character String Value Example"); characterstring_init_ansi(&Present_Value[i], ""); Changed[i] = false; @@ -228,8 +232,8 @@ bool CharacterString_Value_Out_Of_Service(uint32_t object_instance) * @param object_instance - object-instance number of the object * @param true/false */ -static void CharacterString_Value_Out_Of_Service_Set( - uint32_t object_instance, bool value) +static void +CharacterString_Value_Out_Of_Service_Set(uint32_t object_instance, bool value) { unsigned index = 0; @@ -294,8 +298,8 @@ bool CharacterString_Value_Encode_Value_List( index = CharacterString_Value_Instance_To_Index(object_instance); if (index < MAX_CHARACTERSTRING_VALUES) { - status = cov_value_list_encode_character_string(value_list, - &Present_Value[index], in_alarm, fault, overridden, + status = cov_value_list_encode_character_string( + value_list, &Present_Value[index], in_alarm, fault, overridden, Out_Of_Service[index]); } @@ -349,7 +353,8 @@ bool CharacterString_Value_Description_Set( } } } else { - memset(&Object_Description[index][0], 0, + memset( + &Object_Description[index][0], 0, sizeof(Object_Description[index])); } } @@ -454,8 +459,9 @@ int CharacterString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) switch (rpdata->object_property) { case PROP_OBJECT_IDENTIFIER: - apdu_len = encode_application_object_id(&apdu[0], - OBJECT_CHARACTERSTRING_VALUE, rpdata->object_instance); + apdu_len = encode_application_object_id( + &apdu[0], OBJECT_CHARACTERSTRING_VALUE, + rpdata->object_instance); break; /* note: Name and Description don't have to be the same. You could make Description writable and different */ @@ -467,7 +473,8 @@ int CharacterString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } break; case PROP_DESCRIPTION: - if (characterstring_init_ansi(&char_string, + if (characterstring_init_ansi( + &char_string, CharacterString_Value_Description( rpdata->object_instance))) { apdu_len = diff --git a/src/bacnet/basic/object/csv.h b/src/bacnet/basic/object/csv.h index 38ffd761..0dd9ed1e 100644 --- a/src/bacnet/basic/object/csv.h +++ b/src/bacnet/basic/object/csv.h @@ -20,77 +20,58 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void CharacterString_Value_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void CharacterString_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool CharacterString_Value_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned CharacterString_Value_Count( - void); - BACNET_STACK_EXPORT - uint32_t CharacterString_Value_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned CharacterString_Value_Instance_To_Index( - uint32_t instance); +BACNET_STACK_EXPORT +bool CharacterString_Value_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned CharacterString_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t CharacterString_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned CharacterString_Value_Instance_To_Index(uint32_t instance); - BACNET_STACK_EXPORT - int CharacterString_Value_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int CharacterString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool CharacterString_Value_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool CharacterString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - /* optional API */ - BACNET_STACK_EXPORT - bool CharacterString_Value_Object_Instance_Add( - uint32_t instance); +/* optional API */ +BACNET_STACK_EXPORT +bool CharacterString_Value_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool CharacterString_Value_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool CharacterString_Value_Name_Set( - uint32_t object_instance, - const char *new_name); +BACNET_STACK_EXPORT +bool CharacterString_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool CharacterString_Value_Name_Set( + uint32_t object_instance, const char *new_name); - BACNET_STACK_EXPORT - bool CharacterString_Value_Present_Value( - uint32_t object_instance, - BACNET_CHARACTER_STRING * value); - BACNET_STACK_EXPORT - bool CharacterString_Value_Present_Value_Set( - uint32_t object_instance, - const BACNET_CHARACTER_STRING * value); - BACNET_STACK_EXPORT - bool CharacterString_Value_Description_Set( - uint32_t object_instance, - const char *text_string); - BACNET_STACK_EXPORT - bool CharacterString_Value_Out_Of_Service( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool CharacterString_Value_Present_Value( + uint32_t object_instance, BACNET_CHARACTER_STRING *value); +BACNET_STACK_EXPORT +bool CharacterString_Value_Present_Value_Set( + uint32_t object_instance, const BACNET_CHARACTER_STRING *value); +BACNET_STACK_EXPORT +bool CharacterString_Value_Description_Set( + uint32_t object_instance, const char *text_string); +BACNET_STACK_EXPORT +bool CharacterString_Value_Out_Of_Service(uint32_t object_instance); - BACNET_STACK_EXPORT - bool CharacterString_Value_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void CharacterString_Value_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool CharacterString_Value_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +bool CharacterString_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void CharacterString_Value_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool CharacterString_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - void CharacterString_Value_Init( - void); +BACNET_STACK_EXPORT +void CharacterString_Value_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/device.c b/src/bacnet/basic/object/device.c index c7ab9c6e..89bfe347 100644 --- a/src/bacnet/basic/object/device.c +++ b/src/bacnet/basic/object/device.c @@ -77,8 +77,8 @@ /* external prototypes */ extern int Routed_Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata); -extern bool Routed_Device_Write_Property_Local( - BACNET_WRITE_PROPERTY_DATA *wp_data); +extern bool +Routed_Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data); /* may be overridden by outside table */ static object_functions_t *Object_Table; @@ -404,8 +404,8 @@ static object_functions_t My_Object_Table[] = { * @return Pointer to the group of object helper functions that implement this * type of Object. */ -static struct object_functions *Device_Objects_Find_Functions( - BACNET_OBJECT_TYPE Object_Type) +static struct object_functions * +Device_Objects_Find_Functions(BACNET_OBJECT_TYPE Object_Type) { struct object_functions *pObject = NULL; @@ -451,7 +451,8 @@ rr_info_function Device_Objects_RR_Info(BACNET_OBJECT_TYPE object_type) * list, separately, the Required, Optional, and Proprietary object * properties with their counts. */ -void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, +void Device_Objects_Property_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, struct special_property_list_t *pPropertyList) { @@ -469,8 +470,9 @@ void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, pObject = Device_Objects_Find_Functions(object_type); if ((pObject != NULL) && (pObject->Object_RPM_List != NULL)) { - pObject->Object_RPM_List(&pPropertyList->Required.pList, - &pPropertyList->Optional.pList, &pPropertyList->Proprietary.pList); + pObject->Object_RPM_List( + &pPropertyList->Required.pList, &pPropertyList->Optional.pList, + &pPropertyList->Proprietary.pList); } /* Fetch the counts if available otherwise zero them */ @@ -559,8 +561,8 @@ bool Device_Objects_Property_List_Member( property_list_member(property_list.Optional.pList, object_property); } if (!found) { - found = property_list_member(property_list.Proprietary.pList, - object_property); + found = property_list_member( + property_list.Proprietary.pList, object_property); } return found; @@ -1124,7 +1126,8 @@ int Device_Object_List_Element_Encode( * Object. * @return True on success or else False if not found. */ -bool Device_Valid_Object_Name(const BACNET_CHARACTER_STRING *object_name1, +bool Device_Valid_Object_Name( + const BACNET_CHARACTER_STRING *object_name1, BACNET_OBJECT_TYPE *object_type, uint32_t *object_instance) { @@ -1143,7 +1146,7 @@ bool Device_Valid_Object_Name(const BACNET_CHARACTER_STRING *object_name1, pObject = Device_Objects_Find_Functions(type); if ((pObject != NULL) && (pObject->Object_Name != NULL) && (pObject->Object_Name(instance, &object_name2) && - characterstring_same(object_name1, &object_name2))) { + characterstring_same(object_name1, &object_name2))) { found = true; if (object_type) { *object_type = type; @@ -1184,7 +1187,8 @@ bool Device_Valid_Object_Id( * @param object_name [out] The Object Name found for this child Object. * @return True on success or else False if not found. */ -bool Device_Object_Name_Copy(BACNET_OBJECT_TYPE object_type, +bool Device_Object_Name_Copy( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_CHARACTER_STRING *object_name) { @@ -1402,7 +1406,8 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_init(&bit_string); for (i = 0; i < MAX_BACNET_SERVICES_SUPPORTED; i++) { /* automatic lookup based on handlers set */ - bitstring_set_bit(&bit_string, (uint8_t)i, + bitstring_set_bit( + &bit_string, (uint8_t)i, apdu_service_supported((BACNET_SERVICES_SUPPORTED)i)); } apdu_len = encode_application_bitstring(&apdu[0], &bit_string); @@ -1429,9 +1434,9 @@ int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_OBJECT_LIST: count = Device_Object_List_Count(); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Device_Object_List_Element_Encode, count, - apdu, apdu_max); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Device_Object_List_Element_Encode, count, apdu, apdu_max); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -1554,8 +1559,9 @@ static int Read_Property_Common( } else if (rpdata->object_property == PROP_PROPERTY_LIST) { Device_Objects_Property_List( rpdata->object_type, rpdata->object_instance, &property_list); - apdu_len = property_list_encode(rpdata, property_list.Required.pList, - property_list.Optional.pList, property_list.Proprietary.pList); + apdu_len = property_list_encode( + rpdata, property_list.Required.pList, property_list.Optional.pList, + property_list.Proprietary.pList); #endif } else if (pObject->Object_Read_Property) { apdu_len = pObject->Object_Read_Property(rpdata); @@ -1693,8 +1699,9 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, characterstring_capacity(&My_Object_Name)); if (status) { /* All the object names in a device must be unique */ - if (Device_Valid_Object_Name(&value.type.Character_String, - &object_type, &object_instance)) { + if (Device_Valid_Object_Name( + &value.type.Character_String, &object_type, + &object_instance)) { if ((object_type == wp_data->object_type) && (object_instance == wp_data->object_instance)) { /* writing same name to same object */ @@ -1821,10 +1828,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) #endif default: if (property_lists_member( - Device_Properties_Required, - Device_Properties_Optional, - Device_Properties_Proprietary, - wp_data->object_property)) { + Device_Properties_Required, Device_Properties_Optional, + Device_Properties_Proprietary, wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; } else { @@ -1907,8 +1912,7 @@ static bool Device_Write_Property_Object_Name( * @brief Set the callback for a WriteProperty successful operation * @param cb [in] The function to be called, or NULL to disable */ -void Device_Write_Property_Store_Callback_Set( - write_property_function cb) +void Device_Write_Property_Store_Callback_Set(write_property_function cb) { Device_Write_Property_Store_Callback = cb; } @@ -2053,7 +2057,8 @@ int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA *list_element) * @param [out] The value list * @return True if the object instance supports this feature and value changed. */ -bool Device_Encode_Value_List(BACNET_OBJECT_TYPE object_type, +bool Device_Encode_Value_List( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list) { @@ -2138,7 +2143,8 @@ bool Device_Create_Object(BACNET_CREATE_OBJECT_DATA *data) object for some other reason.*/ data->error_class = ERROR_CLASS_OBJECT; data->error_code = ERROR_CODE_DYNAMIC_CREATION_NOT_SUPPORTED; - } else if (pObject->Object_Valid_Instance && + } else if ( + pObject->Object_Valid_Instance && pObject->Object_Valid_Instance(data->object_instance)) { /* The object being created already exists */ data->error_class = ERROR_CLASS_OBJECT; @@ -2196,7 +2202,8 @@ bool Device_Delete_Object(BACNET_DELETE_OBJECT_DATA *data) object for some reason.*/ data->error_class = ERROR_CLASS_OBJECT; data->error_code = ERROR_CODE_OBJECT_DELETION_NOT_PERMITTED; - } else if (pObject->Object_Valid_Instance && + } else if ( + pObject->Object_Valid_Instance && pObject->Object_Valid_Instance(data->object_instance)) { /* The object being deleted must already exist */ status = pObject->Object_Delete(data->object_instance); @@ -2299,7 +2306,8 @@ void Device_Init(object_functions_t *object_table) #endif } -bool DeviceGetRRInfo(BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ +bool DeviceGetRRInfo( + BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ RR_PROP_INFO *pInfo) { /* Where to put the response */ bool status = false; /* return value */ diff --git a/src/bacnet/basic/object/device.h b/src/bacnet/basic/object/device.h index c478f14f..9d1c9109 100644 --- a/src/bacnet/basic/object/device.h +++ b/src/bacnet/basic/object/device.h @@ -25,41 +25,34 @@ /** Called so a BACnet object can perform any necessary initialization. * @ingroup ObjHelpers */ -typedef void ( - *object_init_function) ( - void); +typedef void (*object_init_function)(void); /** Counts the number of objects of this type. * @ingroup ObjHelpers * @return Count of implemented objects of this type. */ -typedef unsigned ( - *object_count_function) ( - void); +typedef unsigned (*object_count_function)(void); -/** Maps an object index position to its corresponding BACnet object instance number. +/** Maps an object index position to its corresponding BACnet object instance + * number. * @ingroup ObjHelpers - * @param index [in] The index of the object, in the array of objects of its type. + * @param index [in] The index of the object, in the array of objects of its + * type. * @return The BACnet object instance number to be used in a BACNET_OBJECT_ID. */ -typedef uint32_t( - *object_index_to_instance_function) - ( - unsigned index); +typedef uint32_t (*object_index_to_instance_function)(unsigned index); /** Provides the BACnet Object_Name for a given object instance of this type. * @ingroup ObjHelpers * @param object_instance [in] The object instance number to be looked up. * @param object_name [in,out] Pointer to a character_string structure that - * will hold a copy of the object name if this is a valid object_instance. + * will hold a copy of the object name if this is a valid + * object_instance. * @return True if the object_instance is valid and object_name has been * filled with a copy of the Object's name. */ -typedef bool( - *object_name_function) - ( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); +typedef bool (*object_name_function)( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); /** Look in the table of objects of this type, and see if this is a valid * instance number. @@ -67,9 +60,7 @@ typedef bool( * @param [in] The object instance number to be looked up. * @return True if the object instance refers to a valid object of this type. */ -typedef bool( - *object_valid_instance_function) ( - uint32_t object_instance); +typedef bool (*object_valid_instance_function)(uint32_t object_instance); /** Helper function to step through an array of objects and find either the * first one or the next one of a given type. Used to step through an array @@ -81,9 +72,7 @@ typedef bool( * @return The index of the next object of the required type or ~0 (all bits * == 1) to indicate no more objects found. */ -typedef unsigned ( - *object_iterate_function) ( - unsigned current_index); +typedef unsigned (*object_iterate_function)(unsigned current_index); /** Look in the table of objects of this type, and get the COV Value List. * @ingroup ObjHelpers @@ -91,43 +80,34 @@ typedef unsigned ( * @param [out] The value list * @return True if the object instance supports this feature, and has changed. */ -typedef bool( - *object_value_list_function) ( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +typedef bool (*object_value_list_function)( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); /** Look in the table of objects for this instance to see if value changed. * @ingroup ObjHelpers * @param [in] The object instance number to be looked up. * @return True if the object instance has changed. */ -typedef bool( - *object_cov_function) ( - uint32_t object_instance); +typedef bool (*object_cov_function)(uint32_t object_instance); /** Look in the table of objects for this instance to clear the changed flag. * @ingroup ObjHelpers * @param [in] The object instance number to be looked up. */ -typedef void ( - *object_cov_clear_function) ( - uint32_t object_instance); +typedef void (*object_cov_clear_function)(uint32_t object_instance); /** Intrinsic Reporting funcionality. * @ingroup ObjHelpers * @param [in] Object instance. */ -typedef void ( - *object_intrinsic_reporting_function) ( - uint32_t object_instance); +typedef void (*object_intrinsic_reporting_function)(uint32_t object_instance); /** * @brief Updates the object with the elapsed milliseconds * @param object_instance - object-instance number of the object * @param milliseconds - number of milliseconds elapsed */ -typedef void ( - *object_timer_function) ( +typedef void (*object_timer_function)( uint32_t object_instance, uint16_t milliseconds); /** Defines the group of object helper functions for any supported Object. @@ -164,14 +144,13 @@ typedef struct object_functions { /* String Lengths - excluding any nul terminator */ #define MAX_DEV_NAME_LEN 32 -#define MAX_DEV_LOC_LEN 64 -#define MAX_DEV_MOD_LEN 32 -#define MAX_DEV_VER_LEN 16 +#define MAX_DEV_LOC_LEN 64 +#define MAX_DEV_MOD_LEN 32 +#define MAX_DEV_VER_LEN 16 #define MAX_DEV_DESC_LEN 64 /** Structure to define the Object Properties common to all Objects. */ typedef struct commonBacObj_s { - /** The BACnet type of this object (ie, what class is this object from?). * This property, of type BACnetObjectType, indicates membership in a * particular object type class. Each inherited class will be of one type. @@ -189,7 +168,6 @@ typedef struct commonBacObj_s { } COMMON_BAC_OBJECT; - /** Structure to define the Properties of Device Objects which distinguish * one instance from another. * This structure only defines fields for properties that are unique to @@ -208,356 +186,268 @@ typedef struct devObj_s { /** Device Description. */ char Description[MAX_DEV_DESC_LEN]; - /** The upcounter that shows if the Device ID or object structure has changed. */ + /** The upcounter that shows if the Device ID or object structure has + * changed. */ uint32_t Database_Revision; } DEVICE_OBJECT_DATA; - #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Device_Init( - object_functions_t * object_table); +BACNET_STACK_EXPORT +void Device_Init(object_functions_t *object_table); - BACNET_STACK_EXPORT - void Device_Timer( - uint16_t milliseconds); +BACNET_STACK_EXPORT +void Device_Timer(uint16_t milliseconds); - BACNET_STACK_EXPORT - bool Device_Reinitialize( - BACNET_REINITIALIZE_DEVICE_DATA * rd_data); - BACNET_STACK_EXPORT - bool Device_Reinitialize_State_Set(BACNET_REINITIALIZED_STATE state); - BACNET_STACK_EXPORT - BACNET_REINITIALIZED_STATE Device_Reinitialized_State( - void); - BACNET_STACK_EXPORT - bool Device_Reinitialize_Password_Set( - const char *password); +BACNET_STACK_EXPORT +bool Device_Reinitialize(BACNET_REINITIALIZE_DEVICE_DATA *rd_data); +BACNET_STACK_EXPORT +bool Device_Reinitialize_State_Set(BACNET_REINITIALIZED_STATE state); +BACNET_STACK_EXPORT +BACNET_REINITIALIZED_STATE Device_Reinitialized_State(void); +BACNET_STACK_EXPORT +bool Device_Reinitialize_Password_Set(const char *password); - BACNET_STACK_EXPORT - rr_info_function Device_Objects_RR_Info( - BACNET_OBJECT_TYPE object_type); +BACNET_STACK_EXPORT +rr_info_function Device_Objects_RR_Info(BACNET_OBJECT_TYPE object_type); - BACNET_STACK_EXPORT - void Device_getCurrentDateTime( - BACNET_DATE_TIME * DateTime); +BACNET_STACK_EXPORT +void Device_getCurrentDateTime(BACNET_DATE_TIME *DateTime); - BACNET_STACK_EXPORT - int32_t Device_UTC_Offset(void); - BACNET_STACK_EXPORT - void Device_UTC_Offset_Set(int16_t offset); +BACNET_STACK_EXPORT +int32_t Device_UTC_Offset(void); +BACNET_STACK_EXPORT +void Device_UTC_Offset_Set(int16_t offset); - BACNET_STACK_EXPORT - bool Device_Daylight_Savings_Status(void); - bool Device_Align_Intervals(void); - BACNET_STACK_EXPORT - bool Device_Align_Intervals_Set(bool flag); - BACNET_STACK_EXPORT - uint32_t Device_Time_Sync_Interval(void); - BACNET_STACK_EXPORT - bool Device_Time_Sync_Interval_Set(uint32_t value); - BACNET_STACK_EXPORT - uint32_t Device_Interval_Offset(void); - BACNET_STACK_EXPORT - bool Device_Interval_Offset_Set(uint32_t value); +BACNET_STACK_EXPORT +bool Device_Daylight_Savings_Status(void); +bool Device_Align_Intervals(void); +BACNET_STACK_EXPORT +bool Device_Align_Intervals_Set(bool flag); +BACNET_STACK_EXPORT +uint32_t Device_Time_Sync_Interval(void); +BACNET_STACK_EXPORT +bool Device_Time_Sync_Interval_Set(uint32_t value); +BACNET_STACK_EXPORT +uint32_t Device_Interval_Offset(void); +BACNET_STACK_EXPORT +bool Device_Interval_Offset_Set(uint32_t value); - BACNET_STACK_EXPORT - void Device_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - void Device_Objects_Property_List( - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - struct special_property_list_t *pPropertyList); - BACNET_STACK_EXPORT - bool Device_Objects_Property_List_Member( - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - BACNET_PROPERTY_ID object_property); +BACNET_STACK_EXPORT +void Device_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +void Device_Objects_Property_List( + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + struct special_property_list_t *pPropertyList); +BACNET_STACK_EXPORT +bool Device_Objects_Property_List_Member( + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + BACNET_PROPERTY_ID object_property); - /* functions to support COV */ - BACNET_STACK_EXPORT - bool Device_Encode_Value_List( - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - bool Device_Value_List_Supported( - BACNET_OBJECT_TYPE object_type); - BACNET_STACK_EXPORT - bool Device_COV( - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance); - BACNET_STACK_EXPORT - void Device_COV_Clear( - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance); +/* functions to support COV */ +BACNET_STACK_EXPORT +bool Device_Encode_Value_List( + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + BACNET_PROPERTY_VALUE *value_list); +bool Device_Value_List_Supported(BACNET_OBJECT_TYPE object_type); +BACNET_STACK_EXPORT +bool Device_COV(BACNET_OBJECT_TYPE object_type, uint32_t object_instance); +BACNET_STACK_EXPORT +void Device_COV_Clear(BACNET_OBJECT_TYPE object_type, uint32_t object_instance); - BACNET_STACK_EXPORT - uint32_t Device_Object_Instance_Number( - void); - BACNET_STACK_EXPORT - bool Device_Set_Object_Instance_Number( - uint32_t object_id); - BACNET_STACK_EXPORT - bool Device_Valid_Object_Instance_Number( - uint32_t object_id); +BACNET_STACK_EXPORT +uint32_t Device_Object_Instance_Number(void); +BACNET_STACK_EXPORT +bool Device_Set_Object_Instance_Number(uint32_t object_id); +BACNET_STACK_EXPORT +bool Device_Valid_Object_Instance_Number(uint32_t object_id); - BACNET_STACK_EXPORT - void Device_UUID_Init( - void); - BACNET_STACK_EXPORT - void Device_UUID_Set( - const uint8_t *new_uuid, - size_t length); - BACNET_STACK_EXPORT - void Device_UUID_Get( - uint8_t *uuid, - size_t length); +BACNET_STACK_EXPORT +void Device_UUID_Init(void); +BACNET_STACK_EXPORT +void Device_UUID_Set(const uint8_t *new_uuid, size_t length); +BACNET_STACK_EXPORT +void Device_UUID_Get(uint8_t *uuid, size_t length); - BACNET_STACK_EXPORT - unsigned Device_Object_List_Count( - void); - BACNET_STACK_EXPORT - bool Device_Object_List_Identifier( - uint32_t array_index, - BACNET_OBJECT_TYPE *object_type, - uint32_t * instance); - BACNET_STACK_EXPORT - int Device_Object_List_Element_Encode( - uint32_t object_instance, - BACNET_ARRAY_INDEX array_index, - uint8_t *apdu); +BACNET_STACK_EXPORT +unsigned Device_Object_List_Count(void); +BACNET_STACK_EXPORT +bool Device_Object_List_Identifier( + uint32_t array_index, BACNET_OBJECT_TYPE *object_type, uint32_t *instance); +BACNET_STACK_EXPORT +int Device_Object_List_Element_Encode( + uint32_t object_instance, BACNET_ARRAY_INDEX array_index, uint8_t *apdu); - BACNET_STACK_EXPORT - bool Device_Create_Object( - BACNET_CREATE_OBJECT_DATA *data); - BACNET_STACK_EXPORT - bool Device_Delete_Object( - BACNET_DELETE_OBJECT_DATA *data); +BACNET_STACK_EXPORT +bool Device_Create_Object(BACNET_CREATE_OBJECT_DATA *data); +BACNET_STACK_EXPORT +bool Device_Delete_Object(BACNET_DELETE_OBJECT_DATA *data); - BACNET_STACK_EXPORT - unsigned Device_Count( - void); - BACNET_STACK_EXPORT - uint32_t Device_Index_To_Instance( - unsigned index); +BACNET_STACK_EXPORT +unsigned Device_Count(void); +BACNET_STACK_EXPORT +uint32_t Device_Index_To_Instance(unsigned index); - BACNET_STACK_EXPORT - bool Device_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Device_Set_Object_Name( - const BACNET_CHARACTER_STRING * object_name); - /* Copy a child object name, given its ID. */ - BACNET_STACK_EXPORT - bool Device_Object_Name_Copy( - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Device_Object_Name_ANSI_Init(const char * object_name); - BACNET_STACK_EXPORT - char * Device_Object_Name_ANSI(void); +BACNET_STACK_EXPORT +bool Device_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Device_Set_Object_Name(const BACNET_CHARACTER_STRING *object_name); +/* Copy a child object name, given its ID. */ +BACNET_STACK_EXPORT +bool Device_Object_Name_Copy( + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Device_Object_Name_ANSI_Init(const char *object_name); +BACNET_STACK_EXPORT +char *Device_Object_Name_ANSI(void); - BACNET_STACK_EXPORT - BACNET_DEVICE_STATUS Device_System_Status( - void); - BACNET_STACK_EXPORT - int Device_Set_System_Status( - BACNET_DEVICE_STATUS status, - bool local); +BACNET_STACK_EXPORT +BACNET_DEVICE_STATUS Device_System_Status(void); +BACNET_STACK_EXPORT +int Device_Set_System_Status(BACNET_DEVICE_STATUS status, bool local); - BACNET_STACK_EXPORT - const char *Device_Vendor_Name( - void); +BACNET_STACK_EXPORT +const char *Device_Vendor_Name(void); - BACNET_STACK_EXPORT - uint16_t Device_Vendor_Identifier( - void); - BACNET_STACK_EXPORT - void Device_Set_Vendor_Identifier( - uint16_t vendor_id); +BACNET_STACK_EXPORT +uint16_t Device_Vendor_Identifier(void); +BACNET_STACK_EXPORT +void Device_Set_Vendor_Identifier(uint16_t vendor_id); - BACNET_STACK_EXPORT - const char *Device_Model_Name( - void); - BACNET_STACK_EXPORT - bool Device_Set_Model_Name( - const char *name, - size_t length); +BACNET_STACK_EXPORT +const char *Device_Model_Name(void); +BACNET_STACK_EXPORT +bool Device_Set_Model_Name(const char *name, size_t length); - BACNET_STACK_EXPORT - const char *Device_Firmware_Revision( - void); +BACNET_STACK_EXPORT +const char *Device_Firmware_Revision(void); - BACNET_STACK_EXPORT - const char *Device_Application_Software_Version( - void); - BACNET_STACK_EXPORT - bool Device_Set_Application_Software_Version( - const char *name, - size_t length); +BACNET_STACK_EXPORT +const char *Device_Application_Software_Version(void); +BACNET_STACK_EXPORT +bool Device_Set_Application_Software_Version(const char *name, size_t length); - BACNET_STACK_EXPORT - const char *Device_Description( - void); - BACNET_STACK_EXPORT - bool Device_Set_Description( - const char *name, - size_t length); +BACNET_STACK_EXPORT +const char *Device_Description(void); +BACNET_STACK_EXPORT +bool Device_Set_Description(const char *name, size_t length); - BACNET_STACK_EXPORT - const char *Device_Location( - void); - BACNET_STACK_EXPORT - bool Device_Set_Location( - const char *name, - size_t length); +BACNET_STACK_EXPORT +const char *Device_Location(void); +BACNET_STACK_EXPORT +bool Device_Set_Location(const char *name, size_t length); - /* some stack-centric constant values - no set methods */ - BACNET_STACK_EXPORT - uint8_t Device_Protocol_Version( - void); - BACNET_STACK_EXPORT - uint8_t Device_Protocol_Revision( - void); - BACNET_STACK_EXPORT - BACNET_SEGMENTATION Device_Segmentation_Supported( - void); +/* some stack-centric constant values - no set methods */ +BACNET_STACK_EXPORT +uint8_t Device_Protocol_Version(void); +BACNET_STACK_EXPORT +uint8_t Device_Protocol_Revision(void); +BACNET_STACK_EXPORT +BACNET_SEGMENTATION Device_Segmentation_Supported(void); - BACNET_STACK_EXPORT - uint32_t Device_Database_Revision( - void); - BACNET_STACK_EXPORT - void Device_Set_Database_Revision( - uint32_t revision); - BACNET_STACK_EXPORT - void Device_Inc_Database_Revision( - void); +BACNET_STACK_EXPORT +uint32_t Device_Database_Revision(void); +BACNET_STACK_EXPORT +void Device_Set_Database_Revision(uint32_t revision); +BACNET_STACK_EXPORT +void Device_Inc_Database_Revision(void); - BACNET_STACK_EXPORT - bool Device_Valid_Object_Name( - const BACNET_CHARACTER_STRING * object_name, - BACNET_OBJECT_TYPE *object_type, - uint32_t * object_instance); - BACNET_STACK_EXPORT - bool Device_Valid_Object_Id( - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Device_Valid_Object_Name( + const BACNET_CHARACTER_STRING *object_name, + BACNET_OBJECT_TYPE *object_type, + uint32_t *object_instance); +BACNET_STACK_EXPORT +bool Device_Valid_Object_Id( + BACNET_OBJECT_TYPE object_type, uint32_t object_instance); - BACNET_STACK_EXPORT - int Device_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Device_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Device_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Device_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - int Device_Add_List_Element( - BACNET_LIST_ELEMENT_DATA *list_element); +BACNET_STACK_EXPORT +int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA *list_element); - BACNET_STACK_EXPORT - int Device_Remove_List_Element( - BACNET_LIST_ELEMENT_DATA *list_element); +BACNET_STACK_EXPORT +int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA *list_element); - BACNET_STACK_EXPORT - bool DeviceGetRRInfo( - BACNET_READ_RANGE_DATA * pRequest, /* Info on the request */ - RR_PROP_INFO * pInfo); /* Where to put the information */ +BACNET_STACK_EXPORT +bool DeviceGetRRInfo( + BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ + RR_PROP_INFO *pInfo); /* Where to put the information */ - BACNET_STACK_EXPORT - int Device_Read_Property_Local( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Device_Write_Property_Local( - BACNET_WRITE_PROPERTY_DATA * wp_data); - BACNET_STACK_EXPORT - void Device_Write_Property_Store_Callback_Set( - write_property_function cb); +BACNET_STACK_EXPORT +int Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data); +BACNET_STACK_EXPORT +void Device_Write_Property_Store_Callback_Set(write_property_function cb); #if defined(INTRINSIC_REPORTING) - BACNET_STACK_EXPORT - void Device_local_reporting( - void); +BACNET_STACK_EXPORT +void Device_local_reporting(void); #endif /* Prototypes for Routing functionality in the Device Object. * Enable by defining BAC_ROUTING in config.h and including gw_device.c * in the build (lib/Makefile). */ - BACNET_STACK_EXPORT - void Routing_Device_Init( - uint32_t first_object_instance); +BACNET_STACK_EXPORT +void Routing_Device_Init(uint32_t first_object_instance); - BACNET_STACK_EXPORT - uint16_t Add_Routed_Device( - uint32_t Object_Instance, - const BACNET_CHARACTER_STRING * Object_Name, - const char *Description); - BACNET_STACK_EXPORT - DEVICE_OBJECT_DATA *Get_Routed_Device_Object( - int idx); - BACNET_STACK_EXPORT - BACNET_ADDRESS *Get_Routed_Device_Address( - int idx); - - BACNET_STACK_EXPORT - bool Routed_Device_Address_Lookup( - int idx, - uint8_t address_len, - const uint8_t * mac_adress); - BACNET_STACK_EXPORT - bool Routed_Device_GetNext( - const BACNET_ADDRESS * dest, - const int *DNET_list, - int *cursor); - BACNET_STACK_EXPORT - bool Routed_Device_Is_Valid_Network( - uint16_t dest_net, - const int *DNET_list); - - BACNET_STACK_EXPORT - uint32_t Routed_Device_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - bool Routed_Device_Valid_Object_Instance_Number( - uint32_t object_id); - BACNET_STACK_EXPORT - bool Routed_Device_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - uint32_t Routed_Device_Object_Instance_Number( - void); - BACNET_STACK_EXPORT - bool Routed_Device_Set_Object_Instance_Number( - uint32_t object_id); - BACNET_STACK_EXPORT - bool Routed_Device_Set_Object_Name( - uint8_t encoding, - const char *value, - size_t length); - BACNET_STACK_EXPORT - bool Routed_Device_Set_Description( - const char *name, - size_t length); - BACNET_STACK_EXPORT - void Routed_Device_Inc_Database_Revision( - void); - BACNET_STACK_EXPORT - int Routed_Device_Service_Approval( - BACNET_SERVICES_SUPPORTED service, - int service_argument, - uint8_t * apdu_buff, - uint8_t invoke_id); +BACNET_STACK_EXPORT +uint16_t Add_Routed_Device( + uint32_t Object_Instance, + const BACNET_CHARACTER_STRING *Object_Name, + const char *Description); +BACNET_STACK_EXPORT +DEVICE_OBJECT_DATA *Get_Routed_Device_Object(int idx); +BACNET_STACK_EXPORT +BACNET_ADDRESS *Get_Routed_Device_Address(int idx); +BACNET_STACK_EXPORT +bool Routed_Device_Address_Lookup( + int idx, uint8_t address_len, const uint8_t *mac_adress); +BACNET_STACK_EXPORT +bool Routed_Device_GetNext( + const BACNET_ADDRESS *dest, const int *DNET_list, int *cursor); +BACNET_STACK_EXPORT +bool Routed_Device_Is_Valid_Network(uint16_t dest_net, const int *DNET_list); +BACNET_STACK_EXPORT +uint32_t Routed_Device_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +bool Routed_Device_Valid_Object_Instance_Number(uint32_t object_id); +BACNET_STACK_EXPORT +bool Routed_Device_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +uint32_t Routed_Device_Object_Instance_Number(void); +BACNET_STACK_EXPORT +bool Routed_Device_Set_Object_Instance_Number(uint32_t object_id); +BACNET_STACK_EXPORT +bool Routed_Device_Set_Object_Name( + uint8_t encoding, const char *value, size_t length); +BACNET_STACK_EXPORT +bool Routed_Device_Set_Description(const char *name, size_t length); +BACNET_STACK_EXPORT +void Routed_Device_Inc_Database_Revision(void); +BACNET_STACK_EXPORT +int Routed_Device_Service_Approval( + BACNET_SERVICES_SUPPORTED service, + int service_argument, + uint8_t *apdu_buff, + uint8_t invoke_id); #ifdef __cplusplus } @@ -571,11 +461,13 @@ extern "C" { * - The interface between the implemented Objects and the BAC-stack services, * specifically the handlers, which are mediated through function calls to * the Device object. - *//** @defgroup ObjHelpers Object Helper Functions + */ +/** @defgroup ObjHelpers Object Helper Functions * @ingroup ObjFrmwk * This section describes the function templates for the helper functions that * provide common object support. - *//** @defgroup ObjIntf Handler-to-Object Interface Functions + */ +/** @defgroup ObjIntf Handler-to-Object Interface Functions * @ingroup ObjFrmwk * This section describes the fairly limited set of functions that link the * BAC-stack handlers to the BACnet Object instances. All of these calls are @@ -584,8 +476,8 @@ extern "C" { * Most of these calls have a common operation: * -# Call Device_Objects_Find_Functions( for the desired Object_Type ) * - Gets a pointer to the object_functions for this Type of Object. - * -# Call the Object's Object_Valid_Instance( for the desired object_instance ) - * to make sure there is such an instance. + * -# Call the Object's Object_Valid_Instance( for the desired object_instance + * ) to make sure there is such an instance. * -# Call the Object helper function needed by the handler, * eg Object_Read_Property() for the RP handler. * diff --git a/src/bacnet/basic/object/gateway/gw_device.c b/src/bacnet/basic/object/gateway/gw_device.c index f847d7d3..3e861e6d 100644 --- a/src/bacnet/basic/object/gateway/gw_device.c +++ b/src/bacnet/basic/object/gateway/gw_device.c @@ -88,7 +88,8 @@ uint16_t iCurrent_Device_Idx = 0; * @return The index of this instance in the Devices[] array, or UINT16_MAX if * there isn't enough room to add this Device. */ -uint16_t Add_Routed_Device(uint32_t Object_Instance, +uint16_t Add_Routed_Device( + uint32_t Object_Instance, const BACNET_CHARACTER_STRING *sObject_Name, const char *sDescription) { @@ -100,8 +101,9 @@ uint16_t Add_Routed_Device(uint32_t Object_Instance, pDev->bacObj.mObject_Type = OBJECT_DEVICE; pDev->bacObj.Object_Instance_Number = Object_Instance; if (sObject_Name != NULL) { - Routed_Device_Set_Object_Name(sObject_Name->encoding, - sObject_Name->value, sObject_Name->length); + Routed_Device_Set_Object_Name( + sObject_Name->encoding, sObject_Name->value, + sObject_Name->length); } else { Routed_Device_Set_Object_Name( CHARACTER_UTF8, "No Name", strlen("No Name")); @@ -170,7 +172,8 @@ BACNET_ADDRESS *Get_Routed_Device_Address(int idx) void routed_get_my_address(BACNET_ADDRESS *my_address) { if (my_address) { - memcpy(my_address, &Devices[iCurrent_Device_Idx].bacDevAddr, + memcpy( + my_address, &Devices[iCurrent_Device_Idx].bacDevAddr, sizeof(BACNET_ADDRESS)); } } @@ -590,7 +593,8 @@ void Routed_Device_Inc_Database_Revision(void) * just 1 if no apdu_buff was supplied and service is not supported, * else 0 if service is approved for the current device. */ -int Routed_Device_Service_Approval(BACNET_SERVICES_SUPPORTED service, +int Routed_Device_Service_Approval( + BACNET_SERVICES_SUPPORTED service, int service_argument, uint8_t *apdu_buff, uint8_t invoke_id) @@ -603,7 +607,8 @@ int Routed_Device_Service_Approval(BACNET_SERVICES_SUPPORTED service, /* If not the gateway device, we don't support RD */ if (iCurrent_Device_Idx > 0) { if (apdu_buff != NULL) { - len = reject_encode_apdu(apdu_buff, invoke_id, + len = reject_encode_apdu( + apdu_buff, invoke_id, REJECT_REASON_UNRECOGNIZED_SERVICE); } else { len = 1; /* Non-zero return */ @@ -614,7 +619,8 @@ int Routed_Device_Service_Approval(BACNET_SERVICES_SUPPORTED service, /* If not the gateway device, we don't support DCC */ if (iCurrent_Device_Idx > 0) { if (apdu_buff != NULL) { - len = reject_encode_apdu(apdu_buff, invoke_id, + len = reject_encode_apdu( + apdu_buff, invoke_id, REJECT_REASON_UNRECOGNIZED_SERVICE); } else { len = 1; /* Non-zero return */ diff --git a/src/bacnet/basic/object/iv.c b/src/bacnet/basic/object/iv.c index 2aad2d7a..3a2a98de 100644 --- a/src/bacnet/basic/object/iv.c +++ b/src/bacnet/basic/object/iv.c @@ -34,7 +34,6 @@ static OS_Keylist Object_List = NULL; /* common object type */ static const BACNET_OBJECT_TYPE Object_Type = OBJECT_INTEGER_VALUE; - struct integer_object { bool Out_Of_Service : 1; bool Changed : 1; @@ -49,13 +48,16 @@ struct integer_object { /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Integer_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_UNITS, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_UNITS, + -1 }; -static const int Integer_Value_Properties_Optional[] = { PROP_OUT_OF_SERVICE, - PROP_DESCRIPTION, - PROP_COV_INCREMENT, - -1 }; +static const int Integer_Value_Properties_Optional[] = { + PROP_OUT_OF_SERVICE, PROP_DESCRIPTION, PROP_COV_INCREMENT, -1 +}; static const int Integer_Value_Properties_Proprietary[] = { -1 }; @@ -186,7 +188,7 @@ Integer_Value_COV_Detect(struct integer_object *pObject, int32_t value) if (pObject) { int32_t prior_value = pObject->Prior_Value; uint32_t cov_increment = pObject->COV_Increment; - uint32_t cov_delta = (uint32_t) abs(prior_value - value); + uint32_t cov_delta = (uint32_t)abs(prior_value - value); if (cov_delta >= cov_increment) { pObject->Changed = true; @@ -209,7 +211,7 @@ bool Integer_Value_Present_Value_Set( bool status = false; struct integer_object *pObject = Integer_Value_Object(object_instance); - (void) priority; + (void)priority; if (pObject) { Integer_Value_COV_Detect(pObject, value); @@ -259,8 +261,7 @@ bool Integer_Value_Object_Name( * @param new_name - holds the object-name to be set * @return true if object-name was set */ -bool Integer_Value_Name_Set(uint32_t object_instance, - const char *new_name) +bool Integer_Value_Name_Set(uint32_t object_instance, const char *new_name) { bool status = false; struct integer_object *pObject; @@ -311,8 +312,8 @@ bool Integer_Value_Description( pObject = Integer_Value_Object(object_instance); if (pObject) { if (pObject->Description) { - status = characterstring_init_ansi(description, - pObject->Description); + status = + characterstring_init_ansi(description, pObject->Description); } else { status = characterstring_init_ansi(description, ""); } @@ -327,8 +328,8 @@ bool Integer_Value_Description( * @param new_name - holds the description to be set * @return true if object-name was set */ -bool Integer_Value_Description_Set(uint32_t object_instance, - const char *new_name) +bool Integer_Value_Description_Set( + uint32_t object_instance, const char *new_name) { bool status = false; /* return value */ struct integer_object *pObject; @@ -478,8 +479,7 @@ int Integer_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) encode_application_character_string(&apdu[0], &char_string); break; case PROP_OBJECT_TYPE: - apdu_len = - encode_application_enumerated(&apdu[0], Object_Type); + apdu_len = encode_application_enumerated(&apdu[0], Object_Type); break; case PROP_DESCRIPTION: if (Integer_Value_Description( @@ -512,8 +512,8 @@ int Integer_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_enumerated(&apdu[0], units); break; case PROP_COV_INCREMENT: - apdu_len = - encode_application_unsigned(&apdu[0], Integer_Value_COV_Increment(rpdata->object_instance)); + apdu_len = encode_application_unsigned( + &apdu[0], Integer_Value_COV_Increment(rpdata->object_instance)); break; default: rpdata->error_class = ERROR_CLASS_PROPERTY; @@ -571,8 +571,9 @@ bool Integer_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_SIGNED_INT); if (status) { - Integer_Value_Present_Value_Set(wp_data->object_instance, - value.type.Signed_Int, wp_data->priority); + Integer_Value_Present_Value_Set( + wp_data->object_instance, value.type.Signed_Int, + wp_data->priority); } break; case PROP_COV_INCREMENT: @@ -604,7 +605,6 @@ bool Integer_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY; } break; - } return status; @@ -678,8 +678,9 @@ bool Integer_Value_Encode_Value_List( const bool fault = false; const bool overridden = false; - status = cov_value_list_encode_signed_int(value_list, present_value, - in_alarm, fault, overridden, out_of_service); + status = cov_value_list_encode_signed_int( + value_list, present_value, in_alarm, fault, overridden, + out_of_service); } return status; @@ -734,7 +735,7 @@ uint32_t Integer_Value_Create(uint32_t object_instance) pObject->Description = NULL; pObject->COV_Increment = 1; pObject->Present_Value = 0; - pObject->Prior_Value = 0; + pObject->Prior_Value = 0; pObject->Units = UNITS_PERCENT; pObject->Out_Of_Service = false; pObject->Changed = false; @@ -756,7 +757,8 @@ uint32_t Integer_Value_Create(uint32_t object_instance) bool Integer_Value_Delete(uint32_t object_instance) { bool status = false; - struct integer_object *pObject = Keylist_Data_Delete(Object_List, object_instance); + struct integer_object *pObject = + Keylist_Data_Delete(Object_List, object_instance); if (pObject) { free(pObject); diff --git a/src/bacnet/basic/object/iv.h b/src/bacnet/basic/object/iv.h index a8f4dd56..51de8e45 100644 --- a/src/bacnet/basic/object/iv.h +++ b/src/bacnet/basic/object/iv.h @@ -20,115 +20,79 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Integer_Value_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Integer_Value_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Integer_Value_Count( - void); - BACNET_STACK_EXPORT - uint32_t Integer_Value_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Integer_Value_Instance_To_Index( - uint32_t object_instance); +BACNET_STACK_EXPORT +void Integer_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Integer_Value_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Integer_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t Integer_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Integer_Value_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Integer_Value_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Integer_Value_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Integer_Value_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Integer_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Integer_Value_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Integer_Value_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - int Integer_Value_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Integer_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Integer_Value_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool Integer_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool Integer_Value_Present_Value_Set( - uint32_t object_instance, - int32_t value, - uint8_t priority); - BACNET_STACK_EXPORT - int32_t Integer_Value_Present_Value( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Integer_Value_Present_Value_Set( + uint32_t object_instance, int32_t value, uint8_t priority); +BACNET_STACK_EXPORT +int32_t Integer_Value_Present_Value(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Integer_Value_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Integer_Value_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Integer_Value_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - BACNET_STACK_EXPORT - uint32_t Integer_Value_COV_Increment( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Integer_Value_COV_Increment_Set( - uint32_t object_instance, - uint32_t value); +BACNET_STACK_EXPORT +bool Integer_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Integer_Value_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Integer_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +BACNET_STACK_EXPORT +uint32_t Integer_Value_COV_Increment(uint32_t object_instance); +BACNET_STACK_EXPORT +void Integer_Value_COV_Increment_Set(uint32_t object_instance, uint32_t value); - BACNET_STACK_EXPORT - bool Integer_Value_Description( - uint32_t object_instance, - BACNET_CHARACTER_STRING *description); - BACNET_STACK_EXPORT - bool Integer_Value_Description_Set( - uint32_t instance, - const char *new_name); - BACNET_STACK_EXPORT - char *Integer_Value_Description_ANSI( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Integer_Value_Description( + uint32_t object_instance, BACNET_CHARACTER_STRING *description); +BACNET_STACK_EXPORT +bool Integer_Value_Description_Set(uint32_t instance, const char *new_name); +BACNET_STACK_EXPORT +char *Integer_Value_Description_ANSI(uint32_t object_instance); - BACNET_STACK_EXPORT - uint16_t Integer_Value_Units( - uint32_t instance); - BACNET_STACK_EXPORT - bool Integer_Value_Units_Set( - uint32_t instance, - uint16_t unit); +BACNET_STACK_EXPORT +uint16_t Integer_Value_Units(uint32_t instance); +BACNET_STACK_EXPORT +bool Integer_Value_Units_Set(uint32_t instance, uint16_t unit); - BACNET_STACK_EXPORT - bool Integer_Value_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Integer_Value_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Integer_Value_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Integer_Value_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - void Integer_Value_Init( - void); +BACNET_STACK_EXPORT +void Integer_Value_Init(void); - BACNET_STACK_EXPORT - uint32_t Integer_Value_Create( - uint32_t object_instance); - - BACNET_STACK_EXPORT - bool Integer_Value_Delete( - uint32_t object_instance); - - BACNET_STACK_EXPORT - void Integer_Value_Cleanup(void); +BACNET_STACK_EXPORT +uint32_t Integer_Value_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Integer_Value_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Integer_Value_Cleanup(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/lc.c b/src/bacnet/basic/object/lc.c index 36445c81..90a9ca7b 100644 --- a/src/bacnet/basic/object/lc.c +++ b/src/bacnet/basic/object/lc.c @@ -359,8 +359,8 @@ static float Requested_Shed_Level_Value(struct object_data *pObject) * @param dest - destination data * @param src - source data */ -static void Shed_Level_Copy( - BACNET_SHED_LEVEL *dest, const BACNET_SHED_LEVEL *src) +static void +Shed_Level_Copy(BACNET_SHED_LEVEL *dest, const BACNET_SHED_LEVEL *src) { if (dest && src) { dest->type = src->type; @@ -446,7 +446,8 @@ static bool Able_To_Meet_Shed_Request(struct object_data *pObject) * @param object_index - object index in the list * @param bdatetime - current date and time */ -void Load_Control_State_Machine(int object_index, const BACNET_DATE_TIME *bdatetime) +void Load_Control_State_Machine( + int object_index, const BACNET_DATE_TIME *bdatetime) { int diff = 0; /* used for datetime comparison */ float amount; @@ -909,8 +910,8 @@ static int Load_Control_Shed_Level_Descriptions_Encode( * @param value [in] The value to encode * @return The length of the apdu encoded */ -static int BACnet_Shed_Level_Encode( - uint8_t *apdu, const BACNET_SHED_LEVEL *value) +static int +BACnet_Shed_Level_Encode(uint8_t *apdu, const BACNET_SHED_LEVEL *value) { int apdu_len = 0; diff --git a/src/bacnet/basic/object/lc.h b/src/bacnet/basic/object/lc.h index 3e054d57..d0dc18cf 100644 --- a/src/bacnet/basic/object/lc.h +++ b/src/bacnet/basic/object/lc.h @@ -158,7 +158,8 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); /* functions used for unit testing */ BACNET_STACK_EXPORT -void Load_Control_State_Machine(int object_index, const BACNET_DATE_TIME *bdatetime); +void Load_Control_State_Machine( + int object_index, const BACNET_DATE_TIME *bdatetime); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/lo.c b/src/bacnet/basic/object/lo.c index a04c7ef4..e8bf576c 100644 --- a/src/bacnet/basic/object/lo.c +++ b/src/bacnet/basic/object/lo.c @@ -197,8 +197,7 @@ unsigned Lighting_Output_Instance_To_Index(uint32_t object_instance) * 0 to N for individual array members * @return the priority-array active status for the specific priority */ -static bool -Priority_Array_Active( +static bool Priority_Array_Active( const struct object_data *pObject, BACNET_ARRAY_INDEX priority) { bool active = false; @@ -219,8 +218,7 @@ Priority_Array_Active( * 0 to N for individual array members * @return The priority-array value for the specific priority */ -static float -Priority_Array_Value( +static float Priority_Array_Value( const struct object_data *pObject, BACNET_ARRAY_INDEX priority) { float real_value = 0.0; @@ -536,9 +534,11 @@ Lighting_Command_Warn_Relinquish(struct object_data *pObject, unsigned priority) * @param value [in] BACnet lighting value * @param fade_time [in] BACnet lighting fade time */ -static void -Lighting_Command_Fade_To(struct object_data *pObject, - unsigned priority, float value, uint32_t fade_time) +static void Lighting_Command_Fade_To( + struct object_data *pObject, + unsigned priority, + float value, + uint32_t fade_time) { unsigned current_priority; @@ -562,9 +562,11 @@ Lighting_Command_Fade_To(struct object_data *pObject, * @param value [in] BACnet lighting value * @param ramp_rate [in] BACnet lighting ramp rate */ -static void -Lighting_Command_Ramp_To(struct object_data *pObject, - unsigned priority, float value, float ramp_rate) +static void Lighting_Command_Ramp_To( + struct object_data *pObject, + unsigned priority, + float value, + float ramp_rate) { unsigned current_priority; @@ -994,8 +996,7 @@ static bool Lighting_Output_Lighting_Command_Write( *error_code = ERROR_CODE_WRITE_ACCESS_DENIED; return status; } - if ((priority < BACNET_MIN_PRIORITY) || - (priority > BACNET_MAX_PRIORITY)) { + if ((priority < BACNET_MIN_PRIORITY) || (priority > BACNET_MAX_PRIORITY)) { *error_class = ERROR_CLASS_PROPERTY; *error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; return status; @@ -1007,41 +1008,43 @@ static bool Lighting_Output_Lighting_Command_Write( } pObject = Keylist_Data(Object_List, object_instance); if (pObject) { - debug_printf("LO[%u]: Lighting-Command@%u: %s\n", - object_instance, priority, + debug_printf( + "LO[%u]: Lighting-Command@%u: %s\n", object_instance, priority, bactext_lighting_operation_name(value->operation)); switch (value->operation) { case BACNET_LIGHTS_NONE: status = true; break; case BACNET_LIGHTS_FADE_TO: - debug_printf("LO[%u]: Lighting-Command@%u Fade-To " + debug_printf( + "LO[%u]: Lighting-Command@%u Fade-To " "Target=%f Fade=%u\n", - object_instance, priority, - (double)value->target_level, value->fade_time); - Lighting_Command_Fade_To(pObject, priority, - value->target_level, value->fade_time); + object_instance, priority, (double)value->target_level, + value->fade_time); + Lighting_Command_Fade_To( + pObject, priority, value->target_level, value->fade_time); status = true; break; case BACNET_LIGHTS_RAMP_TO: - debug_printf("LO[%u]: Lighting-Command@%u Ramp-To " + debug_printf( + "LO[%u]: Lighting-Command@%u Ramp-To " "Target=%f Ramp-Rate=%f\n", - object_instance, priority, - (double)value->target_level, (double)value->ramp_rate); - Lighting_Command_Ramp_To(pObject, priority, - value->target_level, value->ramp_rate); + object_instance, priority, (double)value->target_level, + (double)value->ramp_rate); + Lighting_Command_Ramp_To( + pObject, priority, value->target_level, value->ramp_rate); status = true; break; case BACNET_LIGHTS_STEP_UP: case BACNET_LIGHTS_STEP_DOWN: case BACNET_LIGHTS_STEP_ON: case BACNET_LIGHTS_STEP_OFF: - debug_printf("LO[%u]: Lighting-Command@%u Step " + debug_printf( + "LO[%u]: Lighting-Command@%u Step " "Step-Increment=%f\n", - object_instance, priority, - (double)value->step_increment); - Lighting_Command_Step(pObject,priority, - value->operation,value->step_increment); + object_instance, priority, (double)value->step_increment); + Lighting_Command_Step( + pObject, priority, value->operation, value->step_increment); status = true; break; case BACNET_LIGHTS_WARN: @@ -1544,8 +1547,7 @@ static bool Lighting_Output_Default_Step_Increment_Write( pObject = Keylist_Data(Object_List, object_instance); if (pObject) { (void)priority; - if (isgreaterequal(value, 0.1f) && - islessequal(value, 100.0f)) { + if (isgreaterequal(value, 0.1f) && islessequal(value, 100.0f)) { pObject->Default_Step_Increment = value; status = true; } else { @@ -2185,8 +2187,8 @@ bool Lighting_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) if (status) { status = Lighting_Output_Lighting_Command_Write( wp_data->object_instance, &value.type.Lighting_Command, - wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); if (!status) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; @@ -2324,10 +2326,10 @@ Lighting_Output_Fade_Handler(uint32_t object_instance, uint16_t milliseconds) Lighting_Output_Write_Present_Value_Callback( object_instance, old_value, pObject->Tracking_Value); } else { - debug_printf("LO[%u] Fade Handler Operation=%s Value=%f\n", - object_instance, + debug_printf( + "LO[%u] Fade Handler Operation=%s Value=%f\n", object_instance, bactext_lighting_operation_name( - pObject->Lighting_Command.operation), + pObject->Lighting_Command.operation), (double)pObject->Tracking_Value); } } @@ -2391,7 +2393,8 @@ Lighting_Output_Ramp_Handler(uint32_t object_instance, uint16_t milliseconds) pObject->Lighting_Command.operation = BACNET_LIGHTS_STOP; } } else if (isgreater(old_value, target_value)) { - debug_printf("LO[%u] Ramp Handler Down steps=%f tracking=%f\n", + debug_printf( + "LO[%u] Ramp Handler Down steps=%f tracking=%f\n", object_instance, (double)steps, (double)old_value); if (isgreater(old_value, steps)) { step_value = old_value - steps; @@ -2403,7 +2406,8 @@ Lighting_Output_Ramp_Handler(uint32_t object_instance, uint16_t milliseconds) pObject->Lighting_Command.operation = BACNET_LIGHTS_STOP; } } else { - debug_printf("LO[%u] Ramp Handler at target=%f tracking=%f\n", + debug_printf( + "LO[%u] Ramp Handler at target=%f tracking=%f\n", object_instance, (double)target_value, (double)old_value); /* stop ramping */ step_value = target_value; @@ -2427,10 +2431,10 @@ Lighting_Output_Ramp_Handler(uint32_t object_instance, uint16_t milliseconds) Lighting_Output_Write_Present_Value_Callback( object_instance, old_value, pObject->Tracking_Value); } else { - debug_printf("LO[%u] Ramp Handler Operation=%s Value=%f\n", - object_instance, + debug_printf( + "LO[%u] Ramp Handler Operation=%s Value=%f\n", object_instance, bactext_lighting_operation_name( - pObject->Lighting_Command.operation), + pObject->Lighting_Command.operation), (double)pObject->Tracking_Value); } } @@ -2475,10 +2479,11 @@ static void Lighting_Output_Step_Up_Handler(uint32_t object_instance) Lighting_Output_Write_Present_Value_Callback( object_instance, old_value, pObject->Tracking_Value); } else { - debug_printf("LO[%u] Step Up Handler Operation=%s Value=%f\n", + debug_printf( + "LO[%u] Step Up Handler Operation=%s Value=%f\n", object_instance, bactext_lighting_operation_name( - pObject->Lighting_Command.operation), + pObject->Lighting_Command.operation), (double)pObject->Tracking_Value); } } @@ -2526,10 +2531,10 @@ static void Lighting_Output_Step_Down_Handler(uint32_t object_instance) Lighting_Output_Write_Present_Value_Callback( object_instance, old_value, pObject->Tracking_Value); } else { - debug_printf("LO[%u] Step Down Handler Operation=%s Value=%f\n", - object_instance, + debug_printf( + "LO[%u] Step Down Handler Operation=%s Value=%f\n", object_instance, bactext_lighting_operation_name( - pObject->Lighting_Command.operation), + pObject->Lighting_Command.operation), (double)pObject->Tracking_Value); } } @@ -2572,10 +2577,10 @@ static void Lighting_Output_Step_On_Handler(uint32_t object_instance) Lighting_Output_Write_Present_Value_Callback( object_instance, old_value, pObject->Tracking_Value); } else { - debug_printf("LO[%u] Step On Handler Operation=%s Value=%f\n", - object_instance, + debug_printf( + "LO[%u] Step On Handler Operation=%s Value=%f\n", object_instance, bactext_lighting_operation_name( - pObject->Lighting_Command.operation), + pObject->Lighting_Command.operation), (double)pObject->Tracking_Value); } } @@ -2623,10 +2628,10 @@ static void Lighting_Output_Step_Off_Handler(uint32_t object_instance) Lighting_Output_Write_Present_Value_Callback( object_instance, old_value, pObject->Tracking_Value); } else { - debug_printf("LO[%u] Step Off Handler Operation=%s Value=%f\n", - object_instance, + debug_printf( + "LO[%u] Step Off Handler Operation=%s Value=%f\n", object_instance, bactext_lighting_operation_name( - pObject->Lighting_Command.operation), + pObject->Lighting_Command.operation), (double)pObject->Tracking_Value); } } diff --git a/src/bacnet/basic/object/lo.h b/src/bacnet/basic/object/lo.h index 2e92fa53..793b4fac 100644 --- a/src/bacnet/basic/object/lo.h +++ b/src/bacnet/basic/object/lo.h @@ -29,232 +29,169 @@ typedef void (*lighting_output_write_present_value_callback)( extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Lighting_Output_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Lighting_Output_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Lighting_Output_Count( - void); - BACNET_STACK_EXPORT - uint32_t Lighting_Output_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Lighting_Output_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +void Lighting_Output_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Lighting_Output_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Lighting_Output_Count(void); +BACNET_STACK_EXPORT +uint32_t Lighting_Output_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Lighting_Output_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - float Lighting_Output_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Lighting_Output_Present_Value_Priority( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Present_Value_Set( - uint32_t object_instance, - float value, - unsigned priority); - BACNET_STACK_EXPORT - bool Lighting_Output_Present_Value_Relinquish( - uint32_t object_instance, - unsigned priority); +BACNET_STACK_EXPORT +float Lighting_Output_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Lighting_Output_Present_Value_Priority(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Present_Value_Set( + uint32_t object_instance, float value, unsigned priority); +BACNET_STACK_EXPORT +bool Lighting_Output_Present_Value_Relinquish( + uint32_t object_instance, unsigned priority); - BACNET_STACK_EXPORT - float Lighting_Output_Relinquish_Default( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Relinquish_Default_Set( - uint32_t object_instance, - float value); +BACNET_STACK_EXPORT +float Lighting_Output_Relinquish_Default(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Relinquish_Default_Set( + uint32_t object_instance, float value); - BACNET_STACK_EXPORT - bool Lighting_Output_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Lighting_Output_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); - BACNET_STACK_EXPORT - float Lighting_Output_COV_Increment( - uint32_t instance); - BACNET_STACK_EXPORT - void Lighting_Output_COV_Increment_Set( - uint32_t instance, - float value); +BACNET_STACK_EXPORT +bool Lighting_Output_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Lighting_Output_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); +BACNET_STACK_EXPORT +float Lighting_Output_COV_Increment(uint32_t instance); +BACNET_STACK_EXPORT +void Lighting_Output_COV_Increment_Set(uint32_t instance, float value); - BACNET_STACK_EXPORT - bool Lighting_Output_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Lighting_Output_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Lighting_Output_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Lighting_Output_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Lighting_Output_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - const char *Lighting_Output_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +const char *Lighting_Output_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - bool Lighting_Output_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Lighting_Output_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Lighting_Output_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Lighting_Output_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - bool Lighting_Output_Lighting_Command_Set( - uint32_t object_instance, - const BACNET_LIGHTING_COMMAND *value); - BACNET_STACK_EXPORT - bool Lighting_Output_Lighting_Command( - uint32_t object_instance, - BACNET_LIGHTING_COMMAND *value); +BACNET_STACK_EXPORT +bool Lighting_Output_Lighting_Command_Set( + uint32_t object_instance, const BACNET_LIGHTING_COMMAND *value); +BACNET_STACK_EXPORT +bool Lighting_Output_Lighting_Command( + uint32_t object_instance, BACNET_LIGHTING_COMMAND *value); - BACNET_STACK_EXPORT - BACNET_LIGHTING_IN_PROGRESS Lighting_Output_In_Progress( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_In_Progress_Set( - uint32_t object_instance, - BACNET_LIGHTING_IN_PROGRESS in_progress); +BACNET_STACK_EXPORT +BACNET_LIGHTING_IN_PROGRESS +Lighting_Output_In_Progress(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_In_Progress_Set( + uint32_t object_instance, BACNET_LIGHTING_IN_PROGRESS in_progress); - BACNET_STACK_EXPORT - float Lighting_Output_Tracking_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Tracking_Value_Set( - uint32_t object_instance, - float value); +BACNET_STACK_EXPORT +float Lighting_Output_Tracking_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Tracking_Value_Set(uint32_t object_instance, float value); - BACNET_STACK_EXPORT - bool Lighting_Output_Blink_Warn_Enable( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Blink_Warn_Enable_Set( - uint32_t object_instance, - bool enable); +BACNET_STACK_EXPORT +bool Lighting_Output_Blink_Warn_Enable(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Blink_Warn_Enable_Set( + uint32_t object_instance, bool enable); - BACNET_STACK_EXPORT - uint32_t Lighting_Output_Egress_Time( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Egress_Time_Set( - uint32_t object_instance, - uint32_t seconds); - BACNET_STACK_EXPORT - bool Lighting_Output_Egress_Active( - uint32_t object_instance); +BACNET_STACK_EXPORT +uint32_t Lighting_Output_Egress_Time(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Egress_Time_Set( + uint32_t object_instance, uint32_t seconds); +BACNET_STACK_EXPORT +bool Lighting_Output_Egress_Active(uint32_t object_instance); - BACNET_STACK_EXPORT - uint32_t Lighting_Output_Default_Fade_Time( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Default_Fade_Time_Set( - uint32_t object_instance, - uint32_t milliseconds); +BACNET_STACK_EXPORT +uint32_t Lighting_Output_Default_Fade_Time(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Default_Fade_Time_Set( + uint32_t object_instance, uint32_t milliseconds); - BACNET_STACK_EXPORT - float Lighting_Output_Default_Ramp_Rate( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Default_Ramp_Rate_Set( - uint32_t object_instance, - float percent_per_second); +BACNET_STACK_EXPORT +float Lighting_Output_Default_Ramp_Rate(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Default_Ramp_Rate_Set( + uint32_t object_instance, float percent_per_second); - BACNET_STACK_EXPORT - float Lighting_Output_Default_Step_Increment( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Default_Step_Increment_Set( - uint32_t object_instance, - float step_increment); +BACNET_STACK_EXPORT +float Lighting_Output_Default_Step_Increment(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Default_Step_Increment_Set( + uint32_t object_instance, float step_increment); - BACNET_STACK_EXPORT - BACNET_LIGHTING_TRANSITION Lighting_Output_Transition( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Transition_Set( - uint32_t object_instance, - BACNET_LIGHTING_TRANSITION value); +BACNET_STACK_EXPORT +BACNET_LIGHTING_TRANSITION Lighting_Output_Transition(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Transition_Set( + uint32_t object_instance, BACNET_LIGHTING_TRANSITION value); - BACNET_STACK_EXPORT - unsigned Lighting_Output_Default_Priority( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Default_Priority_Set( - uint32_t object_instance, - unsigned priority); +BACNET_STACK_EXPORT +unsigned Lighting_Output_Default_Priority(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Default_Priority_Set( + uint32_t object_instance, unsigned priority); - BACNET_STACK_EXPORT - bool Lighting_Output_Color_Override( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Color_Override_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Lighting_Output_Color_Override(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Color_Override_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - bool Lighting_Output_Color_Reference( - uint32_t object_instance, - BACNET_OBJECT_ID *value); - BACNET_STACK_EXPORT - bool Lighting_Output_Color_Reference_Set( - uint32_t object_instance, - const BACNET_OBJECT_ID *value); +BACNET_STACK_EXPORT +bool Lighting_Output_Color_Reference( + uint32_t object_instance, BACNET_OBJECT_ID *value); +BACNET_STACK_EXPORT +bool Lighting_Output_Color_Reference_Set( + uint32_t object_instance, const BACNET_OBJECT_ID *value); - BACNET_STACK_EXPORT - bool Lighting_Output_Override_Color_Reference( - uint32_t object_instance, - BACNET_OBJECT_ID *value); - BACNET_STACK_EXPORT - bool Lighting_Output_Override_Color_Reference_Set( - uint32_t object_instance, - const BACNET_OBJECT_ID *value); +BACNET_STACK_EXPORT +bool Lighting_Output_Override_Color_Reference( + uint32_t object_instance, BACNET_OBJECT_ID *value); +BACNET_STACK_EXPORT +bool Lighting_Output_Override_Color_Reference_Set( + uint32_t object_instance, const BACNET_OBJECT_ID *value); - BACNET_STACK_EXPORT - void Lighting_Output_Timer( - uint32_t object_instance, - uint16_t milliseconds); +BACNET_STACK_EXPORT +void Lighting_Output_Timer(uint32_t object_instance, uint16_t milliseconds); - BACNET_STACK_EXPORT - void Lighting_Output_Write_Present_Value_Callback_Set( - lighting_output_write_present_value_callback cb); +BACNET_STACK_EXPORT +void Lighting_Output_Write_Present_Value_Callback_Set( + lighting_output_write_present_value_callback cb); - BACNET_STACK_EXPORT - uint32_t Lighting_Output_Create(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Lighting_Output_Delete(uint32_t object_instance); - BACNET_STACK_EXPORT - void Lighting_Output_Cleanup(void); - BACNET_STACK_EXPORT - void Lighting_Output_Init( - void); +BACNET_STACK_EXPORT +uint32_t Lighting_Output_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Lighting_Output_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Lighting_Output_Cleanup(void); +BACNET_STACK_EXPORT +void Lighting_Output_Init(void); - BACNET_STACK_EXPORT - int Lighting_Output_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Lighting_Output_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Lighting_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/lsp.c b/src/bacnet/basic/object/lsp.c index c932d1ca..553e47c7 100644 --- a/src/bacnet/basic/object/lsp.c +++ b/src/bacnet/basic/object/lsp.c @@ -38,10 +38,13 @@ static const BACNET_OBJECT_TYPE Object_Type = OBJECT_LIFE_SAFETY_POINT; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Life_Safety_Point_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_RELIABILITY, PROP_MODE, - PROP_ACCEPTED_MODES, PROP_SILENCED, PROP_OPERATION_EXPECTED, -1 + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, PROP_STATUS_FLAGS, + PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, + PROP_RELIABILITY, PROP_MODE, + PROP_ACCEPTED_MODES, PROP_SILENCED, + PROP_OPERATION_EXPECTED, -1 }; static const int Life_Safety_Point_Properties_Optional[] = { -1 }; @@ -136,8 +139,8 @@ unsigned Life_Safety_Point_Instance_To_Index(uint32_t object_instance) * @param object_instance - object-instance number of the object * @return present-value of the object */ -BACNET_LIFE_SAFETY_STATE Life_Safety_Point_Present_Value( - uint32_t object_instance) +BACNET_LIFE_SAFETY_STATE +Life_Safety_Point_Present_Value(uint32_t object_instance) { BACNET_LIFE_SAFETY_STATE value = LIFE_SAFETY_STATE_QUIET; struct object_data *pObject; @@ -194,7 +197,8 @@ bool Life_Safety_Point_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "LIFE-SAFETY-POINT-%u", + snprintf( + name_text, sizeof(name_text), "LIFE-SAFETY-POINT-%u", object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -328,8 +332,8 @@ bool Life_Safety_Point_Mode_Set( * @param object_instance - object-instance number of the object * @return property value */ -BACNET_LIFE_SAFETY_OPERATION Life_Safety_Point_Operation_Expected( - uint32_t object_instance) +BACNET_LIFE_SAFETY_OPERATION +Life_Safety_Point_Operation_Expected(uint32_t object_instance) { BACNET_LIFE_SAFETY_OPERATION value = LIFE_SAFETY_OP_NONE; struct object_data *pObject; @@ -545,7 +549,8 @@ int Life_Safety_Point_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_enumerated(&apdu[0], silenced_state); break; case PROP_OPERATION_EXPECTED: - operation = Life_Safety_Point_Operation_Expected(rpdata->object_instance); + operation = + Life_Safety_Point_Operation_Expected(rpdata->object_instance); apdu_len = encode_application_enumerated(&apdu[0], operation); break; default: @@ -593,7 +598,8 @@ bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated <= MAX_LIFE_SAFETY_MODE) { - Life_Safety_Point_Mode_Set(wp_data->object_instance, + Life_Safety_Point_Mode_Set( + wp_data->object_instance, (BACNET_LIFE_SAFETY_MODE)value.type.Enumerated); } else { status = false; @@ -630,7 +636,8 @@ bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated <= UINT16_MAX) { - Life_Safety_Point_Silenced_Set(wp_data->object_instance, + Life_Safety_Point_Silenced_Set( + wp_data->object_instance, (BACNET_SILENCED_STATE)value.type.Enumerated); } else { status = false; diff --git a/src/bacnet/basic/object/lsp.h b/src/bacnet/basic/object/lsp.h index da3d3152..f4d1e1f9 100644 --- a/src/bacnet/basic/object/lsp.h +++ b/src/bacnet/basic/object/lsp.h @@ -20,102 +20,75 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Life_Safety_Point_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Life_Safety_Point_Count( - void); - BACNET_STACK_EXPORT - uint32_t Life_Safety_Point_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Life_Safety_Point_Instance_To_Index( - uint32_t object_instance); +BACNET_STACK_EXPORT +void Life_Safety_Point_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Life_Safety_Point_Count(void); +BACNET_STACK_EXPORT +uint32_t Life_Safety_Point_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Life_Safety_Point_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Life_Safety_Point_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Life_Safety_Point_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - BACNET_LIFE_SAFETY_STATE Life_Safety_Point_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Present_Value_Set( - uint32_t object_instance, - BACNET_LIFE_SAFETY_STATE present_value); +BACNET_STACK_EXPORT +BACNET_LIFE_SAFETY_STATE +Life_Safety_Point_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Present_Value_Set( + uint32_t object_instance, BACNET_LIFE_SAFETY_STATE present_value); - BACNET_STACK_EXPORT - BACNET_SILENCED_STATE Life_Safety_Point_Silenced( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Silenced_Set( - uint32_t object_instance, - BACNET_SILENCED_STATE value); - BACNET_STACK_EXPORT - BACNET_LIFE_SAFETY_MODE Life_Safety_Point_Mode( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Mode_Set( - uint32_t object_instance, - BACNET_LIFE_SAFETY_MODE value); - BACNET_STACK_EXPORT - BACNET_LIFE_SAFETY_OPERATION Life_Safety_Point_Operation_Expected( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Operation_Expected_Set( - uint32_t object_instance, - BACNET_LIFE_SAFETY_OPERATION value); +BACNET_STACK_EXPORT +BACNET_SILENCED_STATE Life_Safety_Point_Silenced(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Silenced_Set( + uint32_t object_instance, BACNET_SILENCED_STATE value); +BACNET_STACK_EXPORT +BACNET_LIFE_SAFETY_MODE Life_Safety_Point_Mode(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Mode_Set( + uint32_t object_instance, BACNET_LIFE_SAFETY_MODE value); +BACNET_STACK_EXPORT +BACNET_LIFE_SAFETY_OPERATION +Life_Safety_Point_Operation_Expected(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Operation_Expected_Set( + uint32_t object_instance, BACNET_LIFE_SAFETY_OPERATION value); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Life_Safety_Point_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Life_Safety_Point_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Life_Safety_Point_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Reliability_Set( - uint32_t object_instance, BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Life_Safety_Point_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - int Life_Safety_Point_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Life_Safety_Point_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); - - BACNET_STACK_EXPORT - uint32_t Life_Safety_Point_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Point_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Life_Safety_Point_Cleanup( - void); - BACNET_STACK_EXPORT - void Life_Safety_Point_Init( - void); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); +BACNET_STACK_EXPORT +uint32_t Life_Safety_Point_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Point_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Life_Safety_Point_Cleanup(void); +BACNET_STACK_EXPORT +void Life_Safety_Point_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/lsz.c b/src/bacnet/basic/object/lsz.c index 8fc512af..fddab5e3 100644 --- a/src/bacnet/basic/object/lsz.c +++ b/src/bacnet/basic/object/lsz.c @@ -48,11 +48,14 @@ static const BACNET_OBJECT_TYPE Object_Type = OBJECT_LIFE_SAFETY_ZONE; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Life_Safety_Zone_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_MODE, - PROP_ACCEPTED_MODES, PROP_SILENCED, PROP_OPERATION_EXPECTED, - PROP_ZONE_MEMBERS, PROP_MAINTENANCE_REQUIRED, -1 + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, PROP_STATUS_FLAGS, + PROP_EVENT_STATE, PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, PROP_MODE, + PROP_ACCEPTED_MODES, PROP_SILENCED, + PROP_OPERATION_EXPECTED, PROP_ZONE_MEMBERS, + PROP_MAINTENANCE_REQUIRED, -1 }; static const int Life_Safety_Zone_Properties_Optional[] = { -1 }; @@ -147,8 +150,8 @@ unsigned Life_Safety_Zone_Instance_To_Index(uint32_t object_instance) * @param object_instance - object-instance number of the object * @return present-value of the object */ -BACNET_LIFE_SAFETY_STATE Life_Safety_Zone_Present_Value( - uint32_t object_instance) +BACNET_LIFE_SAFETY_STATE +Life_Safety_Zone_Present_Value(uint32_t object_instance) { BACNET_LIFE_SAFETY_STATE value = LIFE_SAFETY_STATE_QUIET; struct object_data *pObject; @@ -205,7 +208,8 @@ bool Life_Safety_Zone_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "LIFE-SAFETY-ZONE-%u", + snprintf( + name_text, sizeof(name_text), "LIFE-SAFETY-ZONE-%u", object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -339,8 +343,8 @@ bool Life_Safety_Zone_Mode_Set( * @param object_instance - object-instance number of the object * @return property value */ -BACNET_LIFE_SAFETY_OPERATION Life_Safety_Zone_Operation_Expected( - uint32_t object_instance) +BACNET_LIFE_SAFETY_OPERATION +Life_Safety_Zone_Operation_Expected(uint32_t object_instance) { BACNET_LIFE_SAFETY_OPERATION value = LIFE_SAFETY_OP_NONE; struct object_data *pObject; @@ -525,16 +529,14 @@ bool Life_Safety_Zone_Members_Add( status = Keylist_Data_Add( pObject->Zone_Members, Keylist_Count(pObject->Zone_Members), entry); - return status; } /** * @brief Remove all members from the Zone Members list * @param object_instance - object-instance number of the object -*/ -void Life_Safety_Zone_Members_Clear( - uint32_t object_instance) + */ +void Life_Safety_Zone_Members_Clear(uint32_t object_instance) { struct object_data *pObject; @@ -549,7 +551,7 @@ void Life_Safety_Zone_Members_Clear( * @param wp_data - BACNET_WRITE_PROPERTY_DATA data, including * requested data and space for the reply, or error response. * @return true if the list was written -*/ + */ static bool Life_Safety_Zone_Members_Write(BACNET_WRITE_PROPERTY_DATA *wp_data) { int len = 0, apdu_len = 0, apdu_size = 0; @@ -599,13 +601,14 @@ bool Life_Safety_Zone_Maintenance_Required(uint32_t object_instance) } /** - * @brief For a given object instance-number, sets the maintenance-required status - * flag + * @brief For a given object instance-number, sets the maintenance-required + * status flag * @param object_instance - object-instance number of the object * @param value - boolean property value * @return true if the property flag was set */ -void Life_Safety_Zone_Maintenance_Required_Set(uint32_t object_instance, bool value) +void Life_Safety_Zone_Maintenance_Required_Set( + uint32_t object_instance, bool value) { struct object_data *pObject; @@ -774,7 +777,8 @@ bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated <= MAX_LIFE_SAFETY_MODE) { - Life_Safety_Zone_Mode_Set(wp_data->object_instance, + Life_Safety_Zone_Mode_Set( + wp_data->object_instance, (BACNET_LIFE_SAFETY_MODE)value.type.Enumerated); } else { status = false; @@ -788,7 +792,8 @@ bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated <= UINT16_MAX) { - Life_Safety_Zone_Present_Value_Set(wp_data->object_instance, + Life_Safety_Zone_Present_Value_Set( + wp_data->object_instance, (BACNET_LIFE_SAFETY_STATE)value.type.Enumerated); } else { status = false; @@ -810,7 +815,8 @@ bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated <= UINT16_MAX) { - Life_Safety_Zone_Silenced_Set(wp_data->object_instance, + Life_Safety_Zone_Silenced_Set( + wp_data->object_instance, (BACNET_SILENCED_STATE)value.type.Enumerated); } else { status = false; @@ -839,10 +845,10 @@ bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; default: if (property_lists_member( - Life_Safety_Zone_Properties_Required, - Life_Safety_Zone_Properties_Optional, - Life_Safety_Zone_Properties_Proprietary, - wp_data->object_property)) { + Life_Safety_Zone_Properties_Required, + Life_Safety_Zone_Properties_Optional, + Life_Safety_Zone_Properties_Proprietary, + wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; } else { diff --git a/src/bacnet/basic/object/lsz.h b/src/bacnet/basic/object/lsz.h index d54c34e4..364566b1 100644 --- a/src/bacnet/basic/object/lsz.h +++ b/src/bacnet/basic/object/lsz.h @@ -20,118 +20,88 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Life_Safety_Zone_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Life_Safety_Zone_Count( - void); - BACNET_STACK_EXPORT - uint32_t Life_Safety_Zone_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Life_Safety_Zone_Instance_To_Index( - uint32_t object_instance); +BACNET_STACK_EXPORT +void Life_Safety_Zone_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Life_Safety_Zone_Count(void); +BACNET_STACK_EXPORT +uint32_t Life_Safety_Zone_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Life_Safety_Zone_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Life_Safety_Zone_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Life_Safety_Zone_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - BACNET_LIFE_SAFETY_STATE Life_Safety_Zone_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Present_Value_Set( - uint32_t object_instance, - BACNET_LIFE_SAFETY_STATE present_value); +BACNET_STACK_EXPORT +BACNET_LIFE_SAFETY_STATE +Life_Safety_Zone_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Present_Value_Set( + uint32_t object_instance, BACNET_LIFE_SAFETY_STATE present_value); - BACNET_STACK_EXPORT - BACNET_SILENCED_STATE Life_Safety_Zone_Silenced( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Silenced_Set( - uint32_t object_instance, - BACNET_SILENCED_STATE value); - BACNET_STACK_EXPORT - BACNET_LIFE_SAFETY_MODE Life_Safety_Zone_Mode( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Mode_Set( - uint32_t object_instance, - BACNET_LIFE_SAFETY_MODE value); - BACNET_STACK_EXPORT - BACNET_LIFE_SAFETY_OPERATION Life_Safety_Zone_Operation_Expected( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Operation_Expected_Set( - uint32_t object_instance, - BACNET_LIFE_SAFETY_OPERATION value); +BACNET_STACK_EXPORT +BACNET_SILENCED_STATE Life_Safety_Zone_Silenced(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Silenced_Set( + uint32_t object_instance, BACNET_SILENCED_STATE value); +BACNET_STACK_EXPORT +BACNET_LIFE_SAFETY_MODE Life_Safety_Zone_Mode(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Mode_Set( + uint32_t object_instance, BACNET_LIFE_SAFETY_MODE value); +BACNET_STACK_EXPORT +BACNET_LIFE_SAFETY_OPERATION +Life_Safety_Zone_Operation_Expected(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Operation_Expected_Set( + uint32_t object_instance, BACNET_LIFE_SAFETY_OPERATION value); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - void Life_Safety_Zone_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void Life_Safety_Zone_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Life_Safety_Zone_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Reliability_Set( - uint32_t object_instance, BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Life_Safety_Zone_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Members_Add( - uint32_t object_instance, - const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *data); - BACNET_STACK_EXPORT - void Life_Safety_Zone_Members_Clear( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Members_Add( + uint32_t object_instance, + const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *data); +BACNET_STACK_EXPORT +void Life_Safety_Zone_Members_Clear(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Maintenance_Required( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Life_Safety_Zone_Maintenance_Required_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Maintenance_Required(uint32_t object_instance); +BACNET_STACK_EXPORT +void Life_Safety_Zone_Maintenance_Required_Set( + uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - int Life_Safety_Zone_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Life_Safety_Zone_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); - - BACNET_STACK_EXPORT - uint32_t Life_Safety_Zone_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Life_Safety_Zone_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Life_Safety_Zone_Cleanup( - void); - BACNET_STACK_EXPORT - void Life_Safety_Zone_Init( - void); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); +BACNET_STACK_EXPORT +uint32_t Life_Safety_Zone_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Life_Safety_Zone_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Life_Safety_Zone_Cleanup(void); +BACNET_STACK_EXPORT +void Life_Safety_Zone_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/ms-input.c b/src/bacnet/basic/object/ms-input.c index 248a4542..055a2ae5 100644 --- a/src/bacnet/basic/object/ms-input.c +++ b/src/bacnet/basic/object/ms-input.c @@ -42,15 +42,19 @@ static const BACNET_OBJECT_TYPE Object_Type = OBJECT_MULTI_STATE_INPUT; static multistate_input_write_present_value_callback Multistate_Input_Write_Present_Value_Callback; /* default state text when none is specified */ -static const char *Default_State_Text = "State 1\0" "State 2\0" "State 3\0" ; +static const char *Default_State_Text = "State 1\0" + "State 2\0" + "State 3\0"; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 +}; static const int Properties_Optional[] = { PROP_DESCRIPTION, PROP_STATE_TEXT, - -1 }; + -1 }; static const int Properties_Proprietary[] = { -1 }; @@ -215,8 +219,8 @@ uint32_t Multistate_Input_Max_States(uint32_t object_instance) * @param state_index - state index number 1..N of the text requested * @return C string retrieved */ -const char *Multistate_Input_State_Text( - uint32_t object_instance, uint32_t state_index) +const char * +Multistate_Input_State_Text(uint32_t object_instance, uint32_t state_index) { const char *pName = NULL; /* return value */ const struct object_data *pObject; @@ -224,8 +228,7 @@ const char *Multistate_Input_State_Text( pObject = Keylist_Data(Object_List, object_instance); if (pObject) { if (state_index > 0) { - pName = state_name_by_index(pObject->State_Text, - state_index); + pName = state_name_by_index(pObject->State_Text, state_index); } } @@ -254,8 +257,7 @@ static int Multistate_Input_State_Text_Encode( pName = Multistate_Input_State_Text(object_instance, state_index); if (pName) { characterstring_init_ansi(&char_string, pName); - apdu_len = encode_application_character_string( - apdu, &char_string); + apdu_len = encode_application_character_string(apdu, &char_string); } return apdu_len; @@ -280,8 +282,7 @@ static int Multistate_Input_State_Text_Encode( * @return true if the state text was set */ bool Multistate_Input_State_Text_List_Set( - uint32_t object_instance, - const char *state_text_list) + uint32_t object_instance, const char *state_text_list) { bool status = false; struct object_data *pObject; @@ -365,7 +366,8 @@ bool Multistate_Input_Present_Value_Set( * @return true if values are within range and present-value is set. */ static bool Multistate_Input_Present_Value_Write( - uint32_t object_instance, uint32_t value, + uint32_t object_instance, + uint32_t value, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) { @@ -437,8 +439,8 @@ void Multistate_Input_Out_Of_Service_Set(uint32_t object_instance, bool value) pObject = Multistate_Input_Object(object_instance); if (pObject) { - pObject->Out_Of_Service = value; - pObject->Change_Of_Value = true; + pObject->Out_Of_Service = value; + pObject->Change_Of_Value = true; } return; @@ -463,10 +465,11 @@ bool Multistate_Input_Object_Name( pObject = Multistate_Input_Object(object_instance); if (pObject) { if (pObject->Object_Name) { - status = characterstring_init_ansi(object_name, - pObject->Object_Name); + status = + characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "MULTI-STATE INPUT %lu", + snprintf( + name_text, sizeof(name_text), "MULTI-STATE INPUT %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -682,9 +685,9 @@ bool Multistate_Input_Encode_Value_List( pObject = Multistate_Input_Object(object_instance); if (pObject) { fault = Multistate_Input_Object_Fault(pObject); - status = - cov_value_list_encode_unsigned(value_list, pObject->Present_Value, - in_alarm, fault, overridden, pObject->Out_Of_Service); + status = cov_value_list_encode_unsigned( + value_list, pObject->Present_Value, in_alarm, fault, overridden, + pObject->Out_Of_Service); } return status; } @@ -725,8 +728,7 @@ int Multistate_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) encode_application_character_string(&apdu[0], &char_string); break; case PROP_OBJECT_TYPE: - apdu_len = encode_application_enumerated( - &apdu[0], Object_Type); + apdu_len = encode_application_enumerated(&apdu[0], Object_Type); break; case PROP_PRESENT_VALUE: present_value = @@ -745,7 +747,8 @@ int Multistate_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_bitstring(&apdu[0], &bit_string); break; case PROP_RELIABILITY: - apdu_len = encode_application_enumerated(&apdu[0], + apdu_len = encode_application_enumerated( + &apdu[0], Multistate_Input_Reliability(rpdata->object_instance)); break; case PROP_EVENT_STATE: @@ -758,14 +761,16 @@ int Multistate_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_boolean(&apdu[0], state); break; case PROP_NUMBER_OF_STATES: - apdu_len = encode_application_unsigned(&apdu[apdu_len], + apdu_len = encode_application_unsigned( + &apdu[apdu_len], Multistate_Input_Max_States(rpdata->object_instance)); break; case PROP_STATE_TEXT: max_states = Multistate_Input_Max_States(rpdata->object_instance); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Multistate_Input_State_Text_Encode, - max_states, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Multistate_Input_State_Text_Encode, max_states, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -775,7 +780,8 @@ int Multistate_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } break; case PROP_DESCRIPTION: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Multistate_Input_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); @@ -832,10 +838,9 @@ bool Multistate_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { - status = - Multistate_Input_Present_Value_Write(wp_data->object_instance, - value.type.Enumerated, - &wp_data->error_class, &wp_data->error_code); + status = Multistate_Input_Present_Value_Write( + wp_data->object_instance, value.type.Enumerated, + &wp_data->error_class, &wp_data->error_code); } break; case PROP_OUT_OF_SERVICE: @@ -848,10 +853,8 @@ bool Multistate_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; default: if (property_lists_member( - Properties_Required, - Properties_Optional, - Properties_Proprietary, - wp_data->object_property)) { + Properties_Required, Properties_Optional, + Properties_Proprietary, wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; } else { diff --git a/src/bacnet/basic/object/ms-input.h b/src/bacnet/basic/object/ms-input.h index 3989f6cf..249131fe 100644 --- a/src/bacnet/basic/object/ms-input.h +++ b/src/bacnet/basic/object/ms-input.h @@ -24,137 +24,101 @@ * @param value - multistate preset-value of the write */ typedef void (*multistate_input_write_present_value_callback)( - uint32_t object_instance, uint32_t old_value, - uint32_t value); + uint32_t object_instance, uint32_t old_value, uint32_t value); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Multistate_Input_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Multistate_Input_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Multistate_Input_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Multistate_Input_Count( - void); - BACNET_STACK_EXPORT - uint32_t Multistate_Input_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Multistate_Input_Instance_To_Index( - uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Input_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Multistate_Input_Count(void); +BACNET_STACK_EXPORT +uint32_t Multistate_Input_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Multistate_Input_Instance_To_Index(uint32_t instance); - BACNET_STACK_EXPORT - int Multistate_Input_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Multistate_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Multistate_Input_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool Multistate_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - /* optional API */ - BACNET_STACK_EXPORT - bool Multistate_Input_Object_Instance_Add( - uint32_t instance); +/* optional API */ +BACNET_STACK_EXPORT +bool Multistate_Input_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Input_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Multistate_Input_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Multistate_Input_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Input_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Multistate_Input_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Multistate_Input_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - uint32_t Multistate_Input_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Input_Present_Value_Set( - uint32_t object_instance, - uint32_t value); - BACNET_STACK_EXPORT - void Multistate_Input_Write_Present_Value_Callback_Set( - multistate_input_write_present_value_callback cb); +BACNET_STACK_EXPORT +uint32_t Multistate_Input_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Input_Present_Value_Set( + uint32_t object_instance, uint32_t value); +BACNET_STACK_EXPORT +void Multistate_Input_Write_Present_Value_Callback_Set( + multistate_input_write_present_value_callback cb); - BACNET_STACK_EXPORT - bool Multistate_Input_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Multistate_Input_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Input_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +bool Multistate_Input_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Multistate_Input_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Input_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - bool Multistate_Input_Out_Of_Service( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Multistate_Input_Out_Of_Service_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Multistate_Input_Out_Of_Service(uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Input_Out_Of_Service_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - const char *Multistate_Input_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Input_Description_Set( - uint32_t object_instance, - const char *text_string); +BACNET_STACK_EXPORT +const char *Multistate_Input_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Input_Description_Set( + uint32_t object_instance, const char *text_string); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Multistate_Input_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Input_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Multistate_Input_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Input_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - bool Multistate_Input_State_Text_List_Set( - uint32_t object_instance, - const char *state_text_list); - BACNET_STACK_EXPORT - bool Multistate_Input_State_Text_Set( - uint32_t object_instance, - uint32_t state_index, - char *new_name); - BACNET_STACK_EXPORT - bool Multistate_Input_Max_States_Set( - uint32_t instance, - uint32_t max_states_requested); - BACNET_STACK_EXPORT - uint32_t Multistate_Input_Max_States( - uint32_t instance); - BACNET_STACK_EXPORT - const char *Multistate_Input_State_Text( - uint32_t object_instance, - uint32_t state_index); +BACNET_STACK_EXPORT +bool Multistate_Input_State_Text_List_Set( + uint32_t object_instance, const char *state_text_list); +BACNET_STACK_EXPORT +bool Multistate_Input_State_Text_Set( + uint32_t object_instance, uint32_t state_index, char *new_name); +BACNET_STACK_EXPORT +bool Multistate_Input_Max_States_Set( + uint32_t instance, uint32_t max_states_requested); +BACNET_STACK_EXPORT +uint32_t Multistate_Input_Max_States(uint32_t instance); +BACNET_STACK_EXPORT +const char * +Multistate_Input_State_Text(uint32_t object_instance, uint32_t state_index); - BACNET_STACK_EXPORT - uint32_t Multistate_Input_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Input_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Multistate_Input_Cleanup( - void); +BACNET_STACK_EXPORT +uint32_t Multistate_Input_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Input_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Input_Cleanup(void); - BACNET_STACK_EXPORT - void Multistate_Input_Init( - void); +BACNET_STACK_EXPORT +void Multistate_Input_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/mso.c b/src/bacnet/basic/object/mso.c index 4d6965cd..ead9ac83 100644 --- a/src/bacnet/basic/object/mso.c +++ b/src/bacnet/basic/object/mso.c @@ -50,19 +50,27 @@ static const BACNET_OBJECT_TYPE Object_Type = OBJECT_MULTI_STATE_OUTPUT; static multistate_output_write_present_value_callback Multistate_Output_Write_Present_Value_Callback; /* default state text when none is specified */ -static const char *Default_State_Text = "State 1\0" "State 2\0" "State 3\0" ; +static const char *Default_State_Text = "State 1\0" + "State 2\0" + "State 3\0"; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_NUMBER_OF_STATES, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, #if (BACNET_PROTOCOL_REVISION >= 17) - PROP_CURRENT_COMMAND_PRIORITY, + PROP_CURRENT_COMMAND_PRIORITY, #endif - -1 }; + -1 }; static const int Properties_Optional[] = { PROP_STATE_TEXT, PROP_DESCRIPTION, - -1 }; + -1 }; static const int Properties_Proprietary[] = { -1 }; @@ -331,8 +339,8 @@ uint32_t Multistate_Output_Relinquish_Default(uint32_t object_instance) * @param value - floating point analog output relinquish-default value * @return true if values are within range and relinquish-default value is set. */ -bool Multistate_Output_Relinquish_Default_Set(uint32_t object_instance, - uint32_t value) +bool Multistate_Output_Relinquish_Default_Set( + uint32_t object_instance, uint32_t value) { bool status = false; struct object_data *pObject; @@ -365,8 +373,8 @@ bool Multistate_Output_Present_Value_Set( pObject = Keylist_Data(Object_List, object_instance); if (pObject) { max_states = state_name_count(pObject->State_Text); - if ((value >= 1) && (value <= max_states) && - (priority >= 1) && (priority <= BACNET_MAX_PRIORITY)) { + if ((value >= 1) && (value <= max_states) && (priority >= 1) && + (priority <= BACNET_MAX_PRIORITY)) { old_value = Object_Present_Value(pObject); pObject->Relinquished[priority - 1] = false; pObject->Priority_Array[priority - 1] = value; @@ -423,7 +431,9 @@ bool Multistate_Output_Present_Value_Relinquish( * @return true if values are within range and present-value is set. */ static bool Multistate_Output_Present_Value_Write( - uint32_t object_instance, uint32_t value, uint8_t priority, + uint32_t object_instance, + uint32_t value, + uint8_t priority, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) { @@ -440,8 +450,8 @@ static bool Multistate_Output_Present_Value_Write( (value >= 1) && (value <= max_states)) { if (priority != 6) { old_value = Object_Present_Value(pObject); - Multistate_Output_Present_Value_Set(object_instance, value, - priority); + Multistate_Output_Present_Value_Set( + object_instance, value, priority); if (pObject->Out_Of_Service) { /* The physical point that the object represents is not in service. This means that changes to the @@ -480,7 +490,8 @@ static bool Multistate_Output_Present_Value_Write( * @return true if values are within range and write is requested */ static bool Multistate_Output_Present_Value_Relinquish_Write( - uint32_t object_instance, uint8_t priority, + uint32_t object_instance, + uint8_t priority, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) { @@ -494,8 +505,8 @@ static bool Multistate_Output_Present_Value_Relinquish_Write( if ((priority >= 1) && (priority <= BACNET_MAX_PRIORITY)) { if (priority != 6) { old_value = Object_Present_Value(pObject); - Multistate_Output_Present_Value_Relinquish(object_instance, - priority); + Multistate_Output_Present_Value_Relinquish( + object_instance, priority); if (pObject->Out_Of_Service) { /* The physical point that the object represents is not in service. This means that changes to the @@ -580,10 +591,11 @@ bool Multistate_Output_Object_Name( pObject = Keylist_Data(Object_List, object_instance); if (pObject) { if (pObject->Object_Name) { - status = characterstring_init_ansi(object_name, - pObject->Object_Name); + status = + characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "MULTI-STATE OUTPUT %lu", + snprintf( + name_text, sizeof(name_text), "MULTI-STATE OUTPUT %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -638,8 +650,8 @@ const char *Multistate_Output_Name_ASCII(uint32_t object_instance) * @param state_index - state index number 1..N of the text requested * @return C string retrieved */ -const char *Multistate_Output_State_Text( - uint32_t object_instance, uint32_t state_index) +const char * +Multistate_Output_State_Text(uint32_t object_instance, uint32_t state_index) { const char *pName = NULL; /* return value */ const struct object_data *pObject; @@ -647,8 +659,7 @@ const char *Multistate_Output_State_Text( pObject = Keylist_Data(Object_List, object_instance); if (pObject) { if (state_index > 0) { - pName = state_name_by_index(pObject->State_Text, - state_index); + pName = state_name_by_index(pObject->State_Text, state_index); } } @@ -677,8 +688,7 @@ static int Multistate_Output_State_Text_Encode( pName = Multistate_Output_State_Text(object_instance, state_index); if (pName) { characterstring_init_ansi(&char_string, pName); - apdu_len = encode_application_character_string( - apdu, &char_string); + apdu_len = encode_application_character_string(apdu, &char_string); } return apdu_len; @@ -703,8 +713,7 @@ static int Multistate_Output_State_Text_Encode( * @return true if the state text was set */ bool Multistate_Output_State_Text_List_Set( - uint32_t object_instance, - const char *state_text_list) + uint32_t object_instance, const char *state_text_list) { bool status = false; struct object_data *pObject; @@ -888,9 +897,9 @@ bool Multistate_Output_Encode_Value_List( if (pObject) { fault = Multistate_Output_Object_Fault(pObject); present_value = Object_Present_Value(pObject); - status = - cov_value_list_encode_unsigned(value_list, present_value, - in_alarm, fault, overridden, pObject->Out_Of_Service); + status = cov_value_list_encode_unsigned( + value_list, present_value, in_alarm, fault, overridden, + pObject->Out_Of_Service); } return status; } @@ -927,7 +936,8 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) &apdu[0], Object_Type, rpdata->object_instance); break; case PROP_OBJECT_NAME: - Multistate_Output_Object_Name(rpdata->object_instance, &char_string); + Multistate_Output_Object_Name( + rpdata->object_instance, &char_string); apdu_len = encode_application_character_string(&apdu[0], &char_string); break; @@ -951,7 +961,8 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_bitstring(&apdu[0], &bit_string); break; case PROP_RELIABILITY: - apdu_len = encode_application_enumerated(&apdu[0], + apdu_len = encode_application_enumerated( + &apdu[0], Multistate_Output_Reliability(rpdata->object_instance)); break; case PROP_EVENT_STATE: @@ -964,13 +975,15 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_boolean(&apdu[0], state); break; case PROP_NUMBER_OF_STATES: - apdu_len = encode_application_unsigned(&apdu[apdu_len], + apdu_len = encode_application_unsigned( + &apdu[apdu_len], Multistate_Output_Max_States(rpdata->object_instance)); break; case PROP_PRIORITY_ARRAY: - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Multistate_Output_Priority_Array_Encode, - BACNET_MAX_PRIORITY, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Multistate_Output_Priority_Array_Encode, BACNET_MAX_PRIORITY, + apdu, apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -986,9 +999,10 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_STATE_TEXT: max_states = Multistate_Output_Max_States(rpdata->object_instance); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Multistate_Output_State_Text_Encode, - max_states, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Multistate_Output_State_Text_Encode, max_states, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -998,7 +1012,8 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } break; case PROP_DESCRIPTION: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Multistate_Output_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); @@ -1063,23 +1078,22 @@ bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_UNSIGNED_INT); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { status = false; if (value.type.Unsigned_Int <= UINT32_MAX) { - status = - Multistate_Output_Present_Value_Write( - wp_data->object_instance, - value.type.Unsigned_Int, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Multistate_Output_Present_Value_Write( + wp_data->object_instance, value.type.Unsigned_Int, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } else { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_NULL); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_NULL); if (status) { status = Multistate_Output_Present_Value_Relinquish_Write( wp_data->object_instance, wp_data->priority, @@ -1088,8 +1102,8 @@ bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = write_property_type_valid(wp_data, &value, - BACNET_APPLICATION_TAG_BOOLEAN); + status = write_property_type_valid( + wp_data, &value, BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Multistate_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -1097,10 +1111,8 @@ bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; default: if (property_lists_member( - Properties_Required, - Properties_Optional, - Properties_Proprietary, - wp_data->object_property)) { + Properties_Required, Properties_Optional, + Properties_Proprietary, wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; } else { diff --git a/src/bacnet/basic/object/mso.h b/src/bacnet/basic/object/mso.h index fb978674..73e041a6 100644 --- a/src/bacnet/basic/object/mso.h +++ b/src/bacnet/basic/object/mso.h @@ -25,147 +25,107 @@ * @param value - multistate preset-value of the write */ typedef void (*multistate_output_write_present_value_callback)( - uint32_t object_instance, uint32_t old_value, - uint32_t value); + uint32_t object_instance, uint32_t old_value, uint32_t value); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Multistate_Output_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool Multistate_Output_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Multistate_Output_Count( - void); - BACNET_STACK_EXPORT - uint32_t Multistate_Output_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Multistate_Output_Instance_To_Index( - uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Output_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool Multistate_Output_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Multistate_Output_Count(void); +BACNET_STACK_EXPORT +uint32_t Multistate_Output_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Multistate_Output_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - int Multistate_Output_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Multistate_Output_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool Multistate_Output_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Multistate_Output_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Multistate_Output_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Output_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Multistate_Output_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Multistate_Output_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - uint32_t Multistate_Output_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Output_Present_Value_Set( - uint32_t object_instance, - uint32_t value, - unsigned priority); - BACNET_STACK_EXPORT - bool Multistate_Output_Present_Value_Relinquish( - uint32_t instance, - unsigned priority); - BACNET_STACK_EXPORT - unsigned Multistate_Output_Present_Value_Priority( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Multistate_Output_Write_Present_Value_Callback_Set( - multistate_output_write_present_value_callback cb); +BACNET_STACK_EXPORT +uint32_t Multistate_Output_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Output_Present_Value_Set( + uint32_t object_instance, uint32_t value, unsigned priority); +BACNET_STACK_EXPORT +bool Multistate_Output_Present_Value_Relinquish( + uint32_t instance, unsigned priority); +BACNET_STACK_EXPORT +unsigned Multistate_Output_Present_Value_Priority(uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Output_Write_Present_Value_Callback_Set( + multistate_output_write_present_value_callback cb); - BACNET_STACK_EXPORT - bool Multistate_Output_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Multistate_Output_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Output_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +bool Multistate_Output_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Multistate_Output_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Output_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - bool Multistate_Output_Out_Of_Service( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Multistate_Output_Out_Of_Service_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Multistate_Output_Out_Of_Service(uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Output_Out_Of_Service_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - const char *Multistate_Output_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Output_Description_Set( - uint32_t object_instance, - const char *text_string); +BACNET_STACK_EXPORT +const char *Multistate_Output_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Output_Description_Set( + uint32_t object_instance, const char *text_string); - BACNET_STACK_EXPORT - bool Multistate_Output_State_Text_List_Set( - uint32_t object_instance, - const char *state_text_list); - BACNET_STACK_EXPORT - bool Multistate_Output_State_Text_Set( - uint32_t object_instance, - uint32_t state_index, - char *new_name); - BACNET_STACK_EXPORT - bool Multistate_Output_Max_States_Set( - uint32_t instance, - uint32_t max_states_requested); - BACNET_STACK_EXPORT - uint32_t Multistate_Output_Max_States( - uint32_t instance); - BACNET_STACK_EXPORT - const char *Multistate_Output_State_Text( - uint32_t object_instance, - uint32_t state_index); +BACNET_STACK_EXPORT +bool Multistate_Output_State_Text_List_Set( + uint32_t object_instance, const char *state_text_list); +BACNET_STACK_EXPORT +bool Multistate_Output_State_Text_Set( + uint32_t object_instance, uint32_t state_index, char *new_name); +BACNET_STACK_EXPORT +bool Multistate_Output_Max_States_Set( + uint32_t instance, uint32_t max_states_requested); +BACNET_STACK_EXPORT +uint32_t Multistate_Output_Max_States(uint32_t instance); +BACNET_STACK_EXPORT +const char * +Multistate_Output_State_Text(uint32_t object_instance, uint32_t state_index); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Multistate_Output_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Output_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Multistate_Output_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Output_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - uint32_t Multistate_Output_Relinquish_Default( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Output_Relinquish_Default_Set( - uint32_t object_instance, - uint32_t value); +BACNET_STACK_EXPORT +uint32_t Multistate_Output_Relinquish_Default(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Output_Relinquish_Default_Set( + uint32_t object_instance, uint32_t value); - BACNET_STACK_EXPORT - uint32_t Multistate_Output_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Output_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Multistate_Output_Cleanup( - void); +BACNET_STACK_EXPORT +uint32_t Multistate_Output_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Output_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Output_Cleanup(void); - BACNET_STACK_EXPORT - void Multistate_Output_Init( - void); +BACNET_STACK_EXPORT +void Multistate_Output_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/msv.c b/src/bacnet/basic/object/msv.c index 34561a9f..a619b9c7 100644 --- a/src/bacnet/basic/object/msv.c +++ b/src/bacnet/basic/object/msv.c @@ -47,12 +47,14 @@ static const char *Default_State_Text = "State 1\0" "State 3\0"; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 }; +static const int Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 +}; static const int Properties_Optional[] = { PROP_DESCRIPTION, PROP_STATE_TEXT, - -1 }; + -1 }; static const int Properties_Proprietary[] = { -1 }; @@ -217,8 +219,8 @@ uint32_t Multistate_Value_Max_States(uint32_t object_instance) * @param state_index - state index number 1..N of the text requested * @return C string retrieved */ -const char *Multistate_Value_State_Text( - uint32_t object_instance, uint32_t state_index) +const char * +Multistate_Value_State_Text(uint32_t object_instance, uint32_t state_index) { const char *pName = NULL; /* return value */ const struct object_data *pObject; @@ -363,7 +365,8 @@ bool Multistate_Value_Present_Value_Set( * * @return true if values are within range and present-value is set. */ -static bool Multistate_Value_Present_Value_Write(uint32_t object_instance, +static bool Multistate_Value_Present_Value_Write( + uint32_t object_instance, uint32_t value, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) @@ -465,7 +468,8 @@ bool Multistate_Value_Object_Name( status = characterstring_init_ansi(object_name, pObject->Object_Name); } else { - snprintf(name_text, sizeof(name_text), "MULTI-STATE INPUT %lu", + snprintf( + name_text, sizeof(name_text), "MULTI-STATE INPUT %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, name_text); } @@ -681,9 +685,9 @@ bool Multistate_Value_Encode_Value_List( pObject = Multistate_Value_Object(object_instance); if (pObject) { fault = Multistate_Value_Object_Fault(pObject); - status = - cov_value_list_encode_unsigned(value_list, pObject->Present_Value, - in_alarm, fault, overridden, pObject->Out_Of_Service); + status = cov_value_list_encode_unsigned( + value_list, pObject->Present_Value, in_alarm, fault, overridden, + pObject->Out_Of_Service); } return status; } @@ -745,7 +749,8 @@ int Multistate_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_bitstring(&apdu[0], &bit_string); break; case PROP_RELIABILITY: - apdu_len = encode_application_enumerated(&apdu[0], + apdu_len = encode_application_enumerated( + &apdu[0], Multistate_Value_Reliability(rpdata->object_instance)); break; case PROP_EVENT_STATE: @@ -758,14 +763,16 @@ int Multistate_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) apdu_len = encode_application_boolean(&apdu[0], state); break; case PROP_NUMBER_OF_STATES: - apdu_len = encode_application_unsigned(&apdu[apdu_len], + apdu_len = encode_application_unsigned( + &apdu[apdu_len], Multistate_Value_Max_States(rpdata->object_instance)); break; case PROP_STATE_TEXT: max_states = Multistate_Value_Max_States(rpdata->object_instance); - apdu_len = bacnet_array_encode(rpdata->object_instance, - rpdata->array_index, Multistate_Value_State_Text_Encode, - max_states, apdu, apdu_size); + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Multistate_Value_State_Text_Encode, max_states, apdu, + apdu_size); if (apdu_len == BACNET_STATUS_ABORT) { rpdata->error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -775,7 +782,8 @@ int Multistate_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) } break; case PROP_DESCRIPTION: - characterstring_init_ansi(&char_string, + characterstring_init_ansi( + &char_string, Multistate_Value_Description(rpdata->object_instance)); apdu_len = encode_application_character_string(&apdu[0], &char_string); @@ -848,7 +856,8 @@ bool Multistate_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; default: - if (property_lists_member(Properties_Required, Properties_Optional, + if (property_lists_member( + Properties_Required, Properties_Optional, Properties_Proprietary, wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; diff --git a/src/bacnet/basic/object/msv.h b/src/bacnet/basic/object/msv.h index d0332d9a..44d0cce3 100644 --- a/src/bacnet/basic/object/msv.h +++ b/src/bacnet/basic/object/msv.h @@ -24,136 +24,100 @@ * @param value - multistate preset-value of the write */ typedef void (*multistate_value_write_present_value_callback)( - uint32_t object_instance, uint32_t old_value, - uint32_t value); + uint32_t object_instance, uint32_t old_value, uint32_t value); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Multistate_Value_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Multistate_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Multistate_Value_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Multistate_Value_Count( - void); - BACNET_STACK_EXPORT - uint32_t Multistate_Value_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Multistate_Value_Instance_To_Index( - uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Value_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Multistate_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t Multistate_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Multistate_Value_Instance_To_Index(uint32_t instance); - BACNET_STACK_EXPORT - int Multistate_Value_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int Multistate_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - bool Multistate_Value_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +bool Multistate_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - /* optional API */ - bool Multistate_Value_Object_Instance_Add( - uint32_t instance); +/* optional API */ +bool Multistate_Value_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Value_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Multistate_Value_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Multistate_Value_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Multistate_Value_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Multistate_Value_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - uint32_t Multistate_Value_Present_Value( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Value_Present_Value_Set( - uint32_t object_instance, - uint32_t value); - BACNET_STACK_EXPORT - void Multistate_Value_Write_Present_Value_Callback_Set( - multistate_value_write_present_value_callback cb); +BACNET_STACK_EXPORT +uint32_t Multistate_Value_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Value_Present_Value_Set( + uint32_t object_instance, uint32_t value); +BACNET_STACK_EXPORT +void Multistate_Value_Write_Present_Value_Callback_Set( + multistate_value_write_present_value_callback cb); - BACNET_STACK_EXPORT - bool Multistate_Value_Change_Of_Value( - uint32_t instance); - BACNET_STACK_EXPORT - void Multistate_Value_Change_Of_Value_Clear( - uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Value_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +bool Multistate_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void Multistate_Value_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - bool Multistate_Value_Out_Of_Service( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Multistate_Value_Out_Of_Service_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Multistate_Value_Out_Of_Service(uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Value_Out_Of_Service_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - const char *Multistate_Value_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Multistate_Value_Description_Set( - uint32_t object_instance, - const char *text_string); +BACNET_STACK_EXPORT +const char *Multistate_Value_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Multistate_Value_Description_Set( + uint32_t object_instance, const char *text_string); - BACNET_STACK_EXPORT - bool Multistate_Value_State_Text_List_Set( - uint32_t object_instance, - const char *state_text_list); - BACNET_STACK_EXPORT - bool Multistate_Value_State_Text_Set( - uint32_t object_instance, - uint32_t state_index, - char *new_name); - BACNET_STACK_EXPORT - bool Multistate_Value_Max_States_Set( - uint32_t instance, - uint32_t max_states_requested); - BACNET_STACK_EXPORT - uint32_t Multistate_Value_Max_States( - uint32_t instance); - BACNET_STACK_EXPORT - const char *Multistate_Value_State_Text( - uint32_t object_instance, - uint32_t state_index); +BACNET_STACK_EXPORT +bool Multistate_Value_State_Text_List_Set( + uint32_t object_instance, const char *state_text_list); +BACNET_STACK_EXPORT +bool Multistate_Value_State_Text_Set( + uint32_t object_instance, uint32_t state_index, char *new_name); +BACNET_STACK_EXPORT +bool Multistate_Value_Max_States_Set( + uint32_t instance, uint32_t max_states_requested); +BACNET_STACK_EXPORT +uint32_t Multistate_Value_Max_States(uint32_t instance); +BACNET_STACK_EXPORT +const char * +Multistate_Value_State_Text(uint32_t object_instance, uint32_t state_index); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Multistate_Value_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Value_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Multistate_Value_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Value_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - uint32_t Multistate_Value_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Multistate_Value_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Multistate_Value_Cleanup( - void); +BACNET_STACK_EXPORT +uint32_t Multistate_Value_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Multistate_Value_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Multistate_Value_Cleanup(void); - BACNET_STACK_EXPORT - void Multistate_Value_Init( - void); +BACNET_STACK_EXPORT +void Multistate_Value_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/nc.c b/src/bacnet/basic/object/nc.c index 672f280f..11c78c78 100644 --- a/src/bacnet/basic/object/nc.c +++ b/src/bacnet/basic/object/nc.c @@ -39,9 +39,12 @@ static NOTIFICATION_CLASS_INFO NC_Info[MAX_NOTIFICATION_CLASSES]; static uint8_t Event_Buffer[MAX_APDU]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Notification_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_NOTIFICATION_CLASS, PROP_PRIORITY, - PROP_ACK_REQUIRED, PROP_RECIPIENT_LIST, -1 }; +static const int Notification_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_NOTIFICATION_CLASS, + PROP_PRIORITY, PROP_ACK_REQUIRED, + PROP_RECIPIENT_LIST, -1 +}; static const int Notification_Properties_Optional[] = { PROP_DESCRIPTION, -1 }; @@ -50,12 +53,15 @@ static const int Notification_Properties_Proprietary[] = { -1 }; void Notification_Class_Property_Lists( const int **pRequired, const int **pOptional, const int **pProprietary) { - if (pRequired) + if (pRequired) { *pRequired = Notification_Properties_Required; - if (pOptional) + } + if (pOptional) { *pOptional = Notification_Properties_Optional; - if (pProprietary) + } + if (pProprietary) { *pProprietary = Notification_Properties_Proprietary; + } return; } @@ -92,8 +98,9 @@ bool Notification_Class_Valid_Instance(uint32_t object_instance) unsigned int index; index = Notification_Class_Instance_To_Index(object_instance); - if (index < MAX_NOTIFICATION_CLASSES) + if (index < MAX_NOTIFICATION_CLASSES) { return true; + } return false; } @@ -120,8 +127,9 @@ unsigned Notification_Class_Instance_To_Index(uint32_t object_instance) { unsigned index = MAX_NOTIFICATION_CLASSES; - if (object_instance < MAX_NOTIFICATION_CLASSES) + if (object_instance < MAX_NOTIFICATION_CLASSES) { index = object_instance; + } return index; } @@ -135,7 +143,8 @@ bool Notification_Class_Object_Name( index = Notification_Class_Instance_To_Index(object_instance); if (index < MAX_NOTIFICATION_CLASSES) { - snprintf(text, sizeof(text), "NOTIFICATION CLASS %lu", + snprintf( + text, sizeof(text), "NOTIFICATION CLASS %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -189,18 +198,22 @@ int Notification_Class_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_PRIORITY: - if (rpdata->array_index == 0) + if (rpdata->array_index == 0) { apdu_len += encode_application_unsigned(&apdu[0], 3); - else { + } else { if (rpdata->array_index == BACNET_ARRAY_ALL) { - apdu_len += encode_application_unsigned(&apdu[apdu_len], + apdu_len += encode_application_unsigned( + &apdu[apdu_len], CurrentNotify->Priority[TRANSITION_TO_OFFNORMAL]); - apdu_len += encode_application_unsigned(&apdu[apdu_len], + apdu_len += encode_application_unsigned( + &apdu[apdu_len], CurrentNotify->Priority[TRANSITION_TO_FAULT]); - apdu_len += encode_application_unsigned(&apdu[apdu_len], + apdu_len += encode_application_unsigned( + &apdu[apdu_len], CurrentNotify->Priority[TRANSITION_TO_NORMAL]); } else if (rpdata->array_index <= MAX_BACNET_EVENT_TRANSITION) { - apdu_len += encode_application_unsigned(&apdu[apdu_len], + apdu_len += encode_application_unsigned( + &apdu[apdu_len], CurrentNotify->Priority[rpdata->array_index - 1]); } else { rpdata->error_class = ERROR_CLASS_PROPERTY; @@ -214,11 +227,14 @@ int Notification_Class_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) u8Val = CurrentNotify->Ack_Required; bitstring_init(&bit_string); - bitstring_set_bit(&bit_string, TRANSITION_TO_OFFNORMAL, + bitstring_set_bit( + &bit_string, TRANSITION_TO_OFFNORMAL, (u8Val & TRANSITION_TO_OFFNORMAL_MASKED) ? true : false); - bitstring_set_bit(&bit_string, TRANSITION_TO_FAULT, + bitstring_set_bit( + &bit_string, TRANSITION_TO_FAULT, (u8Val & TRANSITION_TO_FAULT_MASKED) ? true : false); - bitstring_set_bit(&bit_string, TRANSITION_TO_NORMAL, + bitstring_set_bit( + &bit_string, TRANSITION_TO_NORMAL, (u8Val & TRANSITION_TO_NORMAL_MASKED) ? true : false); /* encode bitstring */ apdu_len += @@ -323,7 +339,7 @@ bool Notification_Class_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->application_data_len, &value); if ((len == 0) || (value.tag != - BACNET_APPLICATION_TAG_UNSIGNED_INT)) { + BACNET_APPLICATION_TAG_UNSIGNED_INT)) { /* Bad decode, wrong tag or following required * parameter missing */ wp_data->error_class = ERROR_CLASS_PROPERTY; @@ -341,17 +357,20 @@ bool Notification_Class_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) iOffset += len; } if (status == true) { - for (idx = 0; idx < MAX_BACNET_EVENT_TRANSITION; idx++) + for (idx = 0; idx < MAX_BACNET_EVENT_TRANSITION; + idx++) { CurrentNotify->Priority[idx] = TmpPriority[idx]; + } } } else if (wp_data->array_index <= 3) { if (value.type.Unsigned_Int > 255) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; status = false; - } else + } else { CurrentNotify->Priority[wp_data->array_index - 1] = value.type.Unsigned_Int; + } } else { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_INVALID_ARRAY_INDEX; @@ -452,77 +471,87 @@ void Notification_Class_Get_Priorities( object_index = Notification_Class_Instance_To_Index(Object_Instance); - if (object_index < MAX_NOTIFICATION_CLASSES) + if (object_index < MAX_NOTIFICATION_CLASSES) { CurrentNotify = &NC_Info[object_index]; - else { - for (i = 0; i < 3; i++) + } else { + for (i = 0; i < 3; i++) { pPriorityArray[i] = 255; + } return; /* unknown object */ } - for (i = 0; i < 3; i++) + for (i = 0; i < 3; i++) { pPriorityArray[i] = CurrentNotify->Priority[i]; + } } bool Notification_Class_Get_Recipient_List( uint32_t Object_Instance, BACNET_DESTINATION *pRecipientList) { - uint32_t object_index = Notification_Class_Instance_To_Index(Object_Instance); + uint32_t object_index = + Notification_Class_Instance_To_Index(Object_Instance); - if (object_index < MAX_NOTIFICATION_CLASSES) { - NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; - int i; + if (object_index < MAX_NOTIFICATION_CLASSES) { + NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; + int i; - for (i = 0; i < NC_MAX_RECIPIENTS; i++) - pRecipientList[i] = CurrentNotify->Recipient_List[i]; - } else { - return false; /* unknown object */ - } + for (i = 0; i < NC_MAX_RECIPIENTS; i++) { + pRecipientList[i] = CurrentNotify->Recipient_List[i]; + } + } else { + return false; /* unknown object */ + } - return true; + return true; } bool Notification_Class_Set_Recipient_List( uint32_t Object_Instance, BACNET_DESTINATION *pRecipientList) { - uint32_t object_index = Notification_Class_Instance_To_Index(Object_Instance); + uint32_t object_index = + Notification_Class_Instance_To_Index(Object_Instance); - if (object_index < MAX_NOTIFICATION_CLASSES) { - NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; - int i; + if (object_index < MAX_NOTIFICATION_CLASSES) { + NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; + int i; - for (i = 0; i < NC_MAX_RECIPIENTS; i++) - CurrentNotify->Recipient_List[i] = pRecipientList[i]; - } else { - return false; /* unknown object */ - } + for (i = 0; i < NC_MAX_RECIPIENTS; i++) { + CurrentNotify->Recipient_List[i] = pRecipientList[i]; + } + } else { + return false; /* unknown object */ + } - return true; + return true; } void Notification_Class_Set_Priorities( uint32_t Object_Instance, uint32_t *pPriorityArray) { - uint32_t object_index = Notification_Class_Instance_To_Index(Object_Instance); + uint32_t object_index = + Notification_Class_Instance_To_Index(Object_Instance); - if (object_index < MAX_NOTIFICATION_CLASSES) { - NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; - int i; + if (object_index < MAX_NOTIFICATION_CLASSES) { + NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; + int i; - for (i = 0; i < 3; i++) - if (pPriorityArray[i] <= 255) - CurrentNotify->Priority[i] = pPriorityArray[i]; - } + for (i = 0; i < 3; i++) { + if (pPriorityArray[i] <= 255) { + CurrentNotify->Priority[i] = pPriorityArray[i]; + } + } + } } void Notification_Class_Get_Ack_Required( uint32_t Object_Instance, uint8_t *pAckRequired) { - uint32_t object_index = Notification_Class_Instance_To_Index(Object_Instance); + uint32_t object_index = + Notification_Class_Instance_To_Index(Object_Instance); if (object_index < MAX_NOTIFICATION_CLASSES) { - NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; - *pAckRequired = CurrentNotify->Ack_Required; + NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; + *pAckRequired = CurrentNotify->Ack_Required; } else { *pAckRequired = 0; return; /* unknown object */ @@ -532,7 +561,8 @@ void Notification_Class_Get_Ack_Required( void Notification_Class_Set_Ack_Required( uint32_t Object_Instance, uint8_t Ack_Required) { - uint32_t object_index = Notification_Class_Instance_To_Index(Object_Instance); + uint32_t object_index = + Notification_Class_Instance_To_Index(Object_Instance); if (object_index < MAX_NOTIFICATION_CLASSES) { NOTIFICATION_CLASS_INFO *CurrentNotify = &NC_Info[object_index]; @@ -540,9 +570,8 @@ void Notification_Class_Set_Ack_Required( } } - -static bool IsRecipientActive( - BACNET_DESTINATION *pBacDest, uint8_t EventToState) +static bool +IsRecipientActive(BACNET_DESTINATION *pBacDest, uint8_t EventToState) { BACNET_DATE_TIME DateTime; @@ -606,10 +635,11 @@ void Notification_Class_common_reporting_function( notify_index = Notification_Class_Instance_To_Index(event_data->notificationClass); - if (notify_index < MAX_NOTIFICATION_CLASSES) + if (notify_index < MAX_NOTIFICATION_CLASSES) { CurrentNotify = &NC_Info[notify_index]; - else + } else { return; + } /* Initiating Device Identifier */ event_data->initiatingObjectIdentifier.type = OBJECT_DEVICE; @@ -651,7 +681,8 @@ void Notification_Class_common_reporting_function( } /* send notifications for active recipients */ - PRINTF("Notification Class[%u]: send notifications\n", + PRINTF( + "Notification Class[%u]: send notifications\n", event_data->notificationClass); /* pointer to first recipient */ pBacDest = &CurrentNotify->Recipient_List[0]; @@ -671,20 +702,24 @@ void Notification_Class_common_reporting_function( if (pBacDest->Recipient.tag == BACNET_RECIPIENT_TAG_DEVICE) { /* send notification to the specified device */ device_id = pBacDest->Recipient.type.device.instance; - PRINTF("Notification Class[%u]: send notification to %u\n", + PRINTF( + "Notification Class[%u]: send notification to %u\n", event_data->notificationClass, (unsigned)device_id); - if (pBacDest->ConfirmedNotify == true) + if (pBacDest->ConfirmedNotify == true) { Send_CEvent_Notify(device_id, event_data); - else if (address_get_by_device(device_id, &max_apdu, &dest)) + } else if (address_get_by_device(device_id, &max_apdu, &dest)) { Send_UEvent_Notify(Event_Buffer, event_data, &dest); - } else if (pBacDest->Recipient.tag == - BACNET_RECIPIENT_TAG_ADDRESS) { - PRINTF("Notification Class[%u]: send notification to ADDR\n", + } + } else if ( + pBacDest->Recipient.tag == BACNET_RECIPIENT_TAG_ADDRESS) { + PRINTF( + "Notification Class[%u]: send notification to ADDR\n", event_data->notificationClass); /* send notification to the address indicated */ if (pBacDest->ConfirmedNotify == true) { - if (address_get_device_id(&dest, &device_id)) + if (address_get_device_id(&dest, &device_id)) { Send_CEvent_Notify(device_id, event_data); + } } else { dest = pBacDest->Recipient.type.address; Send_UEvent_Notify(Event_Buffer, event_data, &dest); diff --git a/src/bacnet/basic/object/nc.h b/src/bacnet/basic/object/nc.h index 07f85282..caf9c50e 100644 --- a/src/bacnet/basic/object/nc.h +++ b/src/bacnet/basic/object/nc.h @@ -33,7 +33,7 @@ typedef struct Notification_Class_info { Priority[MAX_BACNET_EVENT_TRANSITION]; /* BACnetARRAY[3] of Unsigned */ uint8_t Ack_Required; /* BACnetEventTransitionBits */ BACNET_DESTINATION - Recipient_List[NC_MAX_RECIPIENTS]; /* List of BACnetDestination */ + Recipient_List[NC_MAX_RECIPIENTS]; /* List of BACnetDestination */ } NOTIFICATION_CLASS_INFO; /* Indicates whether the transaction has been confirmed */ diff --git a/src/bacnet/basic/object/netport.c b/src/bacnet/basic/object/netport.c index 16c8df40..1c46ec27 100644 --- a/src/bacnet/basic/object/netport.c +++ b/src/bacnet/basic/object/netport.c @@ -729,7 +729,7 @@ bool Network_Port_MAC_Address( if (mac_address) { mac_len = Network_Port_MAC_Address_Value( object_instance, mac_address->value, sizeof(mac_address->value)); - mac_address->length = mac_len; + mac_address->length = mac_len; } return mac_len > 0; @@ -3035,7 +3035,8 @@ bool Network_Port_MSTP_Max_Info_Frames_Set( * @param object_property [in] BACnet object property * @return true if the object property is a BACnetARRAY datatype */ -static bool Network_Port_BACnetArray_Property(BACNET_PROPERTY_ID object_property) +static bool +Network_Port_BACnetArray_Property(BACNET_PROPERTY_ID object_property) { bool status = false; diff --git a/src/bacnet/basic/object/netport.h b/src/bacnet/basic/object/netport.h index 7d4d32a3..9d9ac0cf 100644 --- a/src/bacnet/basic/object/netport.h +++ b/src/bacnet/basic/object/netport.h @@ -21,470 +21,348 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Network_Port_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - void Network_Port_Property_List( - uint32_t object_instance, - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Network_Port_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +void Network_Port_Property_List( + uint32_t object_instance, + const int **pRequired, + const int **pOptional, + const int **pProprietary); - BACNET_STACK_EXPORT - bool Network_Port_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); - BACNET_STACK_EXPORT - bool Network_Port_Name_Set( - uint32_t object_instance, - const char *new_name); - BACNET_STACK_EXPORT - const char *Network_Port_Object_Name_ASCII( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); +BACNET_STACK_EXPORT +bool Network_Port_Name_Set(uint32_t object_instance, const char *new_name); +BACNET_STACK_EXPORT +const char *Network_Port_Object_Name_ASCII(uint32_t object_instance); - BACNET_STACK_EXPORT - char *Network_Port_Description( - uint32_t instance); - BACNET_STACK_EXPORT - bool Network_Port_Description_Set( - uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +char *Network_Port_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool Network_Port_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - BACNET_RELIABILITY Network_Port_Reliability( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Reliability_Set( - uint32_t object_instance, - BACNET_RELIABILITY value); +BACNET_STACK_EXPORT +BACNET_RELIABILITY Network_Port_Reliability(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Reliability_Set( + uint32_t object_instance, BACNET_RELIABILITY value); - BACNET_STACK_EXPORT - bool Network_Port_Out_Of_Service( - uint32_t instance); - BACNET_STACK_EXPORT - bool Network_Port_Out_Of_Service_Set( - uint32_t instance, - bool oos_flag); +BACNET_STACK_EXPORT +bool Network_Port_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +bool Network_Port_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - uint8_t Network_Port_Type( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Type_Set( - uint32_t object_instance, - uint8_t value); +BACNET_STACK_EXPORT +uint8_t Network_Port_Type(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Type_Set(uint32_t object_instance, uint8_t value); - BACNET_STACK_EXPORT - uint16_t Network_Port_Network_Number( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Network_Number_Set( - uint32_t object_instance, - uint16_t value); +BACNET_STACK_EXPORT +uint16_t Network_Port_Network_Number(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Network_Number_Set(uint32_t object_instance, uint16_t value); - BACNET_STACK_EXPORT - BACNET_PORT_QUALITY Network_Port_Quality( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Quality_Set( - uint32_t object_instance, - BACNET_PORT_QUALITY value); +BACNET_STACK_EXPORT +BACNET_PORT_QUALITY Network_Port_Quality(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Quality_Set( + uint32_t object_instance, BACNET_PORT_QUALITY value); - BACNET_STACK_EXPORT - bool Network_Port_MAC_Address( - uint32_t object_instance, - BACNET_OCTET_STRING *mac_address); - BACNET_STACK_EXPORT - uint8_t Network_Port_MAC_Address_Value( - uint32_t object_instance, - uint8_t *mac_address, - size_t mac_size); - BACNET_STACK_EXPORT - bool Network_Port_MAC_Address_Set( - uint32_t object_instance, - const uint8_t *mac_src, - uint8_t mac_len); +BACNET_STACK_EXPORT +bool Network_Port_MAC_Address( + uint32_t object_instance, BACNET_OCTET_STRING *mac_address); +BACNET_STACK_EXPORT +uint8_t Network_Port_MAC_Address_Value( + uint32_t object_instance, uint8_t *mac_address, size_t mac_size); +BACNET_STACK_EXPORT +bool Network_Port_MAC_Address_Set( + uint32_t object_instance, const uint8_t *mac_src, uint8_t mac_len); - BACNET_STACK_EXPORT - uint16_t Network_Port_APDU_Length( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_APDU_Length_Set( - uint32_t object_instance, - uint16_t value); +BACNET_STACK_EXPORT +uint16_t Network_Port_APDU_Length(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_APDU_Length_Set(uint32_t object_instance, uint16_t value); - BACNET_STACK_EXPORT - uint8_t Network_Port_MSTP_MAC_Address( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_MSTP_MAC_Address_Set( - uint32_t object_instance, - uint8_t value); +BACNET_STACK_EXPORT +uint8_t Network_Port_MSTP_MAC_Address(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_MSTP_MAC_Address_Set(uint32_t object_instance, uint8_t value); - BACNET_STACK_EXPORT - uint8_t Network_Port_MSTP_Max_Master( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_MSTP_Max_Master_Set( - uint32_t object_instance, - uint8_t value); +BACNET_STACK_EXPORT +uint8_t Network_Port_MSTP_Max_Master(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_MSTP_Max_Master_Set(uint32_t object_instance, uint8_t value); - BACNET_STACK_EXPORT - uint8_t Network_Port_MSTP_Max_Info_Frames( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_MSTP_Max_Info_Frames_Set( - uint32_t object_instance, - uint8_t value); +BACNET_STACK_EXPORT +uint8_t Network_Port_MSTP_Max_Info_Frames(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_MSTP_Max_Info_Frames_Set( + uint32_t object_instance, uint8_t value); - BACNET_STACK_EXPORT - float Network_Port_Link_Speed( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Link_Speed_Set( - uint32_t object_instance, - float value); +BACNET_STACK_EXPORT +float Network_Port_Link_Speed(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Link_Speed_Set(uint32_t object_instance, float value); - BACNET_STACK_EXPORT - bool Network_Port_IP_Address( - uint32_t object_instance, - BACNET_OCTET_STRING *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IP_Address_Get( - uint32_t object_instance, - uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); - BACNET_STACK_EXPORT - bool Network_Port_IP_Address_Set( - uint32_t object_instance, - uint8_t a, uint8_t b, uint8_t c, uint8_t d); +BACNET_STACK_EXPORT +bool Network_Port_IP_Address( + uint32_t object_instance, BACNET_OCTET_STRING *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IP_Address_Get( + uint32_t object_instance, uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); +BACNET_STACK_EXPORT +bool Network_Port_IP_Address_Set( + uint32_t object_instance, uint8_t a, uint8_t b, uint8_t c, uint8_t d); - BACNET_STACK_EXPORT - uint8_t Network_Port_IP_Subnet_Prefix( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_IP_Subnet_Prefix_Set( - uint32_t object_instance, - uint8_t value); +BACNET_STACK_EXPORT +uint8_t Network_Port_IP_Subnet_Prefix(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_IP_Subnet_Prefix_Set(uint32_t object_instance, uint8_t value); - BACNET_STACK_EXPORT - bool Network_Port_IP_Subnet( - uint32_t object_instance, - BACNET_OCTET_STRING *subnet_mask); - BACNET_STACK_EXPORT - bool Network_Port_IP_Subnet_Get( - uint32_t object_instance, - uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); - BACNET_STACK_EXPORT - bool Network_Port_IP_Subnet_Set( - uint32_t object_instance, - uint8_t a, uint8_t b, uint8_t c, uint8_t d); +BACNET_STACK_EXPORT +bool Network_Port_IP_Subnet( + uint32_t object_instance, BACNET_OCTET_STRING *subnet_mask); +BACNET_STACK_EXPORT +bool Network_Port_IP_Subnet_Get( + uint32_t object_instance, uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); +BACNET_STACK_EXPORT +bool Network_Port_IP_Subnet_Set( + uint32_t object_instance, uint8_t a, uint8_t b, uint8_t c, uint8_t d); - BACNET_STACK_EXPORT - bool Network_Port_IP_Gateway( - uint32_t object_instance, - BACNET_OCTET_STRING *subnet_mask); - BACNET_STACK_EXPORT - bool Network_Port_IP_Gateway_Get( - uint32_t object_instance, - uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); - BACNET_STACK_EXPORT - bool Network_Port_IP_Gateway_Set( - uint32_t object_instance, - uint8_t a, uint8_t b, uint8_t c, uint8_t d); +BACNET_STACK_EXPORT +bool Network_Port_IP_Gateway( + uint32_t object_instance, BACNET_OCTET_STRING *subnet_mask); +BACNET_STACK_EXPORT +bool Network_Port_IP_Gateway_Get( + uint32_t object_instance, uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); +BACNET_STACK_EXPORT +bool Network_Port_IP_Gateway_Set( + uint32_t object_instance, uint8_t a, uint8_t b, uint8_t c, uint8_t d); +BACNET_STACK_EXPORT +bool Network_Port_IP_DHCP_Enable(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_IP_DHCP_Enable_Set(uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - bool Network_Port_IP_DHCP_Enable( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_IP_DHCP_Enable_Set( - uint32_t object_instance, bool value); +BACNET_STACK_EXPORT +bool Network_Port_IP_DNS_Server( + uint32_t object_instance, unsigned index, BACNET_OCTET_STRING *subnet_mask); +BACNET_STACK_EXPORT +bool Network_Port_IP_DNS_Server_Get( + uint32_t object_instance, + unsigned index, + uint8_t *a, + uint8_t *b, + uint8_t *c, + uint8_t *d); +BACNET_STACK_EXPORT +bool Network_Port_IP_DNS_Server_Set( + uint32_t object_instance, + unsigned index, + uint8_t a, + uint8_t b, + uint8_t c, + uint8_t d); - BACNET_STACK_EXPORT - bool Network_Port_IP_DNS_Server( - uint32_t object_instance, - unsigned index, - BACNET_OCTET_STRING *subnet_mask); - BACNET_STACK_EXPORT - bool Network_Port_IP_DNS_Server_Get( - uint32_t object_instance, - unsigned index, - uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); - BACNET_STACK_EXPORT - bool Network_Port_IP_DNS_Server_Set( - uint32_t object_instance, - unsigned index, - uint8_t a, uint8_t b, uint8_t c, uint8_t d); +BACNET_STACK_EXPORT +uint16_t Network_Port_BIP_Port(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BIP_Port_Set(uint32_t object_instance, uint16_t value); - BACNET_STACK_EXPORT - uint16_t Network_Port_BIP_Port( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BIP_Port_Set( - uint32_t object_instance, - uint16_t value); +BACNET_STACK_EXPORT +BACNET_IP_MODE Network_Port_BIP_Mode(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BIP_Mode_Set(uint32_t object_instance, BACNET_IP_MODE value); - BACNET_STACK_EXPORT - BACNET_IP_MODE Network_Port_BIP_Mode( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BIP_Mode_Set( - uint32_t object_instance, - BACNET_IP_MODE value); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_Accept_FD_Registrations(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_Accept_FD_Registrations_Set( + uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - bool Network_Port_BBMD_Accept_FD_Registrations( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BBMD_Accept_FD_Registrations_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +void *Network_Port_BBMD_BD_Table(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_BD_Table_Set(uint32_t object_instance, void *bdt_head); +BACNET_STACK_EXPORT +void *Network_Port_BBMD_FD_Table(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_FD_Table_Set(uint32_t object_instance, void *fdt_head); - BACNET_STACK_EXPORT - void *Network_Port_BBMD_BD_Table(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BBMD_BD_Table_Set( - uint32_t object_instance, - void *bdt_head); - BACNET_STACK_EXPORT - void *Network_Port_BBMD_FD_Table(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BBMD_FD_Table_Set( - uint32_t object_instance, - void *fdt_head); - - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_IP_Address( - uint32_t object_instance, - uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_IP_Address_Set( - uint32_t object_instance, - uint8_t a, uint8_t b, uint8_t c, uint8_t d); - BACNET_STACK_EXPORT - uint16_t Network_Port_Remote_BBMD_BIP_Port( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_BIP_Port_Set( - uint32_t object_instance, - uint16_t value); - BACNET_STACK_EXPORT - uint16_t Network_Port_Remote_BBMD_BIP_Lifetime( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_BIP_Lifetime_Set( - uint32_t object_instance, - uint16_t value); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_IP_Address( + uint32_t object_instance, uint8_t *a, uint8_t *b, uint8_t *c, uint8_t *d); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_IP_Address_Set( + uint32_t object_instance, uint8_t a, uint8_t b, uint8_t c, uint8_t d); +BACNET_STACK_EXPORT +uint16_t Network_Port_Remote_BBMD_BIP_Port(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_BIP_Port_Set( + uint32_t object_instance, uint16_t value); +BACNET_STACK_EXPORT +uint16_t Network_Port_Remote_BBMD_BIP_Lifetime(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_BIP_Lifetime_Set( + uint32_t object_instance, uint16_t value); #if (defined(BACDL_ALL) || defined(BACDL_BIP6)) - BACNET_STACK_EXPORT - bool Network_Port_BBMD_IP6_Accept_FD_Registrations( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BBMD_IP6_Accept_FD_Registrations_Set( - uint32_t object_instance, - bool value); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_IP6_Accept_FD_Registrations(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_IP6_Accept_FD_Registrations_Set( + uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - void *Network_Port_BBMD_IP6_BD_Table(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BBMD_IP6_BD_Table_Set( - uint32_t object_instance, - void *bdt_head); - BACNET_STACK_EXPORT - void *Network_Port_BBMD_IP6_FD_Table(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BBMD_IP6_FD_Table_Set( - uint32_t object_instance, - void *fdt_head); +BACNET_STACK_EXPORT +void *Network_Port_BBMD_IP6_BD_Table(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_IP6_BD_Table_Set( + uint32_t object_instance, void *bdt_head); +BACNET_STACK_EXPORT +void *Network_Port_BBMD_IP6_FD_Table(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BBMD_IP6_FD_Table_Set( + uint32_t object_instance, void *fdt_head); - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_IP6_Address( - uint32_t object_instance, - uint8_t *addr); - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_IP6_Address_Set( - uint32_t object_instance, - const uint8_t *addr); - BACNET_STACK_EXPORT - uint16_t Network_Port_Remote_BBMD_BIP6_Port( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_BIP6_Port_Set( - uint32_t object_instance, - uint16_t value); - BACNET_STACK_EXPORT - uint16_t Network_Port_Remote_BBMD_BIP6_Lifetime( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Remote_BBMD_BIP6_Lifetime_Set( - uint32_t object_instance, - uint16_t value); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_IP6_Address( + uint32_t object_instance, uint8_t *addr); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_IP6_Address_Set( + uint32_t object_instance, const uint8_t *addr); +BACNET_STACK_EXPORT +uint16_t Network_Port_Remote_BBMD_BIP6_Port(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_BIP6_Port_Set( + uint32_t object_instance, uint16_t value); +BACNET_STACK_EXPORT +uint16_t Network_Port_Remote_BBMD_BIP6_Lifetime(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Remote_BBMD_BIP6_Lifetime_Set( + uint32_t object_instance, uint16_t value); #endif - BACNET_STACK_EXPORT - BACNET_IP_MODE Network_Port_BIP6_Mode( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BIP6_Mode_Set( - uint32_t object_instance, - BACNET_IP_MODE value); +BACNET_STACK_EXPORT +BACNET_IP_MODE Network_Port_BIP6_Mode(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BIP6_Mode_Set(uint32_t object_instance, BACNET_IP_MODE value); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Address( - uint32_t object_instance, - BACNET_OCTET_STRING *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Address_Set( - uint32_t object_instance, - const uint8_t *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Address( + uint32_t object_instance, BACNET_OCTET_STRING *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Address_Set( + uint32_t object_instance, const uint8_t *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Multicast_Address( - uint32_t object_instance, - BACNET_OCTET_STRING *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Multicast_Address_Set( - uint32_t object_instance, - const uint8_t *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Multicast_Address( + uint32_t object_instance, BACNET_OCTET_STRING *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Multicast_Address_Set( + uint32_t object_instance, const uint8_t *ip_address); - BACNET_STACK_EXPORT - uint8_t Network_Port_IPv6_Subnet_Prefix( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Subnet_Prefix_Set( - uint32_t object_instance, - uint8_t value); +BACNET_STACK_EXPORT +uint8_t Network_Port_IPv6_Subnet_Prefix(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Subnet_Prefix_Set( + uint32_t object_instance, uint8_t value); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Gateway( - uint32_t object_instance, - BACNET_OCTET_STRING *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Gateway_Set( - uint32_t object_instance, - const uint8_t *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Gateway( + uint32_t object_instance, BACNET_OCTET_STRING *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Gateway_Set( + uint32_t object_instance, const uint8_t *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_DNS_Server( - uint32_t object_instance, - unsigned dns_index, - BACNET_OCTET_STRING *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_DNS_Server_Set( - uint32_t object_instance, - unsigned dns_index, - const uint8_t *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_DNS_Server( + uint32_t object_instance, + unsigned dns_index, + BACNET_OCTET_STRING *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_DNS_Server_Set( + uint32_t object_instance, unsigned dns_index, const uint8_t *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_DHCP_Server( - uint32_t object_instance, - BACNET_OCTET_STRING *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_DHCP_Server_Set( - uint32_t object_instance, - const uint8_t *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_DHCP_Server( + uint32_t object_instance, BACNET_OCTET_STRING *ip_address); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_DHCP_Server_Set( + uint32_t object_instance, const uint8_t *ip_address); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Zone_Index( - uint32_t object_instance, - BACNET_CHARACTER_STRING *zone_index); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Gateway_Zone_Index_Set( - uint32_t object_instance, - char *zone_index); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Zone_Index( + uint32_t object_instance, BACNET_CHARACTER_STRING *zone_index); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Gateway_Zone_Index_Set( + uint32_t object_instance, char *zone_index); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Auto_Addressing_Enable( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_IPv6_Auto_Addressing_Enable_Set( - uint32_t object_instance, bool value); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Auto_Addressing_Enable(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_IPv6_Auto_Addressing_Enable_Set( + uint32_t object_instance, bool value); - BACNET_STACK_EXPORT - uint16_t Network_Port_BIP6_Port( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_BIP6_Port_Set( - uint32_t object_instance, - uint16_t value); +BACNET_STACK_EXPORT +uint16_t Network_Port_BIP6_Port(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_BIP6_Port_Set(uint32_t object_instance, uint16_t value); - BACNET_STACK_EXPORT - bool Network_Port_Changes_Pending( - uint32_t instance); - BACNET_STACK_EXPORT - bool Network_Port_Changes_Pending_Set( - uint32_t instance, - bool flag); - BACNET_STACK_EXPORT - void Network_Port_Changes_Pending_Activate( - uint32_t instance); - BACNET_STACK_EXPORT - void Network_Port_Changes_Pending_Discard( - uint32_t instance); +BACNET_STACK_EXPORT +bool Network_Port_Changes_Pending(uint32_t instance); +BACNET_STACK_EXPORT +bool Network_Port_Changes_Pending_Set(uint32_t instance, bool flag); +BACNET_STACK_EXPORT +void Network_Port_Changes_Pending_Activate(uint32_t instance); +BACNET_STACK_EXPORT +void Network_Port_Changes_Pending_Discard(uint32_t instance); - BACNET_STACK_EXPORT - bool Network_Port_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Network_Port_Count( - void); - BACNET_STACK_EXPORT - uint32_t Network_Port_Index_To_Instance( - unsigned find_index); - BACNET_STACK_EXPORT - unsigned Network_Port_Instance_To_Index( - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Network_Port_Count(void); +BACNET_STACK_EXPORT +uint32_t Network_Port_Index_To_Instance(unsigned find_index); +BACNET_STACK_EXPORT +unsigned Network_Port_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Object_Instance_Number_Set( - unsigned index, - uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Object_Instance_Number_Set( + unsigned index, uint32_t object_instance); - BACNET_STACK_EXPORT - int Network_Port_Read_Range_BDT( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); - BACNET_STACK_EXPORT - int Network_Port_Read_Range_FDT( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); - BACNET_STACK_EXPORT - bool Network_Port_Read_Range( - BACNET_READ_RANGE_DATA * pRequest, - RR_PROP_INFO * pInfo); +BACNET_STACK_EXPORT +int Network_Port_Read_Range_BDT( + uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); +BACNET_STACK_EXPORT +int Network_Port_Read_Range_FDT( + uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); +BACNET_STACK_EXPORT +bool Network_Port_Read_Range( + BACNET_READ_RANGE_DATA *pRequest, RR_PROP_INFO *pInfo); - BACNET_STACK_EXPORT - uint32_t Network_Port_Create( - uint32_t object_instance); - BACNET_STACK_EXPORT - bool Network_Port_Delete( - uint32_t object_instance); - BACNET_STACK_EXPORT - void Network_Port_Changes_Activate( - void); - BACNET_STACK_EXPORT - void Network_Port_Changes_Discard( - void); - BACNET_STACK_EXPORT - void Network_Port_Cleanup( - void); - BACNET_STACK_EXPORT - void Network_Port_Init( - void); +BACNET_STACK_EXPORT +uint32_t Network_Port_Create(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Network_Port_Delete(uint32_t object_instance); +BACNET_STACK_EXPORT +void Network_Port_Changes_Activate(void); +BACNET_STACK_EXPORT +void Network_Port_Changes_Discard(void); +BACNET_STACK_EXPORT +void Network_Port_Cleanup(void); +BACNET_STACK_EXPORT +void Network_Port_Init(void); - /* handling for read property service */ - BACNET_STACK_EXPORT - int Network_Port_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +/* handling for read property service */ +BACNET_STACK_EXPORT +int Network_Port_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - /* handling for write property service */ - BACNET_STACK_EXPORT - bool Network_Port_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); +/* handling for write property service */ +BACNET_STACK_EXPORT +bool Network_Port_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/objects.h b/src/bacnet/basic/object/objects.h index 476f4373..09d6c212 100644 --- a/src/bacnet/basic/object/objects.h +++ b/src/bacnet/basic/object/objects.h @@ -43,26 +43,26 @@ typedef struct object_device_t { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - bool objects_device_delete(int index); +BACNET_STACK_EXPORT +bool objects_device_delete(int index); - BACNET_STACK_EXPORT - OBJECT_DEVICE_T *objects_device_new(uint32_t device_instance); +BACNET_STACK_EXPORT +OBJECT_DEVICE_T *objects_device_new(uint32_t device_instance); - BACNET_STACK_EXPORT - OBJECT_DEVICE_T *objects_device_by_instance(uint32_t device_instance); +BACNET_STACK_EXPORT +OBJECT_DEVICE_T *objects_device_by_instance(uint32_t device_instance); - BACNET_STACK_EXPORT - OBJECT_DEVICE_T *objects_device_data(int index); +BACNET_STACK_EXPORT +OBJECT_DEVICE_T *objects_device_data(int index); - BACNET_STACK_EXPORT - int objects_device_count(void); +BACNET_STACK_EXPORT +int objects_device_count(void); - BACNET_STACK_EXPORT - uint32_t objects_device_id(int index); +BACNET_STACK_EXPORT +uint32_t objects_device_id(int index); - BACNET_STACK_EXPORT - void objects_init(void); +BACNET_STACK_EXPORT +void objects_init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/osv.c b/src/bacnet/basic/object/osv.c index b962e223..d0234bfa 100644 --- a/src/bacnet/basic/object/osv.c +++ b/src/bacnet/basic/object/osv.c @@ -27,12 +27,13 @@ static OCTETSTRING_VALUE_DESCR OSV_Descr[MAX_OCTETSTRING_VALUES]; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int OctetString_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 }; -static const int OctetString_Value_Properties_Optional[] = { PROP_EVENT_STATE, - PROP_OUT_OF_SERVICE, PROP_DESCRIPTION, -1 }; +static const int OctetString_Value_Properties_Optional[] = { + PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_DESCRIPTION, -1 +}; static const int OctetString_Value_Properties_Proprietary[] = { -1 }; @@ -151,7 +152,8 @@ bool OctetString_Value_Object_Name( bool status = false; if (object_instance < MAX_OCTETSTRING_VALUES) { - snprintf(text, sizeof(text), "OCTETSTRING VALUE %lu", + snprintf( + text, sizeof(text), "OCTETSTRING VALUE %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -215,7 +217,8 @@ int OctetString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_set_bit(&bit_string, STATUS_FLAG_IN_ALARM, false); bitstring_set_bit(&bit_string, STATUS_FLAG_FAULT, false); bitstring_set_bit(&bit_string, STATUS_FLAG_OVERRIDDEN, false); - bitstring_set_bit(&bit_string, STATUS_FLAG_OUT_OF_SERVICE, + bitstring_set_bit( + &bit_string, STATUS_FLAG_OUT_OF_SERVICE, CurrentAV->Out_Of_Service); apdu_len = encode_application_bitstring(&apdu[0], &bit_string); diff --git a/src/bacnet/basic/object/osv.h b/src/bacnet/basic/object/osv.h index 4cd0efd1..5814cdee 100644 --- a/src/bacnet/basic/object/osv.h +++ b/src/bacnet/basic/object/osv.h @@ -20,72 +20,67 @@ extern "C" { #endif /* __cplusplus */ - typedef struct octetstring_value_descr { - unsigned Event_State:3; - bool Out_Of_Service; - BACNET_OCTET_STRING Present_Value; - } OCTETSTRING_VALUE_DESCR; +typedef struct octetstring_value_descr { + unsigned Event_State : 3; + bool Out_Of_Service; + BACNET_OCTET_STRING Present_Value; +} OCTETSTRING_VALUE_DESCR; +BACNET_STACK_EXPORT +void OctetString_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool OctetString_Value_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned OctetString_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t OctetString_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned OctetString_Value_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - void OctetString_Value_Property_Lists(const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool OctetString_Value_Valid_Instance(uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned OctetString_Value_Count(void); - BACNET_STACK_EXPORT - uint32_t OctetString_Value_Index_To_Instance(unsigned index); - BACNET_STACK_EXPORT - unsigned OctetString_Value_Instance_To_Index(uint32_t object_instance); +BACNET_STACK_EXPORT +bool OctetString_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); - BACNET_STACK_EXPORT - bool OctetString_Value_Object_Name(uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); +BACNET_STACK_EXPORT +int OctetString_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - int OctetString_Value_Read_Property(BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +bool OctetString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool OctetString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA * - wp_data); +BACNET_STACK_EXPORT +bool OctetString_Value_Present_Value_Set( + uint32_t object_instance, + const BACNET_OCTET_STRING *value, + uint8_t priority); +BACNET_STACK_EXPORT +BACNET_OCTET_STRING *OctetString_Value_Present_Value(uint32_t object_instance); - BACNET_STACK_EXPORT - bool OctetString_Value_Present_Value_Set(uint32_t object_instance, - const BACNET_OCTET_STRING * value, - uint8_t priority); - BACNET_STACK_EXPORT - BACNET_OCTET_STRING *OctetString_Value_Present_Value(uint32_t - object_instance); +BACNET_STACK_EXPORT +bool OctetString_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void OctetString_Value_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool OctetString_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - bool OctetString_Value_Change_Of_Value(uint32_t instance); - BACNET_STACK_EXPORT - void OctetString_Value_Change_Of_Value_Clear(uint32_t instance); - BACNET_STACK_EXPORT - bool OctetString_Value_Encode_Value_List(uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +char *OctetString_Value_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool OctetString_Value_Description_Set(uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - char *OctetString_Value_Description(uint32_t instance); - BACNET_STACK_EXPORT - bool OctetString_Value_Description_Set(uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +bool OctetString_Value_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void OctetString_Value_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - bool OctetString_Value_Out_Of_Service(uint32_t instance); - BACNET_STACK_EXPORT - void OctetString_Value_Out_Of_Service_Set(uint32_t instance, - bool oos_flag); +/* note: header of Intrinsic_Reporting function is required + even when INTRINSIC_REPORTING is not defined */ +BACNET_STACK_EXPORT +void OctetString_Value_Intrinsic_Reporting(uint32_t object_instance); - /* note: header of Intrinsic_Reporting function is required - even when INTRINSIC_REPORTING is not defined */ - BACNET_STACK_EXPORT - void OctetString_Value_Intrinsic_Reporting(uint32_t object_instance); - - BACNET_STACK_EXPORT - void OctetString_Value_Init(void); +BACNET_STACK_EXPORT +void OctetString_Value_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/piv.c b/src/bacnet/basic/object/piv.c index 8fbe971e..6ec5240e 100644 --- a/src/bacnet/basic/object/piv.c +++ b/src/bacnet/basic/object/piv.c @@ -27,8 +27,13 @@ static POSITIVEINTEGER_VALUE_DESCR PIV_Descr[MAX_POSITIVEINTEGER_VALUES]; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int PositiveInteger_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_UNITS, -1 + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_UNITS, + -1 }; static const int PositiveInteger_Value_Properties_Optional[] = { @@ -150,7 +155,8 @@ bool PositiveInteger_Value_Object_Name( bool status = false; if (object_instance < MAX_POSITIVEINTEGER_VALUES) { - snprintf(text, sizeof(text), "POSITIVEINTEGER VALUE %lu", + snprintf( + text, sizeof(text), "POSITIVEINTEGER VALUE %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -186,8 +192,9 @@ int PositiveInteger_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) switch (rpdata->object_property) { case PROP_OBJECT_IDENTIFIER: - apdu_len = encode_application_object_id(&apdu[0], - OBJECT_POSITIVE_INTEGER_VALUE, rpdata->object_instance); + apdu_len = encode_application_object_id( + &apdu[0], OBJECT_POSITIVE_INTEGER_VALUE, + rpdata->object_instance); break; case PROP_OBJECT_NAME: @@ -203,7 +210,8 @@ int PositiveInteger_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; case PROP_PRESENT_VALUE: - apdu_len = encode_application_unsigned(&apdu[0], + apdu_len = encode_application_unsigned( + &apdu[0], PositiveInteger_Value_Present_Value(rpdata->object_instance)); break; @@ -212,7 +220,8 @@ int PositiveInteger_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_set_bit(&bit_string, STATUS_FLAG_IN_ALARM, false); bitstring_set_bit(&bit_string, STATUS_FLAG_FAULT, false); bitstring_set_bit(&bit_string, STATUS_FLAG_OVERRIDDEN, false); - bitstring_set_bit(&bit_string, STATUS_FLAG_OUT_OF_SERVICE, + bitstring_set_bit( + &bit_string, STATUS_FLAG_OUT_OF_SERVICE, CurrentAV->Out_Of_Service); apdu_len = encode_application_bitstring(&apdu[0], &bit_string); diff --git a/src/bacnet/basic/object/piv.h b/src/bacnet/basic/object/piv.h index 980807de..4af0b29f 100644 --- a/src/bacnet/basic/object/piv.h +++ b/src/bacnet/basic/object/piv.h @@ -20,71 +20,65 @@ extern "C" { #endif /* __cplusplus */ - typedef struct positiveinteger_value_descr { - bool Out_Of_Service:1; - uint32_t Present_Value; - uint16_t Units; - } POSITIVEINTEGER_VALUE_DESCR; +typedef struct positiveinteger_value_descr { + bool Out_Of_Service : 1; + uint32_t Present_Value; + uint16_t Units; +} POSITIVEINTEGER_VALUE_DESCR; +BACNET_STACK_EXPORT +void PositiveInteger_Value_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Valid_Instance(uint32_t object_instance); +unsigned PositiveInteger_Value_Count(void); +BACNET_STACK_EXPORT +uint32_t PositiveInteger_Value_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned PositiveInteger_Value_Instance_To_Index(uint32_t object_instance); - BACNET_STACK_EXPORT - void PositiveInteger_Value_Property_Lists(const int **pRequired, - const int **pOptional, - const int **pProprietary); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Valid_Instance(uint32_t object_instance); - unsigned PositiveInteger_Value_Count(void); - BACNET_STACK_EXPORT - uint32_t PositiveInteger_Value_Index_To_Instance(unsigned index); - BACNET_STACK_EXPORT - unsigned PositiveInteger_Value_Instance_To_Index(uint32_t object_instance); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Object_Name(uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); +BACNET_STACK_EXPORT +int PositiveInteger_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - int PositiveInteger_Value_Read_Property(BACNET_READ_PROPERTY_DATA * - rpdata); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA * - wp_data); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Present_Value_Set( + uint32_t object_instance, uint32_t value, uint8_t priority); +BACNET_STACK_EXPORT +uint32_t PositiveInteger_Value_Present_Value(uint32_t object_instance); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Present_Value_Set(uint32_t object_instance, - uint32_t value, - uint8_t priority); - BACNET_STACK_EXPORT - uint32_t PositiveInteger_Value_Present_Value(uint32_t object_instance); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Change_Of_Value(uint32_t instance); +BACNET_STACK_EXPORT +void PositiveInteger_Value_Change_Of_Value_Clear(uint32_t instance); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Encode_Value_List( + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Change_Of_Value(uint32_t instance); - BACNET_STACK_EXPORT - void PositiveInteger_Value_Change_Of_Value_Clear(uint32_t instance); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Encode_Value_List(uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); +BACNET_STACK_EXPORT +char *PositiveInteger_Value_Description(uint32_t instance); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Description_Set( + uint32_t instance, const char *new_name); - BACNET_STACK_EXPORT - char *PositiveInteger_Value_Description(uint32_t instance); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Description_Set(uint32_t instance, - const char *new_name); +BACNET_STACK_EXPORT +bool PositiveInteger_Value_Out_Of_Service(uint32_t instance); +BACNET_STACK_EXPORT +void PositiveInteger_Value_Out_Of_Service_Set(uint32_t instance, bool oos_flag); - BACNET_STACK_EXPORT - bool PositiveInteger_Value_Out_Of_Service(uint32_t instance); - BACNET_STACK_EXPORT - void PositiveInteger_Value_Out_Of_Service_Set(uint32_t instance, - bool oos_flag); +/* note: header of Intrinsic_Reporting function is required + even when INTRINSIC_REPORTING is not defined */ +BACNET_STACK_EXPORT +void PositiveInteger_Value_Intrinsic_Reporting(uint32_t object_instance); - /* note: header of Intrinsic_Reporting function is required - even when INTRINSIC_REPORTING is not defined */ - BACNET_STACK_EXPORT - void PositiveInteger_Value_Intrinsic_Reporting(uint32_t object_instance); - - BACNET_STACK_EXPORT - void PositiveInteger_Value_Init(void); +BACNET_STACK_EXPORT +void PositiveInteger_Value_Init(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/schedule.c b/src/bacnet/basic/object/schedule.c index 4bc8ca47..840c1d0b 100644 --- a/src/bacnet/basic/object/schedule.c +++ b/src/bacnet/basic/object/schedule.c @@ -24,17 +24,26 @@ static SCHEDULE_DESCR Schedule_Descr[MAX_SCHEDULES]; -static const int Schedule_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, - PROP_EFFECTIVE_PERIOD, PROP_SCHEDULE_DEFAULT, - PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, PROP_PRIORITY_FOR_WRITING, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, -1 }; +static const int Schedule_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_EFFECTIVE_PERIOD, + PROP_SCHEDULE_DEFAULT, + PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, + PROP_PRIORITY_FOR_WRITING, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + -1 +}; static const int Schedule_Properties_Optional[] = { PROP_WEEKLY_SCHEDULE, #if BACNET_EXCEPTION_SCHEDULE_SIZE - PROP_EXCEPTION_SCHEDULE, + PROP_EXCEPTION_SCHEDULE, #endif - -1 }; + -1 }; static const int Schedule_Properties_Proprietary[] = { -1 }; @@ -94,7 +103,8 @@ void Schedule_Init(void) for (j = 0; j < 7; j++) { psched->Weekly_Schedule[j].TV_Count = 0; } - memcpy(&psched->Present_Value, &psched->Schedule_Default, + memcpy( + &psched->Present_Value, &psched->Schedule_Default, sizeof(psched->Present_Value)); psched->Schedule_Default.context_specific = false; psched->Schedule_Default.tag = BACNET_APPLICATION_TAG_REAL; @@ -111,8 +121,7 @@ void Schedule_Init(void) &event->period.calendarEntry.type.DateRange.startdate, &start_date); datetime_copy_date( - &event->period.calendarEntry.type.DateRange.enddate, - &end_date); + &event->period.calendarEntry.type.DateRange.enddate, &end_date); event->period.calendarEntry.next = NULL; event->timeValues.TV_Count = 0; event->priority = 16; @@ -188,7 +197,8 @@ bool Schedule_Object_Name( index = Schedule_Instance_To_Index(object_instance); if (index < MAX_SCHEDULES) { - snprintf(text, sizeof(text), "SCHEDULE %lu", (unsigned long)object_instance); + snprintf( + text, sizeof(text), "SCHEDULE %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -241,8 +251,8 @@ static int Schedule_Weekly_Schedule_Encode( apdu += len; } for (i = 0; i < pObject->Weekly_Schedule[day].TV_Count; i++) { - len = bacnet_time_value_encode(apdu, - &pObject->Weekly_Schedule[day].Time_Values[i]); + len = bacnet_time_value_encode( + apdu, &pObject->Weekly_Schedule[day].Time_Values[i]); apdu_len += len; if (apdu) { apdu += len; @@ -278,8 +288,8 @@ static int Schedule_Exception_Schedule_Encode( if (!pObject) { return BACNET_STATUS_ERROR; } - apdu_len = bacnet_special_event_encode(apdu, - &pObject->Exception_Schedule[array_index]); + apdu_len = bacnet_special_event_encode( + apdu, &pObject->Exception_Schedule[array_index]); return apdu_len; } @@ -439,8 +449,9 @@ bool Schedule_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; default: if (property_lists_member( - Schedule_Properties_Required, Schedule_Properties_Optional, - Schedule_Properties_Proprietary, wp_data->object_property)) { + Schedule_Properties_Required, Schedule_Properties_Optional, + Schedule_Properties_Proprietary, + wp_data->object_property)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; } else { @@ -498,13 +509,15 @@ void Schedule_Recalculate_PV( if (diff >= 0 && desc->Weekly_Schedule[wday - 1].Time_Values[i].Value.tag != BACNET_APPLICATION_TAG_NULL) { - bacnet_primitive_to_application_data_value(&desc->Present_Value, + bacnet_primitive_to_application_data_value( + &desc->Present_Value, &desc->Weekly_Schedule[wday - 1].Time_Values[i].Value); } } if (desc->Present_Value.tag == BACNET_APPLICATION_TAG_NULL) { - memcpy(&desc->Present_Value, &desc->Schedule_Default, + memcpy( + &desc->Present_Value, &desc->Schedule_Default, sizeof(desc->Present_Value)); } } diff --git a/src/bacnet/basic/object/schedule.h b/src/bacnet/basic/object/schedule.h index b76c77db..d7e6d0ac 100644 --- a/src/bacnet/basic/object/schedule.h +++ b/src/bacnet/basic/object/schedule.h @@ -22,97 +22,96 @@ #include "bacnet/special_event.h" #ifndef BACNET_WEEKLY_SCHEDULE_SIZE -#define BACNET_WEEKLY_SCHEDULE_SIZE 8 /* maximum number of data points for each day */ +/* Maximum number of data points for each day */ +#define BACNET_WEEKLY_SCHEDULE_SIZE 8 #endif #ifndef BACNET_SCHEDULE_OBJ_PROP_REF_SIZE -#define BACNET_SCHEDULE_OBJ_PROP_REF_SIZE 4 /* maximum number of obj prop references */ +/* Maximum number of obj prop references */ +#define BACNET_SCHEDULE_OBJ_PROP_REF_SIZE 4 #endif #ifndef BACNET_EXCEPTION_SCHEDULE_SIZE -#define BACNET_EXCEPTION_SCHEDULE_SIZE 8 /* maximum number of special events */ +/* Maximum number of special events */ +#define BACNET_EXCEPTION_SCHEDULE_SIZE 8 #endif #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - /* - * Note: - * This is a different struct from BACNET_DAILY_SCHEDULE used in prop value encoding! - * The number of entries is different. - */ - typedef struct bacnet_obj_daily_schedule { - BACNET_TIME_VALUE Time_Values[BACNET_WEEKLY_SCHEDULE_SIZE]; - uint16_t TV_Count; /* the number of time values actually used */ - } BACNET_OBJ_DAILY_SCHEDULE; +/* + * Note: + * This is a different struct from BACNET_DAILY_SCHEDULE used in prop value + * encoding! The number of entries is different. + */ +typedef struct bacnet_obj_daily_schedule { + BACNET_TIME_VALUE Time_Values[BACNET_WEEKLY_SCHEDULE_SIZE]; + uint16_t TV_Count; /* the number of time values actually used */ +} BACNET_OBJ_DAILY_SCHEDULE; - typedef struct schedule { - /* Effective Period: Start and End Date */ - BACNET_DATE Start_Date; - BACNET_DATE End_Date; - /* Properties concerning Present Value */ - BACNET_OBJ_DAILY_SCHEDULE Weekly_Schedule[7]; +typedef struct schedule { + /* Effective Period: Start and End Date */ + BACNET_DATE Start_Date; + BACNET_DATE End_Date; + /* Properties concerning Present Value */ + BACNET_OBJ_DAILY_SCHEDULE Weekly_Schedule[7]; #if BACNET_EXCEPTION_SCHEDULE_SIZE - BACNET_SPECIAL_EVENT Exception_Schedule[BACNET_EXCEPTION_SCHEDULE_SIZE]; + BACNET_SPECIAL_EVENT Exception_Schedule[BACNET_EXCEPTION_SCHEDULE_SIZE]; #endif - BACNET_APPLICATION_DATA_VALUE Schedule_Default; - /* - * Caution: This is a converted to BACNET_PRIMITIVE_APPLICATION_DATA_VALUE. - * Only some data types may be used! - */ - BACNET_APPLICATION_DATA_VALUE Present_Value; /* must be set to a valid value - * default is Schedule_Default */ - BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE - Object_Property_References[BACNET_SCHEDULE_OBJ_PROP_REF_SIZE]; - uint8_t obj_prop_ref_cnt; /* actual number of obj_prop references */ - uint8_t Priority_For_Writing; /* (1..16) */ - bool Out_Of_Service; - } SCHEDULE_DESCR; + BACNET_APPLICATION_DATA_VALUE Schedule_Default; + /* + * Caution: This is a converted to BACNET_PRIMITIVE_APPLICATION_DATA_VALUE. + * Only some data types may be used! + * + * Must be set to a valid value. Default is Schedule_Default. + */ + BACNET_APPLICATION_DATA_VALUE Present_Value; + BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE + Object_Property_References[BACNET_SCHEDULE_OBJ_PROP_REF_SIZE]; + uint8_t obj_prop_ref_cnt; /* actual number of obj_prop references */ + uint8_t Priority_For_Writing; /* (1..16) */ + bool Out_Of_Service; +} SCHEDULE_DESCR; - BACNET_STACK_EXPORT - void Schedule_Property_Lists(const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +void Schedule_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - bool Schedule_Valid_Instance(uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Schedule_Count(void); - BACNET_STACK_EXPORT - uint32_t Schedule_Index_To_Instance(unsigned index); - BACNET_STACK_EXPORT - unsigned Schedule_Instance_To_Index(uint32_t instance); - BACNET_STACK_EXPORT - void Schedule_Init(void); +BACNET_STACK_EXPORT +bool Schedule_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Schedule_Count(void); +BACNET_STACK_EXPORT +uint32_t Schedule_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Schedule_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +void Schedule_Init(void); - BACNET_STACK_EXPORT - void Schedule_Out_Of_Service_Set( - uint32_t object_instance, - bool value); - BACNET_STACK_EXPORT - bool Schedule_Out_Of_Service( - uint32_t object_instance); +BACNET_STACK_EXPORT +void Schedule_Out_Of_Service_Set(uint32_t object_instance, bool value); +BACNET_STACK_EXPORT +bool Schedule_Out_Of_Service(uint32_t object_instance); +BACNET_STACK_EXPORT +bool Schedule_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); - BACNET_STACK_EXPORT - bool Schedule_Object_Name(uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); +BACNET_STACK_EXPORT +int Schedule_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); +BACNET_STACK_EXPORT +bool Schedule_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - int Schedule_Read_Property(BACNET_READ_PROPERTY_DATA * rpdata); - BACNET_STACK_EXPORT - bool Schedule_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data); - - /* utility functions for calculating current Present Value - * if Exception Schedule is to be added, these functions must take that into account */ - BACNET_STACK_EXPORT - bool Schedule_In_Effective_Period(const SCHEDULE_DESCR * desc, - const BACNET_DATE * date); - BACNET_STACK_EXPORT - void Schedule_Recalculate_PV(SCHEDULE_DESCR * desc, - BACNET_WEEKDAY wday, - const BACNET_TIME * time); +/* utility functions for calculating current Present Value + * if Exception Schedule is to be added, these functions must take that into + * account */ +BACNET_STACK_EXPORT +bool Schedule_In_Effective_Period( + const SCHEDULE_DESCR *desc, const BACNET_DATE *date); +BACNET_STACK_EXPORT +void Schedule_Recalculate_PV( + SCHEDULE_DESCR *desc, BACNET_WEEKDAY wday, const BACNET_TIME *time); #ifdef __cplusplus } diff --git a/src/bacnet/basic/object/structured_view.h b/src/bacnet/basic/object/structured_view.h index f5eee3d3..ee8337cc 100644 --- a/src/bacnet/basic/object/structured_view.h +++ b/src/bacnet/basic/object/structured_view.h @@ -59,7 +59,8 @@ int Structured_View_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); BACNET_STACK_EXPORT const char *Structured_View_Description(uint32_t object_instance); BACNET_STACK_EXPORT -bool Structured_View_Description_Set(uint32_t object_instance, const char *new_name); +bool Structured_View_Description_Set( + uint32_t object_instance, const char *new_name); BACNET_STACK_EXPORT BACNET_NODE_TYPE Structured_View_Node_Type(uint32_t object_instance); @@ -70,7 +71,8 @@ bool Structured_View_Node_Type_Set( BACNET_STACK_EXPORT const char *Structured_View_Node_Subtype(uint32_t object_instance); BACNET_STACK_EXPORT -bool Structured_View_Node_Subtype_Set(uint32_t object_instance, const char *new_name); +bool Structured_View_Node_Subtype_Set( + uint32_t object_instance, const char *new_name); BACNET_STACK_EXPORT BACNET_SUBORDINATE_DATA * @@ -79,8 +81,7 @@ BACNET_STACK_EXPORT void Structured_View_Subordinate_List_Set( uint32_t object_instance, BACNET_SUBORDINATE_DATA *subordinate_list); BACNET_STACK_EXPORT -BACNET_SUBORDINATE_DATA * -Structured_View_Subordinate_List_Member( +BACNET_SUBORDINATE_DATA *Structured_View_Subordinate_List_Member( uint32_t object_instance, BACNET_ARRAY_INDEX array_index); BACNET_STACK_EXPORT unsigned int Structured_View_Subordinate_List_Count(uint32_t object_instance); @@ -110,8 +111,7 @@ BACNET_DEVICE_OBJECT_REFERENCE * Structured_View_Represents(uint32_t object_instance); BACNET_STACK_EXPORT bool Structured_View_Represents_Set( - uint32_t object_instance, - const BACNET_DEVICE_OBJECT_REFERENCE *represents); + uint32_t object_instance, const BACNET_DEVICE_OBJECT_REFERENCE *represents); BACNET_STACK_EXPORT uint32_t Structured_View_Create(uint32_t object_instance); diff --git a/src/bacnet/basic/object/time_value.c b/src/bacnet/basic/object/time_value.c index a70d14fb..465f02cd 100644 --- a/src/bacnet/basic/object/time_value.c +++ b/src/bacnet/basic/object/time_value.c @@ -49,21 +49,27 @@ static time_value_write_present_value_callback Time_Value_Write_Present_Value_Callback; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Time_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - -1 }; +static const int Time_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; static const int Time_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, -1 }; + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, -1 }; static const int Time_Value_Properties_Proprietary[] = { -1 }; /* standard properties that are arrays for this object, but not necessary supported in this object */ -static const int BACnetARRAY_Properties[] = { - PROP_PRIORITY_ARRAY, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_VALUE_SOURCE_ARRAY, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, -1 }; +static const int BACnetARRAY_Properties[] = { PROP_PRIORITY_ARRAY, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_VALUE_SOURCE_ARRAY, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + -1 }; /** * Returns the list of required, optional, and proprietary properties. @@ -227,7 +233,8 @@ bool Time_Value_Present_Value_Set( * * @return true if values are within range and present-value is set. */ -static bool Time_Value_Present_Value_Write(uint32_t object_instance, +static bool Time_Value_Present_Value_Write( + uint32_t object_instance, BACNET_TIME *value, uint8_t priority, BACNET_ERROR_CLASS *error_class, @@ -375,7 +382,6 @@ const char *Time_Value_Name_ASCII(uint32_t object_instance) return name; } - /** * For a given object instance-number, returns the description * @@ -496,11 +502,13 @@ bool Time_Value_Encode_Value_List( bitstring_set_bit( &value_list->value.type.Bit_String, STATUS_FLAG_OVERRIDDEN, false); if (Time_Value_Out_Of_Service(object_instance)) { - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, true); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + true); } else { - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, false); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + false); } value_list->priority = BACNET_NO_PRIORITY; value_list->next = NULL; @@ -559,7 +567,8 @@ int Time_Value_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) bitstring_set_bit(&bit_string, STATUS_FLAG_IN_ALARM, false); bitstring_set_bit(&bit_string, STATUS_FLAG_FAULT, false); bitstring_set_bit(&bit_string, STATUS_FLAG_OVERRIDDEN, false); - bitstring_set_bit(&bit_string, STATUS_FLAG_OUT_OF_SERVICE, + bitstring_set_bit( + &bit_string, STATUS_FLAG_OUT_OF_SERVICE, Time_Value_Out_Of_Service(rpdata->object_instance)); apdu_len = encode_application_bitstring(&apdu[0], &bit_string); break; @@ -631,10 +640,10 @@ bool Time_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = write_property_type_valid( wp_data, &value, BACNET_APPLICATION_TAG_TIME); if (status) { - status = - Time_Value_Present_Value_Write(wp_data->object_instance, - &value.type.Time, wp_data->priority, - &wp_data->error_class, &wp_data->error_code); + status = Time_Value_Present_Value_Write( + wp_data->object_instance, &value.type.Time, + wp_data->priority, &wp_data->error_class, + &wp_data->error_code); } } else { wp_data->error_class = ERROR_CLASS_PROPERTY; @@ -650,7 +659,8 @@ bool Time_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; default: - if (property_lists_member(Time_Value_Properties_Required, + if (property_lists_member( + Time_Value_Properties_Required, Time_Value_Properties_Optional, Time_Value_Properties_Proprietary, wp_data->object_property)) { @@ -689,7 +699,8 @@ uint8_t Time_Value_Status_Flags(uint32_t object_instance) bitstring_set_bit(&bit_string, STATUS_FLAG_IN_ALARM, false); bitstring_set_bit(&bit_string, STATUS_FLAG_FAULT, false); bitstring_set_bit(&bit_string, STATUS_FLAG_OVERRIDDEN, false); - bitstring_set_bit(&bit_string, STATUS_FLAG_OUT_OF_SERVICE, + bitstring_set_bit( + &bit_string, STATUS_FLAG_OUT_OF_SERVICE, Time_Value_Out_Of_Service(object_instance)); return bitstring_octet(&bit_string, 0); diff --git a/src/bacnet/basic/object/time_value.h b/src/bacnet/basic/object/time_value.h index 8c58f084..fd878289 100644 --- a/src/bacnet/basic/object/time_value.h +++ b/src/bacnet/basic/object/time_value.h @@ -23,9 +23,8 @@ * @param old_value - BACNET_TIME value prior to write * @param value - BACNET_TIME value of the write */ -typedef void (*time_value_write_present_value_callback)(uint32_t object_instance, - BACNET_TIME *old_value, - BACNET_TIME *value); +typedef void (*time_value_write_present_value_callback)( + uint32_t object_instance, BACNET_TIME *old_value, BACNET_TIME *value); #ifdef __cplusplus extern "C" { @@ -88,14 +87,11 @@ void Time_Value_Write_Disable(uint32_t instance); BACNET_STACK_EXPORT bool Time_Value_Encode_Value_List( - uint32_t object_instance, - BACNET_PROPERTY_VALUE * value_list); + uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list); BACNET_STACK_EXPORT -bool Time_Value_Change_Of_Value( - uint32_t instance); +bool Time_Value_Change_Of_Value(uint32_t instance); BACNET_STACK_EXPORT -void Time_Value_Change_Of_Value_Clear( - uint32_t instance); +void Time_Value_Change_Of_Value_Clear(uint32_t instance); BACNET_STACK_EXPORT uint32_t Time_Value_Create(uint32_t object_instance); diff --git a/src/bacnet/basic/object/trendlog.c b/src/bacnet/basic/object/trendlog.c index 1cccec49..212e0eb4 100644 --- a/src/bacnet/basic/object/trendlog.c +++ b/src/bacnet/basic/object/trendlog.c @@ -37,14 +37,22 @@ static TL_LOG_INFO LogInfo[MAX_TREND_LOGS]; /* These three arrays are used by the ReadPropertyMultiple handler */ static const int Trend_Log_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_ENABLE, PROP_STOP_WHEN_FULL, - PROP_BUFFER_SIZE, PROP_LOG_BUFFER, PROP_RECORD_COUNT, - PROP_TOTAL_RECORD_COUNT, PROP_EVENT_STATE, PROP_LOGGING_TYPE, - PROP_STATUS_FLAGS, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_ENABLE, + PROP_STOP_WHEN_FULL, + PROP_BUFFER_SIZE, + PROP_LOG_BUFFER, + PROP_RECORD_COUNT, + PROP_TOTAL_RECORD_COUNT, + PROP_EVENT_STATE, + PROP_LOGGING_TYPE, + PROP_STATUS_FLAGS, + -1 }; -static const int Trend_Log_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_START_TIME, PROP_STOP_TIME, PROP_LOG_DEVICE_OBJECT_PROPERTY, - PROP_LOG_INTERVAL, +static const int Trend_Log_Properties_Optional[] = { + PROP_DESCRIPTION, PROP_START_TIME, PROP_STOP_TIME, + PROP_LOG_DEVICE_OBJECT_PROPERTY, PROP_LOG_INTERVAL, /* Required if COV logging supported PROP_COV_RESUBSCRIPTION_INTERVAL, @@ -60,7 +68,8 @@ static const int Trend_Log_Properties_Optional[] = { PROP_DESCRIPTION, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, */ - PROP_ALIGN_INTERVALS, PROP_INTERVAL_OFFSET, PROP_TRIGGER, -1 }; + PROP_ALIGN_INTERVALS, PROP_INTERVAL_OFFSET, PROP_TRIGGER, -1 +}; static const int Trend_Log_Properties_Proprietary[] = { -1 }; @@ -234,7 +243,8 @@ bool Trend_Log_Object_Name( bool status = false; if (object_instance < MAX_TREND_LOGS) { - snprintf(text, sizeof(text), "Trend Log %lu", + snprintf( + text, sizeof(text), "Trend Log %lu", (unsigned long)object_instance); status = characterstring_init_ansi(object_name, text); } @@ -569,9 +579,9 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } start_date = value.type.Date; /* Then decode the time part */ - len = - bacapp_decode_application_data(wp_data->application_data + len, - wp_data->application_data_len - len, &value); + len = bacapp_decode_application_data( + wp_data->application_data + len, + wp_data->application_data_len - len, &value); if (len) { status = write_property_type_valid( @@ -620,9 +630,9 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } stop_date = value.type.Date; /* Then decode the time part */ - len = - bacapp_decode_application_data(wp_data->application_data + len, - wp_data->application_data_len - len, &value); + len = bacapp_decode_application_data( + wp_data->application_data + len, + wp_data->application_data_len - len, &value); if (len) { status = write_property_type_valid( @@ -664,7 +674,7 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) case PROP_LOG_DEVICE_OBJECT_PROPERTY: len = bacnet_device_object_property_reference_decode( - wp_data->application_data,wp_data->application_data_len, + wp_data->application_data, wp_data->application_data_len, &TempSource); if (len <= 0) { wp_data->error_class = ERROR_CLASS_PROPERTY; @@ -674,7 +684,7 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) /* We only support references to objects in ourself for now */ if ((TempSource.deviceIdentifier.type == OBJECT_DEVICE) && (TempSource.deviceIdentifier.instance != - Device_Object_Instance_Number())) { + Device_Object_Instance_Number())) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED; @@ -682,7 +692,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } /* Quick comparison if structures are packed ... */ - if (memcmp(&TempSource, &CurrentLog->Source, + if (memcmp( + &TempSource, &CurrentLog->Source, sizeof(BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE)) != 0) { /* Clear buffer if property being logged is changed */ CurrentLog->ulRecordCount = 0; @@ -866,7 +877,8 @@ bool TL_Is_Enabled(int iLog) if (CurrentLog->bEnable == false) { /* Not enabled so time is irrelevant */ bStatus = false; - } else if ((CurrentLog->ucTimeFlags == 0) && + } else if ( + (CurrentLog->ucTimeFlags == 0) && (CurrentLog->tStopTime < CurrentLog->tStartTime)) { /* Start time was after stop time as per 12.25.6 and 12.25.7 */ bStatus = false; @@ -1444,12 +1456,13 @@ int TL_encode_entry(uint8_t *apdu, int iLog, int iEntry) * have limited to 32 bits maximum as allowed by the standard */ bitstring_init(&TempBits); - bitstring_set_bits_used(&TempBits, - (pSource->Datum.Bits.ucLen >> 4) & 0x0F, + bitstring_set_bits_used( + &TempBits, (pSource->Datum.Bits.ucLen >> 4) & 0x0F, pSource->Datum.Bits.ucLen & 0x0F); for (ucCount = pSource->Datum.Bits.ucLen >> 4; ucCount > 0; ucCount--) { - bitstring_set_octet(&TempBits, ucCount - 1, + bitstring_set_octet( + &TempBits, ucCount - 1, pSource->Datum.Bits.ucStore[ucCount - 1]); } @@ -1496,7 +1509,8 @@ int TL_encode_entry(uint8_t *apdu, int iLog, int iEntry) return (iLen); } -static int local_read_property(uint8_t *value, +static int local_read_property( + uint8_t *value, uint8_t *status, const BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *Source, BACNET_ERROR_CLASS *error_class, @@ -1699,12 +1713,13 @@ void trend_log_timer(uint16_t uSeconds) * CurrentLog->ulLogInterval)) { */ if ((tNow % CurrentLog->ulLogInterval) == (CurrentLog->ulIntervalOffset % - CurrentLog->ulLogInterval)) { + CurrentLog->ulLogInterval)) { /* Record value if time synchronised trigger condition * is met and at least one period has elapsed. */ TL_fetch_property(iCount); - } else if ((tNow - CurrentLog->tLastDataTime) > + } else if ( + (tNow - CurrentLog->tLastDataTime) > CurrentLog->ulLogInterval) { /* Also record value if we have waited more than a * period since the last reading. This ensures we take a @@ -1713,8 +1728,9 @@ void trend_log_timer(uint16_t uSeconds) */ TL_fetch_property(iCount); } - } else if (((tNow - CurrentLog->tLastDataTime) >= - CurrentLog->ulLogInterval) || + } else if ( + ((tNow - CurrentLog->tLastDataTime) >= + CurrentLog->ulLogInterval) || (CurrentLog->bTrigger == true)) { /* If not aligned take a reading when we have either waited * long enough or a trigger is set. diff --git a/src/bacnet/basic/object/trendlog.h b/src/bacnet/basic/object/trendlog.h index ca1310c4..ea05fb0c 100644 --- a/src/bacnet/basic/object/trendlog.h +++ b/src/bacnet/basic/object/trendlog.h @@ -23,17 +23,18 @@ extern "C" { #endif /* __cplusplus */ /* Error code for Trend Log storage */ - typedef struct tl_error { - uint16_t usClass; - uint16_t usCode; - } TL_ERROR; +typedef struct tl_error { + uint16_t usClass; + uint16_t usCode; +} TL_ERROR; /* Bit string of up to 32 bits for Trend Log storage */ - typedef struct tl_bits { - uint8_t ucLen; /* bytes used in upper nibble/bits free in lower nibble */ - uint8_t ucStore[4]; - } TL_BITS; +typedef struct tl_bits { + /* Bytes used in upper nibble/bits free in lower nibble */ + uint8_t ucLen; + uint8_t ucStore[4]; +} TL_BITS; /* Storage structure for Trend Log data * @@ -45,49 +46,53 @@ extern "C" { * logging capacity as possible every little byte counts! */ - typedef struct tl_data_record { - bacnet_time_t tTimeStamp; /* When the event occurred */ - uint8_t ucRecType; /* What type of Event */ - uint8_t ucStatus; /* Optional Status for read value in b0-b2, b7 = 1 if status is used */ - union { - uint8_t ucLogStatus; /* Change of log state flags */ - uint8_t ucBoolean; /* Stored boolean value */ - float fReal; /* Stored floating point value */ - uint32_t ulEnum; /* Stored enumerated value - max 32 bits */ - uint32_t ulUValue; /* Stored unsigned value - max 32 bits */ - int32_t lSValue; /* Stored signed value - max 32 bits */ - TL_BITS Bits; /* Stored bitstring - max 32 bits */ - TL_ERROR Error; /* Two part error class/code combo */ - float fTime; /* Interval value for change of time - seconds */ - } Datum; - } TL_DATA_REC; +typedef struct tl_data_record { + bacnet_time_t tTimeStamp; /* When the event occurred */ + uint8_t ucRecType; /* What type of Event */ + /* Optional Status for read value in b0-b2, b7 = 1 if status is used */ + uint8_t ucStatus; + union { + uint8_t ucLogStatus; /* Change of log state flags */ + uint8_t ucBoolean; /* Stored boolean value */ + float fReal; /* Stored floating point value */ + uint32_t ulEnum; /* Stored enumerated value - max 32 bits */ + uint32_t ulUValue; /* Stored unsigned value - max 32 bits */ + int32_t lSValue; /* Stored signed value - max 32 bits */ + TL_BITS Bits; /* Stored bitstring - max 32 bits */ + TL_ERROR Error; /* Two part error class/code combo */ + float fTime; /* Interval value for change of time - seconds */ + } Datum; +} TL_DATA_REC; -#define TL_T_START_WILD 1 /* Start time is wild carded */ -#define TL_T_STOP_WILD 2 /* Stop Time is wild carded */ +#define TL_T_START_WILD 1 /* Start time is wild carded */ +#define TL_T_STOP_WILD 2 /* Stop Time is wild carded */ -#define TL_MAX_ENTRIES 1000 /* Entries per datalog */ +#define TL_MAX_ENTRIES 1000 /* Entries per datalog */ /* Structure containing config and status info for a Trend Log */ - typedef struct tl_log_info { - bool bEnable; /* Trend log is active when this is true */ - BACNET_DATE_TIME StartTime; /* BACnet format start time */ - bacnet_time_t tStartTime; /* Local time working copy of start time */ - BACNET_DATE_TIME StopTime; /* BACnet format stop time */ - bacnet_time_t tStopTime; /* Local time working copy of stop time */ - uint8_t ucTimeFlags; /* Shorthand info on times */ - BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE Source; /* Where the data comes from */ - uint32_t ulLogInterval; /* Time between entries in seconds */ - bool bStopWhenFull; /* Log halts when full if true */ - uint32_t ulRecordCount; /* Count of items currently in the buffer */ - uint32_t ulTotalRecordCount; /* Count of all items that have ever been inserted into the buffer */ - BACNET_LOGGING_TYPE LoggingType; /* Polled/cov/triggered */ - bool bAlignIntervals; /* If true align to the clock */ - uint32_t ulIntervalOffset; /* Offset from start of period for taking reading in seconds */ - bool bTrigger; /* Set to 1 to cause a reading to be taken */ - int iIndex; /* Current insertion point */ - bacnet_time_t tLastDataTime; - } TL_LOG_INFO; +typedef struct tl_log_info { + bool bEnable; /* Trend log is active when this is true */ + BACNET_DATE_TIME StartTime; /* BACnet format start time */ + bacnet_time_t tStartTime; /* Local time working copy of start time */ + BACNET_DATE_TIME StopTime; /* BACnet format stop time */ + bacnet_time_t tStopTime; /* Local time working copy of stop time */ + uint8_t ucTimeFlags; /* Shorthand info on times */ + /* Where the data comes from */ + BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE Source; + uint32_t ulLogInterval; /* Time between entries in seconds */ + bool bStopWhenFull; /* Log halts when full if true */ + uint32_t ulRecordCount; /* Count of items currently in the buffer */ + /* Count of all items that have ever been inserted into the buffer */ + uint32_t ulTotalRecordCount; + BACNET_LOGGING_TYPE LoggingType; /* Polled/cov/triggered */ + bool bAlignIntervals; /* If true align to the clock */ + /* Offset from start of period for taking reading in seconds */ + uint32_t ulIntervalOffset; + bool bTrigger; /* Set to 1 to cause a reading to be taken */ + int iIndex; /* Current insertion point */ + bacnet_time_t tLastDataTime; +} TL_LOG_INFO; /* * Data types associated with a BACnet Log Record. We use these for managing the @@ -95,110 +100,79 @@ extern "C" { * the log datum field. */ -#define TL_TYPE_STATUS 0 -#define TL_TYPE_BOOL 1 -#define TL_TYPE_REAL 2 -#define TL_TYPE_ENUM 3 -#define TL_TYPE_UNSIGN 4 -#define TL_TYPE_SIGN 5 -#define TL_TYPE_BITS 6 -#define TL_TYPE_NULL 7 -#define TL_TYPE_ERROR 8 -#define TL_TYPE_DELTA 9 -#define TL_TYPE_ANY 10 /* We don't support this particular can of worms! */ +#define TL_TYPE_STATUS 0 +#define TL_TYPE_BOOL 1 +#define TL_TYPE_REAL 2 +#define TL_TYPE_ENUM 3 +#define TL_TYPE_UNSIGN 4 +#define TL_TYPE_SIGN 5 +#define TL_TYPE_BITS 6 +#define TL_TYPE_NULL 7 +#define TL_TYPE_ERROR 8 +#define TL_TYPE_DELTA 9 +#define TL_TYPE_ANY 10 /* We don't support this particular can of worms! */ +BACNET_STACK_EXPORT +void Trend_Log_Property_Lists( + const int **pRequired, const int **pOptional, const int **pProprietary); - BACNET_STACK_EXPORT - void Trend_Log_Property_Lists( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +BACNET_STACK_EXPORT +bool Trend_Log_Valid_Instance(uint32_t object_instance); +BACNET_STACK_EXPORT +unsigned Trend_Log_Count(void); +BACNET_STACK_EXPORT +uint32_t Trend_Log_Index_To_Instance(unsigned index); +BACNET_STACK_EXPORT +unsigned Trend_Log_Instance_To_Index(uint32_t instance); +BACNET_STACK_EXPORT +bool Trend_Log_Object_Instance_Add(uint32_t instance); - BACNET_STACK_EXPORT - bool Trend_Log_Valid_Instance( - uint32_t object_instance); - BACNET_STACK_EXPORT - unsigned Trend_Log_Count( - void); - BACNET_STACK_EXPORT - uint32_t Trend_Log_Index_To_Instance( - unsigned index); - BACNET_STACK_EXPORT - unsigned Trend_Log_Instance_To_Index( - uint32_t instance); - BACNET_STACK_EXPORT - bool Trend_Log_Object_Instance_Add( - uint32_t instance); +BACNET_STACK_EXPORT +bool Trend_Log_Object_Name( + uint32_t object_instance, BACNET_CHARACTER_STRING *object_name); - BACNET_STACK_EXPORT - bool Trend_Log_Object_Name( - uint32_t object_instance, - BACNET_CHARACTER_STRING * object_name); +BACNET_STACK_EXPORT +int Trend_Log_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - int Trend_Log_Read_Property( - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data); +BACNET_STACK_EXPORT +void Trend_Log_Init(void); - BACNET_STACK_EXPORT - bool Trend_Log_Write_Property( - BACNET_WRITE_PROPERTY_DATA * wp_data); - BACNET_STACK_EXPORT - void Trend_Log_Init( - void); +BACNET_STACK_EXPORT +void TL_Insert_Status_Rec(int iLog, BACNET_LOG_STATUS eStatus, bool bState); - BACNET_STACK_EXPORT - void TL_Insert_Status_Rec( - int iLog, - BACNET_LOG_STATUS eStatus, - bool bState); +BACNET_STACK_EXPORT +bool TL_Is_Enabled(int iLog); - BACNET_STACK_EXPORT - bool TL_Is_Enabled( - int iLog); +BACNET_STACK_EXPORT +bacnet_time_t TL_BAC_Time_To_Local(const BACNET_DATE_TIME *SourceTime); - BACNET_STACK_EXPORT - bacnet_time_t TL_BAC_Time_To_Local( - const BACNET_DATE_TIME * SourceTime); +BACNET_STACK_EXPORT +void TL_Local_Time_To_BAC(BACNET_DATE_TIME *DestTime, bacnet_time_t SourceTime); - BACNET_STACK_EXPORT - void TL_Local_Time_To_BAC( - BACNET_DATE_TIME * DestTime, - bacnet_time_t SourceTime); +BACNET_STACK_EXPORT +int TL_encode_entry(uint8_t *apdu, int iLog, int iEntry); - BACNET_STACK_EXPORT - int TL_encode_entry( - uint8_t * apdu, - int iLog, - int iEntry); +BACNET_STACK_EXPORT +int TL_encode_by_position(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); - BACNET_STACK_EXPORT - int TL_encode_by_position( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); +BACNET_STACK_EXPORT +int TL_encode_by_sequence(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); - BACNET_STACK_EXPORT - int TL_encode_by_sequence( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); +BACNET_STACK_EXPORT +int TL_encode_by_time(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); - BACNET_STACK_EXPORT - int TL_encode_by_time( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); +BACNET_STACK_EXPORT +bool TrendLogGetRRInfo( + BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ + RR_PROP_INFO *pInfo); /* Where to put the information */ - BACNET_STACK_EXPORT - bool TrendLogGetRRInfo( - BACNET_READ_RANGE_DATA * pRequest, /* Info on the request */ - RR_PROP_INFO * pInfo); /* Where to put the information */ +BACNET_STACK_EXPORT +int rr_trend_log_encode(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); - BACNET_STACK_EXPORT - int rr_trend_log_encode( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); - - BACNET_STACK_EXPORT - void trend_log_timer( - uint16_t uSeconds); +BACNET_STACK_EXPORT +void trend_log_timer(uint16_t uSeconds); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_alarm_ack.c b/src/bacnet/basic/service/h_alarm_ack.c index ea4d5d60..d08e873f 100644 --- a/src/bacnet/basic/service/h_alarm_ack.c +++ b/src/bacnet/basic/service/h_alarm_ack.c @@ -56,7 +56,8 @@ void handler_alarm_ack_set( * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_alarm_ack(uint8_t *service_request, +void handler_alarm_ack( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -79,9 +80,9 @@ void handler_alarm_ack(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { /* we don't support segmentation - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "Alarm Ack: Segmented message. Sending Abort!\n"); #endif @@ -90,20 +91,23 @@ void handler_alarm_ack(uint8_t *service_request, len = alarm_ack_decode_service_request(service_request, service_len, &data); #if PRINT_ENABLED - if (len <= 0) + if (len <= 0) { fprintf(stderr, "Alarm Ack: Unable to decode Request!\n"); + } #endif if (len < 0) { /* bad decoding - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "Alarm Ack: Bad Encoding. Sending Abort!\n"); #endif goto AA_ABORT; } #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Alarm Ack Operation: Received acknowledge for object id (%d, %lu) " "from %s for process id %lu \n", data.eventObjectIdentifier.type, @@ -116,52 +120,59 @@ void handler_alarm_ack(uint8_t *service_request, Revealed by BACnet Test Client v1.8.16 ( www.bac-test.com/bacnet-test-client-download ) BC 135.1: 9.1.3.3-A Any discussions can be directed to edward@bac-test.com */ - if (!Device_Valid_Object_Id(data.eventObjectIdentifier.type, + if (!Device_Valid_Object_Id( + data.eventObjectIdentifier.type, data.eventObjectIdentifier.instance)) { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_ACKNOWLEDGE_ALARM, - ERROR_CLASS_OBJECT, ERROR_CODE_UNKNOWN_OBJECT); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_ACKNOWLEDGE_ALARM, ERROR_CLASS_OBJECT, + ERROR_CODE_UNKNOWN_OBJECT); } else if (Alarm_Ack[data.eventObjectIdentifier.type]) { ack_result = Alarm_Ack[data.eventObjectIdentifier.type](&data, &error_code); switch (ack_result) { case 1: - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_ACKNOWLEDGE_ALARM); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Alarm Acknowledge: " "Sending Simple Ack!\n"); #endif break; case -1: - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_ACKNOWLEDGE_ALARM, ERROR_CLASS_OBJECT, error_code); #if PRINT_ENABLED - fprintf(stderr, "Alarm Acknowledge: error %s!\n", + fprintf( + stderr, "Alarm Acknowledge: error %s!\n", bactext_error_code_name(error_code)); #endif break; default: - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "Alarm Acknowledge: abort other!\n"); #endif break; } } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_ACKNOWLEDGE_ALARM, - ERROR_CLASS_OBJECT, ERROR_CODE_NO_ALARM_CONFIGURED); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_ACKNOWLEDGE_ALARM, ERROR_CLASS_OBJECT, + ERROR_CODE_NO_ALARM_CONFIGURED); #if PRINT_ENABLED - fprintf(stderr, "Alarm Acknowledge: error %s!\n", + fprintf( + stderr, "Alarm Acknowledge: error %s!\n", bactext_error_code_name(ERROR_CODE_NO_ALARM_CONFIGURED)); #endif } @@ -174,11 +185,13 @@ AA_ABORT: datalink_send_pdu( src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, + if (bytes_sent <= 0) { + fprintf( + stderr, "Alarm Acknowledge: " "Failed to send PDU (%s)!\n", strerror(errno)); + } #endif return; diff --git a/src/bacnet/basic/service/h_alarm_ack.h b/src/bacnet/basic/service/h_alarm_ack.h index 3d3fa785..4c982964 100644 --- a/src/bacnet/basic/service/h_alarm_ack.h +++ b/src/bacnet/basic/service/h_alarm_ack.h @@ -19,17 +19,16 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_alarm_ack( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_alarm_ack( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); - BACNET_STACK_EXPORT - void handler_alarm_ack_set( - BACNET_OBJECT_TYPE object_type, - alarm_ack_function pFunction); +BACNET_STACK_EXPORT +void handler_alarm_ack_set( + BACNET_OBJECT_TYPE object_type, alarm_ack_function pFunction); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_apdu.c b/src/bacnet/basic/service/h_apdu.c index 6dacf8bf..1e0d0325 100644 --- a/src/bacnet/basic/service/h_apdu.c +++ b/src/bacnet/basic/service/h_apdu.c @@ -35,19 +35,29 @@ static BACNET_SERVICES_SUPPORTED SERVICE_SUPPORTED_CONFIRMED_EVENT_NOTIFICATION, SERVICE_SUPPORTED_GET_ALARM_SUMMARY, SERVICE_SUPPORTED_GET_ENROLLMENT_SUMMARY, - SERVICE_SUPPORTED_SUBSCRIBE_COV, SERVICE_SUPPORTED_ATOMIC_READ_FILE, - SERVICE_SUPPORTED_ATOMIC_WRITE_FILE, SERVICE_SUPPORTED_ADD_LIST_ELEMENT, - SERVICE_SUPPORTED_REMOVE_LIST_ELEMENT, SERVICE_SUPPORTED_CREATE_OBJECT, - SERVICE_SUPPORTED_DELETE_OBJECT, SERVICE_SUPPORTED_READ_PROPERTY, + SERVICE_SUPPORTED_SUBSCRIBE_COV, + SERVICE_SUPPORTED_ATOMIC_READ_FILE, + SERVICE_SUPPORTED_ATOMIC_WRITE_FILE, + SERVICE_SUPPORTED_ADD_LIST_ELEMENT, + SERVICE_SUPPORTED_REMOVE_LIST_ELEMENT, + SERVICE_SUPPORTED_CREATE_OBJECT, + SERVICE_SUPPORTED_DELETE_OBJECT, + SERVICE_SUPPORTED_READ_PROPERTY, SERVICE_SUPPORTED_READ_PROP_CONDITIONAL, - SERVICE_SUPPORTED_READ_PROP_MULTIPLE, SERVICE_SUPPORTED_WRITE_PROPERTY, + SERVICE_SUPPORTED_READ_PROP_MULTIPLE, + SERVICE_SUPPORTED_WRITE_PROPERTY, SERVICE_SUPPORTED_WRITE_PROP_MULTIPLE, SERVICE_SUPPORTED_DEVICE_COMMUNICATION_CONTROL, - SERVICE_SUPPORTED_PRIVATE_TRANSFER, SERVICE_SUPPORTED_TEXT_MESSAGE, - SERVICE_SUPPORTED_REINITIALIZE_DEVICE, SERVICE_SUPPORTED_VT_OPEN, - SERVICE_SUPPORTED_VT_CLOSE, SERVICE_SUPPORTED_VT_DATA, - SERVICE_SUPPORTED_AUTHENTICATE, SERVICE_SUPPORTED_REQUEST_KEY, - SERVICE_SUPPORTED_READ_RANGE, SERVICE_SUPPORTED_LIFE_SAFETY_OPERATION, + SERVICE_SUPPORTED_PRIVATE_TRANSFER, + SERVICE_SUPPORTED_TEXT_MESSAGE, + SERVICE_SUPPORTED_REINITIALIZE_DEVICE, + SERVICE_SUPPORTED_VT_OPEN, + SERVICE_SUPPORTED_VT_CLOSE, + SERVICE_SUPPORTED_VT_DATA, + SERVICE_SUPPORTED_AUTHENTICATE, + SERVICE_SUPPORTED_REQUEST_KEY, + SERVICE_SUPPORTED_READ_RANGE, + SERVICE_SUPPORTED_LIFE_SAFETY_OPERATION, SERVICE_SUPPORTED_SUBSCRIBE_COV_PROPERTY, SERVICE_SUPPORTED_GET_EVENT_INFORMATION, SERVICE_SUPPORTED_SUBSCRIBE_COV_PROPERTY_MULTIPLE, @@ -77,12 +87,14 @@ void apdu_network_priority_set(uint8_t pri) /* a simple table for crossing the services supported */ static BACNET_SERVICES_SUPPORTED unconfirmed_service_supported[MAX_BACNET_UNCONFIRMED_SERVICE] = { - SERVICE_SUPPORTED_I_AM, SERVICE_SUPPORTED_I_HAVE, + SERVICE_SUPPORTED_I_AM, + SERVICE_SUPPORTED_I_HAVE, SERVICE_SUPPORTED_UNCONFIRMED_COV_NOTIFICATION, SERVICE_SUPPORTED_UNCONFIRMED_EVENT_NOTIFICATION, SERVICE_SUPPORTED_UNCONFIRMED_PRIVATE_TRANSFER, SERVICE_SUPPORTED_UNCONFIRMED_TEXT_MESSAGE, - SERVICE_SUPPORTED_TIME_SYNCHRONIZATION, SERVICE_SUPPORTED_WHO_HAS, + SERVICE_SUPPORTED_TIME_SYNCHRONIZATION, + SERVICE_SUPPORTED_WHO_HAS, SERVICE_SUPPORTED_WHO_IS, SERVICE_SUPPORTED_UTC_TIME_SYNCHRONIZATION, SERVICE_SUPPORTED_WRITE_GROUP, @@ -167,8 +179,9 @@ bool apdu_service_supported(BACNET_SERVICES_SUPPORTED service_supported) */ int len = Routed_Device_Service_Approval( confirmed_service_supported[i], 0, NULL, 0); - if (len > 0) + if (len > 0) { break; /* Not supported - return false */ + } #endif status = true; @@ -246,8 +259,7 @@ static union { * @brief Determine if the BACnet service is a Simple Ack Service * @param service_choice [in] BACnet confirmed service choice */ -bool apdu_confirmed_simple_ack_service( - BACNET_CONFIRMED_SERVICE service_choice) +bool apdu_confirmed_simple_ack_service(BACNET_CONFIRMED_SERVICE service_choice) { bool status = false; @@ -413,7 +425,8 @@ void apdu_set_reject_handler(reject_function pFunction) * @return The length of the service data and reflects the offset, where * we are in PDU after the service had been decoded. */ -uint16_t apdu_decode_confirmed_service_request(uint8_t *apdu, /* APDU data */ +uint16_t apdu_decode_confirmed_service_request( + uint8_t *apdu, /* APDU data */ uint16_t apdu_len, BACNET_CONFIRMED_SERVICE_DATA *service_data, uint8_t *service_choice, @@ -440,7 +453,7 @@ uint16_t apdu_decode_confirmed_service_request(uint8_t *apdu, /* APDU data */ return 0; } } - if (apdu_len > MAX_APDU){ + if (apdu_len > MAX_APDU) { return 0; } else if (apdu_len == (len + 1)) { /* no request data as seen with Inneasoft BACnet Explorer */ diff --git a/src/bacnet/basic/service/h_apdu.h b/src/bacnet/basic/service/h_apdu.h index 666ca4fc..549942ca 100644 --- a/src/bacnet/basic/service/h_apdu.h +++ b/src/bacnet/basic/service/h_apdu.h @@ -24,11 +24,8 @@ extern "C" { /* Unconfirmed_Event_Notification, Unconfirmed_Private_Transfer, */ /* Unconfirmed_Text_Message, Time_Synchronization, Who_Has, */ /* UTC_Time_Synchronization */ - typedef void ( - *unconfirmed_function) ( - uint8_t * service_request, - uint16_t len, - BACNET_ADDRESS * src); +typedef void (*unconfirmed_function)( + uint8_t *service_request, uint16_t len, BACNET_ADDRESS *src); /* generic confirmed function handler */ /* Suitable to handle the following services: */ @@ -46,151 +43,124 @@ extern "C" { /* Confirmed_Text_Message, Reinitialize_Device, */ /* VT_Open, VT_Close, VT_Data_Handler, */ /* Authenticate, Request_Key */ - typedef void ( - *confirmed_function) ( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +typedef void (*confirmed_function)( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); /* generic confirmed simple ack function handler */ - typedef void ( - *confirmed_simple_ack_function) ( - BACNET_ADDRESS * src, - uint8_t invoke_id); +typedef void (*confirmed_simple_ack_function)( + BACNET_ADDRESS *src, uint8_t invoke_id); /* generic confirmed ack function handler */ - typedef void ( - *confirmed_ack_function) ( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_ACK_DATA * service_data); +typedef void (*confirmed_ack_function)( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); /* generic error reply function */ - typedef void ( - *error_function) ( - BACNET_ADDRESS * src, - uint8_t invoke_id, - BACNET_ERROR_CLASS error_class, - BACNET_ERROR_CODE error_code); +typedef void (*error_function)( + BACNET_ADDRESS *src, + uint8_t invoke_id, + BACNET_ERROR_CLASS error_class, + BACNET_ERROR_CODE error_code); /* complex error reply function */ - typedef void ( - *complex_error_function) ( - BACNET_ADDRESS * src, - uint8_t invoke_id, - uint8_t service_choice, - uint8_t * service_request, - uint16_t service_len); +typedef void (*complex_error_function)( + BACNET_ADDRESS *src, + uint8_t invoke_id, + uint8_t service_choice, + uint8_t *service_request, + uint16_t service_len); /* generic abort reply function */ - typedef void ( - *abort_function) ( - BACNET_ADDRESS * src, - uint8_t invoke_id, - uint8_t abort_reason, - bool server); +typedef void (*abort_function)( + BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t abort_reason, bool server); /* generic reject reply function */ - typedef void ( - *reject_function) ( - BACNET_ADDRESS * src, - uint8_t invoke_id, - uint8_t reject_reason); +typedef void (*reject_function)( + BACNET_ADDRESS *src, uint8_t invoke_id, uint8_t reject_reason); - BACNET_STACK_EXPORT - void apdu_set_confirmed_ack_handler( - BACNET_CONFIRMED_SERVICE service_choice, - confirmed_ack_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_confirmed_ack_handler( + BACNET_CONFIRMED_SERVICE service_choice, confirmed_ack_function pFunction); - BACNET_STACK_EXPORT - bool apdu_confirmed_simple_ack_service( - BACNET_CONFIRMED_SERVICE service_choice); +BACNET_STACK_EXPORT +bool apdu_confirmed_simple_ack_service(BACNET_CONFIRMED_SERVICE service_choice); - BACNET_STACK_EXPORT - void apdu_set_confirmed_simple_ack_handler( - BACNET_CONFIRMED_SERVICE service_choice, - confirmed_simple_ack_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_confirmed_simple_ack_handler( + BACNET_CONFIRMED_SERVICE service_choice, + confirmed_simple_ack_function pFunction); /* configure reject for confirmed services that are not supported */ - BACNET_STACK_EXPORT - void apdu_set_unrecognized_service_handler_handler( - confirmed_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_unrecognized_service_handler_handler( + confirmed_function pFunction); - BACNET_STACK_EXPORT - void apdu_set_confirmed_handler( - BACNET_CONFIRMED_SERVICE service_choice, - confirmed_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_confirmed_handler( + BACNET_CONFIRMED_SERVICE service_choice, confirmed_function pFunction); - BACNET_STACK_EXPORT - void apdu_set_unconfirmed_handler( - BACNET_UNCONFIRMED_SERVICE service_choice, - unconfirmed_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_unconfirmed_handler( + BACNET_UNCONFIRMED_SERVICE service_choice, unconfirmed_function pFunction); /* returns true if the service is supported by a handler */ - BACNET_STACK_EXPORT - bool apdu_service_supported( - BACNET_SERVICES_SUPPORTED service_supported); +BACNET_STACK_EXPORT +bool apdu_service_supported(BACNET_SERVICES_SUPPORTED service_supported); /* Function to translate a SERVICE_SUPPORTED_ enum to its SERVICE_CONFIRMED_ * or SERVICE_UNCONFIRMED_ index. */ - BACNET_STACK_EXPORT - bool apdu_service_supported_to_index( - BACNET_SERVICES_SUPPORTED service_supported, - size_t * index, - bool * bIsConfirmed); +BACNET_STACK_EXPORT +bool apdu_service_supported_to_index( + BACNET_SERVICES_SUPPORTED service_supported, + size_t *index, + bool *bIsConfirmed); - BACNET_STACK_EXPORT - bool apdu_complex_error( - uint8_t service_choice); +BACNET_STACK_EXPORT +bool apdu_complex_error(uint8_t service_choice); - BACNET_STACK_EXPORT - void apdu_set_error_handler( - BACNET_CONFIRMED_SERVICE service_choice, - error_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_error_handler( + BACNET_CONFIRMED_SERVICE service_choice, error_function pFunction); - BACNET_STACK_EXPORT - void apdu_set_complex_error_handler( - BACNET_CONFIRMED_SERVICE service_choice, - complex_error_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_complex_error_handler( + BACNET_CONFIRMED_SERVICE service_choice, complex_error_function pFunction); - BACNET_STACK_EXPORT - void apdu_set_abort_handler( - abort_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_abort_handler(abort_function pFunction); - BACNET_STACK_EXPORT - void apdu_set_reject_handler( - reject_function pFunction); +BACNET_STACK_EXPORT +void apdu_set_reject_handler(reject_function pFunction); - BACNET_STACK_EXPORT - uint16_t apdu_decode_confirmed_service_request( - uint8_t * apdu, /* APDU data */ - uint16_t apdu_len, - BACNET_CONFIRMED_SERVICE_DATA * service_data, - uint8_t * service_choice, - uint8_t ** service_request, - uint16_t * service_request_len); +BACNET_STACK_EXPORT +uint16_t apdu_decode_confirmed_service_request( + uint8_t *apdu, /* APDU data */ + uint16_t apdu_len, + BACNET_CONFIRMED_SERVICE_DATA *service_data, + uint8_t *service_choice, + uint8_t **service_request, + uint16_t *service_request_len); - BACNET_STACK_EXPORT - uint16_t apdu_timeout( - void); - BACNET_STACK_EXPORT - void apdu_timeout_set( - uint16_t value); - BACNET_STACK_EXPORT - uint8_t apdu_retries( - void); - BACNET_STACK_EXPORT - void apdu_retries_set( - uint8_t value); +BACNET_STACK_EXPORT +uint16_t apdu_timeout(void); +BACNET_STACK_EXPORT +void apdu_timeout_set(uint16_t value); +BACNET_STACK_EXPORT +uint8_t apdu_retries(void); +BACNET_STACK_EXPORT +void apdu_retries_set(uint8_t value); - BACNET_STACK_EXPORT - void apdu_handler( - BACNET_ADDRESS * src, /* source address */ - uint8_t * apdu, /* APDU data */ - uint16_t pdu_len); /* for confirmed messages */ +BACNET_STACK_EXPORT +void apdu_handler( + BACNET_ADDRESS *src, /* source address */ + uint8_t *apdu, /* APDU data */ + uint16_t pdu_len); /* for confirmed messages */ #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_arf.c b/src/bacnet/basic/service/h_arf.c index b242366f..1ef0c3fd 100644 --- a/src/bacnet/basic/service/h_arf.c +++ b/src/bacnet/basic/service/h_arf.c @@ -79,7 +79,8 @@ shall be TRUE, otherwise FALSE. */ #if defined(BACFILE) -void handler_atomic_read_file(uint8_t *service_request, +void handler_atomic_read_file( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -103,9 +104,9 @@ void handler_atomic_read_file(uint8_t *service_request, pdu_len = npdu_encode_pdu( &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "ARF: Segmented Message. Sending Abort!\n"); #endif @@ -114,8 +115,9 @@ void handler_atomic_read_file(uint8_t *service_request, len = arf_decode_service_request(service_request, service_len, &data); /* bad decoding - send an abort */ if (len < 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "Bad Encoding. Sending Abort!\n"); #endif @@ -129,18 +131,21 @@ void handler_atomic_read_file(uint8_t *service_request, octetstring_capacity(&data.fileData[0])) { bacfile_read_stream_data(&data); #if PRINT_ENABLED - fprintf(stderr, "ARF: Stream offset %d, %d octets.\n", + fprintf( + stderr, "ARF: Stream offset %d, %d octets.\n", (int)data.type.stream.fileStartPosition, (int)data.type.stream.requestedOctetCount); #endif - len = arf_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, &data); + len = arf_ack_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + &data); } else { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED - fprintf(stderr, "Too Big To Send (%d >= %d). Sending Abort!\n", + fprintf( + stderr, "Too Big To Send (%d >= %d). Sending Abort!\n", (int)data.type.stream.requestedOctetCount, (int)octetstring_capacity(&data.fileData[0])); #endif @@ -153,12 +158,14 @@ void handler_atomic_read_file(uint8_t *service_request, error = true; } else if (bacfile_read_stream_data(&data)) { #if PRINT_ENABLED - fprintf(stderr, "ARF: fileStartRecord %d, %u RecordCount.\n", + fprintf( + stderr, "ARF: fileStartRecord %d, %u RecordCount.\n", (int)data.type.record.fileStartRecord, (unsigned)data.type.record.RecordCount); #endif - len = arf_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, &data); + len = arf_ack_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + &data); } else { error = true; error_class = ERROR_CLASS_OBJECT; @@ -178,9 +185,9 @@ void handler_atomic_read_file(uint8_t *service_request, error_code = ERROR_CODE_INCONSISTENT_OBJECT_TYPE; } if (error) { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_ATOMIC_READ_FILE, - error_class, error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_ATOMIC_READ_FILE, error_class, error_code); } ARF_ABORT: pdu_len += len; diff --git a/src/bacnet/basic/service/h_arf.h b/src/bacnet/basic/service/h_arf.h index 63f18f9b..78e165ed 100644 --- a/src/bacnet/basic/service/h_arf.h +++ b/src/bacnet/basic/service/h_arf.h @@ -21,9 +21,11 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -void handler_atomic_read_file(uint8_t* service_request, uint16_t service_len, - BACNET_ADDRESS* src, - BACNET_CONFIRMED_SERVICE_DATA* service_data); +void handler_atomic_read_file( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_arf_a.c b/src/bacnet/basic/service/h_arf_a.c index 1edeaba0..aa721b89 100644 --- a/src/bacnet/basic/service/h_arf_a.c +++ b/src/bacnet/basic/service/h_arf_a.c @@ -28,7 +28,8 @@ /* that someone can read from us. It is common to */ /* use the description as the file name. */ #if defined(BACFILE) -void handler_atomic_read_file_ack(uint8_t *service_request, +void handler_atomic_read_file_ack( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) diff --git a/src/bacnet/basic/service/h_arf_a.h b/src/bacnet/basic/service/h_arf_a.h index 2327ce13..3acff5ba 100644 --- a/src/bacnet/basic/service/h_arf_a.h +++ b/src/bacnet/basic/service/h_arf_a.h @@ -22,8 +22,10 @@ extern "C" { BACNET_STACK_EXPORT void handler_atomic_read_file_ack( - uint8_t* service_request, uint16_t service_len, BACNET_ADDRESS* src, - BACNET_CONFIRMED_SERVICE_ACK_DATA* service_data); + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_awf.c b/src/bacnet/basic/service/h_awf.c index 45006b9d..6fdf26c6 100644 --- a/src/bacnet/basic/service/h_awf.c +++ b/src/bacnet/basic/service/h_awf.c @@ -59,7 +59,8 @@ standard. */ #if defined(BACFILE) -void handler_atomic_write_file(uint8_t *service_request, +void handler_atomic_write_file( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -83,9 +84,9 @@ void handler_atomic_write_file(uint8_t *service_request, pdu_len = npdu_encode_pdu( &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "Segmented Message. Sending Abort!\n"); #endif @@ -94,8 +95,9 @@ void handler_atomic_write_file(uint8_t *service_request, len = awf_decode_service_request(service_request, service_len, &data); /* bad decoding - send an abort */ if (len < 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "Bad Encoding. Sending Abort!\n"); #endif @@ -107,12 +109,14 @@ void handler_atomic_write_file(uint8_t *service_request, } else if (data.access == FILE_STREAM_ACCESS) { if (bacfile_write_stream_data(&data)) { #if PRINT_ENABLED - fprintf(stderr, "AWF: Stream offset %d, %d bytes\n", + fprintf( + stderr, "AWF: Stream offset %d, %d bytes\n", data.type.stream.fileStartPosition, (int)octetstring_length(&data.fileData[0])); #endif - len = awf_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, &data); + len = awf_ack_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + &data); } else { error = true; error_class = ERROR_CLASS_OBJECT; @@ -121,12 +125,14 @@ void handler_atomic_write_file(uint8_t *service_request, } else if (data.access == FILE_RECORD_ACCESS) { if (bacfile_write_record_data(&data)) { #if PRINT_ENABLED - fprintf(stderr, "AWF: StartRecord %d, RecordCount %u\n", + fprintf( + stderr, "AWF: StartRecord %d, RecordCount %u\n", data.type.record.fileStartRecord, data.type.record.returnedRecordCount); #endif - len = awf_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, &data); + len = awf_ack_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + &data); } else { error = true; error_class = ERROR_CLASS_OBJECT; @@ -146,9 +152,9 @@ void handler_atomic_write_file(uint8_t *service_request, error_code = ERROR_CODE_INCONSISTENT_OBJECT_TYPE; } if (error) { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_ATOMIC_WRITE_FILE, - error_class, error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_ATOMIC_WRITE_FILE, error_class, error_code); } AWF_ABORT: pdu_len += len; diff --git a/src/bacnet/basic/service/h_awf.h b/src/bacnet/basic/service/h_awf.h index 4460bf07..142da4f8 100644 --- a/src/bacnet/basic/service/h_awf.h +++ b/src/bacnet/basic/service/h_awf.h @@ -21,9 +21,11 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -void handler_atomic_write_file(uint8_t* service_request, uint16_t service_len, - BACNET_ADDRESS* src, - BACNET_CONFIRMED_SERVICE_DATA* service_data); +void handler_atomic_write_file( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_ccov.c b/src/bacnet/basic/service/h_ccov.c index 5fce99a2..dee4398c 100644 --- a/src/bacnet/basic/service/h_ccov.c +++ b/src/bacnet/basic/service/h_ccov.c @@ -88,7 +88,8 @@ void handler_ccov_notification_add(BACNET_COV_NOTIFICATION *cb) * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_ccov_notification(uint8_t *service_request, +void handler_ccov_notification( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -113,9 +114,9 @@ void handler_ccov_notification(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); PRINTF("CCOV: Received Notification!\n"); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); PRINTF("CCOV: Segmented message. Sending Abort!\n"); goto CCOV_ABORT; } @@ -126,7 +127,8 @@ void handler_ccov_notification(uint8_t *service_request, handler_ccov_notification_callback(&cov_data); PRINTF("CCOV: PID=%u ", cov_data.subscriberProcessIdentifier); PRINTF("instance=%u ", cov_data.initiatingDeviceIdentifier); - PRINTF("%s %u ", + PRINTF( + "%s %u ", bactext_object_type_name(cov_data.monitoredObjectIdentifier.type), cov_data.monitoredObjectIdentifier.instance); PRINTF("time remaining=%u seconds ", cov_data.timeRemaining); @@ -135,7 +137,8 @@ void handler_ccov_notification(uint8_t *service_request, while (pProperty_value) { PRINTF("CCOV: "); if (pProperty_value->propertyIdentifier < 512) { - PRINTF("%s ", + PRINTF( + "%s ", bactext_property_name(pProperty_value->propertyIdentifier)); } else { PRINTF("proprietary %u ", pProperty_value->propertyIdentifier); @@ -149,13 +152,15 @@ void handler_ccov_notification(uint8_t *service_request, } /* bad decoding or something we didn't understand - send an abort */ if (len <= 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); PRINTF("CCOV: Bad Encoding. Sending Abort!\n"); goto CCOV_ABORT; } else { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_COV_NOTIFICATION); + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_COV_NOTIFICATION); PRINTF("CCOV: Sending Simple Ack!\n"); } CCOV_ABORT: diff --git a/src/bacnet/basic/service/h_ccov.h b/src/bacnet/basic/service/h_ccov.h index 02a4bd32..7459a0df 100644 --- a/src/bacnet/basic/service/h_ccov.h +++ b/src/bacnet/basic/service/h_ccov.h @@ -20,16 +20,15 @@ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_ccov_notification_add( - BACNET_COV_NOTIFICATION *callback); +BACNET_STACK_EXPORT +void handler_ccov_notification_add(BACNET_COV_NOTIFICATION *callback); - BACNET_STACK_EXPORT - void handler_ccov_notification( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_ccov_notification( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_cov.c b/src/bacnet/basic/service/h_cov.c index 6d8c886d..33c24694 100644 --- a/src/bacnet/basic/service/h_cov.c +++ b/src/bacnet/basic/service/h_cov.c @@ -243,8 +243,8 @@ static int cov_encode_subscription( len = encode_opening_tag(&apdu[apdu_len], 1); apdu_len += len; /* objectIdentifier [0] */ - len = encode_context_object_id(&apdu[apdu_len], 0, - cov_subscription->monitoredObjectIdentifier.type, + len = encode_context_object_id( + &apdu[apdu_len], 0, cov_subscription->monitoredObjectIdentifier.type, cov_subscription->monitoredObjectIdentifier.instance); apdu_len += len; /* propertyIdentifier [1] */ @@ -286,8 +286,9 @@ int handler_cov_encode_subscriptions(uint8_t *apdu, int max_apdu) if (apdu) { for (index = 0; index < MAX_COV_SUBCRIPTIONS; index++) { if (COV_Subscriptions[index].flag.valid) { - len = cov_encode_subscription(&apdu[apdu_len], - max_apdu - apdu_len, &COV_Subscriptions[index]); + len = cov_encode_subscription( + &apdu[apdu_len], max_apdu - apdu_len, + &COV_Subscriptions[index]); apdu_len += len; /* TODO: too late here to notice that we overran the buffer */ if (apdu_len > max_apdu) { @@ -325,7 +326,8 @@ void handler_cov_init(void) } } -static bool cov_list_subscribe(const BACNET_ADDRESS *src, +static bool cov_list_subscribe( + const BACNET_ADDRESS *src, const BACNET_SUBSCRIBE_COV_DATA *cov_data, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) @@ -351,11 +353,11 @@ static bool cov_list_subscribe(const BACNET_ADDRESS *src, address_match = true; } if ((COV_Subscriptions[index].monitoredObjectIdentifier.type == - cov_data->monitoredObjectIdentifier.type) && + cov_data->monitoredObjectIdentifier.type) && (COV_Subscriptions[index].monitoredObjectIdentifier.instance == - cov_data->monitoredObjectIdentifier.instance) && + cov_data->monitoredObjectIdentifier.instance) && (COV_Subscriptions[index].subscriberProcessIdentifier == - cov_data->subscriberProcessIdentifier) && + cov_data->subscriberProcessIdentifier) && address_match) { existing_entry = true; if (cov_data->cancellationRequest) { @@ -383,10 +385,10 @@ static bool cov_list_subscribe(const BACNET_ADDRESS *src, } } if (!existing_entry && (first_invalid_index >= 0) && - (!cov_data->cancellationRequest)) { + (!cov_data->cancellationRequest)) { const int addr_add_ret = cov_address_add(src); - if(addr_add_ret < 0) { + if (addr_add_ret < 0) { *error_class = ERROR_CLASS_RESOURCES; *error_code = ERROR_CODE_NO_SPACE_TO_ADD_LIST_ELEMENT; found = false; @@ -426,7 +428,8 @@ static bool cov_list_subscribe(const BACNET_ADDRESS *src, return found; } -static bool cov_send_request(BACNET_COV_SUBSCRIPTION *cov_subscription, +static bool cov_send_request( + BACNET_COV_SUBSCRIPTION *cov_subscription, BACNET_PROPERTY_VALUE *value_list) { int len = 0; @@ -474,20 +477,23 @@ static bool cov_send_request(BACNET_COV_SUBSCRIPTION *cov_subscription, invoke_id = tsm_next_free_invokeID(); if (invoke_id) { cov_subscription->invokeID = invoke_id; - len = ccov_notify_encode_apdu(&Handler_Transmit_Buffer[pdu_len], + len = ccov_notify_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], sizeof(Handler_Transmit_Buffer) - pdu_len, invoke_id, &cov_data); } else { goto COV_FAILED; } } else { - len = ucov_notify_encode_apdu(&Handler_Transmit_Buffer[pdu_len], + len = ucov_notify_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], sizeof(Handler_Transmit_Buffer) - pdu_len, &cov_data); } pdu_len += len; if (cov_subscription->flag.issueConfirmedNotifications) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, dest, &npdu_data, - &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); } bytes_sent = datalink_send_pdu( dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); @@ -520,13 +526,16 @@ static void cov_lifetime_expiration_handler( if (COV_Subscriptions[index].lifetime == 0) { /* expire the subscription */ #if PRINT_ENABLED - fprintf(stderr, "COVtimer: PID=%u ", + fprintf( + stderr, "COVtimer: PID=%u ", COV_Subscriptions[index].subscriberProcessIdentifier); - fprintf(stderr, "%s %u ", + fprintf( + stderr, "%s %u ", bactext_object_type_name( COV_Subscriptions[index].monitoredObjectIdentifier.type), COV_Subscriptions[index].monitoredObjectIdentifier.instance); - fprintf(stderr, "time remaining=%u seconds ", + fprintf( + stderr, "time remaining=%u seconds ", COV_Subscriptions[index].lifetime); fprintf(stderr, "\n"); #endif @@ -719,7 +728,8 @@ void handler_cov_task(void) handler_cov_fsm(); } -static bool cov_subscribe(const BACNET_ADDRESS *src, +static bool cov_subscribe( + const BACNET_ADDRESS *src, const BACNET_SUBSCRIBE_COV_DATA *cov_data, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code) @@ -776,7 +786,8 @@ static bool cov_subscribe(const BACNET_ADDRESS *src, * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_cov_subscribe(uint8_t *service_request, +void handler_cov_subscribe( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -810,8 +821,9 @@ void handler_cov_subscribe(uint8_t *service_request, len = cov_subscribe_decode_service_request( service_request, service_len, &cov_data); #if PRINT_ENABLED - if (len <= 0) + if (len <= 0) { fprintf(stderr, "SubscribeCOV: Unable to decode Request!\n"); + } #endif if (len < 0) { error = true; @@ -821,8 +833,9 @@ void handler_cov_subscribe(uint8_t *service_request, success = cov_subscribe( src, &cov_data, &cov_data.error_class, &cov_data.error_code); if (success) { - apdu_len = encode_simple_ack(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_SUBSCRIBE_COV); + apdu_len = encode_simple_ack( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_SUBSCRIBE_COV); #if PRINT_ENABLED fprintf(stderr, "SubscribeCOV: Sending Simple Ack!\n"); #endif @@ -839,22 +852,23 @@ void handler_cov_subscribe(uint8_t *service_request, /* Error? */ if (error) { if (len == BACNET_STATUS_ABORT) { - apdu_len = abort_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, + apdu_len = abort_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, abort_convert_error_code(cov_data.error_code), true); #if PRINT_ENABLED fprintf(stderr, "SubscribeCOV: Sending Abort!\n"); #endif } else if (len == BACNET_STATUS_ERROR) { - apdu_len = bacerror_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_SUBSCRIBE_COV, - cov_data.error_class, cov_data.error_code); + apdu_len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_SUBSCRIBE_COV, cov_data.error_class, + cov_data.error_code); #if PRINT_ENABLED fprintf(stderr, "SubscribeCOV: Sending Error!\n"); #endif } else if (len == BACNET_STATUS_REJECT) { - apdu_len = reject_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, + apdu_len = reject_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, reject_convert_error_code(cov_data.error_code)); #if PRINT_ENABLED fprintf(stderr, "SubscribeCOV: Sending Reject!\n"); @@ -866,7 +880,8 @@ void handler_cov_subscribe(uint8_t *service_request, src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { #if PRINT_ENABLED - fprintf(stderr, "SubscribeCOV: Failed to send PDU (%s)!\n", + fprintf( + stderr, "SubscribeCOV: Failed to send PDU (%s)!\n", strerror(errno)); #endif } diff --git a/src/bacnet/basic/service/h_cov.h b/src/bacnet/basic/service/h_cov.h index 8d992c0e..616e77bf 100644 --- a/src/bacnet/basic/service/h_cov.h +++ b/src/bacnet/basic/service/h_cov.h @@ -21,28 +21,22 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_cov_subscribe( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); - BACNET_STACK_EXPORT - bool handler_cov_fsm( - void); - BACNET_STACK_EXPORT - void handler_cov_task( - void); - BACNET_STACK_EXPORT - void handler_cov_timer_seconds( - uint32_t elapsed_seconds); - BACNET_STACK_EXPORT - void handler_cov_init( - void); - BACNET_STACK_EXPORT - int handler_cov_encode_subscriptions( - uint8_t * apdu, - int max_apdu); +BACNET_STACK_EXPORT +void handler_cov_subscribe( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); +BACNET_STACK_EXPORT +bool handler_cov_fsm(void); +BACNET_STACK_EXPORT +void handler_cov_task(void); +BACNET_STACK_EXPORT +void handler_cov_timer_seconds(uint32_t elapsed_seconds); +BACNET_STACK_EXPORT +void handler_cov_init(void); +BACNET_STACK_EXPORT +int handler_cov_encode_subscriptions(uint8_t *apdu, int max_apdu); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_create_object.c b/src/bacnet/basic/service/h_create_object.c index 8b023cda..71f8f5f1 100644 --- a/src/bacnet/basic/service/h_create_object.c +++ b/src/bacnet/basic/service/h_create_object.c @@ -44,7 +44,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_create_object(uint8_t *service_request, +void handler_create_object( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -64,9 +65,9 @@ void handler_create_object(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); debug_perror("CreateObject: Received Request!\n"); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); debug_perror("CreateObject: Segmented message. Sending Abort!\n"); status = false; } @@ -75,7 +76,8 @@ void handler_create_object(uint8_t *service_request, len = create_object_decode_service_request( service_request, service_len, &data); if (len > 0) { - debug_perror("CreateObject: type=%lu instance=%lu\n", + debug_perror( + "CreateObject: type=%lu instance=%lu\n", (unsigned long)data.object_type, (unsigned long)data.object_instance); } else { @@ -84,26 +86,26 @@ void handler_create_object(uint8_t *service_request, if (len <= 0) { /* bad decoding or something we didn't understand */ if (len == BACNET_STATUS_ABORT) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, abort_convert_error_code(data.error_code), true); debug_perror("CreateObject: Sending Abort!\n"); } else if (len == BACNET_STATUS_REJECT) { - len = reject_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = reject_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, reject_convert_error_code(data.error_code)); debug_perror("CreateObject: Sending Reject!\n"); } } else { if (Device_Create_Object(&data)) { - len = - create_object_ack_encode(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, &data); + len = create_object_ack_encode( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + &data); debug_perror("CreateObject: Sending ACK!\n"); } else { len = create_object_error_ack_encode( - &Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, &data); + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + &data); debug_perror("CreateObject: Sending Error!\n"); } } diff --git a/src/bacnet/basic/service/h_create_object.h b/src/bacnet/basic/service/h_create_object.h index 2e3a235d..4bb7364c 100644 --- a/src/bacnet/basic/service/h_create_object.h +++ b/src/bacnet/basic/service/h_create_object.h @@ -18,12 +18,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_create_object( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA *service_data); +BACNET_STACK_EXPORT +void handler_create_object( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_dcc.c b/src/bacnet/basic/service/h_dcc.c index 43600724..b2c16105 100644 --- a/src/bacnet/basic/service/h_dcc.c +++ b/src/bacnet/basic/service/h_dcc.c @@ -75,7 +75,8 @@ char *handler_dcc_password(void) * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_device_communication_control(uint8_t *service_request, +void handler_device_communication_control( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -97,11 +98,12 @@ void handler_device_communication_control(uint8_t *service_request, fprintf(stderr, "DeviceCommunicationControl!\n"); #endif if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "DeviceCommunicationControl: " "Sending Abort - segmented message.\n"); #endif @@ -111,25 +113,29 @@ void handler_device_communication_control(uint8_t *service_request, len = dcc_decode_service_request( service_request, service_len, &timeDuration, &state, &password); #if PRINT_ENABLED - if (len > 0) - fprintf(stderr, + if (len > 0) { + fprintf( + stderr, "DeviceCommunicationControl: " "timeout=%u state=%u password=%s\n", (unsigned)timeDuration, (unsigned)state, characterstring_value(&password)); + } #endif /* bad decoding or invalid service parameter send an abort or reject */ if (len < 0) { if (len == BACNET_STATUS_ABORT) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "DCC: Sending Abort!\n"); #endif } else if (len == BACNET_STATUS_REJECT) { - len = reject_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, REJECT_REASON_PARAMETER_OUT_OF_RANGE); + len = reject_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + REJECT_REASON_PARAMETER_OUT_OF_RANGE); #if PRINT_ENABLED fprintf(stderr, "DCC: Sending Reject!\n"); #endif @@ -137,10 +143,12 @@ void handler_device_communication_control(uint8_t *service_request, goto DCC_ABORT; } if (state >= MAX_BACNET_COMMUNICATION_ENABLE_DISABLE) { - len = reject_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, REJECT_REASON_UNDEFINED_ENUMERATION); + len = reject_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + REJECT_REASON_UNDEFINED_ENUMERATION); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "DeviceCommunicationControl: " "Sending Reject - undefined enumeration\n"); #endif @@ -150,27 +158,30 @@ void handler_device_communication_control(uint8_t *service_request, len = Routed_Device_Service_Approval( SERVICE_SUPPORTED_DEVICE_COMMUNICATION_CONTROL, (int)state, &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id); - if (len > 0) + if (len > 0) { goto DCC_ABORT; + } #endif if ((My_Password[0] == '\0') || characterstring_ansi_same(&password, My_Password)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "DeviceCommunicationControl: " "Sending Simple Ack!\n"); #endif dcc_set_status_duration(state, timeDuration); } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL, ERROR_CLASS_SECURITY, ERROR_CODE_PASSWORD_FAILURE); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "DeviceCommunicationControl: " "Sending Error - password failure.\n"); #endif @@ -182,7 +193,8 @@ DCC_ABORT: src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (len <= 0) { #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "DeviceCommunicationControl: " "Failed to send PDU (%s)!\n", strerror(errno)); diff --git a/src/bacnet/basic/service/h_dcc.h b/src/bacnet/basic/service/h_dcc.h index 058ba38a..a847c503 100644 --- a/src/bacnet/basic/service/h_dcc.h +++ b/src/bacnet/basic/service/h_dcc.h @@ -1,10 +1,10 @@ /** -* @file -* @brief Header file for a basic DeviceCommunicationControl request handler -* @author Steve Karg -* @date October 2019 -* @copyright SPDX-License-Identifier: MIT -*/ + * @file + * @brief Header file for a basic DeviceCommunicationControl request handler + * @author Steve Karg + * @date October 2019 + * @copyright SPDX-License-Identifier: MIT + */ #ifndef BACNET_BASIC_SERVICE_HANDLER_DCC_H #define BACNET_BASIC_SERVICE_HANDLER_DCC_H #include @@ -20,17 +20,16 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_device_communication_control( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); - BACNET_STACK_EXPORT - void handler_dcc_password_set( - const char *new_password); - BACNET_STACK_EXPORT - char *handler_dcc_password(void); +BACNET_STACK_EXPORT +void handler_device_communication_control( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); +BACNET_STACK_EXPORT +void handler_dcc_password_set(const char *new_password); +BACNET_STACK_EXPORT +char *handler_dcc_password(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_delete_object.c b/src/bacnet/basic/service/h_delete_object.c index a550c2e6..0c393041 100644 --- a/src/bacnet/basic/service/h_delete_object.c +++ b/src/bacnet/basic/service/h_delete_object.c @@ -44,7 +44,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_delete_object(uint8_t *service_request, +void handler_delete_object( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -64,9 +65,9 @@ void handler_delete_object(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); debug_perror("DeleteObject: Received Request!\n"); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); debug_perror("DeleteObject: Segmented message. Sending Abort!\n"); status = false; } @@ -75,7 +76,8 @@ void handler_delete_object(uint8_t *service_request, len = delete_object_decode_service_request( service_request, service_len, &data); if (len > 0) { - debug_perror("DeleteObject: type=%lu instance=%lu\n", + debug_perror( + "DeleteObject: type=%lu instance=%lu\n", (unsigned long)data.object_type, (unsigned long)data.object_instance); } else { @@ -83,22 +85,23 @@ void handler_delete_object(uint8_t *service_request, } /* bad decoding or something we didn't understand - send an abort */ if (len <= 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); debug_perror("DeleteObject: Bad Encoding. Sending Abort!\n"); status = false; } if (status) { if (Device_Delete_Object(&data)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_DELETE_OBJECT); debug_perror("DeleteObject: Sending Simple Ack!\n"); } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, - SERVICE_CONFIRMED_DELETE_OBJECT, - data.error_class, data.error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_DELETE_OBJECT, data.error_class, + data.error_code); debug_perror("DeleteObject: Sending Error!\n"); } } diff --git a/src/bacnet/basic/service/h_delete_object.h b/src/bacnet/basic/service/h_delete_object.h index c7e8bc28..fc277051 100644 --- a/src/bacnet/basic/service/h_delete_object.h +++ b/src/bacnet/basic/service/h_delete_object.h @@ -18,12 +18,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_delete_object( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA *service_data); +BACNET_STACK_EXPORT +void handler_delete_object( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_gas_a.c b/src/bacnet/basic/service/h_gas_a.c index f17678ec..ca002b50 100644 --- a/src/bacnet/basic/service/h_gas_a.c +++ b/src/bacnet/basic/service/h_gas_a.c @@ -34,7 +34,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void get_alarm_summary_ack_handler(uint8_t *service_request, +void get_alarm_summary_ack_handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) diff --git a/src/bacnet/basic/service/h_gas_a.h b/src/bacnet/basic/service/h_gas_a.h index aa71c9e1..f737c170 100644 --- a/src/bacnet/basic/service/h_gas_a.h +++ b/src/bacnet/basic/service/h_gas_a.h @@ -1,10 +1,10 @@ /** -* @file -* @brief Header file for a basic GetAlarmSummary-Ack service handler -* @author Steve Karg -* @date 2013 -* @copyright SPDX-License-Identifier: MIT -*/ + * @file + * @brief Header file for a basic GetAlarmSummary-Ack service handler + * @author Steve Karg + * @date 2013 + * @copyright SPDX-License-Identifier: MIT + */ #ifndef BACNET_BASIC_SERVICE_GET_ALARM_SUMMARY_ACK_HANDLER_H #define BACNET_BASIC_SERVICE_GET_ALARM_SUMMARY_ACK_HANDLER_H #include @@ -20,12 +20,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void get_alarm_summary_ack_handler( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_ACK_DATA * service_data); +BACNET_STACK_EXPORT +void get_alarm_summary_ack_handler( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_get_alarm_sum.c b/src/bacnet/basic/service/h_get_alarm_sum.c index 9f04b050..9de5c22a 100644 --- a/src/bacnet/basic/service/h_get_alarm_sum.c +++ b/src/bacnet/basic/service/h_get_alarm_sum.c @@ -32,7 +32,8 @@ void handler_get_alarm_summary_set( } } -void handler_get_alarm_summary(uint8_t *service_request, +void handler_get_alarm_summary( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -58,9 +59,9 @@ void handler_get_alarm_summary(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { /* we don't support segmentation - send an abort */ - apdu_len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + apdu_len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "GetAlarmSummary: Segmented message. Sending Abort!\n"); #endif @@ -100,17 +101,18 @@ GET_ALARM_SUMMARY_ERROR: if (error) { if (len == BACNET_STATUS_ABORT) { /* BACnet APDU too small to fit data, so proper response is Abort */ - apdu_len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + apdu_len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf( stderr, "GetAlarmSummary: Reply too big to fit into APDU!\n"); #endif } else { - apdu_len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_GET_ALARM_SUMMARY, - ERROR_CLASS_PROPERTY, ERROR_CODE_OTHER); + apdu_len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_GET_ALARM_SUMMARY, ERROR_CLASS_PROPERTY, + ERROR_CODE_OTHER); #if PRINT_ENABLED fprintf(stderr, "GetAlarmSummary: Sending Error!\n"); #endif diff --git a/src/bacnet/basic/service/h_get_alarm_sum.h b/src/bacnet/basic/service/h_get_alarm_sum.h index 8f3faa1a..67db8b03 100644 --- a/src/bacnet/basic/service/h_get_alarm_sum.h +++ b/src/bacnet/basic/service/h_get_alarm_sum.h @@ -21,17 +21,16 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_get_alarm_summary_set( - BACNET_OBJECT_TYPE object_type, - get_alarm_summary_function pFunction); +BACNET_STACK_EXPORT +void handler_get_alarm_summary_set( + BACNET_OBJECT_TYPE object_type, get_alarm_summary_function pFunction); - BACNET_STACK_EXPORT - void handler_get_alarm_summary( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_get_alarm_summary( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_getevent.c b/src/bacnet/basic/service/h_getevent.c index 1644bee7..8e0f6e78 100644 --- a/src/bacnet/basic/service/h_getevent.c +++ b/src/bacnet/basic/service/h_getevent.c @@ -39,8 +39,8 @@ void ge_ack_print_data( printf("DeviceID\tType\tInstance\teventState\n"); printf("--------------- ------- --------------- ---------------\n"); while (act_data) { - printf("%u\t\t%u\t%u\t\t%s\n", device_id, - act_data->objectIdentifier.type, + printf( + "%u\t\t%u\t%u\t\t%s\n", device_id, act_data->objectIdentifier.type, act_data->objectIdentifier.instance, state_strs[data->eventState]); act_data = act_data->next; count++; @@ -56,7 +56,8 @@ void handler_get_event_information_set( } } -void handler_get_event_information(uint8_t *service_request, +void handler_get_event_information( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -88,11 +89,12 @@ void handler_get_event_information(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { /* we don't support segmentation - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "GetEventInformation: " "Segmented message. Sending Abort!\n"); #endif @@ -103,14 +105,16 @@ void handler_get_event_information(uint8_t *service_request, service_request, service_len, &object_id); if (len < 0) { /* bad decoding - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "GetEventInformation: Bad Encoding. Sending Abort!\n"); #endif goto GET_EVENT_ABORT; } - len = getevent_ack_encode_apdu_init(&Handler_Transmit_Buffer[pdu_len], + len = getevent_ack_encode_apdu_init( + &Handler_Transmit_Buffer[pdu_len], sizeof(Handler_Transmit_Buffer) - pdu_len, service_data->invoke_id); if (len <= 0) { error = true; @@ -127,9 +131,9 @@ void handler_get_event_information(uint8_t *service_request, * value */ if (object_id.type != MAX_BACNET_OBJECT_TYPE) { if ((object_id.type == - getevent_data.objectIdentifier.type) && + getevent_data.objectIdentifier.type) && (object_id.instance == - getevent_data.objectIdentifier.instance)) { + getevent_data.objectIdentifier.instance)) { /* found 'Last Received Object Identifier' so should set type of object_id to max value */ object_id.type = MAX_BACNET_OBJECT_TYPE; @@ -171,7 +175,8 @@ void handler_get_event_information(uint8_t *service_request, } } } - len = getevent_ack_encode_apdu_end(&Handler_Transmit_Buffer[pdu_len], + len = getevent_ack_encode_apdu_end( + &Handler_Transmit_Buffer[pdu_len], sizeof(Handler_Transmit_Buffer) - pdu_len, more_events); if (len <= 0) { error = true; @@ -187,18 +192,19 @@ GET_EVENT_ERROR: if (len == -2) { /* BACnet APDU too small to fit data, so proper response is Abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "GetEventInformation: " "Reply too big to fit into APDU!\n"); #endif } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_READ_PROPERTY, - error_class, error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_READ_PROPERTY, error_class, error_code); #if PRINT_ENABLED fprintf(stderr, "GetEventInformation: Sending Error!\n"); #endif @@ -212,8 +218,9 @@ GET_EVENT_ABORT: datalink_send_pdu( src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) + if (bytes_sent <= 0) { fprintf(stderr, "Failed to send PDU (%s)!\n", strerror(errno)); + } #endif return; diff --git a/src/bacnet/basic/service/h_getevent.h b/src/bacnet/basic/service/h_getevent.h index d3a49e55..c0acf611 100644 --- a/src/bacnet/basic/service/h_getevent.h +++ b/src/bacnet/basic/service/h_getevent.h @@ -23,21 +23,20 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_get_event_information_set( - BACNET_OBJECT_TYPE object_type, - get_event_info_function pFunction); +BACNET_STACK_EXPORT +void handler_get_event_information_set( + BACNET_OBJECT_TYPE object_type, get_event_info_function pFunction); - BACNET_STACK_EXPORT - void handler_get_event_information( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_get_event_information( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); - BACNET_STACK_EXPORT - void ge_ack_print_data(BACNET_GET_EVENT_INFORMATION_DATA* data, - uint32_t device_id); +BACNET_STACK_EXPORT +void ge_ack_print_data( + BACNET_GET_EVENT_INFORMATION_DATA *data, uint32_t device_id); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_getevent_a.c b/src/bacnet/basic/service/h_getevent_a.c index 72bec27a..b8095053 100644 --- a/src/bacnet/basic/service/h_getevent_a.c +++ b/src/bacnet/basic/service/h_getevent_a.c @@ -36,7 +36,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_ACK_DATA information * decoded from the APDU header of this message. */ -void get_event_ack_handler(uint8_t *service_request, +void get_event_ack_handler( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) diff --git a/src/bacnet/basic/service/h_getevent_a.h b/src/bacnet/basic/service/h_getevent_a.h index e49ebc2d..122288e6 100644 --- a/src/bacnet/basic/service/h_getevent_a.h +++ b/src/bacnet/basic/service/h_getevent_a.h @@ -21,12 +21,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void get_event_ack_handler( - uint8_t *service_request, - uint16_t service_len, - BACNET_ADDRESS *src, - BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); +BACNET_STACK_EXPORT +void get_event_ack_handler( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_iam.c b/src/bacnet/basic/service/h_iam.c index 2f53f254..e428ce39 100644 --- a/src/bacnet/basic/service/h_iam.c +++ b/src/bacnet/basic/service/h_iam.c @@ -41,7 +41,8 @@ void handler_i_am_add( #endif if (len != -1) { #if PRINT_ENABLED - fprintf(stderr, " from %lu, MAC = %d.%d.%d.%d.%d.%d\n", + fprintf( + stderr, " from %lu, MAC = %d.%d.%d.%d.%d.%d\n", (unsigned long)device_id, src->mac[0], src->mac[1], src->mac[2], src->mac[3], src->mac[4], src->mac[5]); #endif diff --git a/src/bacnet/basic/service/h_iam.h b/src/bacnet/basic/service/h_iam.h index cc7a39a9..d1cd3897 100644 --- a/src/bacnet/basic/service/h_iam.h +++ b/src/bacnet/basic/service/h_iam.h @@ -20,17 +20,13 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_i_am_add( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_i_am_add( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - void handler_i_am_bind( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_i_am_bind( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_ihave.c b/src/bacnet/basic/service/h_ihave.c index 79b26e0e..0c7b0ff8 100644 --- a/src/bacnet/basic/service/h_ihave.c +++ b/src/bacnet/basic/service/h_ihave.c @@ -34,7 +34,8 @@ void handler_i_have( len = ihave_decode_service_request(service_request, service_len, &data); if (len != -1) { #if PRINT_ENABLED - fprintf(stderr, "I-Have: %s %lu from %s %lu!\r\n", + fprintf( + stderr, "I-Have: %s %lu from %s %lu!\r\n", bactext_object_type_name(data.object_id.type), (unsigned long)data.object_id.instance, bactext_object_type_name(data.device_id.type), diff --git a/src/bacnet/basic/service/h_ihave.h b/src/bacnet/basic/service/h_ihave.h index 4b5a5448..39bc56af 100644 --- a/src/bacnet/basic/service/h_ihave.h +++ b/src/bacnet/basic/service/h_ihave.h @@ -20,11 +20,9 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_i_have( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_i_have( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_list_element.c b/src/bacnet/basic/service/h_list_element.c index 49da814d..6d9d7c6a 100644 --- a/src/bacnet/basic/service/h_list_element.c +++ b/src/bacnet/basic/service/h_list_element.c @@ -43,7 +43,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_add_list_element(uint8_t *service_request, +void handler_add_list_element( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -63,9 +64,9 @@ void handler_add_list_element(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); debug_perror("AddListElement: Received Request!\n"); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); debug_perror("AddListElement: Segmented message. Sending Abort!\n"); status = false; } @@ -74,8 +75,9 @@ void handler_add_list_element(uint8_t *service_request, len = list_element_decode_service_request( service_request, service_len, &list_element); if (len > 0) { - debug_perror("AddListElement: type=%lu instance=%lu property=%lu " - "index=%ld\n", + debug_perror( + "AddListElement: type=%lu instance=%lu property=%lu " + "index=%ld\n", (unsigned long)list_element.object_type, (unsigned long)list_element.object_instance, (unsigned long)list_element.object_property, @@ -85,20 +87,22 @@ void handler_add_list_element(uint8_t *service_request, } /* bad decoding or something we didn't understand - send an abort */ if (len <= 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); debug_perror("AddListElement: Bad Encoding. Sending Abort!\n"); status = false; } if (status) { if (Device_Add_List_Element(&list_element)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_ADD_LIST_ELEMENT); debug_perror("AddListElement: Sending Simple Ack!\n"); } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_ADD_LIST_ELEMENT, + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_ADD_LIST_ELEMENT, list_element.error_class, list_element.error_code); debug_perror("AddListElement: Sending Error!\n"); } @@ -133,7 +137,8 @@ void handler_add_list_element(uint8_t *service_request, * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_remove_list_element(uint8_t *service_request, +void handler_remove_list_element( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -153,9 +158,9 @@ void handler_remove_list_element(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); debug_perror("RemoveListElement: Received Request!\n"); if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); debug_perror("RemoveListElement: Segmented message. Sending Abort!\n"); status = false; } @@ -164,7 +169,8 @@ void handler_remove_list_element(uint8_t *service_request, len = list_element_decode_service_request( service_request, service_len, &list_element); if (len > 0) { - debug_perror("RemoveListElement: type=%lu instance=%lu " + debug_perror( + "RemoveListElement: type=%lu instance=%lu " "property=%lu index=%ld\n", (unsigned long)list_element.object_type, (unsigned long)list_element.object_instance, @@ -175,20 +181,21 @@ void handler_remove_list_element(uint8_t *service_request, } /* bad decoding or something we didn't understand - send an abort */ if (len <= 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); debug_perror("RemoveListElement: Bad Encoding. Sending Abort!\n"); status = false; } if (status) { if (Device_Remove_List_Element(&list_element)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_REMOVE_LIST_ELEMENT); debug_perror("RemoveListElement: Sending Simple Ack!\n"); } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, SERVICE_CONFIRMED_REMOVE_LIST_ELEMENT, list_element.error_class, list_element.error_code); debug_perror("RemoveListElement: Sending Error!\n"); diff --git a/src/bacnet/basic/service/h_list_element.h b/src/bacnet/basic/service/h_list_element.h index 7fe58409..214c23eb 100644 --- a/src/bacnet/basic/service/h_list_element.h +++ b/src/bacnet/basic/service/h_list_element.h @@ -18,19 +18,19 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_add_list_element( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA *service_data); +BACNET_STACK_EXPORT +void handler_add_list_element( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); - BACNET_STACK_EXPORT - void handler_remove_list_element( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA *service_data); +BACNET_STACK_EXPORT +void handler_remove_list_element( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_lso.c b/src/bacnet/basic/service/h_lso.c index 6b6fc99d..89151a5a 100644 --- a/src/bacnet/basic/service/h_lso.c +++ b/src/bacnet/basic/service/h_lso.c @@ -24,7 +24,8 @@ #include "bacnet/basic/object/device.h" #include "bacnet/datalink/datalink.h" -void handler_lso(uint8_t *service_request, +void handler_lso( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -45,9 +46,9 @@ void handler_lso(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { /* we don't support segmentation - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "LSO: Segmented message. Sending Abort!\n"); #endif @@ -56,13 +57,15 @@ void handler_lso(uint8_t *service_request, len = lso_decode_service_request(service_request, service_len, &data); #if PRINT_ENABLED - if (len <= 0) + if (len <= 0) { fprintf(stderr, "LSO: Unable to decode Request!\n"); + } #endif if (len < 0) { /* bad decoding - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "LSO: Bad Encoding. Sending Abort!\n"); #endif @@ -73,17 +76,20 @@ void handler_lso(uint8_t *service_request, ** Process Life Safety Operation Here */ #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Life Safety Operation: Received operation %d from process id %lu " "for object %lu\n", data.operation, (unsigned long)data.processId, (unsigned long)data.targetObject.instance); #endif - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_LIFE_SAFETY_OPERATION); + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_LIFE_SAFETY_OPERATION); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Life Safety Operation: " "Sending Simple Ack!\n"); #endif @@ -96,11 +102,13 @@ LSO_ABORT: datalink_send_pdu( src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, + if (bytes_sent <= 0) { + fprintf( + stderr, "Life Safety Operation: " "Failed to send PDU (%s)!\n", strerror(errno)); + } #endif return; diff --git a/src/bacnet/basic/service/h_lso.h b/src/bacnet/basic/service/h_lso.h index 364f6f13..e9e0efea 100644 --- a/src/bacnet/basic/service/h_lso.h +++ b/src/bacnet/basic/service/h_lso.h @@ -20,12 +20,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_lso( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_lso( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_noserv.c b/src/bacnet/basic/service/h_noserv.c index 8019ca70..40713313 100644 --- a/src/bacnet/basic/service/h_noserv.c +++ b/src/bacnet/basic/service/h_noserv.c @@ -34,7 +34,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_unrecognized_service(uint8_t *service_request, +void handler_unrecognized_service( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -54,8 +55,9 @@ void handler_unrecognized_service(uint8_t *service_request, pdu_len = npdu_encode_pdu( &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); /* encode the APDU portion of the packet */ - len = reject_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, REJECT_REASON_UNRECOGNIZED_SERVICE); + len = reject_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + REJECT_REASON_UNRECOGNIZED_SERVICE); pdu_len += len; /* send the data */ bytes_sent = datalink_send_pdu( diff --git a/src/bacnet/basic/service/h_noserv.h b/src/bacnet/basic/service/h_noserv.h index cf43231b..6dbe4541 100644 --- a/src/bacnet/basic/service/h_noserv.h +++ b/src/bacnet/basic/service/h_noserv.h @@ -20,12 +20,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_unrecognized_service( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * dest, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_unrecognized_service( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *dest, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_rd.c b/src/bacnet/basic/service/h_rd.c index 0aa5b180..9e987dc1 100644 --- a/src/bacnet/basic/service/h_rd.c +++ b/src/bacnet/basic/service/h_rd.c @@ -46,7 +46,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_reinitialize_device(uint8_t *service_request, +void handler_reinitialize_device( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -66,9 +67,9 @@ void handler_reinitialize_device(uint8_t *service_request, fprintf(stderr, "ReinitializeDevice!\n"); #endif if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf( stderr, "ReinitializeDevice: Sending Abort - segmented message.\n"); @@ -80,7 +81,8 @@ void handler_reinitialize_device(uint8_t *service_request, service_request, service_len, &rd_data.state, &rd_data.password); #if PRINT_ENABLED if (len > 0) { - fprintf(stderr, "ReinitializeDevice: state=%u password=%*s\n", + fprintf( + stderr, "ReinitializeDevice: state=%u password=%*s\n", (unsigned)rd_data.state, (int)characterstring_length(&rd_data.password), characterstring_value(&rd_data.password)); @@ -90,8 +92,9 @@ void handler_reinitialize_device(uint8_t *service_request, #endif /* bad decoding or something we didn't understand - send an abort */ if (len < 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf( stderr, "ReinitializeDevice: Sending Abort - could not decode.\n"); @@ -100,10 +103,12 @@ void handler_reinitialize_device(uint8_t *service_request, } /* check the data from the request */ if (rd_data.state >= BACNET_REINIT_MAX) { - len = reject_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, REJECT_REASON_UNDEFINED_ENUMERATION); + len = reject_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + REJECT_REASON_UNDEFINED_ENUMERATION); #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "ReinitializeDevice: Sending Reject - undefined enumeration\n"); #endif } else { @@ -112,20 +117,23 @@ void handler_reinitialize_device(uint8_t *service_request, len = Routed_Device_Service_Approval( SERVICE_SUPPORTED_REINITIALIZE_DEVICE, (int)rd_data.state, &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id); - if (len > 0) + if (len > 0) { goto RD_ABORT; + } #endif if (Device_Reinitialize(&rd_data)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_REINITIALIZE_DEVICE); + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_REINITIALIZE_DEVICE); #if PRINT_ENABLED fprintf(stderr, "ReinitializeDevice: Sending Simple Ack!\n"); #endif } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_REINITIALIZE_DEVICE, - rd_data.error_class, rd_data.error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_REINITIALIZE_DEVICE, rd_data.error_class, + rd_data.error_code); #if PRINT_ENABLED fprintf(stderr, "ReinitializeDevice: Sending Error.\n"); #endif @@ -137,7 +145,8 @@ RD_ABORT: src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (len <= 0) { #if PRINT_ENABLED - fprintf(stderr, "ReinitializeDevice: Failed to send PDU (%s)!\n", + fprintf( + stderr, "ReinitializeDevice: Failed to send PDU (%s)!\n", strerror(errno)); #endif } diff --git a/src/bacnet/basic/service/h_rd.h b/src/bacnet/basic/service/h_rd.h index edf097c9..651f0b64 100644 --- a/src/bacnet/basic/service/h_rd.h +++ b/src/bacnet/basic/service/h_rd.h @@ -20,12 +20,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_reinitialize_device( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_reinitialize_device( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_rp.c b/src/bacnet/basic/service/h_rp.c index 95aff9af..7d75d178 100644 --- a/src/bacnet/basic/service/h_rp.c +++ b/src/bacnet/basic/service/h_rp.c @@ -51,7 +51,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_read_property(uint8_t *service_request, +void handler_read_property( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -124,9 +125,9 @@ void handler_read_property(uint8_t *service_request, rpdata.object_instance = Network_Port_Index_To_Instance(0); } #endif - apdu_len = - rp_ack_encode_apdu_init(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, &rpdata); + apdu_len = rp_ack_encode_apdu_init( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, + &rpdata); /* configure our storage */ rpdata.application_data = &Handler_Transmit_Buffer[npdu_len + apdu_len]; @@ -174,22 +175,23 @@ void handler_read_property(uint8_t *service_request, if (error) { if (len == BACNET_STATUS_ABORT) { - apdu_len = abort_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, + apdu_len = abort_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, abort_convert_error_code(rpdata.error_code), true); #if PRINT_ENABLED fprintf(stderr, "RP: Sending Abort!\n"); #endif } else if (len == BACNET_STATUS_ERROR) { - apdu_len = bacerror_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_READ_PROPERTY, - rpdata.error_class, rpdata.error_code); + apdu_len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_READ_PROPERTY, rpdata.error_class, + rpdata.error_code); #if PRINT_ENABLED fprintf(stderr, "RP: Sending Error!\n"); #endif } else if (len == BACNET_STATUS_REJECT) { - apdu_len = reject_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, + apdu_len = reject_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, reject_convert_error_code(rpdata.error_code)); #if PRINT_ENABLED fprintf(stderr, "RP: Sending Reject!\n"); diff --git a/src/bacnet/basic/service/h_rp.h b/src/bacnet/basic/service/h_rp.h index 7aba20dc..2f183e2e 100644 --- a/src/bacnet/basic/service/h_rp.h +++ b/src/bacnet/basic/service/h_rp.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadProperty service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadProperty service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_READ_PROPERTY_H #define HANDLER_READ_PROPERTY_H @@ -24,12 +24,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_read_property( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_read_property( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_rp_a.c b/src/bacnet/basic/service/h_rp_a.c index 180c3d34..33d71b0a 100644 --- a/src/bacnet/basic/service/h_rp_a.c +++ b/src/bacnet/basic/service/h_rp_a.c @@ -50,12 +50,13 @@ void rp_ack_print_data(BACNET_READ_PROPERTY_DATA *data) /* FIXME: what if application_data_len is bigger than 255? */ /* value? need to loop until all of the len is gone... */ for (;;) { - len = bacapp_decode_known_property(application_data, - (unsigned)application_data_len, &value, data->object_type, - data->object_property); + len = bacapp_decode_known_property( + application_data, (unsigned)application_data_len, &value, + data->object_type, data->object_property); if (len < 0) { - PRINTF_ERR("RP Ack: unable to decode! %s:%s\n", + PRINTF_ERR( + "RP Ack: unable to decode! %s:%s\n", bactext_object_type_name(data->object_type), bactext_property_name(data->object_property)); break; @@ -92,8 +93,9 @@ void rp_ack_print_data(BACNET_READ_PROPERTY_DATA *data) } } #if PRINT_ENABLED - if (print_brace) + if (print_brace) { fprintf(stdout, "}"); + } fprintf(stdout, "\r\n"); #endif } @@ -110,7 +112,8 @@ void rp_ack_print_data(BACNET_READ_PROPERTY_DATA *data) * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_read_property_ack(uint8_t *service_request, +void handler_read_property_ack( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) diff --git a/src/bacnet/basic/service/h_rp_a.h b/src/bacnet/basic/service/h_rp_a.h index 0214413d..fc69b15c 100644 --- a/src/bacnet/basic/service/h_rp_a.h +++ b/src/bacnet/basic/service/h_rp_a.h @@ -21,15 +21,14 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_read_property_ack( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_ACK_DATA * service_data); - BACNET_STACK_EXPORT - void rp_ack_print_data( - BACNET_READ_PROPERTY_DATA * data); +BACNET_STACK_EXPORT +void handler_read_property_ack( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); +BACNET_STACK_EXPORT +void rp_ack_print_data(BACNET_READ_PROPERTY_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_rpm.c b/src/bacnet/basic/service/h_rpm.c index 081f6d25..e1d3df6a 100644 --- a/src/bacnet/basic/service/h_rpm.c +++ b/src/bacnet/basic/service/h_rpm.c @@ -201,7 +201,8 @@ static int RPM_Encode_Property( * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_read_property_multiple(uint8_t *service_request, +void handler_read_property_multiple( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -241,8 +242,9 @@ void handler_read_property_multiple(uint8_t *service_request, for (;;) { /* Start by looking for an object ID */ - len = rpm_decode_object_id(&service_request[decode_len], - service_len - decode_len, &rpmdata); + len = rpm_decode_object_id( + &service_request[decode_len], service_len - decode_len, + &rpmdata); if (len >= 0) { /* Got one so skip to next stage */ decode_len += len; @@ -277,8 +279,9 @@ void handler_read_property_multiple(uint8_t *service_request, /* Stick this object id into the reply - if it will fit */ len = rpm_ack_encode_apdu_object_begin(&Temp_Buf[0], &rpmdata); - copy_len = memcopy(&Handler_Transmit_Buffer[npdu_len], - &Temp_Buf[0], apdu_len, len, MAX_APDU); + copy_len = memcopy( + &Handler_Transmit_Buffer[npdu_len], &Temp_Buf[0], apdu_len, + len, MAX_APDU); if (copy_len == 0) { debug_fprintf(stderr, "RPM: Response too big!\r\n"); rpmdata.error_code = @@ -292,9 +295,9 @@ void handler_read_property_multiple(uint8_t *service_request, /* do each property of this object of the RPM request */ for (;;) { /* Fetch a property */ - len = - rpm_decode_object_property(&service_request[decode_len], - service_len - decode_len, &rpmdata); + len = rpm_decode_object_property( + &service_request[decode_len], service_len - decode_len, + &rpmdata); if (len < 0) { /* bad encoding - skip to error/reject/abort handling */ debug_fprintf(stderr, "RPM: Bad Encoding.\n"); @@ -314,16 +317,16 @@ void handler_read_property_multiple(uint8_t *service_request, unsigned index = 0; BACNET_PROPERTY_ID special_object_property; - if (!Device_Valid_Object_Id(rpmdata.object_type, - rpmdata.object_instance)) { + if (!Device_Valid_Object_Id( + rpmdata.object_type, rpmdata.object_instance)) { len = RPM_Encode_Property( &Handler_Transmit_Buffer[npdu_len], (uint16_t)apdu_len, MAX_APDU, &rpmdata); if (len > 0) { apdu_len += len; } else { - debug_fprintf(stderr, - "RPM: Too full for property!\r\n"); + debug_fprintf( + stderr, "RPM: Too full for property!\r\n"); error = len; /* The berror flag ensures that both loops will be broken! */ @@ -331,19 +334,19 @@ void handler_read_property_multiple(uint8_t *service_request, break; } } else if (rpmdata.array_index != BACNET_ARRAY_ALL) { - /* No array index options for this special property. Encode error for this object property response */ len = rpm_ack_encode_apdu_object_property( &Temp_Buf[0], rpmdata.object_property, rpmdata.array_index); - copy_len = - memcopy(&Handler_Transmit_Buffer[npdu_len], - &Temp_Buf[0], apdu_len, len, MAX_APDU); + copy_len = memcopy( + &Handler_Transmit_Buffer[npdu_len], + &Temp_Buf[0], apdu_len, len, MAX_APDU); if (copy_len == 0) { - debug_fprintf(stderr, + debug_fprintf( + stderr, "RPM: Too full to encode property!\r\n"); rpmdata.error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -358,12 +361,13 @@ void handler_read_property_multiple(uint8_t *service_request, &Temp_Buf[0], ERROR_CLASS_PROPERTY, ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY); - copy_len = - memcopy(&Handler_Transmit_Buffer[npdu_len], - &Temp_Buf[0], apdu_len, len, MAX_APDU); + copy_len = memcopy( + &Handler_Transmit_Buffer[npdu_len], + &Temp_Buf[0], apdu_len, len, MAX_APDU); if (copy_len == 0) { - debug_fprintf(stderr, + debug_fprintf( + stderr, "RPM: Too full to encode error!\r\n"); rpmdata.error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -375,8 +379,9 @@ void handler_read_property_multiple(uint8_t *service_request, apdu_len += len; } else { special_object_property = rpmdata.object_property; - Device_Objects_Property_List(rpmdata.object_type, - rpmdata.object_instance, &property_list); + Device_Objects_Property_List( + rpmdata.object_type, rpmdata.object_instance, + &property_list); property_count = RPM_Object_Property_Count( &property_list, special_object_property); @@ -389,15 +394,17 @@ void handler_read_property_multiple(uint8_t *service_request, an empty 'List of Results' shall be returned for the specified property, except if the object does not exist. */ - if (!Device_Valid_Object_Id(rpmdata.object_type, - rpmdata.object_instance)) { + if (!Device_Valid_Object_Id( + rpmdata.object_type, + rpmdata.object_instance)) { len = RPM_Encode_Property( &Handler_Transmit_Buffer[npdu_len], (uint16_t)apdu_len, MAX_APDU, &rpmdata); if (len > 0) { apdu_len += len; } else { - debug_fprintf(stderr, + debug_fprintf( + stderr, "RPM: Too full for property!\r\n"); error = len; /* The berror flag ensures that @@ -410,7 +417,8 @@ void handler_read_property_multiple(uint8_t *service_request, for (index = 0; index < property_count; index++) { rpmdata.object_property = - RPM_Object_Property(&property_list, + RPM_Object_Property( + &property_list, special_object_property, index); len = RPM_Encode_Property( &Handler_Transmit_Buffer[npdu_len], @@ -418,7 +426,8 @@ void handler_read_property_multiple(uint8_t *service_request, if (len > 0) { apdu_len += len; } else { - debug_fprintf(stderr, + debug_fprintf( + stderr, "RPM: Too full for property!\r\n"); error = len; berror = true; @@ -437,7 +446,8 @@ void handler_read_property_multiple(uint8_t *service_request, if (len > 0) { apdu_len += len; } else { - debug_fprintf(stderr, + debug_fprintf( + stderr, "RPM: Too full for individual property!\r\n"); error = len; berror = true; @@ -452,10 +462,12 @@ void handler_read_property_multiple(uint8_t *service_request, */ decode_len++; len = rpm_ack_encode_apdu_object_end(&Temp_Buf[0]); - copy_len = memcopy(&Handler_Transmit_Buffer[npdu_len], - &Temp_Buf[0], apdu_len, len, MAX_APDU); + copy_len = memcopy( + &Handler_Transmit_Buffer[npdu_len], &Temp_Buf[0], + apdu_len, len, MAX_APDU); if (copy_len == 0) { - debug_fprintf(stderr, + debug_fprintf( + stderr, "RPM: Too full to encode object end!\r\n"); rpmdata.error_code = ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; @@ -494,8 +506,8 @@ void handler_read_property_multiple(uint8_t *service_request, /* Error fallback. */ if (error) { if (error == BACNET_STATUS_ABORT) { - apdu_len = abort_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, + apdu_len = abort_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, abort_convert_error_code(rpmdata.error_code), true); debug_fprintf(stderr, "RPM: Sending Abort!\n"); } else if (error == BACNET_STATUS_ERROR) { @@ -516,8 +528,8 @@ void handler_read_property_multiple(uint8_t *service_request, bytes_sent = datalink_send_pdu( src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { - debug_fprintf(stderr, "RPM: Failed to send PDU (errno=%d)!\n", - errno); + debug_fprintf( + stderr, "RPM: Failed to send PDU (errno=%d)!\n", errno); } } } diff --git a/src/bacnet/basic/service/h_rpm.h b/src/bacnet/basic/service/h_rpm.h index 885985aa..3c969d73 100644 --- a/src/bacnet/basic/service/h_rpm.h +++ b/src/bacnet/basic/service/h_rpm.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadPropertyMultiple service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadPropertyMultiple service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_READ_PROPERTY_MULTIPLE_H #define HANDLER_READ_PROPERTY_MULTIPLE_H @@ -24,12 +24,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_read_property_multiple( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_read_property_multiple( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_rpm_a.c b/src/bacnet/basic/service/h_rpm_a.c index 4b3c15da..19ed95dc 100644 --- a/src/bacnet/basic/service/h_rpm_a.c +++ b/src/bacnet/basic/service/h_rpm_a.c @@ -62,7 +62,8 @@ int rpm_ack_decode_service_request( rpm_object = read_access_data; old_rpm_object = rpm_object; while (rpm_object && apdu_len) { - len = rpm_ack_decode_object_id(apdu, apdu_len, &rpm_object->object_type, + len = rpm_ack_decode_object_id( + apdu, apdu_len, &rpm_object->object_type, &rpm_object->object_instance); if (len <= 0) { old_rpm_object->next = NULL; @@ -80,8 +81,8 @@ int rpm_ack_decode_service_request( rpm_object->listOfProperties = rpm_property; old_rpm_property = rpm_property; while (rpm_property && apdu_len) { - len = rpm_ack_decode_object_property(apdu, apdu_len, - &rpm_property->propertyIdentifier, + len = rpm_ack_decode_object_property( + apdu, apdu_len, &rpm_property->propertyIdentifier, &rpm_property->propertyArrayIndex); if (len <= 0) { old_rpm_property->next = NULL; @@ -115,8 +116,9 @@ int rpm_ack_decode_service_request( apdu++; } else { while (value && (apdu_len > 0)) { - len = bacapp_decode_known_property(apdu, - (unsigned)apdu_len, value, rpm_object->object_type, + len = bacapp_decode_known_property( + apdu, (unsigned)apdu_len, value, + rpm_object->object_type, rpm_property->propertyIdentifier); /* If len == 0 then it's an empty structure, which is * OK. */ @@ -127,7 +129,8 @@ int rpm_ack_decode_service_request( len = data_len; bacapp_value_list_init(value, 1); } else { - PERROR("RPM Ack: unable to decode! %s:%s\n", + PERROR( + "RPM Ack: unable to decode! %s:%s\n", bactext_object_type_name( rpm_object->object_type), bactext_property_name( @@ -150,7 +153,8 @@ int rpm_ack_decode_service_request( 1, sizeof(BACNET_APPLICATION_DATA_VALUE)); old_value->next = value; } else { - PERROR("RPM Ack: decoded %s:%s len=%d\n", + PERROR( + "RPM Ack: decoded %s:%s len=%d\n", bactext_object_type_name( rpm_object->object_type), bactext_property_name( @@ -226,7 +230,8 @@ void rpm_ack_print_data(BACNET_READ_ACCESS_DATA *rpm_data) bool array_value = false; if (rpm_data) { - PRINTF("%s #%lu\r\n", bactext_object_type_name(rpm_data->object_type), + PRINTF( + "%s #%lu\r\n", bactext_object_type_name(rpm_data->object_type), (unsigned long)rpm_data->object_instance); PRINTF("{\r\n"); listOfProperties = rpm_data->listOfProperties; @@ -235,14 +240,16 @@ void rpm_ack_print_data(BACNET_READ_ACCESS_DATA *rpm_data) (listOfProperties->propertyIdentifier > 4194303)) { /* Enumerated values 0-511 and 4194304+ are reserved for definition by ASHRAE.*/ - PRINTF(" %s: ", + PRINTF( + " %s: ", bactext_property_name( listOfProperties->propertyIdentifier)); } else { /* Enumerated values 512-4194303 may be used by others subject to the procedures and constraints described in Clause 23. */ - PRINTF(" proprietary %u: ", + PRINTF( + " proprietary %u: ", (unsigned)listOfProperties->propertyIdentifier); } if (listOfProperties->propertyArrayIndex != BACNET_ARRAY_ALL) { @@ -282,7 +289,8 @@ void rpm_ack_print_data(BACNET_READ_ACCESS_DATA *rpm_data) } } else { /* AccessError */ - PRINTF("BACnet Error: %s: %s\r\n", + PRINTF( + "BACnet Error: %s: %s\r\n", bactext_error_class_name( (int)listOfProperties->error.error_class), bactext_error_code_name( @@ -342,7 +350,8 @@ BACNET_READ_ACCESS_DATA *rpm_data_free(BACNET_READ_ACCESS_DATA *rpm_data) * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_read_property_multiple_ack(uint8_t *service_request, +void handler_read_property_multiple_ack( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) diff --git a/src/bacnet/basic/service/h_rpm_a.h b/src/bacnet/basic/service/h_rpm_a.h index b70eb930..7eb9915c 100644 --- a/src/bacnet/basic/service/h_rpm_a.h +++ b/src/bacnet/basic/service/h_rpm_a.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadPropertyMultiple-Ack service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadPropertyMultiple-Ack service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_READ_PROPERTY_MULTIPLE_ACK_H #define HANDLER_READ_PROPERTY_MULTIPLE_ACK_H @@ -25,23 +25,21 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_read_property_multiple_ack( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_ACK_DATA * service_data); - BACNET_STACK_EXPORT - int rpm_ack_decode_service_request( - const uint8_t * apdu, - int apdu_len, - BACNET_READ_ACCESS_DATA * read_access_data); - BACNET_STACK_EXPORT - void rpm_ack_print_data( - BACNET_READ_ACCESS_DATA * rpm_data); - BACNET_STACK_EXPORT - BACNET_READ_ACCESS_DATA *rpm_data_free( - BACNET_READ_ACCESS_DATA *rpm_data); +BACNET_STACK_EXPORT +void handler_read_property_multiple_ack( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); +BACNET_STACK_EXPORT +int rpm_ack_decode_service_request( + const uint8_t *apdu, + int apdu_len, + BACNET_READ_ACCESS_DATA *read_access_data); +BACNET_STACK_EXPORT +void rpm_ack_print_data(BACNET_READ_ACCESS_DATA *rpm_data); +BACNET_STACK_EXPORT +BACNET_READ_ACCESS_DATA *rpm_data_free(BACNET_READ_ACCESS_DATA *rpm_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_rr.c b/src/bacnet/basic/service/h_rr.c index 21b9b748..bbad1e30 100644 --- a/src/bacnet/basic/service/h_rr.c +++ b/src/bacnet/basic/service/h_rr.c @@ -66,14 +66,16 @@ static int Encode_RR_payload(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest) /* Array access attempted on a non array property */ pRequest->error_class = ERROR_CLASS_PROPERTY; pRequest->error_code = ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY; - } else if ((pRequest->RequestType != RR_READ_ALL) && + } else if ( + (pRequest->RequestType != RR_READ_ALL) && ((PropInfo.RequestTypes & pRequest->RequestType) == 0)) { /* By Time or By Sequence not supported - By Position is always * required */ pRequest->error_code = ERROR_CODE_OTHER; /* I couldn't see anything more appropriate so... */ - } else if ((pRequest->Count == 0) && + } else if ( + (pRequest->Count == 0) && (pRequest->RequestType != RR_READ_ALL)) { /* Count cannot be zero */ pRequest->error_code = ERROR_CODE_OTHER; /* I couldn't see anything more appropriate @@ -103,7 +105,8 @@ static int Encode_RR_payload(uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest) * @param service_data Pointer to the service data, * taken from the request. */ -void handler_read_range(uint8_t *service_request, +void handler_read_range( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -127,9 +130,9 @@ void handler_read_range(uint8_t *service_request, &Handler_Transmit_Buffer[0], src, &my_address, &npdu_data); if (service_data->segmented_message) { /* we don't support segmentation - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "RR: Segmented message. Sending Abort!\n"); #endif @@ -137,13 +140,15 @@ void handler_read_range(uint8_t *service_request, memset(&data, 0, sizeof(data)); /* start with blank canvas */ len = rr_decode_service_request(service_request, service_len, &data); #if PRINT_ENABLED - if (len <= 0) + if (len <= 0) { fprintf(stderr, "RR: Unable to decode Request!\n"); + } #endif if (len < 0) { /* bad decoding - send an abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "RR: Bad Encoding. Sending Abort!\n"); #endif @@ -156,8 +161,9 @@ void handler_read_range(uint8_t *service_request, data.application_data = &Temp_Buf[0]; data.application_data_len = len; /* FIXME: probably need a length limitation sent with encode */ - len = rr_ack_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, &data); + len = rr_ack_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + &data); #if PRINT_ENABLED fprintf(stderr, "RR: Sending Ack!\n"); #endif @@ -167,7 +173,8 @@ void handler_read_range(uint8_t *service_request, if (len == -2) { /* BACnet APDU too small to fit data, so proper response is * Abort */ - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED @@ -193,8 +200,9 @@ void handler_read_range(uint8_t *service_request, datalink_send_pdu( src, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) + if (bytes_sent <= 0) { fprintf(stderr, "Failed to send PDU (%s)!\n", strerror(errno)); + } #endif return; diff --git a/src/bacnet/basic/service/h_rr.h b/src/bacnet/basic/service/h_rr.h index 131ec294..b6bd0bbb 100644 --- a/src/bacnet/basic/service/h_rr.h +++ b/src/bacnet/basic/service/h_rr.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadRange service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadRange service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_READ_RANGE_H #define HANDLER_READ_RANGE_H @@ -24,12 +24,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_read_range( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_read_range( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_rr_a.c b/src/bacnet/basic/service/h_rr_a.c index 0661bb76..1c29907f 100644 --- a/src/bacnet/basic/service/h_rr_a.c +++ b/src/bacnet/basic/service/h_rr_a.c @@ -75,14 +75,16 @@ static void PrintReadRangeData(BACNET_READ_RANGE_DATA *data) } } #if PRINT_ENABLED - if (print_brace) + if (print_brace) { fprintf(stdout, "}"); + } fprintf(stdout, "\r\n"); #endif } } -void handler_read_range_ack(uint8_t *service_request, +void handler_read_range_ack( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) diff --git a/src/bacnet/basic/service/h_rr_a.h b/src/bacnet/basic/service/h_rr_a.h index 0dccb7fc..30875a7b 100644 --- a/src/bacnet/basic/service/h_rr_a.h +++ b/src/bacnet/basic/service/h_rr_a.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadRange-Ack service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadRange-Ack service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_READ_RANGE_ACK_H #define HANDLER_READ_RANGE_ACK_H @@ -24,12 +24,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_read_range_ack( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_ACK_DATA * service_data); +BACNET_STACK_EXPORT +void handler_read_range_ack( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_ts.c b/src/bacnet/basic/service/h_ts.c index 65d4ceba..5bd23b20 100644 --- a/src/bacnet/basic/service/h_ts.c +++ b/src/bacnet/basic/service/h_ts.c @@ -34,7 +34,8 @@ static BACNET_DATE_TIME Next_Sync_Time; #endif #if PRINT_ENABLED -static void show_bacnet_date_time(const BACNET_DATE *bdate, const BACNET_TIME *btime) +static void +show_bacnet_date_time(const BACNET_DATE *bdate, const BACNET_TIME *btime) { /* show the date received */ fprintf(stderr, "%u", (unsigned)bdate->year); @@ -146,7 +147,8 @@ static void handler_timesync_send(BACNET_DATE_TIME *current_date_time) for (index = 0; index < MAX_TIME_SYNC_RECIPIENTS; index++) { if (Time_Sync_Recipients[index].tag == 1) { - Send_TimeSync_Remote(&Time_Sync_Recipients[index].type.address, + Send_TimeSync_Remote( + &Time_Sync_Recipients[index].type.address, ¤t_date_time->date, ¤t_date_time->time); } } @@ -269,8 +271,7 @@ void handler_timesync_init(void) * * @param cb - pointer to #handler_timesync_set_callback_t */ -void handler_timesync_set_callback_set( - handler_timesync_set_callback_t cb) +void handler_timesync_set_callback_set(handler_timesync_set_callback_t cb) { handler_timesync_set_callback = cb; } diff --git a/src/bacnet/basic/service/h_ts.h b/src/bacnet/basic/service/h_ts.h index 6f725464..aec19adc 100644 --- a/src/bacnet/basic/service/h_ts.h +++ b/src/bacnet/basic/service/h_ts.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic TimeSynchronization service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic TimeSynchronization service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_TIME_SYNCHRONIZATION_H #define HANDLER_TIME_SYNCHRONIZATION_H @@ -23,55 +23,44 @@ #include "bacnet/wp.h" typedef void (*handler_timesync_set_callback_t)( - BACNET_DATE *bdate, - BACNET_TIME *btime, - bool utc); + BACNET_DATE *bdate, BACNET_TIME *btime, bool utc); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - /* time synchronization handlers */ - BACNET_STACK_EXPORT - void handler_timesync( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); - BACNET_STACK_EXPORT - void handler_timesync_utc( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); - /* time sync master features */ - BACNET_STACK_EXPORT - int handler_timesync_encode_recipients( - uint8_t * apdu, - int max_apdu); - BACNET_STACK_EXPORT - void handler_timesync_task(BACNET_DATE_TIME *bdatetime); - BACNET_STACK_EXPORT - void handler_timesync_init(void); - BACNET_STACK_EXPORT - bool handler_timesync_recipient_write( - BACNET_WRITE_PROPERTY_DATA * wp_data); - BACNET_STACK_EXPORT - uint32_t handler_timesync_interval(void); - BACNET_STACK_EXPORT - bool handler_timesync_interval_set(uint32_t minutes); - BACNET_STACK_EXPORT - uint32_t handler_timesync_interval_offset(void); - BACNET_STACK_EXPORT - bool handler_timesync_interval_offset_set(uint32_t minutes); - bool handler_timesync_interval_align(void); - BACNET_STACK_EXPORT - bool handler_timesync_interval_align_set(bool flag); - BACNET_STACK_EXPORT - bool handler_timesync_recipient_address_set( - unsigned index, - BACNET_ADDRESS * address); - BACNET_STACK_EXPORT - void handler_timesync_set_callback_set( - handler_timesync_set_callback_t cb); +/* time synchronization handlers */ +BACNET_STACK_EXPORT +void handler_timesync( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); +BACNET_STACK_EXPORT +void handler_timesync_utc( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); +/* time sync master features */ +BACNET_STACK_EXPORT +int handler_timesync_encode_recipients(uint8_t *apdu, int max_apdu); +BACNET_STACK_EXPORT +void handler_timesync_task(BACNET_DATE_TIME *bdatetime); +BACNET_STACK_EXPORT +void handler_timesync_init(void); +BACNET_STACK_EXPORT +bool handler_timesync_recipient_write(BACNET_WRITE_PROPERTY_DATA *wp_data); +BACNET_STACK_EXPORT +uint32_t handler_timesync_interval(void); +BACNET_STACK_EXPORT +bool handler_timesync_interval_set(uint32_t minutes); +BACNET_STACK_EXPORT +uint32_t handler_timesync_interval_offset(void); +BACNET_STACK_EXPORT +bool handler_timesync_interval_offset_set(uint32_t minutes); +bool handler_timesync_interval_align(void); +BACNET_STACK_EXPORT +bool handler_timesync_interval_align_set(bool flag); +BACNET_STACK_EXPORT +bool handler_timesync_recipient_address_set( + unsigned index, BACNET_ADDRESS *address); +BACNET_STACK_EXPORT +void handler_timesync_set_callback_set(handler_timesync_set_callback_t cb); #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/service/h_ucov.c b/src/bacnet/basic/service/h_ucov.c index 3605aa75..e32b576d 100644 --- a/src/bacnet/basic/service/h_ucov.c +++ b/src/bacnet/basic/service/h_ucov.c @@ -106,7 +106,8 @@ void handler_ucov_notification( handler_ucov_notification_callback(&cov_data); PRINTF("UCOV: PID=%u ", cov_data.subscriberProcessIdentifier); PRINTF("instance=%u ", cov_data.initiatingDeviceIdentifier); - PRINTF("%s %u ", + PRINTF( + "%s %u ", bactext_object_type_name(cov_data.monitoredObjectIdentifier.type), cov_data.monitoredObjectIdentifier.instance); PRINTF("time remaining=%u seconds ", cov_data.timeRemaining); @@ -115,7 +116,8 @@ void handler_ucov_notification( while (pProperty_value) { PRINTF("UCOV: "); if (pProperty_value->propertyIdentifier < 512) { - PRINTF("%s ", + PRINTF( + "%s ", bactext_property_name(pProperty_value->propertyIdentifier)); } else { PRINTF("proprietary %u ", pProperty_value->propertyIdentifier); diff --git a/src/bacnet/basic/service/h_ucov.h b/src/bacnet/basic/service/h_ucov.h index 2d821bd4..9e8d306a 100644 --- a/src/bacnet/basic/service/h_ucov.h +++ b/src/bacnet/basic/service/h_ucov.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic UnconfirmedCOV notification handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic UnconfirmedCOV notification handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_UCOV_NOTIFICATION_H #define HANDLER_UCOV_NOTIFICATION_H @@ -24,15 +24,12 @@ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_ucov_notification_add( - BACNET_COV_NOTIFICATION *callback); +BACNET_STACK_EXPORT +void handler_ucov_notification_add(BACNET_COV_NOTIFICATION *callback); - BACNET_STACK_EXPORT - void handler_ucov_notification( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_ucov_notification( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_upt.c b/src/bacnet/basic/service/h_upt.c index 11a1adfd..846cbded 100644 --- a/src/bacnet/basic/service/h_upt.c +++ b/src/bacnet/basic/service/h_upt.c @@ -39,9 +39,11 @@ void private_transfer_print_data(BACNET_PRIVATE_TRANSFER_DATA *private_data) if (private_data) { #if PRINT_ENABLED - printf("PrivateTransfer:vendorID=%u\r\n", + printf( + "PrivateTransfer:vendorID=%u\r\n", (unsigned)private_data->vendorID); - printf("PrivateTransfer:serviceNumber=%lu\r\n", + printf( + "PrivateTransfer:serviceNumber=%lu\r\n", (unsigned long)private_data->serviceNumber); #endif application_data = private_data->serviceParameters; diff --git a/src/bacnet/basic/service/h_upt.h b/src/bacnet/basic/service/h_upt.h index becfb603..a1c0c121 100644 --- a/src/bacnet/basic/service/h_upt.h +++ b/src/bacnet/basic/service/h_upt.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic UnconfirmedPrivateTransfer service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic UnconfirmedPrivateTransfer service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_UNCONFIRMED_PRIVATE_TRANSFER_H #define HANDLER_UNCONFIRMED_PRIVATE_TRANSFER_H @@ -25,14 +25,11 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_unconfirmed_private_transfer( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); - BACNET_STACK_EXPORT - void private_transfer_print_data( - BACNET_PRIVATE_TRANSFER_DATA *private_data); +BACNET_STACK_EXPORT +void handler_unconfirmed_private_transfer( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); +BACNET_STACK_EXPORT +void private_transfer_print_data(BACNET_PRIVATE_TRANSFER_DATA *private_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_whohas.c b/src/bacnet/basic/service/h_whohas.c index 58df71fd..558f3e79 100644 --- a/src/bacnet/basic/service/h_whohas.c +++ b/src/bacnet/basic/service/h_whohas.c @@ -39,7 +39,8 @@ static void match_name_or_object(const BACNET_WHO_HAS_DATA *data) found = Device_Valid_Object_Name( &data->object.name, &object_type, &object_instance); if (found) { - Send_I_Have(Device_Object_Instance_Number(), + Send_I_Have( + Device_Object_Instance_Number(), (BACNET_OBJECT_TYPE)object_type, object_instance, &data->object.name); } @@ -49,7 +50,8 @@ static void match_name_or_object(const BACNET_WHO_HAS_DATA *data) (BACNET_OBJECT_TYPE)data->object.identifier.type, data->object.identifier.instance, &object_name); if (found) { - Send_I_Have(Device_Object_Instance_Number(), + Send_I_Have( + Device_Object_Instance_Number(), (BACNET_OBJECT_TYPE)data->object.identifier.type, data->object.identifier.instance, &object_name); } @@ -77,8 +79,8 @@ void handler_who_has( if (len > 0) { if ((data.low_limit == -1) || (data.high_limit == -1)) { directed_to_me = true; - } else if ((Device_Object_Instance_Number() >= - (uint32_t)data.low_limit) && + } else if ( + (Device_Object_Instance_Number() >= (uint32_t)data.low_limit) && (Device_Object_Instance_Number() <= (uint32_t)data.high_limit)) { directed_to_me = true; } @@ -126,8 +128,9 @@ void handler_who_has_for_routing( dev_instance = Device_Object_Instance_Number(); if ((data.low_limit == -1) || (data.high_limit == -1) || ((dev_instance >= data.low_limit) && - (dev_instance <= data.high_limit))) + (dev_instance <= data.high_limit))) { match_name_or_object(&data); + } } } } diff --git a/src/bacnet/basic/service/h_whohas.h b/src/bacnet/basic/service/h_whohas.h index 25190fa8..657fa2f1 100644 --- a/src/bacnet/basic/service/h_whohas.h +++ b/src/bacnet/basic/service/h_whohas.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic Who-Has service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic Who-Has service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_WHO_HAS_H #define HANDLER_WHO_HAS_H @@ -24,17 +24,13 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_who_has( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_who_has( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - void handler_who_has_for_routing( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_who_has_for_routing( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_whois.c b/src/bacnet/basic/service/h_whois.c index 320e40dd..77057065 100644 --- a/src/bacnet/basic/service/h_whois.c +++ b/src/bacnet/basic/service/h_whois.c @@ -100,7 +100,8 @@ void handler_who_is_unicast( * back to the src, else False if should broadcast * response(s). */ -static void check_who_is_for_routing(const uint8_t *service_request, +static void check_who_is_for_routing( + const uint8_t *service_request, uint16_t service_len, const BACNET_ADDRESS *src, bool is_unicast) @@ -128,10 +129,11 @@ static void check_who_is_for_routing(const uint8_t *service_request, /* If len == 0, no limits and always respond */ if ((len == 0) || ((dev_instance >= low_limit) && (dev_instance <= high_limit))) { - if (is_unicast) + if (is_unicast) { Send_I_Am_Unicast(&Handler_Transmit_Buffer[0], src); - else + } else { Send_I_Am(&Handler_Transmit_Buffer[0]); + } } } } diff --git a/src/bacnet/basic/service/h_whois.h b/src/bacnet/basic/service/h_whois.h index a1a597a7..10eb79e4 100644 --- a/src/bacnet/basic/service/h_whois.h +++ b/src/bacnet/basic/service/h_whois.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic Who-Is service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic Who-Is service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_WHO_IS_H #define HANDLER_WHO_IS_H @@ -24,29 +24,21 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_who_is( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_who_is( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - void handler_who_is_unicast( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_who_is_unicast( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - void handler_who_is_bcast_for_routing( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_who_is_bcast_for_routing( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); - BACNET_STACK_EXPORT - void handler_who_is_unicast_for_routing( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src); +BACNET_STACK_EXPORT +void handler_who_is_unicast_for_routing( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_wp.c b/src/bacnet/basic/service/h_wp.c index a0af1b76..215b74f0 100644 --- a/src/bacnet/basic/service/h_wp.c +++ b/src/bacnet/basic/service/h_wp.c @@ -45,7 +45,8 @@ * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_write_property(uint8_t *service_request, +void handler_write_property( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -67,9 +68,9 @@ void handler_write_property(uint8_t *service_request, fprintf(stderr, "WP: Received Request!\n"); #endif if (service_data->segmented_message) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, - true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, true); #if PRINT_ENABLED fprintf(stderr, "WP: Segmented message. Sending Abort!\n"); #endif @@ -80,21 +81,24 @@ void handler_write_property(uint8_t *service_request, /* decode the service request only */ len = wp_decode_service_request(service_request, service_len, &wp_data); #if PRINT_ENABLED - if (len > 0) - fprintf(stderr, + if (len > 0) { + fprintf( + stderr, "WP: type=%lu instance=%lu property=%lu priority=%lu " "index=%ld\n", (unsigned long)wp_data.object_type, (unsigned long)wp_data.object_instance, (unsigned long)wp_data.object_property, (unsigned long)wp_data.priority, (long)wp_data.array_index); - else + } else { fprintf(stderr, "WP: Unable to decode Request!\n"); + } #endif /* bad decoding or something we didn't understand - send an abort */ if (len <= 0) { - len = abort_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, ABORT_REASON_OTHER, true); + len = abort_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + ABORT_REASON_OTHER, true); #if PRINT_ENABLED fprintf(stderr, "WP: Bad Encoding. Sending Abort!\n"); #endif @@ -103,15 +107,17 @@ void handler_write_property(uint8_t *service_request, if (bcontinue) { if (Device_Write_Property(&wp_data)) { - len = encode_simple_ack(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_WRITE_PROPERTY); + len = encode_simple_ack( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_WRITE_PROPERTY); #if PRINT_ENABLED fprintf(stderr, "WP: Sending Simple Ack!\n"); #endif } else { - len = bacerror_encode_apdu(&Handler_Transmit_Buffer[pdu_len], - service_data->invoke_id, SERVICE_CONFIRMED_WRITE_PROPERTY, - wp_data.error_class, wp_data.error_code); + len = bacerror_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], service_data->invoke_id, + SERVICE_CONFIRMED_WRITE_PROPERTY, wp_data.error_class, + wp_data.error_code); #if PRINT_ENABLED fprintf(stderr, "WP: Sending Error!\n"); #endif @@ -146,7 +152,8 @@ void handler_write_property(uint8_t *service_request, * * @return True on success, false otherwise. */ -bool WPValidateString(const BACNET_APPLICATION_DATA_VALUE *pValue, +bool WPValidateString( + const BACNET_APPLICATION_DATA_VALUE *pValue, int iMaxLen, bool bEmptyAllowed, BACNET_ERROR_CLASS *pErrorClass, @@ -167,11 +174,13 @@ bool WPValidateString(const BACNET_APPLICATION_DATA_VALUE *pValue, if ((bEmptyAllowed == false) && (characterstring_length(&pValue->type.Character_String) == 0)) { *pErrorCode = ERROR_CODE_VALUE_OUT_OF_RANGE; - } else if ((bEmptyAllowed == false) && + } else if ( + (bEmptyAllowed == false) && (!characterstring_printable(&pValue->type.Character_String))) { /* assumption: non-empty also means must be "printable" */ *pErrorCode = ERROR_CODE_VALUE_OUT_OF_RANGE; - } else if (characterstring_length(&pValue->type.Character_String) > + } else if ( + characterstring_length(&pValue->type.Character_String) > (uint16_t)iMaxLen) { *pErrorClass = ERROR_CLASS_RESOURCES; *pErrorCode = ERROR_CODE_NO_SPACE_TO_WRITE_PROPERTY; @@ -193,7 +202,8 @@ bool WPValidateString(const BACNET_APPLICATION_DATA_VALUE *pValue, * validation fails. Cuts out reams of repeated code in the object code. */ -bool WPValidateArgType(const BACNET_APPLICATION_DATA_VALUE *pValue, +bool WPValidateArgType( + const BACNET_APPLICATION_DATA_VALUE *pValue, uint8_t ucExpectedTag, BACNET_ERROR_CLASS *pErrorClass, BACNET_ERROR_CODE *pErrorCode) diff --git a/src/bacnet/basic/service/h_wp.h b/src/bacnet/basic/service/h_wp.h index 01a52ac9..5103f9da 100644 --- a/src/bacnet/basic/service/h_wp.h +++ b/src/bacnet/basic/service/h_wp.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WriteProperty service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WriteProperty service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_WRITE_PROPERTY_H #define HANDLER_WRITE_PROPERTY_H @@ -25,27 +25,27 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_write_property( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_write_property( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); - BACNET_STACK_EXPORT - bool WPValidateString( - const BACNET_APPLICATION_DATA_VALUE * pValue, - int iMaxLen, - bool bEmptyAllowed, - BACNET_ERROR_CLASS * pErrorClass, - BACNET_ERROR_CODE * pErrorCode); +BACNET_STACK_EXPORT +bool WPValidateString( + const BACNET_APPLICATION_DATA_VALUE *pValue, + int iMaxLen, + bool bEmptyAllowed, + BACNET_ERROR_CLASS *pErrorClass, + BACNET_ERROR_CODE *pErrorCode); - BACNET_STACK_EXPORT - bool WPValidateArgType( - const BACNET_APPLICATION_DATA_VALUE * pValue, - uint8_t ucExpectedType, - BACNET_ERROR_CLASS * pErrorClass, - BACNET_ERROR_CODE * pErrorCode); +BACNET_STACK_EXPORT +bool WPValidateArgType( + const BACNET_APPLICATION_DATA_VALUE *pValue, + uint8_t ucExpectedType, + BACNET_ERROR_CLASS *pErrorClass, + BACNET_ERROR_CODE *pErrorCode); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/h_wpm.c b/src/bacnet/basic/service/h_wpm.c index 4f5da40b..42744fe0 100644 --- a/src/bacnet/basic/service/h_wpm.c +++ b/src/bacnet/basic/service/h_wpm.c @@ -41,7 +41,8 @@ * @return number of bytes decoded, or BACNET_STATUS_REJECT, * or BACNET_STATUS_ERROR */ -static int write_property_multiple_decode(const uint8_t *apdu, +static int write_property_multiple_decode( + const uint8_t *apdu, uint16_t apdu_len, BACNET_WRITE_PROPERTY_DATA *wp_data, write_property_function device_write_property) @@ -67,8 +68,9 @@ static int write_property_multiple_decode(const uint8_t *apdu, &apdu[offset], apdu_len - offset, wp_data); if (len > 0) { offset += len; - PRINTF("WPM: type=%lu instance=%lu property=%lu " - "priority=%lu index=%ld\n", + PRINTF( + "WPM: type=%lu instance=%lu property=%lu " + "priority=%lu index=%ld\n", (unsigned long)wp_data->object_type, (unsigned long)wp_data->object_instance, (unsigned long)wp_data->object_property, @@ -78,9 +80,9 @@ static int write_property_multiple_decode(const uint8_t *apdu, if (device_write_property(wp_data) == false) { /* Workaround BTL Specified Test 9.23.2.X5 */ if ((wp_data->error_class == - ERROR_CLASS_PROPERTY) && + ERROR_CLASS_PROPERTY) && (wp_data->error_code == - ERROR_CODE_INVALID_DATA_TYPE)) { + ERROR_CODE_INVALID_DATA_TYPE)) { wp_data->error_class = ERROR_CLASS_SERVICES; wp_data->error_code = ERROR_CODE_INVALID_TAG; @@ -129,7 +131,8 @@ static int write_property_multiple_decode(const uint8_t *apdu, * @param service_data [in] The BACNET_CONFIRMED_SERVICE_DATA information * decoded from the APDU header of this message. */ -void handler_write_property_multiple(uint8_t *service_request, +void handler_write_property_multiple( + uint8_t *service_request, uint16_t service_len, BACNET_ADDRESS *src, BACNET_CONFIRMED_SERVICE_DATA *service_data) @@ -168,18 +171,18 @@ void handler_write_property_multiple(uint8_t *service_request, } else { /* handle any errors */ if (len == BACNET_STATUS_ABORT) { - apdu_len = abort_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, + apdu_len = abort_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, abort_convert_error_code(wp_data.error_code), true); PRINTF("WPM: Sending Abort!\n"); } else if (len == BACNET_STATUS_ERROR) { - apdu_len = - wpm_error_ack_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, &wp_data); + apdu_len = wpm_error_ack_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, + &wp_data); PRINTF("WPM: Sending Error!\n"); } else if (len == BACNET_STATUS_REJECT) { - apdu_len = reject_encode_apdu(&Handler_Transmit_Buffer[npdu_len], - service_data->invoke_id, + apdu_len = reject_encode_apdu( + &Handler_Transmit_Buffer[npdu_len], service_data->invoke_id, reject_convert_error_code(wp_data.error_code)); PRINTF("WPM: Sending Reject!\n"); } diff --git a/src/bacnet/basic/service/h_wpm.h b/src/bacnet/basic/service/h_wpm.h index ea52187f..d197a645 100644 --- a/src/bacnet/basic/service/h_wpm.h +++ b/src/bacnet/basic/service/h_wpm.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WritePropertyMultiple service handler -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WritePropertyMultiple service handler + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef HANDLER_WRITE_PROPERTY_MULTIPLE_H #define HANDLER_WRITE_PROPERTY_MULTIPLE_H @@ -25,12 +25,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void handler_write_property_multiple( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src, - BACNET_CONFIRMED_SERVICE_DATA * service_data); +BACNET_STACK_EXPORT +void handler_write_property_multiple( + uint8_t *service_request, + uint16_t service_len, + BACNET_ADDRESS *src, + BACNET_CONFIRMED_SERVICE_DATA *service_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_abort.c b/src/bacnet/basic/service/s_abort.c index ad32c238..314a158d 100644 --- a/src/bacnet/basic/service/s_abort.c +++ b/src/bacnet/basic/service/s_abort.c @@ -35,7 +35,8 @@ * * @return Size of the message sent (bytes), or a negative value on error. */ -int abort_encode_pdu(uint8_t *buffer, +int abort_encode_pdu( + uint8_t *buffer, BACNET_ADDRESS *dest, BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, @@ -66,7 +67,8 @@ int abort_encode_pdu(uint8_t *buffer, * * @return Size of the message sent (bytes), or a negative value on error. */ -int Send_Abort_To_Network(uint8_t *buffer, +int Send_Abort_To_Network( + uint8_t *buffer, BACNET_ADDRESS *dest, uint8_t invoke_id, BACNET_ABORT_REASON reason, diff --git a/src/bacnet/basic/service/s_abort.h b/src/bacnet/basic/service/s_abort.h index 24b51600..c230737c 100644 --- a/src/bacnet/basic/service/s_abort.h +++ b/src/bacnet/basic/service/s_abort.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic Abort message send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic Abort message send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_ABORT_TO_NETWORK_H #define SEND_ABORT_TO_NETWORK_H @@ -26,23 +26,23 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int Send_Abort_To_Network( - uint8_t * buffer, - BACNET_ADDRESS *dest, - uint8_t invoke_id, - BACNET_ABORT_REASON reason, - bool server); +BACNET_STACK_EXPORT +int Send_Abort_To_Network( + uint8_t *buffer, + BACNET_ADDRESS *dest, + uint8_t invoke_id, + BACNET_ABORT_REASON reason, + bool server); - BACNET_STACK_EXPORT - int abort_encode_pdu( - uint8_t * buffer, - BACNET_ADDRESS * dest, - BACNET_ADDRESS * src, - BACNET_NPDU_DATA * npdu_data, - uint8_t invoke_id, - BACNET_ABORT_REASON reason, - bool server); +BACNET_STACK_EXPORT +int abort_encode_pdu( + uint8_t *buffer, + BACNET_ADDRESS *dest, + BACNET_ADDRESS *src, + BACNET_NPDU_DATA *npdu_data, + uint8_t invoke_id, + BACNET_ABORT_REASON reason, + bool server); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_ack_alarm.c b/src/bacnet/basic/service/s_ack_alarm.c index dce9db0d..dd1dc0e7 100644 --- a/src/bacnet/basic/service/s_ack_alarm.c +++ b/src/bacnet/basic/service/s_ack_alarm.c @@ -38,7 +38,8 @@ * @return invoke id of outgoing message, or 0 if communication is disabled, * or no tsm slot is available. */ -uint8_t Send_Alarm_Acknowledgement_Address(uint8_t *pdu, +uint8_t Send_Alarm_Acknowledgement_Address( + uint8_t *pdu, uint16_t pdu_size, const BACNET_ALARM_ACK_DATA *data, BACNET_ADDRESS *dest) @@ -77,7 +78,8 @@ uint8_t Send_Alarm_Acknowledgement_Address(uint8_t *pdu, invoke_id, dest, &npdu_data, pdu, (uint16_t)pdu_len); bytes_sent = datalink_send_pdu(dest, &npdu_data, pdu, pdu_len); if (bytes_sent <= 0) { - PRINTF("Failed to Send Alarm Ack Request (%s)!\n", + PRINTF( + "Failed to Send Alarm Ack Request (%s)!\n", strerror(errno)); } } else { diff --git a/src/bacnet/basic/service/s_ack_alarm.h b/src/bacnet/basic/service/s_ack_alarm.h index 77c6a232..ee63c2d4 100644 --- a/src/bacnet/basic/service/s_ack_alarm.h +++ b/src/bacnet/basic/service/s_ack_alarm.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic AlarmAcknowledgement service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic AlarmAcknowledgement service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_ALARM_ACKNOWLEDGEMENT_H #define SEND_ALARM_ACKNOWLEDGEMENT_H @@ -27,12 +27,15 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_Alarm_Acknowledgement_Address(uint8_t *pdu, uint16_t pdu_size, - const BACNET_ALARM_ACK_DATA *data, BACNET_ADDRESS *dest); +uint8_t Send_Alarm_Acknowledgement_Address( + uint8_t *pdu, + uint16_t pdu_size, + const BACNET_ALARM_ACK_DATA *data, + BACNET_ADDRESS *dest); BACNET_STACK_EXPORT -uint8_t Send_Alarm_Acknowledgement(uint32_t device_id, - const BACNET_ALARM_ACK_DATA* data); +uint8_t Send_Alarm_Acknowledgement( + uint32_t device_id, const BACNET_ALARM_ACK_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_arfs.c b/src/bacnet/basic/service/s_arfs.c index 166b9a8d..a4f60699 100644 --- a/src/bacnet/basic/service/s_arfs.c +++ b/src/bacnet/basic/service/s_arfs.c @@ -26,7 +26,8 @@ /** @file s_arfs.c Send part of an Atomic Read File Stream. */ -uint8_t Send_Atomic_Read_File_Stream(uint32_t device_id, +uint8_t Send_Atomic_Read_File_Stream( + uint32_t device_id, uint32_t file_instance, int fileStartPosition, unsigned requestedOctetCount) @@ -76,23 +77,27 @@ uint8_t Send_Atomic_Read_File_Stream(uint32_t device_id, we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, "Failed to Send AtomicReadFile Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send AtomicReadFile Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send AtomicReadFile Request " "(payload exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_arfs.h b/src/bacnet/basic/service/s_arfs.h index ac213a4d..803c3217 100644 --- a/src/bacnet/basic/service/s_arfs.h +++ b/src/bacnet/basic/service/s_arfs.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WritePropertyMultiple service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WritePropertyMultiple service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_ATOMIC_READ_FILE_STREAM_H #define SEND_ATOMIC_READ_FILE_STREAM_H @@ -26,9 +26,11 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_Atomic_Read_File_Stream(uint32_t device_id, uint32_t file_instance, - int fileStartPosition, - unsigned requestedOctetCount); +uint8_t Send_Atomic_Read_File_Stream( + uint32_t device_id, + uint32_t file_instance, + int fileStartPosition, + unsigned requestedOctetCount); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_awfs.c b/src/bacnet/basic/service/s_awfs.c index 8950935b..fecc637f 100644 --- a/src/bacnet/basic/service/s_awfs.c +++ b/src/bacnet/basic/service/s_awfs.c @@ -26,7 +26,8 @@ /** @file s_awfs.c Send part of an Atomic Write File Stream request. */ -uint8_t Send_Atomic_Write_File_Stream(uint32_t device_id, +uint8_t Send_Atomic_Write_File_Stream( + uint32_t device_id, uint32_t file_instance, int fileStartPosition, const BACNET_OCTET_STRING *fileData) @@ -78,24 +79,29 @@ uint8_t Send_Atomic_Write_File_Stream(uint32_t device_id, we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len <= max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif - datalink_send_pdu(&dest, &npdu_data, - &Handler_Transmit_Buffer[0], pdu_len); + datalink_send_pdu( + &dest, &npdu_data, &Handler_Transmit_Buffer[0], + pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send AtomicWriteFile Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send AtomicWriteFile Request " "(payload [%d] exceeds destination maximum APDU [%u])!\n", pdu_len, max_apdu); @@ -105,7 +111,8 @@ uint8_t Send_Atomic_Write_File_Stream(uint32_t device_id, tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send AtomicWriteFile Request " "(payload [%d] exceeds octet string capacity)!\n", pdu_len); diff --git a/src/bacnet/basic/service/s_awfs.h b/src/bacnet/basic/service/s_awfs.h index 18d0501a..9b2bfdec 100644 --- a/src/bacnet/basic/service/s_awfs.h +++ b/src/bacnet/basic/service/s_awfs.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic AtomicWriteFile stream service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic AtomicWriteFile stream service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_ATOMIC_WRITE_FILE_STREAM_H #define SEND_ATOMIC_WRITE_FILE_STREAM_H @@ -26,10 +26,11 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_Atomic_Write_File_Stream(uint32_t device_id, - uint32_t file_instance, - int fileStartPosition, - const BACNET_OCTET_STRING* fileData); +uint8_t Send_Atomic_Write_File_Stream( + uint32_t device_id, + uint32_t file_instance, + int fileStartPosition, + const BACNET_OCTET_STRING *fileData); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_cevent.c b/src/bacnet/basic/service/s_cevent.c index 027ac737..8c519076 100644 --- a/src/bacnet/basic/service/s_cevent.c +++ b/src/bacnet/basic/service/s_cevent.c @@ -30,7 +30,8 @@ * @return invoke id of outgoing message, or 0 if communication is disabled, * or no tsm slot is available. */ -uint8_t Send_CEvent_Notify_Address(uint8_t *pdu, +uint8_t Send_CEvent_Notify_Address( + uint8_t *pdu, uint16_t pdu_size, const BACNET_EVENT_NOTIFICATION_DATA *data, BACNET_ADDRESS *dest) @@ -74,7 +75,8 @@ uint8_t Send_CEvent_Notify_Address(uint8_t *pdu, datalink_send_pdu(dest, &npdu_data, pdu, pdu_len); #if PRINT_ENABLED if (bytes_sent <= 0) { - fprintf(stderr, + fprintf( + stderr, "Failed to Send ConfirmedEventNotification Request (%s)!\n", strerror(errno)); } @@ -83,7 +85,8 @@ uint8_t Send_CEvent_Notify_Address(uint8_t *pdu, tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send ConfirmedEventNotification Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_cevent.h b/src/bacnet/basic/service/s_cevent.h index f2b70006..c62fb42a 100644 --- a/src/bacnet/basic/service/s_cevent.h +++ b/src/bacnet/basic/service/s_cevent.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ConfirmedEventNotification service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ConfirmedEventNotification service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_CONFIRMED_EVENT_NOTIFICATION_H #define SEND_CONFIRMED_EVENT_NOTIFICATION_H @@ -27,11 +27,14 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_CEvent_Notify(uint32_t device_id, - const BACNET_EVENT_NOTIFICATION_DATA* data); +uint8_t Send_CEvent_Notify( + uint32_t device_id, const BACNET_EVENT_NOTIFICATION_DATA *data); BACNET_STACK_EXPORT -uint8_t Send_CEvent_Notify_Address(uint8_t *pdu, uint16_t pdu_size, - const BACNET_EVENT_NOTIFICATION_DATA *data, BACNET_ADDRESS *dest); +uint8_t Send_CEvent_Notify_Address( + uint8_t *pdu, + uint16_t pdu_size, + const BACNET_EVENT_NOTIFICATION_DATA *data, + BACNET_ADDRESS *dest); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_cov.c b/src/bacnet/basic/service/s_cov.c index 881871ba..0cd00461 100644 --- a/src/bacnet/basic/service/s_cov.c +++ b/src/bacnet/basic/service/s_cov.c @@ -37,7 +37,8 @@ * @param cov_data [in] The COV update information to be encoded. * @return Size of the message sent (bytes), or a negative value on error. */ -int ucov_notify_encode_pdu(uint8_t *buffer, +int ucov_notify_encode_pdu( + uint8_t *buffer, unsigned buffer_len, BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, @@ -133,7 +134,8 @@ uint8_t Send_COV_Subscribe( sizeof(Handler_Transmit_Buffer) - pdu_len, invoke_id, cov_data); } else { /* subscribe to object */ - len = cov_subscribe_encode_apdu(&Handler_Transmit_Buffer[pdu_len], + len = cov_subscribe_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], sizeof(Handler_Transmit_Buffer) - pdu_len, invoke_id, cov_data); } pdu_len += len; @@ -143,13 +145,15 @@ uint8_t Send_COV_Subscribe( we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); bytes_sent = datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { #if PRINT_ENABLED - fprintf(stderr, "Failed to Send SubscribeCOV Request (%s)!\n", + fprintf( + stderr, "Failed to Send SubscribeCOV Request (%s)!\n", strerror(errno)); #endif } @@ -157,7 +161,8 @@ uint8_t Send_COV_Subscribe( tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send SubscribeCOV Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_cov.h b/src/bacnet/basic/service/s_cov.h index 461c0c33..7f5528a8 100644 --- a/src/bacnet/basic/service/s_cov.h +++ b/src/bacnet/basic/service/s_cov.h @@ -1,14 +1,14 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic UnconfirmedCOVNotification service send -* and SubscribeCOV service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic UnconfirmedCOVNotification service send + * and SubscribeCOV service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SERVICE_SEND_COV_H #define SERVICE_SEND_COV_H @@ -28,22 +28,19 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int Send_UCOV_Notify( - uint8_t * buffer, - unsigned buffer_len, - const BACNET_COV_DATA * cov_data); - BACNET_STACK_EXPORT - int ucov_notify_encode_pdu( - uint8_t * buffer, - unsigned buffer_len, - BACNET_ADDRESS * dest, - BACNET_NPDU_DATA * npdu_data, - const BACNET_COV_DATA * cov_data); - BACNET_STACK_EXPORT - uint8_t Send_COV_Subscribe( - uint32_t device_id, - const BACNET_SUBSCRIBE_COV_DATA * cov_data); +BACNET_STACK_EXPORT +int Send_UCOV_Notify( + uint8_t *buffer, unsigned buffer_len, const BACNET_COV_DATA *cov_data); +BACNET_STACK_EXPORT +int ucov_notify_encode_pdu( + uint8_t *buffer, + unsigned buffer_len, + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *npdu_data, + const BACNET_COV_DATA *cov_data); +BACNET_STACK_EXPORT +uint8_t Send_COV_Subscribe( + uint32_t device_id, const BACNET_SUBSCRIBE_COV_DATA *cov_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_create_object.c b/src/bacnet/basic/service/s_create_object.c index cfed578c..37f663a5 100644 --- a/src/bacnet/basic/service/s_create_object.c +++ b/src/bacnet/basic/service/s_create_object.c @@ -98,19 +98,22 @@ uint8_t Send_Create_Object_Request_Data( len = create_object_encode_service_request( &Handler_Transmit_Buffer[pdu_len], &data); pdu_len += len; - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); bytes_sent = datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { - debug_perror("%s service: Failed to Send %i/%i (%s)!\n", + debug_perror( + "%s service: Failed to Send %i/%i (%s)!\n", bactext_confirmed_service_name(service), bytes_sent, pdu_len, strerror(errno)); } } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; - debug_perror("%s service: Failed to Send " + debug_perror( + "%s service: Failed to Send " "(exceeds destination maximum APDU)!\n", bactext_confirmed_service_name(service)); } @@ -132,5 +135,6 @@ uint8_t Send_Create_Object_Request( BACNET_OBJECT_TYPE object_type, uint32_t object_instance) { - return Send_Create_Object_Request_Data(device_id, object_type, object_instance, NULL); + return Send_Create_Object_Request_Data( + device_id, object_type, object_instance, NULL); } diff --git a/src/bacnet/basic/service/s_dcc.c b/src/bacnet/basic/service/s_dcc.c index d891274f..ec50a5b8 100644 --- a/src/bacnet/basic/service/s_dcc.c +++ b/src/bacnet/basic/service/s_dcc.c @@ -36,7 +36,8 @@ * @return The invokeID of the transmitted message, or 0 on failure. */ -uint8_t Send_Device_Communication_Control_Request(uint32_t device_id, +uint8_t Send_Device_Communication_Control_Request( + uint32_t device_id, uint16_t timeDuration, /* 0=optional */ BACNET_COMMUNICATION_ENABLE_DISABLE state, const char *password) @@ -73,8 +74,9 @@ uint8_t Send_Device_Communication_Control_Request(uint32_t device_id, &Handler_Transmit_Buffer[0], &dest, &my_address, &npdu_data); /* encode the APDU portion of the packet */ characterstring_init_ansi(&password_string, password); - len = dcc_encode_apdu(&Handler_Transmit_Buffer[pdu_len], invoke_id, - timeDuration, state, password ? &password_string : NULL); + len = dcc_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], invoke_id, timeDuration, state, + password ? &password_string : NULL); pdu_len += len; /* will it fit in the sender? note: if there is a bottleneck router in between @@ -82,24 +84,28 @@ uint8_t Send_Device_Communication_Control_Request(uint32_t device_id, we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send DeviceCommunicationControl Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send DeviceCommunicationControl Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_dcc.h b/src/bacnet/basic/service/s_dcc.h index 942e10ac..e7c2ab88 100644 --- a/src/bacnet/basic/service/s_dcc.h +++ b/src/bacnet/basic/service/s_dcc.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic DeviceCommunicationControl service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic DeviceCommunicationControl service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_DCC_H #define SEND_DCC_H @@ -27,7 +27,8 @@ extern "C" { BACNET_STACK_EXPORT uint8_t Send_Device_Communication_Control_Request( - uint32_t device_id, uint16_t timeDuration, + uint32_t device_id, + uint16_t timeDuration, BACNET_COMMUNICATION_ENABLE_DISABLE state, const char *password); diff --git a/src/bacnet/basic/service/s_delete_object.c b/src/bacnet/basic/service/s_delete_object.c index 306279d6..d341ea67 100644 --- a/src/bacnet/basic/service/s_delete_object.c +++ b/src/bacnet/basic/service/s_delete_object.c @@ -96,19 +96,22 @@ uint8_t Send_Delete_Object_Request( len = delete_object_encode_service_request( &Handler_Transmit_Buffer[pdu_len], &data); pdu_len += len; - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); bytes_sent = datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { - debug_perror("%s service: Failed to Send %i/%i (%s)!\n", + debug_perror( + "%s service: Failed to Send %i/%i (%s)!\n", bactext_confirmed_service_name(service), bytes_sent, pdu_len, strerror(errno)); } } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; - debug_perror("%s service: Failed to Send " + debug_perror( + "%s service: Failed to Send " "(exceeds destination maximum APDU)!\n", bactext_confirmed_service_name(service)); } diff --git a/src/bacnet/basic/service/s_error.c b/src/bacnet/basic/service/s_error.c index 42cd17b8..79543622 100644 --- a/src/bacnet/basic/service/s_error.c +++ b/src/bacnet/basic/service/s_error.c @@ -35,7 +35,8 @@ * * @return Size of the message sent (bytes), or a negative value on error. */ -int error_encode_pdu(uint8_t *buffer, +int error_encode_pdu( + uint8_t *buffer, BACNET_ADDRESS *dest, BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data, @@ -68,7 +69,8 @@ int error_encode_pdu(uint8_t *buffer, * * @return Size of the message sent (bytes), or a negative value on error. */ -int Send_Error_To_Network(uint8_t *buffer, +int Send_Error_To_Network( + uint8_t *buffer, BACNET_ADDRESS *dest, uint8_t invoke_id, BACNET_CONFIRMED_SERVICE service, @@ -81,8 +83,9 @@ int Send_Error_To_Network(uint8_t *buffer, BACNET_NPDU_DATA npdu_data; datalink_get_my_address(&src); - pdu_len = error_encode_pdu(buffer, dest, &src, &npdu_data, invoke_id, - service, error_class, error_code); + pdu_len = error_encode_pdu( + buffer, dest, &src, &npdu_data, invoke_id, service, error_class, + error_code); bytes_sent = datalink_send_pdu(dest, &npdu_data, &buffer[0], pdu_len); return bytes_sent; diff --git a/src/bacnet/basic/service/s_error.h b/src/bacnet/basic/service/s_error.h index dcc9bce3..68fddebe 100644 --- a/src/bacnet/basic/service/s_error.h +++ b/src/bacnet/basic/service/s_error.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic Error message send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic Error message send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_ERROR_MESSAGE_H #define SEND_ERROR_MESSAGE_H @@ -25,25 +25,25 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int Send_Error_To_Network( - uint8_t * buffer, - BACNET_ADDRESS *dest, - uint8_t invoke_id, - BACNET_CONFIRMED_SERVICE service, - BACNET_ERROR_CLASS error_class, - BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +int Send_Error_To_Network( + uint8_t *buffer, + BACNET_ADDRESS *dest, + uint8_t invoke_id, + BACNET_CONFIRMED_SERVICE service, + BACNET_ERROR_CLASS error_class, + BACNET_ERROR_CODE error_code); - BACNET_STACK_EXPORT - int error_encode_pdu( - uint8_t * buffer, - BACNET_ADDRESS * dest, - BACNET_ADDRESS * src, - BACNET_NPDU_DATA * npdu_data, - uint8_t invoke_id, - BACNET_CONFIRMED_SERVICE service, - BACNET_ERROR_CLASS error_class, - BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +int error_encode_pdu( + uint8_t *buffer, + BACNET_ADDRESS *dest, + BACNET_ADDRESS *src, + BACNET_NPDU_DATA *npdu_data, + uint8_t invoke_id, + BACNET_CONFIRMED_SERVICE service, + BACNET_ERROR_CLASS error_class, + BACNET_ERROR_CODE error_code); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_get_alarm_sum.c b/src/bacnet/basic/service/s_get_alarm_sum.c index 7b3e9f3c..dda3556d 100644 --- a/src/bacnet/basic/service/s_get_alarm_sum.c +++ b/src/bacnet/basic/service/s_get_alarm_sum.c @@ -60,24 +60,27 @@ uint8_t Send_Get_Alarm_Summary_Address(BACNET_ADDRESS *dest, uint16_t max_apdu) pdu_len += len; if ((uint16_t)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif datalink_send_pdu( dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, - "Failed to Send Get Alarm Summary Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send Get Alarm Summary Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send Get Alarm Summary Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_get_alarm_sum.h b/src/bacnet/basic/service/s_get_alarm_sum.h index 1334db35..d753d911 100644 --- a/src/bacnet/basic/service/s_get_alarm_sum.h +++ b/src/bacnet/basic/service/s_get_alarm_sum.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic GetAlarmSummary service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic GetAlarmSummary service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_GET_ALARM_SUMMARY_H #define SEND_GET_ALARM_SUMMARY_H diff --git a/src/bacnet/basic/service/s_get_event.c b/src/bacnet/basic/service/s_get_event.c index a8c1b174..b076d040 100644 --- a/src/bacnet/basic/service/s_get_event.c +++ b/src/bacnet/basic/service/s_get_event.c @@ -37,7 +37,8 @@ #include "bacnet/datalink/datalink.h" #include "bacnet/basic/services.h" -uint8_t Send_Get_Event_Information_Address(BACNET_ADDRESS *dest, +uint8_t Send_Get_Event_Information_Address( + BACNET_ADDRESS *dest, uint16_t max_apdu, const BACNET_OBJECT_ID *lastReceivedObjectIdentifier) { @@ -59,29 +60,34 @@ uint8_t Send_Get_Event_Information_Address(BACNET_ADDRESS *dest, pdu_len = npdu_encode_pdu( &Handler_Transmit_Buffer[0], dest, &my_address, &npdu_data); /* encode the APDU portion of the packet */ - len = getevent_encode_apdu(&Handler_Transmit_Buffer[pdu_len], invoke_id, + len = getevent_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], invoke_id, lastReceivedObjectIdentifier); pdu_len += len; if ((uint16_t)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif datalink_send_pdu( dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send Get Event Information Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send Get Event Information Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_get_event.h b/src/bacnet/basic/service/s_get_event.h index 88eda56a..cf527f1e 100644 --- a/src/bacnet/basic/service/s_get_event.h +++ b/src/bacnet/basic/service/s_get_event.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic GetEventInformation service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic GetEventInformation service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_GET_EVENT_INFORMATION_H #define SEND_GET_EVENT_INFORMATION_H @@ -27,7 +27,8 @@ extern "C" { BACNET_STACK_EXPORT uint8_t Send_Get_Event_Information_Address( - BACNET_ADDRESS *dest, uint16_t max_apdu, + BACNET_ADDRESS *dest, + uint16_t max_apdu, const BACNET_OBJECT_ID *lastReceivedObjectIdentifier); BACNET_STACK_EXPORT uint8_t Send_Get_Event_Information( diff --git a/src/bacnet/basic/service/s_getevent.c b/src/bacnet/basic/service/s_getevent.c index c8db9493..6f13e8f8 100644 --- a/src/bacnet/basic/service/s_getevent.c +++ b/src/bacnet/basic/service/s_getevent.c @@ -30,7 +30,8 @@ * device, a range, or any device. * @param target_address [in] BACnet address of target or broadcast */ -uint8_t Send_GetEvent(BACNET_ADDRESS *target_address, +uint8_t Send_GetEvent( + BACNET_ADDRESS *target_address, const BACNET_OBJECT_ID *lastReceivedObjectIdentifier) { int len = 0; @@ -52,25 +53,29 @@ uint8_t Send_GetEvent(BACNET_ADDRESS *target_address, invoke_id = tsm_next_free_invokeID(); if (invoke_id) { /* encode the APDU portion of the packet */ - len = getevent_encode_apdu(&Handler_Transmit_Buffer[pdu_len], invoke_id, + len = getevent_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], invoke_id, lastReceivedObjectIdentifier); pdu_len += len; #if PRINT_ENABLED bytes_sent = #endif - datalink_send_pdu(target_address, &npdu_data, - &Handler_Transmit_Buffer[0], pdu_len); + datalink_send_pdu( + target_address, &npdu_data, &Handler_Transmit_Buffer[0], + pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, - "Failed to Send GetEventInformation Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send GetEventInformation Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send GetEventInformation Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_getevent.h b/src/bacnet/basic/service/s_getevent.h index 56ba0a71..352b7f70 100644 --- a/src/bacnet/basic/service/s_getevent.h +++ b/src/bacnet/basic/service/s_getevent.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic GetEvent service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic GetEvent service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_GET_EVENT_H #define SEND_GET_EVENT_H @@ -26,8 +26,9 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_GetEvent(BACNET_ADDRESS* target_address, - const BACNET_OBJECT_ID* lastReceivedObjectIdentifier); +uint8_t Send_GetEvent( + BACNET_ADDRESS *target_address, + const BACNET_OBJECT_ID *lastReceivedObjectIdentifier); BACNET_STACK_EXPORT uint8_t Send_GetEvent_Global(void); diff --git a/src/bacnet/basic/service/s_iam.c b/src/bacnet/basic/service/s_iam.c index 3a0dc2bc..2e6afd53 100644 --- a/src/bacnet/basic/service/s_iam.c +++ b/src/bacnet/basic/service/s_iam.c @@ -33,7 +33,8 @@ * @param segmentation [in] #BACNET_SEGMENTATION enumeration * @param vendor_id [in] BACnet vendor ID 0-65535 */ -void Send_I_Am_To_Network(BACNET_ADDRESS *target_address, +void Send_I_Am_To_Network( + BACNET_ADDRESS *target_address, uint32_t device_id, unsigned int max_apdu, int segmentation, @@ -53,8 +54,9 @@ void Send_I_Am_To_Network(BACNET_ADDRESS *target_address, &Handler_Transmit_Buffer[0], target_address, &my_address, &npdu_data); /* encode the APDU portion of the packet */ /* encode the APDU portion of the packet */ - len = iam_encode_apdu(&Handler_Transmit_Buffer[pdu_len], device_id, - max_apdu, segmentation, vendor_id); + len = iam_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], device_id, max_apdu, segmentation, + vendor_id); pdu_len += len; bytes_sent = datalink_send_pdu( target_address, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); @@ -85,8 +87,9 @@ int iam_encode_pdu( pdu_len = npdu_encode_pdu(&buffer[0], dest, &my_address, npdu_data); /* encode the APDU portion of the packet */ - len = iam_encode_apdu(&buffer[pdu_len], Device_Object_Instance_Number(), - MAX_APDU, SEGMENTATION_NONE, Device_Vendor_Identifier()); + len = iam_encode_apdu( + &buffer[pdu_len], Device_Object_Instance_Number(), MAX_APDU, + SEGMENTATION_NONE, Device_Vendor_Identifier()); pdu_len += len; return pdu_len; @@ -137,7 +140,8 @@ void Send_I_Am(uint8_t *buffer) * @param npdu_data [out] The NPDU structure describing the message. * @return The length of the message in buffer[]. */ -int iam_unicast_encode_pdu(uint8_t *buffer, +int iam_unicast_encode_pdu( + uint8_t *buffer, const BACNET_ADDRESS *src, BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data) @@ -155,9 +159,9 @@ int iam_unicast_encode_pdu(uint8_t *buffer, npdu_encode_npdu_data(npdu_data, false, MESSAGE_PRIORITY_NORMAL); npdu_len = npdu_encode_pdu(&buffer[0], dest, &my_address, npdu_data); /* encode the APDU portion of the packet */ - apdu_len = - iam_encode_apdu(&buffer[npdu_len], Device_Object_Instance_Number(), - MAX_APDU, SEGMENTATION_NONE, Device_Vendor_Identifier()); + apdu_len = iam_encode_apdu( + &buffer[npdu_len], Device_Object_Instance_Number(), MAX_APDU, + SEGMENTATION_NONE, Device_Vendor_Identifier()); pdu_len = npdu_len + apdu_len; return pdu_len; diff --git a/src/bacnet/basic/service/s_iam.h b/src/bacnet/basic/service/s_iam.h index fb515ec9..886b23ba 100644 --- a/src/bacnet/basic/service/s_iam.h +++ b/src/bacnet/basic/service/s_iam.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic I-Am service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic I-Am service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_I_AM_H #define SEND_I_AM_H @@ -27,19 +27,25 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -void Send_I_Am_To_Network(BACNET_ADDRESS* target_address, uint32_t device_id, - unsigned int max_apdu, int segmentation, - uint16_t vendor_id); +void Send_I_Am_To_Network( + BACNET_ADDRESS *target_address, + uint32_t device_id, + unsigned int max_apdu, + int segmentation, + uint16_t vendor_id); BACNET_STACK_EXPORT -int iam_encode_pdu(uint8_t* buffer, BACNET_ADDRESS* dest, - BACNET_NPDU_DATA* npdu_data); +int iam_encode_pdu( + uint8_t *buffer, BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data); BACNET_STACK_EXPORT -void Send_I_Am(uint8_t* buffer); +void Send_I_Am(uint8_t *buffer); BACNET_STACK_EXPORT -int iam_unicast_encode_pdu(uint8_t* buffer, const BACNET_ADDRESS* src, - BACNET_ADDRESS* dest, BACNET_NPDU_DATA* npdu_data); +int iam_unicast_encode_pdu( + uint8_t *buffer, + const BACNET_ADDRESS *src, + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *npdu_data); BACNET_STACK_EXPORT -void Send_I_Am_Unicast(uint8_t* buffer, const BACNET_ADDRESS* src); +void Send_I_Am_Unicast(uint8_t *buffer, const BACNET_ADDRESS *src); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_ihave.c b/src/bacnet/basic/service/s_ihave.c index 3df1c36c..9cd8a015 100644 --- a/src/bacnet/basic/service/s_ihave.c +++ b/src/bacnet/basic/service/s_ihave.c @@ -34,7 +34,8 @@ * @param object_instance [in] The Object ID that I Have. * @param object_name [in] The Name of the Object I Have. */ -void Send_I_Have(uint32_t device_id, +void Send_I_Have( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, const BACNET_CHARACTER_STRING *object_name) diff --git a/src/bacnet/basic/service/s_ihave.h b/src/bacnet/basic/service/s_ihave.h index afb1cfcd..317eb37e 100644 --- a/src/bacnet/basic/service/s_ihave.h +++ b/src/bacnet/basic/service/s_ihave.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic I-Have service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic I-Have service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_I_HAVE_H #define SEND_I_HAVE_H @@ -25,12 +25,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Send_I_Have( - uint32_t device_id, - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - const BACNET_CHARACTER_STRING * object_name); +BACNET_STACK_EXPORT +void Send_I_Have( + uint32_t device_id, + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + const BACNET_CHARACTER_STRING *object_name); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_list_element.c b/src/bacnet/basic/service/s_list_element.c index 10fb12b0..9008de83 100644 --- a/src/bacnet/basic/service/s_list_element.c +++ b/src/bacnet/basic/service/s_list_element.c @@ -107,19 +107,22 @@ uint8_t Send_List_Element_Request_Data( we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); bytes_sent = datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { - debug_perror("%s service: Failed to Send %i/%i (%s)!\n", + debug_perror( + "%s service: Failed to Send %i/%i (%s)!\n", bactext_confirmed_service_name(service), bytes_sent, pdu_len, strerror(errno)); } } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; - debug_perror("%s service: Failed to Send " + debug_perror( + "%s service: Failed to Send " "(exceeds destination maximum APDU)!\n", bactext_confirmed_service_name(service)); } @@ -142,7 +145,8 @@ uint8_t Send_List_Element_Request_Data( * @return invoke id of outgoing message, or 0 on failure. * @return the invoke ID for confirmed request, or zero on failure */ -uint8_t Send_Add_List_Element_Request_Data(uint32_t device_id, +uint8_t Send_Add_List_Element_Request_Data( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -151,15 +155,9 @@ uint8_t Send_Add_List_Element_Request_Data(uint32_t device_id, uint32_t array_index) { return Send_List_Element_Request_Data( - SERVICE_CONFIRMED_ADD_LIST_ELEMENT, - device_id, - object_type, - object_instance, - object_property, - application_data, - application_data_len, - array_index); - + SERVICE_CONFIRMED_ADD_LIST_ELEMENT, device_id, object_type, + object_instance, object_property, application_data, + application_data_len, array_index); } /** @@ -176,7 +174,8 @@ uint8_t Send_Add_List_Element_Request_Data(uint32_t device_id, * @return invoke id of outgoing message, or 0 on failure. * @return the invoke ID for confirmed request, or zero on failure */ -uint8_t Send_Remove_List_Element_Request_Data(uint32_t device_id, +uint8_t Send_Remove_List_Element_Request_Data( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -185,15 +184,9 @@ uint8_t Send_Remove_List_Element_Request_Data(uint32_t device_id, uint32_t array_index) { return Send_List_Element_Request_Data( - SERVICE_CONFIRMED_REMOVE_LIST_ELEMENT, - device_id, - object_type, - object_instance, - object_property, - application_data, - application_data_len, - array_index); - + SERVICE_CONFIRMED_REMOVE_LIST_ELEMENT, device_id, object_type, + object_instance, object_property, application_data, + application_data_len, array_index); } /** @@ -209,7 +202,8 @@ uint8_t Send_Remove_List_Element_Request_Data(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the array value to be ignored (not sent) * @return invoke id of outgoing message, or 0 on failure. */ -uint8_t Send_Add_List_Element_Request(uint32_t device_id, +uint8_t Send_Add_List_Element_Request( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -220,8 +214,9 @@ uint8_t Send_Add_List_Element_Request(uint32_t device_id, int apdu_len = 0, len = 0; while (object_value) { - debug_printf("AddListElement service: " - "%s tag=%d\n", + debug_printf( + "AddListElement service: " + "%s tag=%d\n", (object_value->context_specific ? "context" : "application"), (int)(object_value->context_specific ? object_value->context_tag : object_value->tag)); @@ -234,9 +229,9 @@ uint8_t Send_Add_List_Element_Request(uint32_t device_id, object_value = object_value->next; } - return Send_Add_List_Element_Request_Data(device_id, object_type, - object_instance, object_property, &application_data[0], apdu_len, - array_index); + return Send_Add_List_Element_Request_Data( + device_id, object_type, object_instance, object_property, + &application_data[0], apdu_len, array_index); } /** @@ -252,7 +247,8 @@ uint8_t Send_Add_List_Element_Request(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the array value to be ignored (not sent) * @return invoke id of outgoing message, or 0 on failure. */ -uint8_t Send_Remove_List_Element_Request(uint32_t device_id, +uint8_t Send_Remove_List_Element_Request( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -263,8 +259,9 @@ uint8_t Send_Remove_List_Element_Request(uint32_t device_id, int apdu_len = 0, len = 0; while (object_value) { - debug_perror("RemoveListElement service: " - "%s tag=%d\n", + debug_perror( + "RemoveListElement service: " + "%s tag=%d\n", (object_value->context_specific ? "context" : "application"), (int)(object_value->context_specific ? object_value->context_tag : object_value->tag)); @@ -277,7 +274,7 @@ uint8_t Send_Remove_List_Element_Request(uint32_t device_id, object_value = object_value->next; } - return Send_Remove_List_Element_Request_Data(device_id, object_type, - object_instance, object_property, &application_data[0], apdu_len, - array_index); + return Send_Remove_List_Element_Request_Data( + device_id, object_type, object_instance, object_property, + &application_data[0], apdu_len, array_index); } diff --git a/src/bacnet/basic/service/s_list_element.h b/src/bacnet/basic/service/s_list_element.h index dcea95ae..500e5327 100644 --- a/src/bacnet/basic/service/s_list_element.h +++ b/src/bacnet/basic/service/s_list_element.h @@ -38,7 +38,8 @@ uint8_t Send_List_Element_Request_Data( uint32_t array_index); BACNET_STACK_EXPORT -uint8_t Send_Add_List_Element_Request_Data(uint32_t device_id, +uint8_t Send_Add_List_Element_Request_Data( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -46,7 +47,8 @@ uint8_t Send_Add_List_Element_Request_Data(uint32_t device_id, int application_data_len, uint32_t array_index); BACNET_STACK_EXPORT -uint8_t Send_Add_List_Element_Request(uint32_t device_id, +uint8_t Send_Add_List_Element_Request( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -54,7 +56,8 @@ uint8_t Send_Add_List_Element_Request(uint32_t device_id, uint32_t array_index); BACNET_STACK_EXPORT -uint8_t Send_Remove_List_Element_Request_Data(uint32_t device_id, +uint8_t Send_Remove_List_Element_Request_Data( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -62,7 +65,8 @@ uint8_t Send_Remove_List_Element_Request_Data(uint32_t device_id, int application_data_len, uint32_t array_index); BACNET_STACK_EXPORT -uint8_t Send_Remove_List_Element_Request(uint32_t device_id, +uint8_t Send_Remove_List_Element_Request( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, diff --git a/src/bacnet/basic/service/s_lso.c b/src/bacnet/basic/service/s_lso.c index 767a5b71..71860cef 100644 --- a/src/bacnet/basic/service/s_lso.c +++ b/src/bacnet/basic/service/s_lso.c @@ -29,8 +29,8 @@ /* returns the invoke ID for confirmed request, or zero on failure */ -uint8_t Send_Life_Safety_Operation_Data( - uint32_t device_id, const BACNET_LSO_DATA *data) +uint8_t +Send_Life_Safety_Operation_Data(uint32_t device_id, const BACNET_LSO_DATA *data) { BACNET_ADDRESS dest; BACNET_ADDRESS my_address; @@ -69,23 +69,27 @@ uint8_t Send_Life_Safety_Operation_Data( we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, "Failed to Send Life Safe Op Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send Life Safe Op Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send Life Safe Op Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_lso.h b/src/bacnet/basic/service/s_lso.h index e56a6688..bedfeaa7 100644 --- a/src/bacnet/basic/service/s_lso.h +++ b/src/bacnet/basic/service/s_lso.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic LifeSafetyOperation service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic LifeSafetyOperation service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_LIFE_SAFETY_OPERATION_H #define SEND_LIFE_SAFETY_OPERATION_H @@ -27,8 +27,8 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_Life_Safety_Operation_Data(uint32_t device_id, - const BACNET_LSO_DATA* data); +uint8_t Send_Life_Safety_Operation_Data( + uint32_t device_id, const BACNET_LSO_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_rd.c b/src/bacnet/basic/service/s_rd.c index 8306e479..3883b587 100644 --- a/src/bacnet/basic/service/s_rd.c +++ b/src/bacnet/basic/service/s_rd.c @@ -36,9 +36,7 @@ * @return The invokeID of the transmitted message, or 0 on failure. */ uint8_t Send_Reinitialize_Device_Request( - uint32_t device_id, - BACNET_REINITIALIZED_STATE state, - const char *password) + uint32_t device_id, BACNET_REINITIALIZED_STATE state, const char *password) { BACNET_ADDRESS dest; BACNET_ADDRESS my_address; @@ -72,8 +70,9 @@ uint8_t Send_Reinitialize_Device_Request( &Handler_Transmit_Buffer[0], &dest, &my_address, &npdu_data); /* encode the APDU portion of the packet */ characterstring_init_ansi(&password_string, password); - len = rd_encode_apdu(&Handler_Transmit_Buffer[pdu_len], invoke_id, - state, password ? &password_string : NULL); + len = rd_encode_apdu( + &Handler_Transmit_Buffer[pdu_len], invoke_id, state, + password ? &password_string : NULL); pdu_len += len; /* will it fit in the sender? note: if there is a bottleneck router in between @@ -81,24 +80,27 @@ uint8_t Send_Reinitialize_Device_Request( we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, - "Failed to Send ReinitializeDevice Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send ReinitializeDevice Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send ReinitializeDevice Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_rd.h b/src/bacnet/basic/service/s_rd.h index 71418fc3..ebfb72a6 100644 --- a/src/bacnet/basic/service/s_rd.h +++ b/src/bacnet/basic/service/s_rd.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReinitializeDevice service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReinitializeDevice service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_REINITIALIZE_DEVICE_H #define SEND_REINITIALIZE_DEVICE_H @@ -26,9 +26,8 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_Reinitialize_Device_Request(uint32_t device_id, - BACNET_REINITIALIZED_STATE state, - const char *password); +uint8_t Send_Reinitialize_Device_Request( + uint32_t device_id, BACNET_REINITIALIZED_STATE state, const char *password); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_readrange.c b/src/bacnet/basic/service/s_readrange.c index 0d12bee9..2a0ca3bc 100644 --- a/src/bacnet/basic/service/s_readrange.c +++ b/src/bacnet/basic/service/s_readrange.c @@ -28,7 +28,8 @@ /** @file s_readrange.c Send a ReadRange request. */ /* returns invoke id of 0 if device is not bound or no tsm available */ -uint8_t Send_ReadRange_Request(uint32_t device_id, /* destination device */ +uint8_t Send_ReadRange_Request( + uint32_t device_id, /* destination device */ const BACNET_READ_RANGE_DATA *read_access_data) { BACNET_ADDRESS dest; @@ -75,23 +76,27 @@ uint8_t Send_ReadRange_Request(uint32_t device_id, /* destination device */ we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); #if PRINT_ENABLED bytes_sent = #endif datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, "Failed to Send ReadRange Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send ReadRange Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send ReadRange Request (exceeds destination " "maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_readrange.h b/src/bacnet/basic/service/s_readrange.h index be41e234..4de5ef65 100644 --- a/src/bacnet/basic/service/s_readrange.h +++ b/src/bacnet/basic/service/s_readrange.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadRange service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadRange service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_READ_RANGE_H #define SEND_READ_RANGE_H @@ -27,8 +27,8 @@ extern "C" { #endif /* __cplusplus */ BACNET_STACK_EXPORT -uint8_t Send_ReadRange_Request(uint32_t device_id, - const BACNET_READ_RANGE_DATA* read_access_data); +uint8_t Send_ReadRange_Request( + uint32_t device_id, const BACNET_READ_RANGE_DATA *read_access_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_rp.c b/src/bacnet/basic/service/s_rp.c index 68b515df..70f76f87 100644 --- a/src/bacnet/basic/service/s_rp.c +++ b/src/bacnet/basic/service/s_rp.c @@ -42,7 +42,8 @@ * @return invoke id of outgoing message, or 0 if device is not bound or no tsm * available */ -uint8_t Send_Read_Property_Request_Address(BACNET_ADDRESS *dest, +uint8_t Send_Read_Property_Request_Address( + BACNET_ADDRESS *dest, uint16_t max_apdu, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, @@ -85,13 +86,15 @@ uint8_t Send_Read_Property_Request_Address(BACNET_ADDRESS *dest, we have a way to check for that and update the max_apdu in the address binding table. */ if ((uint16_t)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); bytes_sent = datalink_send_pdu( dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { #if PRINT_ENABLED - fprintf(stderr, "Failed to Send ReadProperty Request (%s)!\n", + fprintf( + stderr, "Failed to Send ReadProperty Request (%s)!\n", strerror(errno)); #endif } @@ -99,7 +102,8 @@ uint8_t Send_Read_Property_Request_Address(BACNET_ADDRESS *dest, tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send ReadProperty Request " "(exceeds destination maximum APDU)!\n"); #endif @@ -124,7 +128,8 @@ uint8_t Send_Read_Property_Request_Address(BACNET_ADDRESS *dest, * @return invoke id of outgoing message, or 0 if device is not bound or no tsm * available */ -uint8_t Send_Read_Property_Request(uint32_t device_id, /* destination device */ +uint8_t Send_Read_Property_Request( + uint32_t device_id, /* destination device */ BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -138,8 +143,9 @@ uint8_t Send_Read_Property_Request(uint32_t device_id, /* destination device */ /* is the device bound? */ status = address_get_by_device(device_id, &max_apdu, &dest); if (status) { - invoke_id = Send_Read_Property_Request_Address(&dest, max_apdu, - object_type, object_instance, object_property, array_index); + invoke_id = Send_Read_Property_Request_Address( + &dest, max_apdu, object_type, object_instance, object_property, + array_index); } return invoke_id; diff --git a/src/bacnet/basic/service/s_rp.h b/src/bacnet/basic/service/s_rp.h index debe4494..73ce282f 100644 --- a/src/bacnet/basic/service/s_rp.h +++ b/src/bacnet/basic/service/s_rp.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadProperty service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadProperty service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_READ_PROPERTY_H #define SEND_READ_PROPERTY_H @@ -25,21 +25,21 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - uint8_t Send_Read_Property_Request_Address( - BACNET_ADDRESS * dest, - uint16_t max_apdu, - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - BACNET_PROPERTY_ID object_property, - uint32_t array_index); - BACNET_STACK_EXPORT - uint8_t Send_Read_Property_Request( - uint32_t device_id, /* destination device */ - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - BACNET_PROPERTY_ID object_property, - uint32_t array_index); +BACNET_STACK_EXPORT +uint8_t Send_Read_Property_Request_Address( + BACNET_ADDRESS *dest, + uint16_t max_apdu, + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + BACNET_PROPERTY_ID object_property, + uint32_t array_index); +BACNET_STACK_EXPORT +uint8_t Send_Read_Property_Request( + uint32_t device_id, /* destination device */ + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + BACNET_PROPERTY_ID object_property, + uint32_t array_index); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_rpm.c b/src/bacnet/basic/service/s_rpm.c index d9373a24..8394a17d 100644 --- a/src/bacnet/basic/service/s_rpm.c +++ b/src/bacnet/basic/service/s_rpm.c @@ -37,7 +37,8 @@ * @return invoke id of outgoing message, or 0 if device is not bound or no tsm * available */ -uint8_t Send_Read_Property_Multiple_Request(uint8_t *pdu, +uint8_t Send_Read_Property_Multiple_Request( + uint8_t *pdu, size_t max_pdu, uint32_t device_id, /* destination device */ BACNET_READ_ACCESS_DATA *read_access_data) @@ -89,16 +90,19 @@ uint8_t Send_Read_Property_Multiple_Request(uint8_t *pdu, #endif datalink_send_pdu(&dest, &npdu_data, &pdu[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send ReadPropertyMultiple Request (%s)!\n", strerror(errno)); + } #endif } else { tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send ReadPropertyMultiple Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_rpm.h b/src/bacnet/basic/service/s_rpm.h index 75ac79dd..4fc8b420 100644 --- a/src/bacnet/basic/service/s_rpm.h +++ b/src/bacnet/basic/service/s_rpm.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic ReadPropertyMultiple service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic ReadPropertyMultiple service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_READ_PROPERTY_MULTIPLE_H #define SEND_READ_PROPERTY_MULTIPLE_H @@ -26,12 +26,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - uint8_t Send_Read_Property_Multiple_Request( - uint8_t * pdu, - size_t max_pdu, - uint32_t device_id, /* destination device */ - BACNET_READ_ACCESS_DATA * read_access_data); +BACNET_STACK_EXPORT +uint8_t Send_Read_Property_Multiple_Request( + uint8_t *pdu, + size_t max_pdu, + uint32_t device_id, /* destination device */ + BACNET_READ_ACCESS_DATA *read_access_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_ts.c b/src/bacnet/basic/service/s_ts.c index 4d3d189a..22a54895 100644 --- a/src/bacnet/basic/service/s_ts.c +++ b/src/bacnet/basic/service/s_ts.c @@ -63,9 +63,11 @@ void Send_TimeSync_Remote( datalink_send_pdu( dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, "Failed to Send Time-Synchronization Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send Time-Synchronization Request (%s)!\n", strerror(errno)); + } #endif } @@ -120,10 +122,11 @@ void Send_TimeSyncUTC_Remote( datalink_send_pdu( dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) - fprintf(stderr, - "Failed to Send UTC-Time-Synchronization Request (%s)!\n", + if (bytes_sent <= 0) { + fprintf( + stderr, "Failed to Send UTC-Time-Synchronization Request (%s)!\n", strerror(errno)); + } #endif } diff --git a/src/bacnet/basic/service/s_ts.h b/src/bacnet/basic/service/s_ts.h index d095c7b3..de8bb170 100644 --- a/src/bacnet/basic/service/s_ts.h +++ b/src/bacnet/basic/service/s_ts.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic TimeSynchronization service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic TimeSynchronization service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_TIME_SYNC_H #define SEND_TIME_SYNC_H @@ -25,28 +25,20 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Send_TimeSync( - const BACNET_DATE * bdate, - const BACNET_TIME * btime); - BACNET_STACK_EXPORT - void Send_TimeSync_Remote( - BACNET_ADDRESS * dest, - const BACNET_DATE * bdate, - const BACNET_TIME * btime); - BACNET_STACK_EXPORT - void Send_TimeSyncUTC( - const BACNET_DATE * bdate, - const BACNET_TIME * btime); - BACNET_STACK_EXPORT - void Send_TimeSyncUTC_Remote( - BACNET_ADDRESS * dest, - const BACNET_DATE * bdate, - const BACNET_TIME * btime); - BACNET_STACK_EXPORT - void Send_TimeSyncUTC_Device(void); - BACNET_STACK_EXPORT - void Send_TimeSync_Device(void); +BACNET_STACK_EXPORT +void Send_TimeSync(const BACNET_DATE *bdate, const BACNET_TIME *btime); +BACNET_STACK_EXPORT +void Send_TimeSync_Remote( + BACNET_ADDRESS *dest, const BACNET_DATE *bdate, const BACNET_TIME *btime); +BACNET_STACK_EXPORT +void Send_TimeSyncUTC(const BACNET_DATE *bdate, const BACNET_TIME *btime); +BACNET_STACK_EXPORT +void Send_TimeSyncUTC_Remote( + BACNET_ADDRESS *dest, const BACNET_DATE *bdate, const BACNET_TIME *btime); +BACNET_STACK_EXPORT +void Send_TimeSyncUTC_Device(void); +BACNET_STACK_EXPORT +void Send_TimeSync_Device(void); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_uevent.c b/src/bacnet/basic/service/s_uevent.c index 34c26638..ebb9dfb9 100644 --- a/src/bacnet/basic/service/s_uevent.c +++ b/src/bacnet/basic/service/s_uevent.c @@ -24,7 +24,9 @@ * @return Size of the message sent (bytes), or a negative value on error. */ int Send_UEvent_Notify( - uint8_t *buffer, const BACNET_EVENT_NOTIFICATION_DATA *data, BACNET_ADDRESS *dest) + uint8_t *buffer, + const BACNET_EVENT_NOTIFICATION_DATA *data, + BACNET_ADDRESS *dest) { int len = 0; int pdu_len = 0; diff --git a/src/bacnet/basic/service/s_uevent.h b/src/bacnet/basic/service/s_uevent.h index 976c01bd..4958b9aa 100644 --- a/src/bacnet/basic/service/s_uevent.h +++ b/src/bacnet/basic/service/s_uevent.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic UnconfirmedEventNotification service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic UnconfirmedEventNotification service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_UNCONFIRMED_EVENT_NOTIFICATION_H #define SEND_UNCONFIRMED_EVENT_NOTIFICATION_H @@ -25,11 +25,11 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int Send_UEvent_Notify( - uint8_t * buffer, - const BACNET_EVENT_NOTIFICATION_DATA * data, - BACNET_ADDRESS * dest); +BACNET_STACK_EXPORT +int Send_UEvent_Notify( + uint8_t *buffer, + const BACNET_EVENT_NOTIFICATION_DATA *data, + BACNET_ADDRESS *dest); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_upt.c b/src/bacnet/basic/service/s_upt.c index 167921ac..01399382 100644 --- a/src/bacnet/basic/service/s_upt.c +++ b/src/bacnet/basic/service/s_upt.c @@ -53,8 +53,8 @@ int Send_UnconfirmedPrivateTransfer( dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { #if PRINT_ENABLED - fprintf(stderr, - "Failed to Send UnconfirmedPrivateTransfer Request (%s)!\n", + fprintf( + stderr, "Failed to Send UnconfirmedPrivateTransfer Request (%s)!\n", strerror(errno)); #endif } diff --git a/src/bacnet/basic/service/s_upt.h b/src/bacnet/basic/service/s_upt.h index f7946dd6..ef1b8adc 100644 --- a/src/bacnet/basic/service/s_upt.h +++ b/src/bacnet/basic/service/s_upt.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic UnconfirmedPrivateTransfer service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic UnconfirmedPrivateTransfer service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_UNCONFIRMED_PRIVATE_TRANSFER_H #define SEND_UNCONFIRMED_PRIVATE_TRANSFER_H @@ -28,8 +28,7 @@ extern "C" { BACNET_STACK_EXPORT int Send_UnconfirmedPrivateTransfer( - BACNET_ADDRESS* dest, - const BACNET_PRIVATE_TRANSFER_DATA* private_data); + BACNET_ADDRESS *dest, const BACNET_PRIVATE_TRANSFER_DATA *private_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_whohas.c b/src/bacnet/basic/service/s_whohas.c index 03085e08..9adf521b 100644 --- a/src/bacnet/basic/service/s_whohas.c +++ b/src/bacnet/basic/service/s_whohas.c @@ -75,9 +75,10 @@ void Send_WhoHas_Name( datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) + if (bytes_sent <= 0) { fprintf( stderr, "Failed to Send Who-Has Request (%s)!\n", strerror(errno)); + } #endif } @@ -92,7 +93,8 @@ void Send_WhoHas_Name( * @param object_type [in] The BACNET_OBJECT_TYPE of the desired Object. * @param object_instance [in] The ID of the desired Object. */ -void Send_WhoHas_Object(int32_t low_limit, +void Send_WhoHas_Object( + int32_t low_limit, int32_t high_limit, BACNET_OBJECT_TYPE object_type, uint32_t object_instance) @@ -133,8 +135,9 @@ void Send_WhoHas_Object(int32_t low_limit, datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) + if (bytes_sent <= 0) { fprintf( stderr, "Failed to Send Who-Has Request (%s)!\n", strerror(errno)); + } #endif } diff --git a/src/bacnet/basic/service/s_whohas.h b/src/bacnet/basic/service/s_whohas.h index a49a4df0..09a644b0 100644 --- a/src/bacnet/basic/service/s_whohas.h +++ b/src/bacnet/basic/service/s_whohas.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WhoHas service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WhoHas service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_WHO_HAS_H #define SEND_WHO_HAS_H @@ -25,15 +25,15 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Send_WhoHas_Name( - int32_t low_limit, - int32_t high_limit, - const char *object_name); - BACNET_STACK_EXPORT - void Send_WhoHas_Object(int32_t low_limit, int32_t high_limit, - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance); +BACNET_STACK_EXPORT +void Send_WhoHas_Name( + int32_t low_limit, int32_t high_limit, const char *object_name); +BACNET_STACK_EXPORT +void Send_WhoHas_Object( + int32_t low_limit, + int32_t high_limit, + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_whois.c b/src/bacnet/basic/service/s_whois.c index 21e59852..25955353 100644 --- a/src/bacnet/basic/service/s_whois.c +++ b/src/bacnet/basic/service/s_whois.c @@ -62,9 +62,10 @@ void Send_WhoIs_To_Network( bytes_sent = datalink_send_pdu( target_address, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); #if PRINT_ENABLED - if (bytes_sent <= 0) + if (bytes_sent <= 0) { fprintf( stderr, "Failed to Send Who-Is Request (%s)!\n", strerror(errno)); + } #else (void)bytes_sent; #endif diff --git a/src/bacnet/basic/service/s_whois.h b/src/bacnet/basic/service/s_whois.h index 2a1b902b..d544e4d1 100644 --- a/src/bacnet/basic/service/s_whois.h +++ b/src/bacnet/basic/service/s_whois.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WhoIs service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WhoIs service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_WHO_IS_H #define SEND_WHO_IS_H @@ -25,26 +25,18 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void Send_WhoIs( - int32_t low_limit, - int32_t high_limit); - BACNET_STACK_EXPORT - void Send_WhoIs_Global( - int32_t low_limit, - int32_t high_limit); - BACNET_STACK_EXPORT - void Send_WhoIs_Local( - int32_t low_limit, - int32_t high_limit); - BACNET_STACK_EXPORT - void Send_WhoIs_Remote( - BACNET_ADDRESS * target_address, - int32_t low_limit, - int32_t high_limit); - BACNET_STACK_EXPORT - void Send_WhoIs_To_Network(BACNET_ADDRESS* target_address, int32_t low_limit, - int32_t high_limit); +BACNET_STACK_EXPORT +void Send_WhoIs(int32_t low_limit, int32_t high_limit); +BACNET_STACK_EXPORT +void Send_WhoIs_Global(int32_t low_limit, int32_t high_limit); +BACNET_STACK_EXPORT +void Send_WhoIs_Local(int32_t low_limit, int32_t high_limit); +BACNET_STACK_EXPORT +void Send_WhoIs_Remote( + BACNET_ADDRESS *target_address, int32_t low_limit, int32_t high_limit); +BACNET_STACK_EXPORT +void Send_WhoIs_To_Network( + BACNET_ADDRESS *target_address, int32_t low_limit, int32_t high_limit); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_wp.c b/src/bacnet/basic/service/s_wp.c index a24f37cc..4f3c890e 100644 --- a/src/bacnet/basic/service/s_wp.c +++ b/src/bacnet/basic/service/s_wp.c @@ -27,7 +27,8 @@ /** @file s_wp.c Send a Write Property request. */ /** returns the invoke ID for confirmed request, or zero on failure */ -uint8_t Send_Write_Property_Request_Data(uint32_t device_id, +uint8_t Send_Write_Property_Request_Data( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -69,7 +70,8 @@ uint8_t Send_Write_Property_Request_Data(uint32_t device_id, data.object_property = object_property; data.array_index = array_index; data.application_data_len = application_data_len; - memcpy(&data.application_data[0], &application_data[0], + memcpy( + &data.application_data[0], &application_data[0], application_data_len); data.priority = priority; len = @@ -81,13 +83,15 @@ uint8_t Send_Write_Property_Request_Data(uint32_t device_id, we have a way to check for that and update the max_apdu in the address binding table. */ if ((unsigned)pdu_len < max_apdu) { - tsm_set_confirmed_unsegmented_transaction(invoke_id, &dest, - &npdu_data, &Handler_Transmit_Buffer[0], (uint16_t)pdu_len); + tsm_set_confirmed_unsegmented_transaction( + invoke_id, &dest, &npdu_data, &Handler_Transmit_Buffer[0], + (uint16_t)pdu_len); bytes_sent = datalink_send_pdu( &dest, &npdu_data, &Handler_Transmit_Buffer[0], pdu_len); if (bytes_sent <= 0) { #if PRINT_ENABLED - fprintf(stderr, "Failed to Send WriteProperty Request (%s)!\n", + fprintf( + stderr, "Failed to Send WriteProperty Request (%s)!\n", strerror(errno)); #endif } @@ -95,7 +99,8 @@ uint8_t Send_Write_Property_Request_Data(uint32_t device_id, tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send WriteProperty Request " "(exceeds destination maximum APDU)!\n"); #endif @@ -120,7 +125,8 @@ uint8_t Send_Write_Property_Request_Data(uint32_t device_id, * - BACNET_ARRAY_ALL (~0) for the array value to be ignored (not sent) * @return invoke id of outgoing message, or 0 on failure. */ -uint8_t Send_Write_Property_Request(uint32_t device_id, +uint8_t Send_Write_Property_Request( + uint32_t device_id, BACNET_OBJECT_TYPE object_type, uint32_t object_instance, BACNET_PROPERTY_ID object_property, @@ -133,7 +139,8 @@ uint8_t Send_Write_Property_Request(uint32_t device_id, while (object_value) { #if PRINT_ENABLED_DEBUG - fprintf(stderr, + fprintf( + stderr, "WriteProperty service: " "%s tag=%d\n", (object_value->context_specific ? "context" : "application"), @@ -149,7 +156,7 @@ uint8_t Send_Write_Property_Request(uint32_t device_id, object_value = object_value->next; } - return Send_Write_Property_Request_Data(device_id, object_type, - object_instance, object_property, &application_data[0], apdu_len, - priority, array_index); + return Send_Write_Property_Request_Data( + device_id, object_type, object_instance, object_property, + &application_data[0], apdu_len, priority, array_index); } diff --git a/src/bacnet/basic/service/s_wp.h b/src/bacnet/basic/service/s_wp.h index 02fb423c..868c627b 100644 --- a/src/bacnet/basic/service/s_wp.h +++ b/src/bacnet/basic/service/s_wp.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WriteProperty service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WriteProperty service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_WRITE_PROPERTY_H #define SEND_WRITE_PROPERTY_H @@ -25,25 +25,25 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - uint8_t Send_Write_Property_Request( - uint32_t device_id, /* destination device */ - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - BACNET_PROPERTY_ID object_property, - const BACNET_APPLICATION_DATA_VALUE * object_value, - uint8_t priority, - uint32_t array_index); - BACNET_STACK_EXPORT - uint8_t Send_Write_Property_Request_Data( - uint32_t device_id, - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance, - BACNET_PROPERTY_ID object_property, - const uint8_t * application_data, - int application_data_len, - uint8_t priority, - uint32_t array_index); +BACNET_STACK_EXPORT +uint8_t Send_Write_Property_Request( + uint32_t device_id, /* destination device */ + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + BACNET_PROPERTY_ID object_property, + const BACNET_APPLICATION_DATA_VALUE *object_value, + uint8_t priority, + uint32_t array_index); +BACNET_STACK_EXPORT +uint8_t Send_Write_Property_Request_Data( + uint32_t device_id, + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, + BACNET_PROPERTY_ID object_property, + const uint8_t *application_data, + int application_data_len, + uint8_t priority, + uint32_t array_index); #ifdef __cplusplus } diff --git a/src/bacnet/basic/service/s_wpm.c b/src/bacnet/basic/service/s_wpm.c index 3aeda30a..4551c990 100644 --- a/src/bacnet/basic/service/s_wpm.c +++ b/src/bacnet/basic/service/s_wpm.c @@ -40,7 +40,8 @@ * @return invoke id of outgoing message, or 0 if device is not bound or no tsm * available */ -uint8_t Send_Write_Property_Multiple_Request(uint8_t *pdu, +uint8_t Send_Write_Property_Multiple_Request( + uint8_t *pdu, size_t max_pdu, uint32_t device_id, BACNET_WRITE_ACCESS_DATA *write_access_data) @@ -93,7 +94,8 @@ uint8_t Send_Write_Property_Multiple_Request(uint8_t *pdu, datalink_send_pdu(&dest, &npdu_data, &pdu[0], pdu_len); #if PRINT_ENABLED if (bytes_sent <= 0) { - fprintf(stderr, + fprintf( + stderr, "Failed to Send WritePropertyMultiple Request (%s)!\n", strerror(errno)); } @@ -102,7 +104,8 @@ uint8_t Send_Write_Property_Multiple_Request(uint8_t *pdu, tsm_free_invoke_id(invoke_id); invoke_id = 0; #if PRINT_ENABLED - fprintf(stderr, + fprintf( + stderr, "Failed to Send WritePropertyMultiple Request " "(exceeds destination maximum APDU)!\n"); #endif diff --git a/src/bacnet/basic/service/s_wpm.h b/src/bacnet/basic/service/s_wpm.h index 7cf08451..0b77cbf6 100644 --- a/src/bacnet/basic/service/s_wpm.h +++ b/src/bacnet/basic/service/s_wpm.h @@ -1,13 +1,13 @@ /** -* @file -* @author Steve Karg -* @date October 2019 -* @brief Header file for a basic WritePropertyMultiple service send -* -* @section LICENSE -* -* SPDX-License-Identifier: MIT -*/ + * @file + * @author Steve Karg + * @date October 2019 + * @brief Header file for a basic WritePropertyMultiple service send + * + * @section LICENSE + * + * SPDX-License-Identifier: MIT + */ #ifndef SEND_WRITE_PROPERTY_MULTIPLE_H #define SEND_WRITE_PROPERTY_MULTIPLE_H @@ -26,12 +26,12 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - uint8_t Send_Write_Property_Multiple_Request( - uint8_t * pdu, - size_t max_pdu, - uint32_t device_id, - BACNET_WRITE_ACCESS_DATA * write_access_data); +BACNET_STACK_EXPORT +uint8_t Send_Write_Property_Multiple_Request( + uint8_t *pdu, + size_t max_pdu, + uint32_t device_id, + BACNET_WRITE_ACCESS_DATA *write_access_data); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/bacnet_stack_exports.h b/src/bacnet/basic/sys/bacnet_stack_exports.h index 31c0fd4f..d7f4c8af 100644 --- a/src/bacnet/basic/sys/bacnet_stack_exports.h +++ b/src/bacnet/basic/sys/bacnet_stack_exports.h @@ -1,38 +1,37 @@ /************************************************************************** -* -* Copyright (C) 2020 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2020 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BACNET_STACK_EXPORTS_H #define BACNET_STACK_EXPORTS_H -#include "bacnet/bacdef.h" /* Must be before all other bacnet *.h files */ +#include "bacnet/bacdef.h" /* Must be before all other bacnet *.h files */ #ifdef BACNET_STACK_STATIC_DEFINE - /* We want a static library */ -# define BACNET_STACK_EXPORT +/* We want a static library */ +#define BACNET_STACK_EXPORT #else - /* We want a shared library */ -# ifdef _MSC_VER -# define BACNET_STACK_LIBRARY_IMPORT __declspec(dllimport) -# define BACNET_STACK_LIBRARY_EXPORT __declspec(dllexport) -# else -# define BACNET_STACK_LIBRARY_IMPORT -# define BACNET_STACK_LIBRARY_EXPORT __attribute__((visibility("default"))) -# endif +/* We want a shared library */ +#ifdef _MSC_VER +#define BACNET_STACK_LIBRARY_IMPORT __declspec(dllimport) +#define BACNET_STACK_LIBRARY_EXPORT __declspec(dllexport) +#else +#define BACNET_STACK_LIBRARY_IMPORT +#define BACNET_STACK_LIBRARY_EXPORT __attribute__((visibility("default"))) +#endif #endif - #ifndef BACNET_STACK_EXPORT -# ifdef bacnet_stack_EXPORTS - /* We are building this library */ -# define BACNET_STACK_EXPORT BACNET_STACK_LIBRARY_EXPORT -# else - /* We are using this library */ -# define BACNET_STACK_EXPORT BACNET_STACK_LIBRARY_IMPORT -# endif +#ifdef bacnet_stack_EXPORTS +/* We are building this library */ +#define BACNET_STACK_EXPORT BACNET_STACK_LIBRARY_EXPORT +#else +/* We are using this library */ +#define BACNET_STACK_EXPORT BACNET_STACK_LIBRARY_IMPORT +#endif #endif -#endif /* BACNET_STACK_EXPORTS_H */ +#endif /* BACNET_STACK_EXPORTS_H */ diff --git a/src/bacnet/basic/sys/bigend.h b/src/bacnet/basic/sys/bigend.h index 37566d87..7bc61fd0 100644 --- a/src/bacnet/basic/sys/bigend.h +++ b/src/bacnet/basic/sys/bigend.h @@ -13,24 +13,23 @@ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - #ifndef BACNET_BIG_ENDIAN - /* GCC */ - #ifdef __BYTE_ORDER__ - #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ - #define BACNET_BIG_ENDIAN 1 - #else - #define BACNET_BIG_ENDIAN 0 - #endif - #endif - #endif +#ifndef BACNET_BIG_ENDIAN +/* GCC */ +#ifdef __BYTE_ORDER__ +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define BACNET_BIG_ENDIAN 1 +#else +#define BACNET_BIG_ENDIAN 0 +#endif +#endif +#endif - #ifdef BACNET_BIG_ENDIAN - #define big_endian() BACNET_BIG_ENDIAN - #else - BACNET_STACK_EXPORT - int big_endian( - void); - #endif +#ifdef BACNET_BIG_ENDIAN +#define big_endian() BACNET_BIG_ENDIAN +#else +BACNET_STACK_EXPORT +int big_endian(void); +#endif #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/bits.h b/src/bacnet/basic/sys/bits.h index e75291fa..f1bfbb9e 100644 --- a/src/bacnet/basic/sys/bits.h +++ b/src/bacnet/basic/sys/bits.h @@ -9,41 +9,41 @@ #define BACNET_SYS_BITS_H /******************************************************************** -* Bit Masks -*********************************************************************/ + * Bit Masks + *********************************************************************/ #ifndef BIT -#define BIT(x) (1<<(x)) +#define BIT(x) (1 << (x)) #endif #ifndef _BV -#define _BV(x) (1<<(x)) +#define _BV(x) (1 << (x)) #endif /* a=register, b=bit number to act upon 0-n */ #ifndef BIT_SET -#define BIT_SET(a,b) ((a) |= (1<<(b))) +#define BIT_SET(a, b) ((a) |= (1 << (b))) #endif #ifndef BIT_CLEAR -#define BIT_CLEAR(a,b) ((a) &= ~(1<<(b))) +#define BIT_CLEAR(a, b) ((a) &= ~(1 << (b))) #endif #ifndef BIT_FLIP -#define BIT_FLIP(a,b) ((a) ^= (1<<(b))) +#define BIT_FLIP(a, b) ((a) ^= (1 << (b))) #endif #ifndef BIT_CHECK -#define BIT_CHECK(a,b) ((a) & (1<<(b))) +#define BIT_CHECK(a, b) ((a) & (1 << (b))) #endif /* x=target variable, y=mask */ #ifndef BITMASK_SET -#define BITMASK_SET(x,y) ((x) |= (y)) +#define BITMASK_SET(x, y) ((x) |= (y)) #endif #ifndef BITMASK_CLEAR -#define BITMASK_CLEAR(x,y) ((x) &= (~(y))) +#define BITMASK_CLEAR(x, y) ((x) &= (~(y))) #endif #ifndef BITMASK_FLIP -#define BITMASK_FLIP(x,y) ((x) ^= (y)) +#define BITMASK_FLIP(x, y) ((x) ^= (y)) #endif #ifndef BITMASK_CHECK -#define BITMASK_CHECK(x,y) (((x) & (y)) == (y)) +#define BITMASK_CHECK(x, y) (((x) & (y)) == (y)) #endif #endif diff --git a/src/bacnet/basic/sys/bytes.h b/src/bacnet/basic/sys/bytes.h index a1e9a37a..55fde448 100644 --- a/src/bacnet/basic/sys/bytes.h +++ b/src/bacnet/basic/sys/bytes.h @@ -10,7 +10,7 @@ #include #ifndef LO_NIB -#define LO_NIB(b) ((b)&0xF) +#define LO_NIB(b) ((b) & 0xF) #endif #ifndef HI_NIB diff --git a/src/bacnet/basic/sys/color_rgb.c b/src/bacnet/basic/sys/color_rgb.c index 0d58910c..c32591c0 100644 --- a/src/bacnet/basic/sys/color_rgb.c +++ b/src/bacnet/basic/sys/color_rgb.c @@ -41,7 +41,8 @@ static double clamp(double d, double min, double max) * @param gamma_correction - true if gamma correction is applied * @note http://en.wikipedia.org/wiki/Srgb */ -static void color_rgb_to_xy_gamma_correction(uint8_t r, +static void color_rgb_to_xy_gamma_correction( + uint8_t r, uint8_t g, uint8_t b, float *x_coordinate, @@ -121,15 +122,16 @@ static void color_rgb_to_xy_gamma_correction(uint8_t r, * @param brightness - return brightness of the CIE xy color 0..255 * @note http://en.wikipedia.org/wiki/Srgb */ -void color_rgb_to_xy(uint8_t r, +void color_rgb_to_xy( + uint8_t r, uint8_t g, uint8_t b, float *x_coordinate, float *y_coordinate, uint8_t *brightness) { - color_rgb_to_xy_gamma_correction(r, g, b, - x_coordinate, y_coordinate, brightness, false); + color_rgb_to_xy_gamma_correction( + r, g, b, x_coordinate, y_coordinate, brightness, false); } /** @@ -142,15 +144,16 @@ void color_rgb_to_xy(uint8_t r, * @param brightness - return brightness of the CIE xy color 0..255 * @note http://en.wikipedia.org/wiki/Srgb */ -void color_rgb_to_xy_gamma(uint8_t r, +void color_rgb_to_xy_gamma( + uint8_t r, uint8_t g, uint8_t b, float *x_coordinate, float *y_coordinate, uint8_t *brightness) { - color_rgb_to_xy_gamma_correction(r, g, b, - x_coordinate, y_coordinate, brightness, true); + color_rgb_to_xy_gamma_correction( + r, g, b, x_coordinate, y_coordinate, brightness, true); } /** @@ -164,7 +167,8 @@ void color_rgb_to_xy_gamma(uint8_t r, * @param gamma_correction - true if gamma correction is needed * @note http://en.wikipedia.org/wiki/Srgb */ -static void color_rgb_from_xy_gamma_correction(uint8_t *red, +static void color_rgb_from_xy_gamma_correction( + uint8_t *red, uint8_t *green, uint8_t *blue, float x_coordinate, @@ -234,15 +238,16 @@ static void color_rgb_from_xy_gamma_correction(uint8_t *red, * @param brightness - brightness of the CIE xy color * @note http://en.wikipedia.org/wiki/Srgb */ -void color_rgb_from_xy(uint8_t *red, +void color_rgb_from_xy( + uint8_t *red, uint8_t *green, uint8_t *blue, float x_coordinate, float y_coordinate, uint8_t brightness) { - color_rgb_from_xy_gamma_correction(red, green, blue, - x_coordinate, y_coordinate, brightness, false); + color_rgb_from_xy_gamma_correction( + red, green, blue, x_coordinate, y_coordinate, brightness, false); } /** @@ -255,15 +260,16 @@ void color_rgb_from_xy(uint8_t *red, * @param brightness - brightness of the CIE xy color * @note http://en.wikipedia.org/wiki/Srgb */ -void color_rgb_from_xy_gamma(uint8_t *red, +void color_rgb_from_xy_gamma( + uint8_t *red, uint8_t *green, uint8_t *blue, float x_coordinate, float y_coordinate, uint8_t brightness) { - color_rgb_from_xy_gamma_correction(red, green, blue, - x_coordinate, y_coordinate, brightness, true); + color_rgb_from_xy_gamma_correction( + red, green, blue, x_coordinate, y_coordinate, brightness, true); } /* table for converting RGB to and from ASCII color names */ @@ -274,80 +280,154 @@ struct css_color_rgb { uint8_t blue; }; static struct css_color_rgb CSS_Color_RGB_Table[] = { - { "aliceblue", 240, 248, 255 }, { "antiquewhite", 250, 235, 215 }, - { "aqua", 0, 255, 255 }, { "aquamarine", 127, 255, 212 }, - { "azure", 240, 255, 255 }, { "beige", 245, 245, 220 }, - { "bisque", 255, 228, 196 }, { "black", 0, 0, 0 }, - { "blanchedalmond", 255, 235, 205 }, { "blue", 0, 0, 255 }, - { "blueviolet", 138, 43, 226 }, { "brown", 165, 42, 42 }, - { "burlywood", 222, 184, 135 }, { "cadetblue", 95, 158, 160 }, - { "chartreuse", 127, 255, 0 }, { "chocolate", 210, 105, 30 }, - { "coral", 255, 127, 80 }, { "cornflowerblue", 100, 149, 237 }, - { "cornsilk", 255, 248, 220 }, { "crimson", 220, 20, 60 }, - { "cyan", 0, 255, 255 }, { "darkblue", 0, 0, 139 }, - { "darkcyan", 0, 139, 139 }, { "darkgoldenrod", 184, 134, 11 }, - { "darkgray", 169, 169, 169 }, { "darkgreen", 0, 100, 0 }, - { "darkgrey", 169, 169, 169 }, { "darkkhaki", 189, 183, 107 }, - { "darkmagenta", 139, 0, 139 }, { "darkolivegreen", 85, 107, 47 }, - { "darkorange", 255, 140, 0 }, { "darkorchid", 153, 50, 204 }, - { "darkred", 139, 0, 0 }, { "darksalmon", 233, 150, 122 }, - { "darkseagreen", 143, 188, 143 }, { "darkslateblue", 72, 61, 139 }, - { "darkslategray", 47, 79, 79 }, { "darkslategrey", 47, 79, 79 }, - { "darkturquoise", 0, 206, 209 }, { "darkviolet", 148, 0, 211 }, - { "deeppink", 255, 20, 147 }, { "deepskyblue", 0, 191, 255 }, - { "dimgray", 105, 105, 105 }, { "dimgrey", 105, 105, 105 }, - { "dodgerblue", 30, 144, 255 }, { "firebrick", 178, 34, 34 }, - { "floralwhite", 255, 250, 240 }, { "forestgreen", 34, 139, 34 }, - { "fuchsia", 255, 0, 255 }, { "gainsboro", 220, 220, 220 }, - { "ghostwhite", 248, 248, 255 }, { "gold", 255, 215, 0 }, - { "goldenrod", 218, 165, 32 }, { "gray", 128, 128, 128 }, - { "green", 0, 128, 0 }, { "greenyellow", 173, 255, 47 }, - { "grey", 128, 128, 128 }, { "honeydew", 240, 255, 240 }, - { "hotpink", 255, 105, 180 }, { "indianred", 205, 92, 92 }, - { "indigo", 75, 0, 130 }, { "ivory", 255, 255, 240 }, - { "khaki", 240, 230, 140 }, { "lavender", 230, 230, 250 }, - { "lavenderblush", 255, 240, 245 }, { "lawngreen", 124, 252, 0 }, - { "lemonchiffon", 255, 250, 205 }, { "lightblue", 173, 216, 230 }, - { "lightcoral", 240, 128, 128 }, { "lightcyan", 224, 255, 255 }, - { "lightgoldenrodyellow", 250, 250, 210 }, { "lightgray", 211, 211, 211 }, - { "lightgreen", 144, 238, 144 }, { "lightgrey", 211, 211, 211 }, - { "lightpink", 255, 182, 193 }, { "lightsalmon", 255, 160, 122 }, - { "lightseagreen", 32, 178, 170 }, { "lightskyblue", 135, 206, 250 }, - { "lightslategray", 119, 136, 153 }, { "lightslategrey", 119, 136, 153 }, - { "lightsteelblue", 176, 196, 222 }, { "lightyellow", 255, 255, 224 }, - { "lime", 0, 255, 0 }, { "limegreen", 50, 205, 50 }, - { "linen", 250, 240, 230 }, { "magenta", 255, 0, 255 }, - { "maroon", 128, 0, 0 }, { "mediumaquamarine", 102, 205, 170 }, - { "mediumblue", 0, 0, 205 }, { "mediumorchid", 186, 85, 211 }, - { "mediumpurple", 147, 112, 219 }, { "mediumseagreen", 60, 179, 113 }, - { "mediumslateblue", 123, 104, 238 }, { "mediumspringgreen", 0, 250, 154 }, - { "mediumturquoise", 72, 209, 204 }, { "mediumvioletred", 199, 21, 133 }, - { "midnightblue", 25, 25, 112 }, { "mintcream", 245, 255, 250 }, - { "mistyrose", 255, 228, 225 }, { "moccasin", 255, 228, 181 }, - { "navajowhite", 255, 222, 173 }, { "navy", 0, 0, 128 }, - { "navyblue", 0, 0, 128 }, { "oldlace", 253, 245, 230 }, - { "olive", 128, 128, 0 }, { "olivedrab", 107, 142, 35 }, - { "orange", 255, 165, 0 }, { "orangered", 255, 69, 0 }, - { "orchid", 218, 112, 214 }, { "palegoldenrod", 238, 232, 170 }, - { "palegreen", 152, 251, 152 }, { "paleturquoise", 175, 238, 238 }, - { "palevioletred", 219, 112, 147 }, { "papayawhip", 255, 239, 213 }, - { "peachpuff", 255, 218, 185 }, { "peru", 205, 133, 63 }, - { "pink", 255, 192, 203 }, { "plum", 221, 160, 221 }, - { "powderblue", 176, 224, 230 }, { "purple", 128, 0, 128 }, - { "red", 255, 0, 0 }, { "rosybrown", 188, 143, 143 }, - { "royalblue", 65, 105, 225 }, { "saddlebrown", 139, 69, 19 }, - { "salmon", 250, 128, 114 }, { "sandybrown", 244, 164, 96 }, - { "seagreen", 46, 139, 87 }, { "seashell", 255, 245, 238 }, - { "sienna", 160, 82, 45 }, { "silver", 192, 192, 192 }, - { "skyblue", 135, 206, 235 }, { "slateblue", 106, 90, 205 }, - { "slategray", 112, 128, 144 }, { "slategrey", 112, 128, 144 }, - { "snow", 255, 250, 250 }, { "springgreen", 0, 255, 127 }, - { "steelblue", 70, 130, 180 }, { "tan", 210, 180, 140 }, - { "teal", 0, 128, 128 }, { "thistle", 216, 191, 216 }, - { "tomato", 255, 99, 71 }, { "turquoise", 64, 224, 208 }, - { "violet", 238, 130, 238 }, { "wheat", 245, 222, 179 }, - { "white", 255, 255, 255 }, { "whitesmoke", 245, 245, 245 }, - { "yellow", 255, 255, 0 }, { "yellowgreen", 154, 205, 50 }, + { "aliceblue", 240, 248, 255 }, + { "antiquewhite", 250, 235, 215 }, + { "aqua", 0, 255, 255 }, + { "aquamarine", 127, 255, 212 }, + { "azure", 240, 255, 255 }, + { "beige", 245, 245, 220 }, + { "bisque", 255, 228, 196 }, + { "black", 0, 0, 0 }, + { "blanchedalmond", 255, 235, 205 }, + { "blue", 0, 0, 255 }, + { "blueviolet", 138, 43, 226 }, + { "brown", 165, 42, 42 }, + { "burlywood", 222, 184, 135 }, + { "cadetblue", 95, 158, 160 }, + { "chartreuse", 127, 255, 0 }, + { "chocolate", 210, 105, 30 }, + { "coral", 255, 127, 80 }, + { "cornflowerblue", 100, 149, 237 }, + { "cornsilk", 255, 248, 220 }, + { "crimson", 220, 20, 60 }, + { "cyan", 0, 255, 255 }, + { "darkblue", 0, 0, 139 }, + { "darkcyan", 0, 139, 139 }, + { "darkgoldenrod", 184, 134, 11 }, + { "darkgray", 169, 169, 169 }, + { "darkgreen", 0, 100, 0 }, + { "darkgrey", 169, 169, 169 }, + { "darkkhaki", 189, 183, 107 }, + { "darkmagenta", 139, 0, 139 }, + { "darkolivegreen", 85, 107, 47 }, + { "darkorange", 255, 140, 0 }, + { "darkorchid", 153, 50, 204 }, + { "darkred", 139, 0, 0 }, + { "darksalmon", 233, 150, 122 }, + { "darkseagreen", 143, 188, 143 }, + { "darkslateblue", 72, 61, 139 }, + { "darkslategray", 47, 79, 79 }, + { "darkslategrey", 47, 79, 79 }, + { "darkturquoise", 0, 206, 209 }, + { "darkviolet", 148, 0, 211 }, + { "deeppink", 255, 20, 147 }, + { "deepskyblue", 0, 191, 255 }, + { "dimgray", 105, 105, 105 }, + { "dimgrey", 105, 105, 105 }, + { "dodgerblue", 30, 144, 255 }, + { "firebrick", 178, 34, 34 }, + { "floralwhite", 255, 250, 240 }, + { "forestgreen", 34, 139, 34 }, + { "fuchsia", 255, 0, 255 }, + { "gainsboro", 220, 220, 220 }, + { "ghostwhite", 248, 248, 255 }, + { "gold", 255, 215, 0 }, + { "goldenrod", 218, 165, 32 }, + { "gray", 128, 128, 128 }, + { "green", 0, 128, 0 }, + { "greenyellow", 173, 255, 47 }, + { "grey", 128, 128, 128 }, + { "honeydew", 240, 255, 240 }, + { "hotpink", 255, 105, 180 }, + { "indianred", 205, 92, 92 }, + { "indigo", 75, 0, 130 }, + { "ivory", 255, 255, 240 }, + { "khaki", 240, 230, 140 }, + { "lavender", 230, 230, 250 }, + { "lavenderblush", 255, 240, 245 }, + { "lawngreen", 124, 252, 0 }, + { "lemonchiffon", 255, 250, 205 }, + { "lightblue", 173, 216, 230 }, + { "lightcoral", 240, 128, 128 }, + { "lightcyan", 224, 255, 255 }, + { "lightgoldenrodyellow", 250, 250, 210 }, + { "lightgray", 211, 211, 211 }, + { "lightgreen", 144, 238, 144 }, + { "lightgrey", 211, 211, 211 }, + { "lightpink", 255, 182, 193 }, + { "lightsalmon", 255, 160, 122 }, + { "lightseagreen", 32, 178, 170 }, + { "lightskyblue", 135, 206, 250 }, + { "lightslategray", 119, 136, 153 }, + { "lightslategrey", 119, 136, 153 }, + { "lightsteelblue", 176, 196, 222 }, + { "lightyellow", 255, 255, 224 }, + { "lime", 0, 255, 0 }, + { "limegreen", 50, 205, 50 }, + { "linen", 250, 240, 230 }, + { "magenta", 255, 0, 255 }, + { "maroon", 128, 0, 0 }, + { "mediumaquamarine", 102, 205, 170 }, + { "mediumblue", 0, 0, 205 }, + { "mediumorchid", 186, 85, 211 }, + { "mediumpurple", 147, 112, 219 }, + { "mediumseagreen", 60, 179, 113 }, + { "mediumslateblue", 123, 104, 238 }, + { "mediumspringgreen", 0, 250, 154 }, + { "mediumturquoise", 72, 209, 204 }, + { "mediumvioletred", 199, 21, 133 }, + { "midnightblue", 25, 25, 112 }, + { "mintcream", 245, 255, 250 }, + { "mistyrose", 255, 228, 225 }, + { "moccasin", 255, 228, 181 }, + { "navajowhite", 255, 222, 173 }, + { "navy", 0, 0, 128 }, + { "navyblue", 0, 0, 128 }, + { "oldlace", 253, 245, 230 }, + { "olive", 128, 128, 0 }, + { "olivedrab", 107, 142, 35 }, + { "orange", 255, 165, 0 }, + { "orangered", 255, 69, 0 }, + { "orchid", 218, 112, 214 }, + { "palegoldenrod", 238, 232, 170 }, + { "palegreen", 152, 251, 152 }, + { "paleturquoise", 175, 238, 238 }, + { "palevioletred", 219, 112, 147 }, + { "papayawhip", 255, 239, 213 }, + { "peachpuff", 255, 218, 185 }, + { "peru", 205, 133, 63 }, + { "pink", 255, 192, 203 }, + { "plum", 221, 160, 221 }, + { "powderblue", 176, 224, 230 }, + { "purple", 128, 0, 128 }, + { "red", 255, 0, 0 }, + { "rosybrown", 188, 143, 143 }, + { "royalblue", 65, 105, 225 }, + { "saddlebrown", 139, 69, 19 }, + { "salmon", 250, 128, 114 }, + { "sandybrown", 244, 164, 96 }, + { "seagreen", 46, 139, 87 }, + { "seashell", 255, 245, 238 }, + { "sienna", 160, 82, 45 }, + { "silver", 192, 192, 192 }, + { "skyblue", 135, 206, 235 }, + { "slateblue", 106, 90, 205 }, + { "slategray", 112, 128, 144 }, + { "slategrey", 112, 128, 144 }, + { "snow", 255, 250, 250 }, + { "springgreen", 0, 255, 127 }, + { "steelblue", 70, 130, 180 }, + { "tan", 210, 180, 140 }, + { "teal", 0, 128, 128 }, + { "thistle", 216, 191, 216 }, + { "tomato", 255, 99, 71 }, + { "turquoise", 64, 224, 208 }, + { "violet", 238, 130, 238 }, + { "wheat", 245, 222, 179 }, + { "white", 255, 255, 255 }, + { "whitesmoke", 245, 245, 245 }, + { "yellow", 255, 255, 0 }, + { "yellowgreen", 154, 205, 50 }, { NULL, 0, 0, 0 } }; diff --git a/src/bacnet/basic/sys/color_rgb.h b/src/bacnet/basic/sys/color_rgb.h index 7321a2b1..f57942d5 100644 --- a/src/bacnet/basic/sys/color_rgb.h +++ b/src/bacnet/basic/sys/color_rgb.h @@ -16,36 +16,54 @@ extern "C" { #endif /* __cplusplus */ +BACNET_STACK_EXPORT +void color_rgb_to_xy( + uint8_t r, + uint8_t g, + uint8_t b, + float *x_coordinate, + float *y_coordinate, + uint8_t *brightness); +BACNET_STACK_EXPORT +void color_rgb_from_xy( + uint8_t *red, + uint8_t *green, + uint8_t *blue, + float x_coordinate, + float y_coordinate, + uint8_t brightness); BACNET_STACK_EXPORT -void color_rgb_to_xy(uint8_t r, uint8_t g, uint8_t b, - float *x_coordinate, float *y_coordinate, uint8_t *brightness); +void color_rgb_to_xy_gamma( + uint8_t r, + uint8_t g, + uint8_t b, + float *x_coordinate, + float *y_coordinate, + uint8_t *brightness); BACNET_STACK_EXPORT -void color_rgb_from_xy(uint8_t *red, uint8_t *green, uint8_t *blue, - float x_coordinate, float y_coordinate, uint8_t brightness); +void color_rgb_from_xy_gamma( + uint8_t *red, + uint8_t *green, + uint8_t *blue, + float x_coordinate, + float y_coordinate, + uint8_t brightness); BACNET_STACK_EXPORT -void color_rgb_to_xy_gamma(uint8_t r, uint8_t g, uint8_t b, - float *x_coordinate, float *y_coordinate, uint8_t *brightness); +const char *color_rgb_to_ascii(uint8_t red, uint8_t green, uint8_t blue); BACNET_STACK_EXPORT -void color_rgb_from_xy_gamma(uint8_t *red, uint8_t *green, uint8_t *blue, - float x_coordinate, float y_coordinate, uint8_t brightness); - +unsigned color_rgb_from_ascii( + uint8_t *red, uint8_t *green, uint8_t *blue, const char *name); BACNET_STACK_EXPORT -const char * color_rgb_to_ascii(uint8_t red, uint8_t green, uint8_t blue); -BACNET_STACK_EXPORT -unsigned color_rgb_from_ascii(uint8_t *red, uint8_t *green, uint8_t *blue, - const char *name); -BACNET_STACK_EXPORT -const char *color_rgb_from_index(unsigned target_index, uint8_t *red, - uint8_t *green, uint8_t *blue); +const char *color_rgb_from_index( + unsigned target_index, uint8_t *red, uint8_t *green, uint8_t *blue); BACNET_STACK_EXPORT unsigned color_rgb_count(void); BACNET_STACK_EXPORT void color_rgb_from_temperature( - uint16_t temperature_kelvin, - uint8_t *r, uint8_t *g, uint8_t *b); + uint16_t temperature_kelvin, uint8_t *r, uint8_t *g, uint8_t *b); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/days.c b/src/bacnet/basic/sys/days.c index a5ccf5eb..afe6d6a2 100644 --- a/src/bacnet/basic/sys/days.c +++ b/src/bacnet/basic/sys/days.c @@ -37,8 +37,9 @@ uint8_t days_per_month(uint16_t year, uint8_t month) { /* note: start with a zero in the first element to save us from a month - 1 calculation in the lookup */ - uint8_t month_days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, - 31 }; + uint8_t month_days[13] = { + 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 + }; if ((month == 2) && days_is_leap_year(year)) { return (29); @@ -146,7 +147,8 @@ void days_of_year_to_month_day( * @param day1 - day of month (1-31) * @return number of days apart, or 0 if same dates */ -uint32_t days_apart(uint16_t year1, +uint32_t days_apart( + uint16_t year1, uint8_t month1, uint8_t day1, uint16_t year2, @@ -197,8 +199,8 @@ uint32_t days_apart(uint16_t year1, * @param day - day of month (1-31) * @return number of days since epoch, or 0 if out of range */ -uint32_t days_since_epoch( - uint16_t epoch_year, uint16_t year, uint8_t month, uint8_t day) +uint32_t +days_since_epoch(uint16_t epoch_year, uint16_t year, uint8_t month, uint8_t day) { uint32_t days = 0; /* return value */ uint16_t yy = 0; /* year */ @@ -233,7 +235,8 @@ uint32_t days_since_epoch( * @param pDay - day of month (1-31) * @return nothing */ -void days_since_epoch_to_date(uint16_t epoch_year, +void days_since_epoch_to_date( + uint16_t epoch_year, uint32_t days, uint16_t *pYear, uint8_t *pMonth, diff --git a/src/bacnet/basic/sys/days.h b/src/bacnet/basic/sys/days.h index 876d40c1..1462f293 100644 --- a/src/bacnet/basic/sys/days.h +++ b/src/bacnet/basic/sys/days.h @@ -30,29 +30,26 @@ BACNET_STACK_EXPORT void days_of_year_to_month_day( uint32_t days, uint16_t year, uint8_t *pMonth, uint8_t *pDay); BACNET_STACK_EXPORT -uint32_t days_apart(uint16_t year1, +uint32_t days_apart( + uint16_t year1, uint8_t month1, uint8_t day1, uint16_t year2, uint8_t month2, uint8_t day2); BACNET_STACK_EXPORT -uint32_t days_since_epoch(uint16_t epoch_year, - uint16_t year, - uint8_t month, - uint8_t day); +uint32_t days_since_epoch( + uint16_t epoch_year, uint16_t year, uint8_t month, uint8_t day); BACNET_STACK_EXPORT void days_since_epoch_to_date( uint16_t epoch_year, uint32_t days, - uint16_t * pYear, - uint8_t * pMonth, - uint8_t * pDay); + uint16_t *pYear, + uint8_t *pMonth, + uint8_t *pDay); BACNET_STACK_EXPORT -bool days_date_is_valid(uint16_t year, - uint8_t month, - uint8_t day); +bool days_date_is_valid(uint16_t year, uint8_t month, uint8_t day); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/debug.c b/src/bacnet/basic/sys/debug.c index 2bd9969e..7f15d57a 100644 --- a/src/bacnet/basic/sys/debug.c +++ b/src/bacnet/basic/sys/debug.c @@ -85,12 +85,13 @@ void debug_printf_hex( uint32_t offset, const uint8_t *buffer, size_t buffer_length, - const char *format, ...) + const char *format, + ...) { #if DEBUG_ENABLED size_t i = 0; bool new_line = true; - char line[16+1] = {0}; + char line[16 + 1] = { 0 }; size_t remainder = 0; va_list ap; @@ -102,21 +103,21 @@ void debug_printf_hex( for (i = 0; i < buffer_length; i++) { if (new_line) { new_line = false; - printf("%08x ", (unsigned int)(offset+i)); - memset(line, '.', sizeof(line)-1); + printf("%08x ", (unsigned int)(offset + i)); + memset(line, '.', sizeof(line) - 1); } printf("%02x ", buffer[i]); if (isprint(buffer[i])) { - line[i%16] = buffer[i]; + line[i % 16] = buffer[i]; } - if ((i != 0) && (!((i+1)%16))) { + if ((i != 0) && (!((i + 1) % 16))) { printf(" %s\n", line); new_line = true; } } - remainder = buffer_length%16; + remainder = buffer_length % 16; if (remainder) { - for (i = 0; i < (16-remainder); i++) { + for (i = 0; i < (16 - remainder); i++) { printf(" "); } printf(" %s\n", line); @@ -187,7 +188,7 @@ int debug_fprintf(FILE *stream, const char *format, ...) * @param ... - variable arguments * @note This function is only available if * PRINT_ENABLED is non-zero -*/ + */ void debug_perror(const char *format, ...) { #if PRINT_ENABLED diff --git a/src/bacnet/basic/sys/debug.h b/src/bacnet/basic/sys/debug.h index 68d94044..f080728c 100644 --- a/src/bacnet/basic/sys/debug.h +++ b/src/bacnet/basic/sys/debug.h @@ -25,34 +25,24 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void debug_printf( - const char *format, - ...); - BACNET_STACK_EXPORT - int debug_aprintf( - const char *format, - ...); - BACNET_STACK_EXPORT - int debug_fprintf( - FILE *stream, - const char *format, - ...); - BACNET_STACK_EXPORT - void debug_perror( - const char *format, - ...); - BACNET_STACK_EXPORT - void debug_printf_hex( - uint32_t offset, - const uint8_t *buffer, - size_t buffer_length, - const char *format, ...); +BACNET_STACK_EXPORT +void debug_printf(const char *format, ...); +BACNET_STACK_EXPORT +int debug_aprintf(const char *format, ...); +BACNET_STACK_EXPORT +int debug_fprintf(FILE *stream, const char *format, ...); +BACNET_STACK_EXPORT +void debug_perror(const char *format, ...); +BACNET_STACK_EXPORT +void debug_printf_hex( + uint32_t offset, + const uint8_t *buffer, + size_t buffer_length, + const char *format, + ...); - BACNET_STACK_EXPORT - void debug_printf_disabled( - const char *format, - ...); +BACNET_STACK_EXPORT +void debug_printf_disabled(const char *format, ...); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/fifo.c b/src/bacnet/basic/sys/fifo.c index dff40c46..113d3265 100644 --- a/src/bacnet/basic/sys/fifo.c +++ b/src/bacnet/basic/sys/fifo.c @@ -150,7 +150,7 @@ uint8_t FIFO_Peek(FIFO_BUFFER const *b) * @param length [in] - number of bytes to peek from the FIFO * @return number of bytes peeked */ -unsigned FIFO_Peek_Ahead(FIFO_BUFFER const *b, uint8_t* buffer, unsigned length) +unsigned FIFO_Peek_Ahead(FIFO_BUFFER const *b, uint8_t *buffer, unsigned length) { unsigned count = 0; unsigned index; @@ -164,7 +164,7 @@ unsigned FIFO_Peek_Ahead(FIFO_BUFFER const *b, uint8_t* buffer, unsigned length) count = length; } tail = b->tail; - for(i = 0; i < count; i++) { + for (i = 0; i < count; i++) { index = tail % b->buffer_len; buffer[i] = b->buffer[index]; tail++; diff --git a/src/bacnet/basic/sys/fifo.h b/src/bacnet/basic/sys/fifo.h index c2a487c0..2af089d7 100644 --- a/src/bacnet/basic/sys/fifo.h +++ b/src/bacnet/basic/sys/fifo.h @@ -4,7 +4,7 @@ * @author Steve Karg * @date 2004 * @copyright SPDX-License-Identifier: MIT -*/ + */ #ifndef BACNET_SYS_FIFO_H #define BACNET_SYS_FIFO_H #include @@ -13,33 +13,33 @@ #include "bacnet/bacdef.h" /** -* FIFO buffer power of two alignment macro -* -* @{ -*/ + * FIFO buffer power of two alignment macro + * + * @{ + */ #ifndef NEXT_POWER_OF_2 -#define B2(x) ( (x) | ( (x) >> 1) ) -#define B4(x) ( B2(x) | ( B2(x) >> 2) ) -#define B8(x) ( B4(x) | ( B4(x) >> 4) ) -#define B16(x) ( B8(x) | ( B8(x) >> 8) ) -#define B32(x) (B16(x) | (B16(x) >>16) ) +#define B2(x) ((x) | ((x) >> 1)) +#define B4(x) (B2(x) | (B2(x) >> 2)) +#define B8(x) (B4(x) | (B4(x) >> 4)) +#define B16(x) (B8(x) | (B8(x) >> 8)) +#define B32(x) (B16(x) | (B16(x) >> 16)) #define NEXT_POWER_OF_2(x) (B32((x)-1) + 1) #endif /** @} */ /** -* FIFO data store structure -* -* @{ -*/ -#define FIFO_DATA_STORE(b,c) uint8_t b[NEXT_POWER_OF_2(c)] + * FIFO data store structure + * + * @{ + */ +#define FIFO_DATA_STORE(b, c) uint8_t b[NEXT_POWER_OF_2(c)] /** @} */ /** -* FIFO data structure -* -* @{ -*/ + * FIFO data structure + * + * @{ + */ struct fifo_buffer_t { /** first byte of data */ volatile unsigned head; @@ -57,64 +57,43 @@ typedef struct fifo_buffer_t FIFO_BUFFER; extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - unsigned FIFO_Count( - FIFO_BUFFER const *b); +BACNET_STACK_EXPORT +unsigned FIFO_Count(FIFO_BUFFER const *b); - BACNET_STACK_EXPORT - bool FIFO_Full( - FIFO_BUFFER const *b); +BACNET_STACK_EXPORT +bool FIFO_Full(FIFO_BUFFER const *b); - BACNET_STACK_EXPORT - bool FIFO_Available( - FIFO_BUFFER const *b, - unsigned count); +BACNET_STACK_EXPORT +bool FIFO_Available(FIFO_BUFFER const *b, unsigned count); - BACNET_STACK_EXPORT - bool FIFO_Empty( - FIFO_BUFFER const *b); +BACNET_STACK_EXPORT +bool FIFO_Empty(FIFO_BUFFER const *b); - BACNET_STACK_EXPORT - uint8_t FIFO_Peek( - FIFO_BUFFER const *b); +BACNET_STACK_EXPORT +uint8_t FIFO_Peek(FIFO_BUFFER const *b); - BACNET_STACK_EXPORT - unsigned FIFO_Peek_Ahead( - FIFO_BUFFER const *b, - uint8_t* data_bytes, - unsigned length); +BACNET_STACK_EXPORT +unsigned +FIFO_Peek_Ahead(FIFO_BUFFER const *b, uint8_t *data_bytes, unsigned length); - BACNET_STACK_EXPORT - uint8_t FIFO_Get( - FIFO_BUFFER * b); +BACNET_STACK_EXPORT +uint8_t FIFO_Get(FIFO_BUFFER *b); - BACNET_STACK_EXPORT - unsigned FIFO_Pull( - FIFO_BUFFER * b, - uint8_t * data_bytes, - unsigned length); +BACNET_STACK_EXPORT +unsigned FIFO_Pull(FIFO_BUFFER *b, uint8_t *data_bytes, unsigned length); - BACNET_STACK_EXPORT - bool FIFO_Put( - FIFO_BUFFER * b, - uint8_t data_byte); +BACNET_STACK_EXPORT +bool FIFO_Put(FIFO_BUFFER *b, uint8_t data_byte); - BACNET_STACK_EXPORT - bool FIFO_Add( - FIFO_BUFFER * b, - const uint8_t * data_bytes, - unsigned count); +BACNET_STACK_EXPORT +bool FIFO_Add(FIFO_BUFFER *b, const uint8_t *data_bytes, unsigned count); - BACNET_STACK_EXPORT - void FIFO_Flush( - FIFO_BUFFER * b); +BACNET_STACK_EXPORT +void FIFO_Flush(FIFO_BUFFER *b); /* note: buffer_len must be a power of two */ - BACNET_STACK_EXPORT - void FIFO_Init( - FIFO_BUFFER * b, - volatile uint8_t * buffer, - unsigned buffer_len); +BACNET_STACK_EXPORT +void FIFO_Init(FIFO_BUFFER *b, volatile uint8_t *buffer, unsigned buffer_len); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/filename.h b/src/bacnet/basic/sys/filename.h index 0b3265d8..a2cf348e 100644 --- a/src/bacnet/basic/sys/filename.h +++ b/src/bacnet/basic/sys/filename.h @@ -4,7 +4,7 @@ * @author Steve Karg * @date 2007 * @copyright SPDX-License-Identifier: MIT -*/ + */ #ifndef BACNET_SYS_FILENAME_H #define BACNET_SYS_FILENAME_H /* BACnet Stack defines - first */ @@ -14,9 +14,8 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - const char *filename_remove_path( - const char *filename_in); +BACNET_STACK_EXPORT +const char *filename_remove_path(const char *filename_in); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/key.h b/src/bacnet/basic/sys/key.h index 998da000..41957d61 100644 --- a/src/bacnet/basic/sys/key.h +++ b/src/bacnet/basic/sys/key.h @@ -5,7 +5,7 @@ * @author Steve Karg * @date 2004 * @copyright SPDX-License-Identifier: MIT -*/ + */ #ifndef BACNET_SYS_KEY_H #define BACNET_SYS_KEY_H #include @@ -16,19 +16,20 @@ typedef uint32_t KEY; /* assuming a 32 bit KEY */ -#define KEY_TYPE_OFFSET 22 /* bits - for BACnet */ -#define KEY_TYPE_MASK 0x000003FFL -#define KEY_ID_MASK 0x003FFFFFL -#define KEY_ID_MAX (KEY_ID_MASK + 1L) -#define KEY_TYPE_MAX (KEY_TYPE_MASK + 1L) +#define KEY_TYPE_OFFSET 22 /* bits - for BACnet */ +#define KEY_TYPE_MASK 0x000003FFL +#define KEY_ID_MASK 0x003FFFFFL +#define KEY_ID_MAX (KEY_ID_MASK + 1L) +#define KEY_TYPE_MAX (KEY_TYPE_MASK + 1L) #define KEY_LAST(key) ((key & KEY_ID_MASK) == KEY_ID_MAX) -#define KEY_ENCODE(type,id) ( ((unsigned int)\ -((unsigned int)(type) & KEY_TYPE_MASK) << KEY_TYPE_OFFSET) |\ - ((unsigned int)(id) & KEY_ID_MASK) ) +#define KEY_ENCODE(type, id) \ + (((unsigned int)((unsigned int)(type) & KEY_TYPE_MASK) \ + << KEY_TYPE_OFFSET) | \ + ((unsigned int)(id) & KEY_ID_MASK)) -#define KEY_DECODE_TYPE(key) ((int)(((unsigned int)(key) >> KEY_TYPE_OFFSET)\ - & KEY_TYPE_MASK)) +#define KEY_DECODE_TYPE(key) \ + ((int)(((unsigned int)(key) >> KEY_TYPE_OFFSET) & KEY_TYPE_MASK)) #define KEY_DECODE_ID(key) ((int)((unsigned int)(key) & KEY_ID_MASK)) diff --git a/src/bacnet/basic/sys/keylist.h b/src/bacnet/basic/sys/keylist.h index db189b18..fbf546b3 100644 --- a/src/bacnet/basic/sys/keylist.h +++ b/src/bacnet/basic/sys/keylist.h @@ -18,14 +18,14 @@ /* list data and datatype */ struct Keylist_Node { - KEY key; /* unique number that is sorted in the list */ + KEY key; /* unique number that is sorted in the list */ void *data; /* pointer to some data that is stored */ }; typedef struct Keylist { - struct Keylist_Node **array; /* array of nodes */ - int count; /* number of nodes in this list - more efficient than loop */ - int size; /* number of available nodes on this list - can grow or shrink */ + struct Keylist_Node **array; /* array of nodes */ + int count; /* number of nodes in this list - more efficient than loop */ + int size; /* number of available nodes on this list - can grow or shrink */ } KEYLIST_TYPE; typedef KEYLIST_TYPE *OS_Keylist; @@ -34,90 +34,65 @@ extern "C" { #endif /* __cplusplus */ /* returns head of the list or NULL on failure. */ - BACNET_STACK_EXPORT - OS_Keylist Keylist_Create( - void); +BACNET_STACK_EXPORT +OS_Keylist Keylist_Create(void); /* delete specified list */ /* note: you should pop all the nodes off the list first. */ - BACNET_STACK_EXPORT - void Keylist_Delete( - OS_Keylist list); +BACNET_STACK_EXPORT +void Keylist_Delete(OS_Keylist list); /* inserts a node into its sorted position */ /* returns the index where it was added */ - BACNET_STACK_EXPORT - int Keylist_Data_Add( - OS_Keylist list, - KEY key, - void *data); +BACNET_STACK_EXPORT +int Keylist_Data_Add(OS_Keylist list, KEY key, void *data); /* deletes a node specified by its key */ - BACNET_STACK_EXPORT +BACNET_STACK_EXPORT /* returns the data from the node */ - void *Keylist_Data_Delete( - OS_Keylist list, - KEY key); +void *Keylist_Data_Delete(OS_Keylist list, KEY key); /* deletes a node specified by its index */ - BACNET_STACK_EXPORT +BACNET_STACK_EXPORT /* returns the data from the node */ - void *Keylist_Data_Delete_By_Index( - OS_Keylist list, - int index); +void *Keylist_Data_Delete_By_Index(OS_Keylist list, int index); /* returns the data from last node, and removes it from the list */ - BACNET_STACK_EXPORT - void *Keylist_Data_Pop( - OS_Keylist list); +BACNET_STACK_EXPORT +void *Keylist_Data_Pop(OS_Keylist list); /* removes and frees all data from the list */ - BACNET_STACK_EXPORT - void Keylist_Data_Free( - OS_Keylist list); +BACNET_STACK_EXPORT +void Keylist_Data_Free(OS_Keylist list); /* returns the data from the node specified by key */ - BACNET_STACK_EXPORT - void *Keylist_Data( - OS_Keylist list, - KEY key); +BACNET_STACK_EXPORT +void *Keylist_Data(OS_Keylist list, KEY key); /* returns the index from the node specified by key */ - BACNET_STACK_EXPORT - int Keylist_Index( - OS_Keylist list, - KEY key); +BACNET_STACK_EXPORT +int Keylist_Index(OS_Keylist list, KEY key); /* returns the data specified by index */ - BACNET_STACK_EXPORT - void *Keylist_Data_Index( - OS_Keylist list, - int index); +BACNET_STACK_EXPORT +void *Keylist_Data_Index(OS_Keylist list, int index); /* returns the node key specified by the index */ - BACNET_STACK_DEPRECATED("Use Keylist_Index_Key() instead") - BACNET_STACK_EXPORT - KEY Keylist_Key( - OS_Keylist list, - int index); +BACNET_STACK_DEPRECATED("Use Keylist_Index_Key() instead") +BACNET_STACK_EXPORT +KEY Keylist_Key(OS_Keylist list, int index); /* returns the node key specified by the index */ - BACNET_STACK_EXPORT - bool Keylist_Index_Key( - OS_Keylist list, - int index, - KEY *pKey); +BACNET_STACK_EXPORT +bool Keylist_Index_Key(OS_Keylist list, int index, KEY *pKey); /* returns the next empty key from the list */ - BACNET_STACK_EXPORT - KEY Keylist_Next_Empty_Key( - OS_Keylist list, - KEY key); +BACNET_STACK_EXPORT +KEY Keylist_Next_Empty_Key(OS_Keylist list, KEY key); /* returns the number of items in the list */ - BACNET_STACK_EXPORT - int Keylist_Count( - OS_Keylist list); +BACNET_STACK_EXPORT +int Keylist_Count(OS_Keylist list); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/linear.c b/src/bacnet/basic/sys/linear.c index a8e5cdcc..c7576cbf 100644 --- a/src/bacnet/basic/sys/linear.c +++ b/src/bacnet/basic/sys/linear.c @@ -1,33 +1,29 @@ /** -* @file -* @brief Performs linear interpolation using single precision floating -* point math or integer math, or a mixture of both. Linear interpolation -* is a method of constructing new data points within the range of a discrete -* set of known data points. -* @author Steve Karg -* @date 2011 -* @copyright SPDX-License-Identifier: MIT -*/ + * @file + * @brief Performs linear interpolation using single precision floating + * point math or integer math, or a mixture of both. Linear interpolation + * is a method of constructing new data points within the range of a discrete + * set of known data points. + * @author Steve Karg + * @date 2011 + * @copyright SPDX-License-Identifier: MIT + */ #include #include #include "bacnet/basic/sys/linear.h" /** -* Linearly Interpolate the values between y1 and y3 based on x. -* -* @param x1 - first x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param x2 - intermediate x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param x3 - last x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param y1 - first y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 -* @param y3 - last y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 -* @return y2 - an intermediate y value y1 <= y2 <= y3 or y1 >= y2 >= y3 -* and the y value is linearly proportional to x1, x2, and x2. -*/ -float linear_interpolate(float x1, - float x2, - float x3, - float y1, - float y3) + * Linearly Interpolate the values between y1 and y3 based on x. + * + * @param x1 - first x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param x2 - intermediate x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param x3 - last x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param y1 - first y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 + * @param y3 - last y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 + * @return y2 - an intermediate y value y1 <= y2 <= y3 or y1 >= y2 >= y3 + * and the y value is linearly proportional to x1, x2, and x2. + */ +float linear_interpolate(float x1, float x2, float x3, float y1, float y3) { float y2; @@ -41,22 +37,18 @@ float linear_interpolate(float x1, } /** -* Linearly Interpolate the values between y1 and y3 based on x -* and round up the result. Useful for integer interpolation. -* -* @param x1 - first x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param x2 - intermediate x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param x3 - last x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param y1 - first y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 -* @param y3 - last y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 -* @return y2 - an intermediate y value y1 <= y2 <= y3 or y1 >= y2 >= y3 -* and the y value is linearly proportional to x1, x2, and x2. -*/ -float linear_interpolate_round(float x1, - float x2, - float x3, - float y1, - float y3) + * Linearly Interpolate the values between y1 and y3 based on x + * and round up the result. Useful for integer interpolation. + * + * @param x1 - first x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param x2 - intermediate x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param x3 - last x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param y1 - first y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 + * @param y3 - last y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 + * @return y2 - an intermediate y value y1 <= y2 <= y3 or y1 >= y2 >= y3 + * and the y value is linearly proportional to x1, x2, and x2. + */ +float linear_interpolate_round(float x1, float x2, float x3, float y1, float y3) { float y2; @@ -72,22 +64,18 @@ float linear_interpolate_round(float x1, } /** -* Linearly Interpolate the values between y1 and y3 based on x -* using integer math. -* -* @param x1 - first x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param x2 - intermediate x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param x3 - last x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 -* @param y1 - first y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 -* @param y3 - last y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 -* @return y2 - an intermediate y value y1 <= y2 <= y3 or y1 >= y2 >= y3 -* and the y value is linearly proportional to x1, x2, and x2. -*/ -long linear_interpolate_int(long x1, - long x2, - long x3, - long y1, - long y3) + * Linearly Interpolate the values between y1 and y3 based on x + * using integer math. + * + * @param x1 - first x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param x2 - intermediate x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param x3 - last x value, where x1 <= x2 <= x3 or x1 >= x2 >= x3 + * @param y1 - first y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 + * @param y3 - last y value, where y1 <= y2 <= y3 or y1 >= y2 >= y3 + * @return y2 - an intermediate y value y1 <= y2 <= y3 or y1 >= y2 >= y3 + * and the y value is linearly proportional to x1, x2, and x2. + */ +long linear_interpolate_int(long x1, long x2, long x3, long y1, long y3) { long y2; diff --git a/src/bacnet/basic/sys/linear.h b/src/bacnet/basic/sys/linear.h index 73370389..57c4b2e4 100644 --- a/src/bacnet/basic/sys/linear.h +++ b/src/bacnet/basic/sys/linear.h @@ -1,10 +1,10 @@ /** -* @file -* @brief API for linear interpolation library -* @author Steve Karg -* @date 2011 -* @copyright SPDX-License-Identifier: MIT -*/ + * @file + * @brief API for linear interpolation library + * @author Steve Karg + * @date 2011 + * @copyright SPDX-License-Identifier: MIT + */ #ifndef BACNET_SYS_LINEAR_H #define BACNET_SYS_LINEAR_H @@ -15,23 +15,12 @@ extern "C" { #endif /* __cplusplus */ - float linear_interpolate(float x1, - float x2, - float x3, - float y1, - float y3); +float linear_interpolate(float x1, float x2, float x3, float y1, float y3); - float linear_interpolate_round(float x1, - float x2, - float x3, - float y1, - float y3); +float linear_interpolate_round( + float x1, float x2, float x3, float y1, float y3); - long linear_interpolate_int(long x1, - long x2, - long x3, - long y1, - long y3); +long linear_interpolate_int(long x1, long x2, long x3, long y1, long y3); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/mstimer.c b/src/bacnet/basic/sys/mstimer.c index 258ec417..7ad2f0f3 100644 --- a/src/bacnet/basic/sys/mstimer.c +++ b/src/bacnet/basic/sys/mstimer.c @@ -49,7 +49,8 @@ void mstimer_callback_handler(void) * @param callback - pointer to a #timer_callback_function function * @param milliseconds - how often to call the function */ -void mstimer_callback(struct mstimer_callback_data_t *new_cb, +void mstimer_callback( + struct mstimer_callback_data_t *new_cb, mstimer_callback_function callback, unsigned long milliseconds) { @@ -136,7 +137,8 @@ void mstimer_restart(struct mstimer *t) int mstimer_expired(const struct mstimer *t) { if (t->interval) { - return ((unsigned long)((mstimer_now()) - (t->start + t->interval)) < + return ( + (unsigned long)((mstimer_now()) - (t->start + t->interval)) < ((unsigned long)(~((unsigned long)0)) >> 1)); } diff --git a/src/bacnet/basic/sys/mstimer.h b/src/bacnet/basic/sys/mstimer.h index a8285c8d..4808d323 100644 --- a/src/bacnet/basic/sys/mstimer.h +++ b/src/bacnet/basic/sys/mstimer.h @@ -20,12 +20,12 @@ * \hideinitializer */ struct mstimer { - unsigned long start; - unsigned long interval; + unsigned long start; + unsigned long interval; }; /* optional callback function form */ -typedef void (*mstimer_callback_function) (void); +typedef void (*mstimer_callback_function)(void); /* optional callback data structure */ struct mstimer_callback_data_t; struct mstimer_callback_data_t { diff --git a/src/bacnet/basic/sys/platform.h b/src/bacnet/basic/sys/platform.h index ea680ce7..075e0241 100644 --- a/src/bacnet/basic/sys/platform.h +++ b/src/bacnet/basic/sys/platform.h @@ -23,11 +23,11 @@ #endif #ifndef isgreaterequal -#define isgreaterequal(x, y) ((x) > (y) || !islessgreater((x),(y))) +#define isgreaterequal(x, y) ((x) > (y) || !islessgreater((x), (y))) #endif #ifndef islessequal -#define islessequal(x, y) ((x) < (y) || !islessgreater((x),(y))) +#define islessequal(x, y) ((x) < (y) || !islessgreater((x), (y))) #endif #ifndef ARRAY_SIZE @@ -61,15 +61,17 @@ #define snprintf c99_snprintf #define vsnprintf c99_vsnprintf -__inline int c99_vsnprintf( - char *outBuf, size_t size, const char *format, va_list ap) +__inline int +c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap) { int count = -1; - if (size != 0) + if (size != 0) { count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); - if (count == -1) + } + if (count == -1) { count = _vscprintf(format, ap); + } return count; } diff --git a/src/bacnet/basic/sys/ringbuf.c b/src/bacnet/basic/sys/ringbuf.c index 26d19705..13a55fde 100644 --- a/src/bacnet/basic/sys/ringbuf.c +++ b/src/bacnet/basic/sys/ringbuf.c @@ -150,8 +150,8 @@ volatile void *Ringbuf_Peek(RING_BUFFER const *b) * @param data_element - find the next element from this one * @return pointer to the data, or NULL if nothing in the list */ -volatile void *Ringbuf_Peek_Next( - RING_BUFFER const *b, const uint8_t *data_element) +volatile void * +Ringbuf_Peek_Next(RING_BUFFER const *b, const uint8_t *data_element) { unsigned index; /* list index */ volatile uint8_t *this_element; @@ -398,7 +398,8 @@ static bool isPowerOfTwo(unsigned int x) * * @return true if ring buffer was initialized */ -bool Ringbuf_Init(RING_BUFFER *b, +bool Ringbuf_Init( + RING_BUFFER *b, volatile uint8_t *buffer, unsigned element_size, unsigned element_count) diff --git a/src/bacnet/basic/sys/ringbuf.h b/src/bacnet/basic/sys/ringbuf.h index d579cee6..d163210d 100644 --- a/src/bacnet/basic/sys/ringbuf.h +++ b/src/bacnet/basic/sys/ringbuf.h @@ -14,10 +14,10 @@ #include "bacnet/bacdef.h" /** -* ring buffer power of two alignment macro -* -* @{ -*/ + * ring buffer power of two alignment macro + * + * @{ + */ #ifndef NEXT_POWER_OF_2 /* clang-format off */ #define B2(x) ( (x) | ( (x) >> 1) ) @@ -31,10 +31,10 @@ /** @} */ /** -* ring buffer data structure -* -* @{ -*/ + * ring buffer data structure + * + * @{ + */ struct ring_buffer_t { /** block of memory or array of data */ volatile uint8_t *buffer; @@ -56,50 +56,46 @@ typedef struct ring_buffer_t RING_BUFFER; extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - unsigned Ringbuf_Count(RING_BUFFER const *b); - BACNET_STACK_EXPORT - unsigned Ringbuf_Depth(RING_BUFFER const *b); - BACNET_STACK_EXPORT - unsigned Ringbuf_Depth_Reset(RING_BUFFER *b); - BACNET_STACK_EXPORT - unsigned Ringbuf_Size(RING_BUFFER const *b); - BACNET_STACK_EXPORT - bool Ringbuf_Full(RING_BUFFER const *b); - BACNET_STACK_EXPORT - bool Ringbuf_Empty(RING_BUFFER const *b); - /* tail */ - BACNET_STACK_EXPORT - volatile void *Ringbuf_Peek(RING_BUFFER const *b); - BACNET_STACK_EXPORT - bool Ringbuf_Pop(RING_BUFFER * b, - uint8_t * data_element); - BACNET_STACK_EXPORT - bool Ringbuf_Pop_Element(RING_BUFFER * b, - const uint8_t * this_element, - uint8_t * data_element); - BACNET_STACK_EXPORT - bool Ringbuf_Put_Front(RING_BUFFER * b, - const uint8_t * data_element); - /* head */ - BACNET_STACK_EXPORT - bool Ringbuf_Put(RING_BUFFER * b, - const uint8_t * data_element); - /* pair of functions to use head memory directly */ - BACNET_STACK_EXPORT - volatile void *Ringbuf_Data_Peek(RING_BUFFER * b); - BACNET_STACK_EXPORT - volatile void *Ringbuf_Peek_Next(RING_BUFFER const *b, - const uint8_t * data_element); - BACNET_STACK_EXPORT - bool Ringbuf_Data_Put( - RING_BUFFER * b, const volatile uint8_t *data_element); - /* Note: element_count must be a power of two */ - BACNET_STACK_EXPORT - bool Ringbuf_Init(RING_BUFFER * b, - volatile uint8_t * buffer, - unsigned element_size, - unsigned element_count); +BACNET_STACK_EXPORT +unsigned Ringbuf_Count(RING_BUFFER const *b); +BACNET_STACK_EXPORT +unsigned Ringbuf_Depth(RING_BUFFER const *b); +BACNET_STACK_EXPORT +unsigned Ringbuf_Depth_Reset(RING_BUFFER *b); +BACNET_STACK_EXPORT +unsigned Ringbuf_Size(RING_BUFFER const *b); +BACNET_STACK_EXPORT +bool Ringbuf_Full(RING_BUFFER const *b); +BACNET_STACK_EXPORT +bool Ringbuf_Empty(RING_BUFFER const *b); +/* tail */ +BACNET_STACK_EXPORT +volatile void *Ringbuf_Peek(RING_BUFFER const *b); +BACNET_STACK_EXPORT +bool Ringbuf_Pop(RING_BUFFER *b, uint8_t *data_element); +BACNET_STACK_EXPORT +bool Ringbuf_Pop_Element( + RING_BUFFER *b, const uint8_t *this_element, uint8_t *data_element); +BACNET_STACK_EXPORT +bool Ringbuf_Put_Front(RING_BUFFER *b, const uint8_t *data_element); +/* head */ +BACNET_STACK_EXPORT +bool Ringbuf_Put(RING_BUFFER *b, const uint8_t *data_element); +/* pair of functions to use head memory directly */ +BACNET_STACK_EXPORT +volatile void *Ringbuf_Data_Peek(RING_BUFFER *b); +BACNET_STACK_EXPORT +volatile void * +Ringbuf_Peek_Next(RING_BUFFER const *b, const uint8_t *data_element); +BACNET_STACK_EXPORT +bool Ringbuf_Data_Put(RING_BUFFER *b, const volatile uint8_t *data_element); +/* Note: element_count must be a power of two */ +BACNET_STACK_EXPORT +bool Ringbuf_Init( + RING_BUFFER *b, + volatile uint8_t *buffer, + unsigned element_size, + unsigned element_count); #ifdef __cplusplus } diff --git a/src/bacnet/basic/sys/sbuf.c b/src/bacnet/basic/sys/sbuf.c index fc5f6a20..016c5779 100644 --- a/src/bacnet/basic/sys/sbuf.c +++ b/src/bacnet/basic/sys/sbuf.c @@ -10,7 +10,8 @@ #include #include "bacnet/basic/sys/sbuf.h" -void sbuf_init(STATIC_BUFFER *b, /* static buffer structure */ +void sbuf_init( + STATIC_BUFFER *b, /* static buffer structure */ char *data, /* data block */ unsigned size) { /* actual size, in bytes, of the data block or array of data */ @@ -45,7 +46,8 @@ unsigned sbuf_count(STATIC_BUFFER const *b) } /* returns true if successful, false if not enough room to append data */ -bool sbuf_put(STATIC_BUFFER *b, /* static buffer structure */ +bool sbuf_put( + STATIC_BUFFER *b, /* static buffer structure */ unsigned offset, /* where to start */ const char *data, /* data to place in buffer */ unsigned data_size) @@ -69,7 +71,8 @@ bool sbuf_put(STATIC_BUFFER *b, /* static buffer structure */ } /* returns true if successful, false if not enough room to append data */ -bool sbuf_append(STATIC_BUFFER *b, /* static buffer structure */ +bool sbuf_append( + STATIC_BUFFER *b, /* static buffer structure */ const char *data, /* data to place in buffer */ unsigned data_size) { /* how many bytes to add */ @@ -83,7 +86,8 @@ bool sbuf_append(STATIC_BUFFER *b, /* static buffer structure */ } /* returns true if successful, false if not enough room to append data */ -bool sbuf_truncate(STATIC_BUFFER *b, /* static buffer structure */ +bool sbuf_truncate( + STATIC_BUFFER *b, /* static buffer structure */ unsigned count) { /* total number of bytes in to remove */ bool status = false; /* return value */ diff --git a/src/bacnet/basic/sys/sbuf.h b/src/bacnet/basic/sys/sbuf.h index c0ff58d9..c8a0db50 100644 --- a/src/bacnet/basic/sys/sbuf.h +++ b/src/bacnet/basic/sys/sbuf.h @@ -14,8 +14,8 @@ struct static_buffer_t { char *data; /* block of memory or array of data */ - unsigned size; /* actual size, in bytes, of the block of data */ - unsigned count; /* number of bytes in use */ + unsigned size; /* actual size, in bytes, of the block of data */ + unsigned count; /* number of bytes in use */ }; typedef struct static_buffer_t STATIC_BUFFER; @@ -23,46 +23,43 @@ typedef struct static_buffer_t STATIC_BUFFER; extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void sbuf_init( - STATIC_BUFFER * b, /* static buffer structure */ - char *data, /* data block */ - unsigned size); /* actual size, in bytes, of the data block or array of data */ +BACNET_STACK_EXPORT +void sbuf_init( + STATIC_BUFFER *b, /* static buffer structure */ + char *data, /* data block */ + unsigned + size); /* actual size, in bytes, of the data block or array of data */ - /* returns true if size==0, false if size > 0 */ - BACNET_STACK_EXPORT - bool sbuf_empty( - STATIC_BUFFER const *b); - /* returns the data block, or NULL if not initialized */ - BACNET_STACK_EXPORT - char *sbuf_data( - STATIC_BUFFER const *b); - /* returns the max size of the data block */ - BACNET_STACK_EXPORT - unsigned sbuf_size( - STATIC_BUFFER const *b); - /* returns the number of bytes used in the data block */ - BACNET_STACK_EXPORT - unsigned sbuf_count( - STATIC_BUFFER const *b); - /* returns true if successful, false if not enough room to append data */ - BACNET_STACK_EXPORT - bool sbuf_put( - STATIC_BUFFER * b, /* static buffer structure */ - unsigned offset, /* where to start */ - const char *data, /* data to add */ - unsigned data_size); /* how many to add */ - /* returns true if successful, false if not enough room to append data */ - BACNET_STACK_EXPORT - bool sbuf_append( - STATIC_BUFFER * b, /* static buffer structure */ - const char *data, /* data to append */ - unsigned data_size); /* how many to append */ - /* returns true if successful, false if count is bigger than size */ - BACNET_STACK_EXPORT - bool sbuf_truncate( - STATIC_BUFFER * b, /* static buffer structure */ - unsigned count); /* new number of bytes used in buffer */ +/* returns true if size==0, false if size > 0 */ +BACNET_STACK_EXPORT +bool sbuf_empty(STATIC_BUFFER const *b); +/* returns the data block, or NULL if not initialized */ +BACNET_STACK_EXPORT +char *sbuf_data(STATIC_BUFFER const *b); +/* returns the max size of the data block */ +BACNET_STACK_EXPORT +unsigned sbuf_size(STATIC_BUFFER const *b); +/* returns the number of bytes used in the data block */ +BACNET_STACK_EXPORT +unsigned sbuf_count(STATIC_BUFFER const *b); +/* returns true if successful, false if not enough room to append data */ +BACNET_STACK_EXPORT +bool sbuf_put( + STATIC_BUFFER *b, /* static buffer structure */ + unsigned offset, /* where to start */ + const char *data, /* data to add */ + unsigned data_size); /* how many to add */ +/* returns true if successful, false if not enough room to append data */ +BACNET_STACK_EXPORT +bool sbuf_append( + STATIC_BUFFER *b, /* static buffer structure */ + const char *data, /* data to append */ + unsigned data_size); /* how many to append */ +/* returns true if successful, false if count is bigger than size */ +BACNET_STACK_EXPORT +bool sbuf_truncate( + STATIC_BUFFER *b, /* static buffer structure */ + unsigned count); /* new number of bytes used in buffer */ #ifdef __cplusplus } diff --git a/src/bacnet/basic/tsm/tsm.c b/src/bacnet/basic/tsm/tsm.c index 28b518b2..8deba72a 100644 --- a/src/bacnet/basic/tsm/tsm.c +++ b/src/bacnet/basic/tsm/tsm.c @@ -208,7 +208,8 @@ uint8_t tsm_next_free_invokeID(void) * @param apdu Pointer to the received message. * @param apdu_len Bytes valid in the received message. */ -void tsm_set_confirmed_unsegmented_transaction(uint8_t invokeID, +void tsm_set_confirmed_unsegmented_transaction( + uint8_t invokeID, const BACNET_ADDRESS *dest, const BACNET_NPDU_DATA *ndpu_data, const uint8_t *apdu, @@ -252,7 +253,8 @@ void tsm_set_confirmed_unsegmented_transaction(uint8_t invokeID, * the count of bytes valid in the * received message. */ -bool tsm_get_transaction_pdu(uint8_t invokeID, +bool tsm_get_transaction_pdu( + uint8_t invokeID, BACNET_ADDRESS *dest, BACNET_NPDU_DATA *ndpu_data, uint8_t *apdu, @@ -311,8 +313,9 @@ void tsm_timer_milliseconds(uint16_t milliseconds) if (plist->RetryCount < apdu_retries()) { plist->RequestTimer = apdu_timeout(); plist->RetryCount++; - datalink_send_pdu(&plist->dest, &plist->npdu_data, - &plist->apdu[0], plist->apdu_len); + datalink_send_pdu( + &plist->dest, &plist->npdu_data, &plist->apdu[0], + plist->apdu_len); } else { /* note: the invoke id has not been cleared yet and this indicates a failed message: diff --git a/src/bacnet/basic/tsm/tsm.h b/src/bacnet/basic/tsm/tsm.h index 35631352..e7aef5b6 100644 --- a/src/bacnet/basic/tsm/tsm.h +++ b/src/bacnet/basic/tsm/tsm.h @@ -1,10 +1,10 @@ /************************************************************************** -* -* Copyright (C) 2012 Steve Karg -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (C) 2012 Steve Karg + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ #ifndef BACNET_BASIC_TSM_TSM_H #define BACNET_BASIC_TSM_TSM_H @@ -23,15 +23,13 @@ extern "C" { #endif /* __cplusplus */ - /* FIXME: modify basic service handlers to use TSM rather than this buffer! */ - BACNET_STACK_EXPORT extern - uint8_t Handler_Transmit_Buffer[MAX_PDU]; +/* FIXME: modify basic service handlers to use TSM rather than this buffer! */ +BACNET_STACK_EXPORT extern uint8_t Handler_Transmit_Buffer[MAX_PDU]; #ifdef __cplusplus } #endif /* __cplusplus */ - #if (!MAX_TSM_TRANSACTIONS) #define tsm_free_invoke_id(x) (void)x; #else @@ -80,62 +78,50 @@ typedef struct BACnet_TSM_Data { unsigned apdu_len; } BACNET_TSM_DATA; -typedef void ( - *tsm_timeout_function) ( - uint8_t invoke_id); - +typedef void (*tsm_timeout_function)(uint8_t invoke_id); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void tsm_set_timeout_handler( - tsm_timeout_function pFunction); +BACNET_STACK_EXPORT +void tsm_set_timeout_handler(tsm_timeout_function pFunction); - BACNET_STACK_EXPORT - bool tsm_transaction_available( - void); - BACNET_STACK_EXPORT - uint8_t tsm_transaction_idle_count( - void); - BACNET_STACK_EXPORT - void tsm_timer_milliseconds( - uint16_t milliseconds); +BACNET_STACK_EXPORT +bool tsm_transaction_available(void); +BACNET_STACK_EXPORT +uint8_t tsm_transaction_idle_count(void); +BACNET_STACK_EXPORT +void tsm_timer_milliseconds(uint16_t milliseconds); /* free the invoke ID when the reply comes back */ - BACNET_STACK_EXPORT - void tsm_free_invoke_id( - uint8_t invokeID); +BACNET_STACK_EXPORT +void tsm_free_invoke_id(uint8_t invokeID); /* use these in tandem */ - BACNET_STACK_EXPORT - uint8_t tsm_next_free_invokeID( - void); - BACNET_STACK_EXPORT - void tsm_invokeID_set( - uint8_t invokeID); +BACNET_STACK_EXPORT +uint8_t tsm_next_free_invokeID(void); +BACNET_STACK_EXPORT +void tsm_invokeID_set(uint8_t invokeID); /* returns the same invoke ID that was given */ - BACNET_STACK_EXPORT - void tsm_set_confirmed_unsegmented_transaction( - uint8_t invokeID, - const BACNET_ADDRESS * dest, - const BACNET_NPDU_DATA * ndpu_data, - const uint8_t * apdu, - uint16_t apdu_len); +BACNET_STACK_EXPORT +void tsm_set_confirmed_unsegmented_transaction( + uint8_t invokeID, + const BACNET_ADDRESS *dest, + const BACNET_NPDU_DATA *ndpu_data, + const uint8_t *apdu, + uint16_t apdu_len); /* returns true if transaction is found */ - BACNET_STACK_EXPORT - bool tsm_get_transaction_pdu( - uint8_t invokeID, - BACNET_ADDRESS * dest, - BACNET_NPDU_DATA * ndpu_data, - uint8_t * apdu, - uint16_t * apdu_len); +BACNET_STACK_EXPORT +bool tsm_get_transaction_pdu( + uint8_t invokeID, + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *ndpu_data, + uint8_t *apdu, + uint16_t *apdu_len); - BACNET_STACK_EXPORT - bool tsm_invoke_id_free( - uint8_t invokeID); - BACNET_STACK_EXPORT - bool tsm_invoke_id_failed( - uint8_t invokeID); +BACNET_STACK_EXPORT +bool tsm_invoke_id_free(uint8_t invokeID); +BACNET_STACK_EXPORT +bool tsm_invoke_id_failed(uint8_t invokeID); #ifdef __cplusplus } diff --git a/src/bacnet/basic/ucix/ucix.c b/src/bacnet/basic/ucix/ucix.c index a4a86b7c..1ba2cb4d 100644 --- a/src/bacnet/basic/ucix/ucix.c +++ b/src/bacnet/basic/ucix/ucix.c @@ -15,7 +15,8 @@ static struct uci_ptr ptr; -static __inline__ int ucix_get_ptr(struct uci_context *ctx, +static __inline__ int ucix_get_ptr( + struct uci_context *ctx, const char *p, const char *s, const char *o, @@ -81,8 +82,9 @@ const char *ucix_get_option( if (ucix_get_ptr(ctx, p, s, o, NULL)) { return NULL; } - if (!(ptr.flags & UCI_LOOKUP_COMPLETE)) + if (!(ptr.flags & UCI_LOOKUP_COMPLETE)) { return NULL; + } e = ptr.last; switch (e->type) { case UCI_TYPE_SECTION: @@ -105,7 +107,8 @@ const char *ucix_get_option( return value; } -int ucix_get_option_int(struct uci_context *ctx, +int ucix_get_option_int( + struct uci_context *ctx, const char *p, const char *s, const char *o, @@ -129,7 +132,8 @@ void ucix_add_section( uci_set(ctx, &ptr); } -void ucix_add_option(struct uci_context *ctx, +void ucix_add_option( + struct uci_context *ctx, const char *p, const char *s, const char *o, @@ -165,7 +169,8 @@ void ucix_revert( } } -void ucix_for_each_section_type(struct uci_context *ctx, +void ucix_for_each_section_type( + struct uci_context *ctx, const char *p, const char *t, void (*cb)(const char *, void *), @@ -175,8 +180,9 @@ void ucix_for_each_section_type(struct uci_context *ctx, if (ucix_get_ptr(ctx, p, NULL, NULL, NULL)) { return; } - uci_foreach_element(&ptr.p->sections, - e) if (!strcmp(t, uci_to_section(e)->type)) cb(e->name, priv); + uci_foreach_element( + &ptr.p->sections, e) if (!strcmp(t, uci_to_section(e)->type)) + cb(e->name, priv); } int ucix_commit(struct uci_context *ctx, const char *p) diff --git a/src/bacnet/basic/ucix/ucix.h b/src/bacnet/basic/ucix/ucix.h index fb8b6fd5..9c5ea402 100644 --- a/src/bacnet/basic/ucix/ucix.h +++ b/src/bacnet/basic/ucix/ucix.h @@ -11,27 +11,18 @@ #include "bacnet/bacdef.h" BACNET_STACK_EXPORT -struct uci_context *ucix_init( - const char *config_file); +struct uci_context *ucix_init(const char *config_file); BACNET_STACK_EXPORT -struct uci_context *ucix_init_path( - const char *path, - const char *config_file); +struct uci_context *ucix_init_path(const char *path, const char *config_file); BACNET_STACK_EXPORT -void ucix_cleanup( - struct uci_context *ctx); +void ucix_cleanup(struct uci_context *ctx); BACNET_STACK_EXPORT -void ucix_save( - struct uci_context *ctx); +void ucix_save(struct uci_context *ctx); BACNET_STACK_EXPORT -void ucix_save_state( - struct uci_context *ctx); +void ucix_save_state(struct uci_context *ctx); BACNET_STACK_EXPORT const char *ucix_get_option( - struct uci_context *ctx, - const char *p, - const char *s, - const char *o); + struct uci_context *ctx, const char *p, const char *s, const char *o); BACNET_STACK_EXPORT int ucix_get_option_int( struct uci_context *ctx, @@ -41,10 +32,7 @@ int ucix_get_option_int( int def); BACNET_STACK_EXPORT void ucix_add_section( - struct uci_context *ctx, - const char *p, - const char *s, - const char *t); + struct uci_context *ctx, const char *p, const char *s, const char *t); BACNET_STACK_EXPORT void ucix_add_option( struct uci_context *ctx, @@ -60,23 +48,16 @@ void ucix_add_option_int( const char *o, int t); BACNET_STACK_EXPORT -int ucix_commit( - struct uci_context *ctx, - const char *p); +int ucix_commit(struct uci_context *ctx, const char *p); BACNET_STACK_EXPORT void ucix_revert( - struct uci_context *ctx, - const char *p, - const char *s, - const char *o); + struct uci_context *ctx, const char *p, const char *s, const char *o); BACNET_STACK_EXPORT void ucix_del( - struct uci_context *ctx, - const char *p, - const char *s, - const char *o); + struct uci_context *ctx, const char *p, const char *s, const char *o); BACNET_STACK_EXPORT -void ucix_for_each_section_type(struct uci_context *ctx, +void ucix_for_each_section_type( + struct uci_context *ctx, const char *p, const char *t, void (*cb)(const char *, void *), diff --git a/src/bacnet/calendar_entry.c b/src/bacnet/calendar_entry.c index 42127f45..98c9456e 100644 --- a/src/bacnet/calendar_entry.c +++ b/src/bacnet/calendar_entry.c @@ -27,7 +27,8 @@ * @param value Pointer to the property data to be encoded. * @return bytes encoded or zero on error. */ -int bacnet_calendar_entry_encode(uint8_t *apdu, const BACNET_CALENDAR_ENTRY *value) +int bacnet_calendar_entry_encode( + uint8_t *apdu, const BACNET_CALENDAR_ENTRY *value) { int len = 0; int apdu_len = 0; @@ -124,8 +125,9 @@ int bacnet_calendar_entry_decode( } switch (entry->tag) { case BACNET_CALENDAR_DATE: - len = bacnet_date_context_decode(&apdu[apdu_len], - apdu_size - apdu_len, entry->tag, &entry->type.Date); + len = bacnet_date_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, entry->tag, + &entry->type.Date); if (len <= 0) { return BACNET_STATUS_REJECT; } @@ -133,8 +135,9 @@ int bacnet_calendar_entry_decode( break; case BACNET_CALENDAR_DATE_RANGE: - len = bacnet_daterange_context_decode(&apdu[apdu_len], - apdu_size - apdu_len, entry->tag, &entry->type.DateRange); + len = bacnet_daterange_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, entry->tag, + &entry->type.DateRange); if (len <= 0) { return BACNET_STATUS_REJECT; } @@ -142,8 +145,9 @@ int bacnet_calendar_entry_decode( break; case BACNET_CALENDAR_WEEK_N_DAY: - len = bacnet_octet_string_context_decode(&apdu[apdu_len], - apdu_size - apdu_len, entry->tag, &octet_string); + len = bacnet_octet_string_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, entry->tag, + &octet_string); if (len <= 0) { return BACNET_STATUS_REJECT; } @@ -174,7 +178,8 @@ int bacnet_calendar_entry_decode( * * @return number of bytes decoded, or BACNET_STATUS_REJECT */ -int bacnet_calendar_entry_context_decode(const uint8_t *apdu, +int bacnet_calendar_entry_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_CALENDAR_ENTRY *value) @@ -220,8 +225,8 @@ static bool month_match(const BACNET_DATE *date, uint8_t month) return false; } - return ((month == date->month) || - ((month == 13) && (date->month % 2 == 1)) || + return ( + (month == date->month) || ((month == 13) && (date->month % 2 == 1)) || ((month == 14) && (date->month % 2 == 0))); } @@ -306,7 +311,7 @@ bool bacapp_date_in_calendar_entry( if ((datetime_compare_date( &entry->type.DateRange.startdate, date) <= 0) && (datetime_compare_date(date, &entry->type.DateRange.enddate) <= - 0)) { + 0)) { return true; } break; @@ -345,17 +350,19 @@ bool bacnet_calendar_entry_same( return datetime_compare_date( &value1->type.Date, &value2->type.Date) == 0; case BACNET_CALENDAR_DATE_RANGE: - return (datetime_compare_date(&value1->type.DateRange.startdate, + return (datetime_compare_date( + &value1->type.DateRange.startdate, &value2->type.DateRange.startdate) == 0) && - (datetime_compare_date(&value2->type.DateRange.enddate, + (datetime_compare_date( + &value2->type.DateRange.enddate, &value2->type.DateRange.enddate) == 0); case BACNET_CALENDAR_WEEK_N_DAY: return (value1->type.WeekNDay.month == - value2->type.WeekNDay.month) && + value2->type.WeekNDay.month) && (value1->type.WeekNDay.weekofmonth == - value2->type.WeekNDay.weekofmonth) && + value2->type.WeekNDay.weekofmonth) && (value1->type.WeekNDay.dayofweek == - value2->type.WeekNDay.dayofweek); + value2->type.WeekNDay.dayofweek); default: /* should be unreachable */ return false; diff --git a/src/bacnet/calendar_entry.h b/src/bacnet/calendar_entry.h index bd474502..ed2c06e0 100644 --- a/src/bacnet/calendar_entry.h +++ b/src/bacnet/calendar_entry.h @@ -46,7 +46,6 @@ typedef struct BACnetCalendarEntry_T { struct BACnetCalendarEntry_T *next; } BACNET_CALENDAR_ENTRY; - BACNET_STACK_EXPORT int bacnet_calendar_entry_encode( uint8_t *apdu, const BACNET_CALENDAR_ENTRY *value); @@ -61,12 +60,14 @@ int bacnet_calendar_entry_decode( BACNET_STACK_EXPORT int bacnet_calendar_entry_context_decode( - const uint8_t *apdu, uint32_t apdu_max_len, uint8_t tag_number, + const uint8_t *apdu, + uint32_t apdu_max_len, + uint8_t tag_number, BACNET_CALENDAR_ENTRY *value); BACNET_STACK_EXPORT -bool bacapp_date_in_calendar_entry(const BACNET_DATE *date, - const BACNET_CALENDAR_ENTRY *entry); +bool bacapp_date_in_calendar_entry( + const BACNET_DATE *date, const BACNET_CALENDAR_ENTRY *entry); BACNET_STACK_EXPORT bool bacnet_calendar_entry_same( diff --git a/src/bacnet/config.h b/src/bacnet/config.h index 0e01769e..f2cadd3b 100644 --- a/src/bacnet/config.h +++ b/src/bacnet/config.h @@ -23,10 +23,10 @@ /* declare a single physical layer using your compiler define. see datalink.h for possible defines. */ -#if !(defined(BACDL_ETHERNET) || defined(BACDL_ARCNET) || \ - defined(BACDL_MSTP) || defined(BACDL_BIP) || defined(BACDL_BIP6) || \ - defined(BACDL_TEST) || defined(BACDL_ALL) || defined(BACDL_NONE) || \ - defined(BACDL_CUSTOM)) +#if !( \ + defined(BACDL_ETHERNET) || defined(BACDL_ARCNET) || defined(BACDL_MSTP) || \ + defined(BACDL_BIP) || defined(BACDL_BIP6) || defined(BACDL_TEST) || \ + defined(BACDL_ALL) || defined(BACDL_NONE) || defined(BACDL_CUSTOM)) #define BACDL_BIP #endif @@ -50,9 +50,9 @@ /* Enable the Gateway (Routing) functionality here, if desired. */ #if !defined(MAX_NUM_DEVICES) #ifdef BAC_ROUTING -#define MAX_NUM_DEVICES 32 /* Eg, Gateway + 31 remote devices */ +#define MAX_NUM_DEVICES 32 /* Eg, Gateway + 31 remote devices */ #else -#define MAX_NUM_DEVICES 1 /* Just the one normal BACnet Device Object */ +#define MAX_NUM_DEVICES 1 /* Just the one normal BACnet Device Object */ #endif #endif @@ -70,27 +70,27 @@ /* 50 is the minimum; adjust to your memory and physical layer constraints */ /* Lon=206, MS/TP=480 or 1476, ARCNET=480, Ethernet=1476, BACnet/IP=1476 */ #if !defined(MAX_APDU) - /* #define MAX_APDU 50 */ - /* #define MAX_APDU 1476 */ +/* #define MAX_APDU 50 */ +/* #define MAX_APDU 1476 */ #if defined(BACDL_BIP) #define MAX_APDU 1476 /* #define MAX_APDU 128 enable this IP for testing readrange so you get the More Follows flag set */ #elif defined(BACDL_BIP6) #define MAX_APDU 1476 -#elif defined (BACDL_ETHERNET) +#elif defined(BACDL_ETHERNET) #if defined(BACNET_SECURITY) #define MAX_APDU 1420 #else #define MAX_APDU 1476 #endif -#elif defined (BACDL_ARCNET) +#elif defined(BACDL_ARCNET) #if defined(BACNET_SECURITY) #define MAX_APDU 412 #else #define MAX_APDU 480 #endif -#elif defined (BACDL_MSTP) +#elif defined(BACDL_MSTP) #if defined(BACNET_SECURITY) #define MAX_APDU 412 #else @@ -170,12 +170,12 @@ #endif /* clang-format on */ -#if defined (BACAPP_ALL) +#if defined(BACAPP_ALL) #define BACAPP_MINIMAL #define BACAPP_TYPES_EXTRA #endif -#if defined (BACAPP_MINIMAL) +#if defined(BACAPP_MINIMAL) #define BACAPP_NULL #define BACAPP_BOOLEAN #define BACAPP_UNSIGNED @@ -190,7 +190,7 @@ #define BACAPP_OBJECT_ID #endif -#if defined (BACAPP_TYPES_EXTRA) +#if defined(BACAPP_TYPES_EXTRA) #define BACAPP_DOUBLE #define BACAPP_TIMESTAMP #define BACAPP_DATETIME @@ -245,11 +245,11 @@ #endif #ifndef MAX_CHARACTER_STRING_BYTES -#define MAX_CHARACTER_STRING_BYTES (MAX_APDU-6) +#define MAX_CHARACTER_STRING_BYTES (MAX_APDU - 6) #endif #ifndef MAX_OCTET_STRING_BYTES -#define MAX_OCTET_STRING_BYTES (MAX_APDU-6) +#define MAX_OCTET_STRING_BYTES (MAX_APDU - 6) #endif /** @@ -261,26 +261,26 @@ * to be required in embedded systems using the stack. */ #ifndef BACNET_SVC_SERVER - /* default to client-server device for the example apps to build. */ - #define BACNET_SVC_SERVER 0 +/* default to client-server device for the example apps to build. */ +#define BACNET_SVC_SERVER 0 #endif #if (BACNET_SVC_SERVER == 0) - /* client-server device */ - #define BACNET_SVC_I_HAVE_A 1 - #define BACNET_SVC_WP_A 1 - #define BACNET_SVC_RP_A 1 - #define BACNET_SVC_RPM_A 1 - #define BACNET_SVC_DCC_A 1 - #define BACNET_SVC_RD_A 1 - #define BACNET_SVC_TS_A 1 - #define BACNET_USE_OCTETSTRING 1 - #define BACNET_USE_DOUBLE 1 - #define BACNET_USE_SIGNED 1 +/* client-server device */ +#define BACNET_SVC_I_HAVE_A 1 +#define BACNET_SVC_WP_A 1 +#define BACNET_SVC_RP_A 1 +#define BACNET_SVC_RPM_A 1 +#define BACNET_SVC_DCC_A 1 +#define BACNET_SVC_RD_A 1 +#define BACNET_SVC_TS_A 1 +#define BACNET_USE_OCTETSTRING 1 +#define BACNET_USE_DOUBLE 1 +#define BACNET_USE_SIGNED 1 #endif /* Do them one by one */ -#ifndef BACNET_SVC_I_HAVE_A /* Do we send I_Have requests? */ +#ifndef BACNET_SVC_I_HAVE_A /* Do we send I_Have requests? */ #define BACNET_SVC_I_HAVE_A 0 #endif @@ -292,11 +292,11 @@ #define BACNET_SVC_RP_A 0 #endif -#ifndef BACNET_SVC_RPM_A /* Do we send ReadPropertyMultiple requests? */ +#ifndef BACNET_SVC_RPM_A /* Do we send ReadPropertyMultiple requests? */ #define BACNET_SVC_RPM_A 0 #endif -#ifndef BACNET_SVC_DCC_A /* Do we send DeviceCommunicationControl requests? */ +#ifndef BACNET_SVC_DCC_A /* Do we send DeviceCommunicationControl requests? */ #define BACNET_SVC_DCC_A 0 #endif @@ -304,15 +304,15 @@ #define BACNET_SVC_RD_A 0 #endif -#ifndef BACNET_USE_OCTETSTRING /* Do we need any octet strings? */ +#ifndef BACNET_USE_OCTETSTRING /* Do we need any octet strings? */ #define BACNET_USE_OCTETSTRING 0 #endif -#ifndef BACNET_USE_DOUBLE /* Do we need any doubles? */ +#ifndef BACNET_USE_DOUBLE /* Do we need any doubles? */ #define BACNET_USE_DOUBLE 0 #endif -#ifndef BACNET_USE_SIGNED /* Do we need any signed integers */ +#ifndef BACNET_USE_SIGNED /* Do we need any signed integers */ #define BACNET_USE_SIGNED 0 #endif diff --git a/src/bacnet/cov.c b/src/bacnet/cov.c index c0155b0a..8cab13ae 100644 --- a/src/bacnet/cov.c +++ b/src/bacnet/cov.c @@ -37,8 +37,7 @@ int cov_notify_encode_apdu(uint8_t *apdu, const BACNET_COV_DATA *data) return 0; } /* tag 0 - subscriberProcessIdentifier */ - len = - encode_context_unsigned(apdu, 0, data->subscriberProcessIdentifier); + len = encode_context_unsigned(apdu, 0, data->subscriberProcessIdentifier); apdu_len += len; if (apdu) { apdu += len; @@ -51,8 +50,8 @@ int cov_notify_encode_apdu(uint8_t *apdu, const BACNET_COV_DATA *data) apdu += len; } /* tag 2 - monitoredObjectIdentifier */ - len = encode_context_object_id(apdu, 2, - data->monitoredObjectIdentifier.type, + len = encode_context_object_id( + apdu, 2, data->monitoredObjectIdentifier.type, data->monitoredObjectIdentifier.instance); apdu_len += len; if (apdu) { @@ -119,7 +118,8 @@ size_t cov_notify_service_request_encode( * * @return bytes encoded or zero on error. */ -int ccov_notify_encode_apdu(uint8_t *apdu, +int ccov_notify_encode_apdu( + uint8_t *apdu, unsigned apdu_size, uint8_t invoke_id, const BACNET_COV_DATA *data) @@ -138,8 +138,7 @@ int ccov_notify_encode_apdu(uint8_t *apdu, if (apdu) { apdu += len; } - len = cov_notify_service_request_encode( - apdu, apdu_size - apdu_len, data); + len = cov_notify_service_request_encode(apdu, apdu_size - apdu_len, data); if (len > 0) { apdu_len += len; } else { @@ -171,8 +170,7 @@ int ucov_notify_encode_apdu( if (apdu) { apdu += len; } - len = cov_notify_service_request_encode( - apdu, apdu_size - apdu_len, data); + len = cov_notify_service_request_encode(apdu, apdu_size - apdu_len, data); if (len > 0) { apdu_len += len; } else { @@ -291,7 +289,8 @@ int cov_notify_decode_service_request( /* this len function needs to start at the opening tag to match opening/closing tags like a stack. However, it returns the len between the tags. */ - value_len = bacnet_enclosed_data_length(&apdu[len], apdu_size - len); + value_len = + bacnet_enclosed_data_length(&apdu[len], apdu_size - len); len += value_len; /* add the opening tag length to the totals */ len += tag_len; @@ -344,9 +343,9 @@ int cov_subscribe_apdu_encode( } /* tag 1 - monitoredObjectIdentifier */ - len = - encode_context_object_id(apdu, 1, data->monitoredObjectIdentifier.type, - data->monitoredObjectIdentifier.instance); + len = encode_context_object_id( + apdu, 1, data->monitoredObjectIdentifier.type, + data->monitoredObjectIdentifier.instance); apdu_len += len; if (apdu) { apdu += len; @@ -404,7 +403,8 @@ size_t cov_subscribe_service_request_encode( * @param data Pointer to the data to store the decoded values. * @return number of bytes encoded, or zero if unable to encode or too large */ -int cov_subscribe_encode_apdu(uint8_t *apdu, +int cov_subscribe_encode_apdu( + uint8_t *apdu, unsigned apdu_size, uint8_t invoke_id, const BACNET_SUBSCRIBE_COV_DATA *data) @@ -586,9 +586,9 @@ int cov_subscribe_property_apdu_encode( apdu += len; } /* tag 1 - monitoredObjectIdentifier */ - len = - encode_context_object_id(apdu, 1, data->monitoredObjectIdentifier.type, - data->monitoredObjectIdentifier.instance); + len = encode_context_object_id( + apdu, 1, data->monitoredObjectIdentifier.type, + data->monitoredObjectIdentifier.instance); apdu_len += len; if (apdu) { apdu += len; @@ -672,7 +672,8 @@ size_t cov_subscribe_property_service_request_encode( * @param data Pointer to the data to encode. * @return number of bytes encoded, or zero on error. */ -int cov_subscribe_property_encode_apdu(uint8_t *apdu, +int cov_subscribe_property_encode_apdu( + uint8_t *apdu, unsigned apdu_size, uint8_t invoke_id, const BACNET_SUBSCRIBE_COV_DATA *data) @@ -742,7 +743,8 @@ int cov_subscribe_property_decode_service_request( if (decode_is_context_tag(&apdu[len], 1)) { len += decode_tag_number_and_value( &apdu[len], &tag_number, &len_value); - len += decode_object_id(&apdu[len], &decoded_type, + len += decode_object_id( + &apdu[len], &decoded_type, &data->monitoredObjectIdentifier.instance); data->monitoredObjectIdentifier.type = decoded_type; } else { @@ -891,7 +893,8 @@ void cov_data_value_list_link( * * @return true if values were encoded */ -bool cov_value_list_encode_real(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_real( + BACNET_PROPERTY_VALUE *value_list, float value, bool in_alarm, bool fault, @@ -920,10 +923,12 @@ bool cov_value_list_encode_real(BACNET_PROPERTY_VALUE *value_list, &value_list->value.type.Bit_String, STATUS_FLAG_IN_ALARM, in_alarm); bitstring_set_bit( &value_list->value.type.Bit_String, STATUS_FLAG_FAULT, fault); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OVERRIDDEN, overridden); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, out_of_service); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OVERRIDDEN, + overridden); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + out_of_service); value_list->value.next = NULL; value_list->priority = BACNET_NO_PRIORITY; value_list->next = NULL; @@ -944,7 +949,8 @@ bool cov_value_list_encode_real(BACNET_PROPERTY_VALUE *value_list, * * @return true if values were encoded */ -bool cov_value_list_encode_enumerated(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_enumerated( + BACNET_PROPERTY_VALUE *value_list, uint32_t value, bool in_alarm, bool fault, @@ -973,10 +979,12 @@ bool cov_value_list_encode_enumerated(BACNET_PROPERTY_VALUE *value_list, &value_list->value.type.Bit_String, STATUS_FLAG_IN_ALARM, in_alarm); bitstring_set_bit( &value_list->value.type.Bit_String, STATUS_FLAG_FAULT, fault); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OVERRIDDEN, overridden); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, out_of_service); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OVERRIDDEN, + overridden); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + out_of_service); value_list->value.next = NULL; value_list->priority = BACNET_NO_PRIORITY; value_list->next = NULL; @@ -997,7 +1005,8 @@ bool cov_value_list_encode_enumerated(BACNET_PROPERTY_VALUE *value_list, * * @return true if values were encoded */ -bool cov_value_list_encode_unsigned(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_unsigned( + BACNET_PROPERTY_VALUE *value_list, uint32_t value, bool in_alarm, bool fault, @@ -1026,10 +1035,12 @@ bool cov_value_list_encode_unsigned(BACNET_PROPERTY_VALUE *value_list, &value_list->value.type.Bit_String, STATUS_FLAG_IN_ALARM, in_alarm); bitstring_set_bit( &value_list->value.type.Bit_String, STATUS_FLAG_FAULT, fault); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OVERRIDDEN, overridden); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, out_of_service); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OVERRIDDEN, + overridden); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + out_of_service); value_list->value.next = NULL; value_list->priority = BACNET_NO_PRIORITY; value_list->next = NULL; @@ -1050,7 +1061,8 @@ bool cov_value_list_encode_unsigned(BACNET_PROPERTY_VALUE *value_list, * * @return true if values were encoded */ -bool cov_value_list_encode_signed_int(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_signed_int( + BACNET_PROPERTY_VALUE *value_list, int32_t value, bool in_alarm, bool fault, @@ -1079,10 +1091,12 @@ bool cov_value_list_encode_signed_int(BACNET_PROPERTY_VALUE *value_list, &value_list->value.type.Bit_String, STATUS_FLAG_IN_ALARM, in_alarm); bitstring_set_bit( &value_list->value.type.Bit_String, STATUS_FLAG_FAULT, fault); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OVERRIDDEN, overridden); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, out_of_service); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OVERRIDDEN, + overridden); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + out_of_service); value_list->value.next = NULL; value_list->priority = BACNET_NO_PRIORITY; value_list->next = NULL; @@ -1105,7 +1119,8 @@ bool cov_value_list_encode_signed_int(BACNET_PROPERTY_VALUE *value_list, * * @return true if values were encoded */ -bool cov_value_list_encode_character_string(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_character_string( + BACNET_PROPERTY_VALUE *value_list, const BACNET_CHARACTER_STRING *value, bool in_alarm, bool fault, @@ -1134,10 +1149,12 @@ bool cov_value_list_encode_character_string(BACNET_PROPERTY_VALUE *value_list, &value_list->value.type.Bit_String, STATUS_FLAG_IN_ALARM, in_alarm); bitstring_set_bit( &value_list->value.type.Bit_String, STATUS_FLAG_FAULT, fault); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OVERRIDDEN, overridden); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, out_of_service); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OVERRIDDEN, + overridden); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + out_of_service); value_list->value.next = NULL; value_list->priority = BACNET_NO_PRIORITY; value_list->next = NULL; @@ -1161,7 +1178,8 @@ bool cov_value_list_encode_character_string(BACNET_PROPERTY_VALUE *value_list, * * @return true if values were encoded */ -bool cov_value_list_encode_bit_string(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_bit_string( + BACNET_PROPERTY_VALUE *value_list, const BACNET_BIT_STRING *value, bool in_alarm, bool fault, @@ -1190,10 +1208,12 @@ bool cov_value_list_encode_bit_string(BACNET_PROPERTY_VALUE *value_list, &value_list->value.type.Bit_String, STATUS_FLAG_IN_ALARM, in_alarm); bitstring_set_bit( &value_list->value.type.Bit_String, STATUS_FLAG_FAULT, fault); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OVERRIDDEN, overridden); - bitstring_set_bit(&value_list->value.type.Bit_String, - STATUS_FLAG_OUT_OF_SERVICE, out_of_service); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OVERRIDDEN, + overridden); + bitstring_set_bit( + &value_list->value.type.Bit_String, STATUS_FLAG_OUT_OF_SERVICE, + out_of_service); value_list->value.next = NULL; value_list->priority = BACNET_NO_PRIORITY; value_list->next = NULL; diff --git a/src/bacnet/cov.h b/src/bacnet/cov.h index 444b0401..860b197f 100644 --- a/src/bacnet/cov.h +++ b/src/bacnet/cov.h @@ -72,13 +72,15 @@ int ucov_notify_send( uint8_t *apdu, unsigned max_apdu_len, BACNET_COV_DATA *data); BACNET_STACK_EXPORT -int ccov_notify_encode_apdu(uint8_t *apdu, +int ccov_notify_encode_apdu( + uint8_t *apdu, unsigned max_apdu_len, uint8_t invoke_id, const BACNET_COV_DATA *data); BACNET_STACK_EXPORT -int ccov_notify_decode_apdu(const uint8_t *apdu, +int ccov_notify_decode_apdu( + const uint8_t *apdu, unsigned apdu_len, uint8_t *invoke_id, BACNET_COV_DATA *data); @@ -101,85 +103,86 @@ size_t cov_subscribe_property_service_request_encode( uint8_t *apdu, size_t apdu_size, const BACNET_SUBSCRIBE_COV_DATA *data); BACNET_STACK_EXPORT -int cov_subscribe_property_encode_apdu(uint8_t *apdu, +int cov_subscribe_property_encode_apdu( + uint8_t *apdu, unsigned max_apdu_len, uint8_t invoke_id, const BACNET_SUBSCRIBE_COV_DATA *data); BACNET_STACK_EXPORT int cov_subscribe_decode_service_request( - const uint8_t *apdu, - unsigned apdu_len, - BACNET_SUBSCRIBE_COV_DATA *data); + const uint8_t *apdu, unsigned apdu_len, BACNET_SUBSCRIBE_COV_DATA *data); BACNET_STACK_EXPORT -int cov_subscribe_apdu_encode(uint8_t *apdu, - const BACNET_SUBSCRIBE_COV_DATA *data); +int cov_subscribe_apdu_encode( + uint8_t *apdu, const BACNET_SUBSCRIBE_COV_DATA *data); BACNET_STACK_EXPORT size_t cov_subscribe_service_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_SUBSCRIBE_COV_DATA *data); + uint8_t *apdu, size_t apdu_size, const BACNET_SUBSCRIBE_COV_DATA *data); BACNET_STACK_EXPORT -int cov_subscribe_encode_apdu(uint8_t *apdu, +int cov_subscribe_encode_apdu( + uint8_t *apdu, unsigned max_apdu_len, uint8_t invoke_id, const BACNET_SUBSCRIBE_COV_DATA *data); BACNET_STACK_EXPORT void cov_property_value_list_link( - BACNET_PROPERTY_VALUE *value_list, - size_t count); + BACNET_PROPERTY_VALUE *value_list, size_t count); BACNET_STACK_EXPORT void cov_data_value_list_link( - BACNET_COV_DATA *data, - BACNET_PROPERTY_VALUE *value_list, - size_t count); + BACNET_COV_DATA *data, BACNET_PROPERTY_VALUE *value_list, size_t count); BACNET_STACK_EXPORT -bool cov_value_list_encode_real(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_real( + BACNET_PROPERTY_VALUE *value_list, float value, bool in_alarm, bool fault, bool overridden, bool out_of_service); BACNET_STACK_EXPORT -bool cov_value_list_encode_enumerated(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_enumerated( + BACNET_PROPERTY_VALUE *value_list, uint32_t value, bool in_alarm, bool fault, bool overridden, bool out_of_service); BACNET_STACK_EXPORT -bool cov_value_list_encode_unsigned(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_unsigned( + BACNET_PROPERTY_VALUE *value_list, uint32_t value, bool in_alarm, bool fault, bool overridden, bool out_of_service); BACNET_STACK_EXPORT -bool cov_value_list_encode_signed_int(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_signed_int( + BACNET_PROPERTY_VALUE *value_list, int32_t value, bool in_alarm, bool fault, bool overridden, bool out_of_service); BACNET_STACK_EXPORT -bool cov_value_list_encode_character_string(BACNET_PROPERTY_VALUE *value_list, +bool cov_value_list_encode_character_string( + BACNET_PROPERTY_VALUE *value_list, const BACNET_CHARACTER_STRING *value, bool in_alarm, bool fault, bool overridden, bool out_of_service); - BACNET_STACK_EXPORT - bool cov_value_list_encode_bit_string(BACNET_PROPERTY_VALUE *value_list, - const BACNET_BIT_STRING *value, - bool in_alarm, - bool fault, - bool overridden, - bool out_of_service); +BACNET_STACK_EXPORT +bool cov_value_list_encode_bit_string( + BACNET_PROPERTY_VALUE *value_list, + const BACNET_BIT_STRING *value, + bool in_alarm, + bool fault, + bool overridden, + bool out_of_service); #ifdef __cplusplus } diff --git a/src/bacnet/create_object.c b/src/bacnet/create_object.c index 0cffa6bc..7bcb8a6f 100644 --- a/src/bacnet/create_object.c +++ b/src/bacnet/create_object.c @@ -154,8 +154,9 @@ int create_object_decode_service_request( apdu_len += len; /* CHOICE of Tag [0] or [1] */ /* object-identifier [1] BACnetObjectIdentifier */ - len = bacnet_object_id_context_decode(&apdu[apdu_len], apdu_size - apdu_len, - 1, &object_type, &object_instance); + len = bacnet_object_id_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, 1, &object_type, + &object_instance); if (len > 0) { if ((object_type >= MAX_BACNET_OBJECT_TYPE) || (object_instance >= BACNET_MAX_INSTANCE)) { @@ -421,7 +422,7 @@ int create_object_error_ack_service_decode( return BACNET_STATUS_REJECT; } /* Closing Context tag 0 - Error */ - if (bacnet_is_closing_tag_number(apdu, apdu_size-apdu_len, 0, &len)) { + if (bacnet_is_closing_tag_number(apdu, apdu_size - apdu_len, 0, &len)) { apdu_len += len; apdu += len; } else { diff --git a/src/bacnet/credential_authentication_factor.h b/src/bacnet/credential_authentication_factor.h index 53cdb9bb..53fe04c8 100644 --- a/src/bacnet/credential_authentication_factor.h +++ b/src/bacnet/credential_authentication_factor.h @@ -22,29 +22,26 @@ typedef struct { BACNET_AUTHENTICATION_FACTOR authentication_factor; } BACNET_CREDENTIAL_AUTHENTICATION_FACTOR; - #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bacapp_encode_credential_authentication_factor( - uint8_t * apdu, - const BACNET_CREDENTIAL_AUTHENTICATION_FACTOR * caf); - BACNET_STACK_EXPORT - int bacapp_encode_context_credential_authentication_factor( - uint8_t * apdu, - uint8_t tag, - const BACNET_CREDENTIAL_AUTHENTICATION_FACTOR * caf); - BACNET_STACK_EXPORT - int bacapp_decode_credential_authentication_factor( - const uint8_t * apdu, - BACNET_CREDENTIAL_AUTHENTICATION_FACTOR * caf); - BACNET_STACK_EXPORT - int bacapp_decode_context_credential_authentication_factor( - const uint8_t * apdu, - uint8_t tag, - BACNET_CREDENTIAL_AUTHENTICATION_FACTOR * caf); +BACNET_STACK_EXPORT +int bacapp_encode_credential_authentication_factor( + uint8_t *apdu, const BACNET_CREDENTIAL_AUTHENTICATION_FACTOR *caf); +BACNET_STACK_EXPORT +int bacapp_encode_context_credential_authentication_factor( + uint8_t *apdu, + uint8_t tag, + const BACNET_CREDENTIAL_AUTHENTICATION_FACTOR *caf); +BACNET_STACK_EXPORT +int bacapp_decode_credential_authentication_factor( + const uint8_t *apdu, BACNET_CREDENTIAL_AUTHENTICATION_FACTOR *caf); +BACNET_STACK_EXPORT +int bacapp_decode_context_credential_authentication_factor( + const uint8_t *apdu, + uint8_t tag, + BACNET_CREDENTIAL_AUTHENTICATION_FACTOR *caf); #ifdef __cplusplus } diff --git a/src/bacnet/dailyschedule.c b/src/bacnet/dailyschedule.c index 5802029d..b3c6664e 100644 --- a/src/bacnet/dailyschedule.c +++ b/src/bacnet/dailyschedule.c @@ -18,7 +18,8 @@ * @param day [in] Value to encode * @return Number of bytes encoded, or BACNET_STATUS_ERROR if an error occurs */ -int bacnet_dailyschedule_context_decode(const uint8_t *apdu, +int bacnet_dailyschedule_context_decode( + const uint8_t *apdu, int apdu_size, uint8_t tag_number, BACNET_DAILY_SCHEDULE *day) @@ -32,9 +33,9 @@ int bacnet_dailyschedule_context_decode(const uint8_t *apdu, if (apdu == NULL) { return BACNET_STATUS_ERROR; } - len = bacnet_time_values_context_decode(apdu, apdu_size, - tag_number, &day->Time_Values[0], ARRAY_SIZE(day->Time_Values), - &tv_count); + len = bacnet_time_values_context_decode( + apdu, apdu_size, tag_number, &day->Time_Values[0], + ARRAY_SIZE(day->Time_Values), &tv_count); if (len < 0) { return BACNET_STATUS_ERROR; } diff --git a/src/bacnet/dailyschedule.h b/src/bacnet/dailyschedule.h index 0fec1aef..dd7d4c98 100644 --- a/src/bacnet/dailyschedule.h +++ b/src/bacnet/dailyschedule.h @@ -16,7 +16,8 @@ /* BACnet Stack API */ #include "bacnet/bactimevalue.h" -/* arbitrary value, shall be unlimited for B-OWS but we don't care, 640k shall be enough */ +/* arbitrary value, shall be unlimited for B-OWS but we don't care, 640k shall + * be enough */ /* however we try not to boost the bacnet application value structure size, */ /* so 7 x (this value) x sizeof(BACNET_TIME_VALUE) fits. */ #define MAX_DAY_SCHEDULE_VALUES 40 @@ -31,25 +32,23 @@ extern "C" { #endif /* __cplusplus */ - typedef struct BACnet_Daily_Schedule { - BACNET_TIME_VALUE Time_Values[MAX_DAY_SCHEDULE_VALUES]; - uint16_t TV_Count; /* the number of time values actually used */ - } BACNET_DAILY_SCHEDULE; +typedef struct BACnet_Daily_Schedule { + BACNET_TIME_VALUE Time_Values[MAX_DAY_SCHEDULE_VALUES]; + uint16_t TV_Count; /* the number of time values actually used */ +} BACNET_DAILY_SCHEDULE; - /** Decode DailySchedule (sequence of times and values) */ - BACNET_STACK_EXPORT - int bacnet_dailyschedule_context_decode( - const uint8_t * apdu, - int max_apdu_len, - uint8_t tag_number, - BACNET_DAILY_SCHEDULE * day); +/** Decode DailySchedule (sequence of times and values) */ +BACNET_STACK_EXPORT +int bacnet_dailyschedule_context_decode( + const uint8_t *apdu, + int max_apdu_len, + uint8_t tag_number, + BACNET_DAILY_SCHEDULE *day); - /** Encode DailySchedule (sequence of times and values) */ - BACNET_STACK_EXPORT - int bacnet_dailyschedule_context_encode( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_DAILY_SCHEDULE * day); +/** Encode DailySchedule (sequence of times and values) */ +BACNET_STACK_EXPORT +int bacnet_dailyschedule_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_DAILY_SCHEDULE *day); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/arcnet.h b/src/bacnet/datalink/arcnet.h index 235c9fee..86a8e9cd 100644 --- a/src/bacnet/datalink/arcnet.h +++ b/src/bacnet/datalink/arcnet.h @@ -19,47 +19,43 @@ #include "bacnet/npdu.h" /* specific defines for ARCNET */ -#define ARCNET_HEADER_MAX (1+1+2+2+1+1+1+1) -#define ARCNET_MPDU_MAX (ARCNET_HEADER_MAX+MAX_PDU) +#define ARCNET_HEADER_MAX (1 + 1 + 2 + 2 + 1 + 1 + 1 + 1) +#define ARCNET_MPDU_MAX (ARCNET_HEADER_MAX + MAX_PDU) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - bool arcnet_valid( - void); - BACNET_STACK_EXPORT - void arcnet_cleanup( - void); - BACNET_STACK_EXPORT - bool arcnet_init( - char *interface_name); +BACNET_STACK_EXPORT +bool arcnet_valid(void); +BACNET_STACK_EXPORT +void arcnet_cleanup(void); +BACNET_STACK_EXPORT +bool arcnet_init(char *interface_name); /* function to send a packet out the 802.2 socket */ /* returns zero on success, non-zero on failure */ - BACNET_STACK_EXPORT - int arcnet_send_pdu( - BACNET_ADDRESS * dest, /* destination address */ - BACNET_NPDU_DATA * npdu_data, /* network information */ - uint8_t * pdu, /* any data to be sent - may be null */ - unsigned pdu_len); /* number of bytes of data */ +BACNET_STACK_EXPORT +int arcnet_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ + BACNET_NPDU_DATA *npdu_data, /* network information */ + uint8_t *pdu, /* any data to be sent - may be null */ + unsigned pdu_len); /* number of bytes of data */ /* receives an framed packet */ /* returns the number of octets in the PDU, or zero on failure */ - BACNET_STACK_EXPORT - uint16_t arcnet_receive( - BACNET_ADDRESS * src, /* source address */ - uint8_t * pdu, /* PDU data */ - uint16_t max_pdu, /* amount of space available in the PDU */ - unsigned timeout); /* milliseconds to wait for a packet */ +BACNET_STACK_EXPORT +uint16_t arcnet_receive( + BACNET_ADDRESS *src, /* source address */ + uint8_t *pdu, /* PDU data */ + uint16_t max_pdu, /* amount of space available in the PDU */ + unsigned timeout); /* milliseconds to wait for a packet */ - BACNET_STACK_EXPORT - void arcnet_get_my_address( - BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - void arcnet_get_broadcast_address( - BACNET_ADDRESS * dest); /* destination address */ +BACNET_STACK_EXPORT +void arcnet_get_my_address(BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +void arcnet_get_broadcast_address( + BACNET_ADDRESS *dest); /* destination address */ #ifdef __cplusplus } diff --git a/src/bacnet/datalink/automac.h b/src/bacnet/datalink/automac.h index e1f2546b..f16e7dbe 100644 --- a/src/bacnet/datalink/automac.h +++ b/src/bacnet/datalink/automac.h @@ -26,39 +26,23 @@ extern "C" { #endif /* __cplusplus */ - void automac_init( - void); +void automac_init(void); - bool automac_free_address_valid( - uint8_t mac); - uint8_t automac_free_address_count( - void); - uint8_t automac_free_address_mac( - uint8_t count); - uint8_t automac_free_address_random( - void); - void automac_pfm_set( - uint8_t mac); - void automac_token_set( - uint8_t mac); - void automac_emitter_set( - uint8_t mac); - uint8_t automac_next_station( - uint8_t mac); - uint8_t automac_address( - void); - void automac_address_set( - uint8_t mac); - void automac_address_init( - void); - uint16_t automac_time_slot( - void); - bool automac_pfm_cycle_complete( - void); - bool automac_enabled( - void); - void automac_enabled_set( - bool status); +bool automac_free_address_valid(uint8_t mac); +uint8_t automac_free_address_count(void); +uint8_t automac_free_address_mac(uint8_t count); +uint8_t automac_free_address_random(void); +void automac_pfm_set(uint8_t mac); +void automac_token_set(uint8_t mac); +void automac_emitter_set(uint8_t mac); +uint8_t automac_next_station(uint8_t mac); +uint8_t automac_address(void); +void automac_address_set(uint8_t mac); +void automac_address_init(void); +uint16_t automac_time_slot(void); +bool automac_pfm_cycle_complete(void); +bool automac_enabled(void); +void automac_enabled_set(bool status); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/bacsec.c b/src/bacnet/datalink/bacsec.c index eea952ba..76321ad4 100644 --- a/src/bacnet/datalink/bacsec.c +++ b/src/bacnet/datalink/bacsec.c @@ -162,7 +162,8 @@ int encode_security_payload( return (int)(2 + payload->payload_length); } -int encode_security_response(uint8_t *apdu, const BACNET_SECURITY_RESPONSE *resp) +int encode_security_response( + uint8_t *apdu, const BACNET_SECURITY_RESPONSE *resp) { int curr = 0; int i; @@ -190,7 +191,8 @@ int encode_security_response(uint8_t *apdu, const BACNET_SECURITY_RESPONSE *resp case SEC_RESP_UNKNOWN_AUTHENTICATION_TYPE: apdu[curr++] = resp->response.unknown_authentication_type .original_authentication_type; - curr += encode_unsigned16(&apdu[curr], + curr += encode_unsigned16( + &apdu[curr], resp->response.unknown_authentication_type.vendor_id); break; case SEC_RESP_UNKNOWN_KEY: @@ -234,7 +236,8 @@ int encode_security_response(uint8_t *apdu, const BACNET_SECURITY_RESPONSE *resp return curr; } -int encode_request_key_update(uint8_t *apdu, const BACNET_REQUEST_KEY_UPDATE *req) +int encode_request_key_update( + uint8_t *apdu, const BACNET_REQUEST_KEY_UPDATE *req) { int curr = 0; @@ -352,13 +355,15 @@ int encode_request_master_key( int curr = 0; apdu[curr++] = req_master_key->no_supported_algorithms; - memcpy(&apdu[curr], req_master_key->es_algorithms, + memcpy( + &apdu[curr], req_master_key->es_algorithms, req_master_key->no_supported_algorithms); return (int)(curr + req_master_key->no_supported_algorithms); } -int encode_set_master_key(uint8_t *apdu, const BACNET_SET_MASTER_KEY *set_master_key) +int encode_set_master_key( + uint8_t *apdu, const BACNET_SET_MASTER_KEY *set_master_key) { return encode_key_entry(apdu, &set_master_key->key); } @@ -475,7 +480,8 @@ int decode_security_wrapper_safe(int bytes_before, } #endif -int decode_challenge_request_safe(const uint8_t *apdu, +int decode_challenge_request_safe( + const uint8_t *apdu, uint32_t apdu_len_remaining, BACNET_CHALLENGE_REQUEST *bc_req) { @@ -491,7 +497,8 @@ int decode_challenge_request_safe(const uint8_t *apdu, return curr; /* always 9! */ } -int decode_security_payload_safe(const uint8_t *apdu, +int decode_security_payload_safe( + const uint8_t *apdu, uint32_t apdu_len_remaining, BACNET_SECURITY_PAYLOAD *payload) { @@ -556,7 +563,8 @@ int decode_security_response_safe( } resp->response.unknown_authentication_type .original_authentication_type = apdu[curr++]; - curr += decode_unsigned16(&apdu[curr], + curr += decode_unsigned16( + &apdu[curr], &resp->response.unknown_authentication_type.vendor_id); if (resp->response.unknown_authentication_type .original_authentication_type < 200 && @@ -712,7 +720,8 @@ int decode_update_key_set_safe( return -1; } for (i = 0; i < (int)key_set->set_key_count[0]; i++) { - res = decode_key_entry_safe(apdu + curr, apdu_len_remaining - curr, + res = decode_key_entry_safe( + apdu + curr, apdu_len_remaining - curr, &key_set->set_keys[0][i]); if (res < 0) { return -1; @@ -739,7 +748,8 @@ int decode_update_key_set_safe( return -1; } for (i = 0; i < (int)key_set->set_key_count[1]; i++) { - res = decode_key_entry_safe(apdu + curr, apdu_len_remaining - curr, + res = decode_key_entry_safe( + apdu + curr, apdu_len_remaining - curr, &key_set->set_keys[1][i]); if (res < 0) { return -1; @@ -751,7 +761,8 @@ int decode_update_key_set_safe( return curr; } -int decode_update_distribution_key_safe(const uint8_t *apdu, +int decode_update_distribution_key_safe( + const uint8_t *apdu, uint32_t apdu_len_remaining, BACNET_UPDATE_DISTRIBUTION_KEY *dist_key) { @@ -770,7 +781,8 @@ int decode_update_distribution_key_safe(const uint8_t *apdu, return curr + res; } -int decode_request_master_key_safe(const uint8_t *apdu, +int decode_request_master_key_safe( + const uint8_t *apdu, uint32_t apdu_len_remaining, BACNET_REQUEST_MASTER_KEY *req_master_key) { @@ -783,13 +795,15 @@ int decode_request_master_key_safe(const uint8_t *apdu, if (apdu_len_remaining < curr + req_master_key->no_supported_algorithms) { return -1; } - memcpy(req_master_key->es_algorithms, &apdu[curr], + memcpy( + req_master_key->es_algorithms, &apdu[curr], req_master_key->no_supported_algorithms); return (int)(curr + req_master_key->no_supported_algorithms); } -int decode_set_master_key_safe(const uint8_t *apdu, +int decode_set_master_key_safe( + const uint8_t *apdu, uint32_t apdu_len_remaining, BACNET_SET_MASTER_KEY *set_master_key) { diff --git a/src/bacnet/datalink/bacsec.h b/src/bacnet/datalink/bacsec.h index d0540672..35d54ae2 100644 --- a/src/bacnet/datalink/bacsec.h +++ b/src/bacnet/datalink/bacsec.h @@ -25,17 +25,17 @@ #include "bacnet/bacdef.h" typedef struct BACnet_Security_Wrapper { - bool payload_net_or_bvll_flag; /* true if NPDU or BVLL */ + bool payload_net_or_bvll_flag; /* true if NPDU or BVLL */ bool encrypted_flag; - bool authentication_flag; /* always false for responses */ - bool do_not_unwrap_flag; /* always true if do-not-encrypt is true */ - bool do_not_decrypt_flag; /* when encrypted flag is false, it also false */ + bool authentication_flag; /* always false for responses */ + bool do_not_unwrap_flag; /* always true if do-not-encrypt is true */ + bool do_not_decrypt_flag; /* when encrypted flag is false, it also false */ bool non_trusted_source_flag; bool secured_by_router_flag; - uint8_t key_revision; /* 0 for Device-Master key */ + uint8_t key_revision; /* 0 for Device-Master key */ uint16_t key_identifier; uint32_t source_device_instance; - uint32_t message_id; /* monotonically increased value */ + uint32_t message_id; /* monotonically increased value */ uint32_t timestamp; /* seconds from UTC 1970-1-1 00:00:00 */ uint32_t destination_device_instance; uint16_t dnet; @@ -44,32 +44,34 @@ typedef struct BACnet_Security_Wrapper { uint16_t snet; uint8_t slen; uint8_t sadr[MAX_MAC_LEN]; - uint8_t authentication_mechanism; /* present when User-Authenticated or - * Application-Specific keys are used with: */ + uint8_t + authentication_mechanism; /* present when User-Authenticated or + * Application-Specific keys are used with: */ /* APDU: Confrmed-Request, Unconfirmed-Request */ /* NPDU: Initialize-Routing-Table, Establish-Connection-To-Network, * Disconnect-Connection-To-Network */ - /* BVLL: Write-Broadcast-Distribution-Table, Read-Broadcast-Distribution-Table, - * Register-Foreign-Device, Read-Foreign-Device-Table, - * Delete-Foreign-Device-Table-Entry */ + /* BVLL: Write-Broadcast-Distribution-Table, + * Read-Broadcast-Distribution-Table, Register-Foreign-Device, + * Read-Foreign-Device-Table, Delete-Foreign-Device-Table-Entry */ /* 0 is only legitimate value for now. 200-255 are vendor-specific */ - uint16_t user_id; /* 0 for unknown */ - uint8_t user_role; /* 0 and 1 are "system users": 0 for device-to-device non-human, - * 1 for device-to-device by unknown human */ - uint16_t authentication_data_length; /* authentication mechanism 1-255 */ + uint16_t user_id; /* 0 for unknown */ + uint8_t user_role; /* 0 and 1 are "system users": 0 for device-to-device + * non-human, 1 for device-to-device by unknown human */ + uint16_t authentication_data_length; /* authentication mechanism 1-255 */ uint16_t vendor_id; /* authentication mechanism 200-255 */ - uint8_t authentication_data[MAX_AUTH_DATA_LEN]; /* other than id, role, length and - * vendor-id */ - uint16_t service_data_len; /* case-to-case */ + uint8_t authentication_data[MAX_AUTH_DATA_LEN]; /* other than id, role, + * length and vendor-id */ + uint16_t service_data_len; /* case-to-case */ uint8_t *service_data; - uint8_t service_type; /* first octet of service_data */ - uint16_t padding_len; /* included in padding */ + uint8_t service_type; /* first octet of service_data */ + uint16_t padding_len; /* included in padding */ uint8_t padding[MAX_PAD_LEN]; - uint8_t signature[SIGNATURE_LEN]; /* hmac-md5 or hmac-sha256, first 16 bytes */ + uint8_t + signature[SIGNATURE_LEN]; /* hmac-md5 or hmac-sha256, first 16 bytes */ } BACNET_SECURITY_WRAPPER; typedef struct Challenge_Request { - uint8_t message_challenge; /* 1 as a response, everything else for other */ + uint8_t message_challenge; /* 1 as a response, everything else for other */ uint32_t orig_message_id; uint32_t orig_timestamp; } BACNET_CHALLENGE_REQUEST; @@ -148,7 +150,7 @@ typedef struct Key_Entry { typedef struct Update_Key_Set { bool set_rae[2], set_ck[2], set_clr[2]; bool more; - bool remove; /* false for add, true for remove */ + bool remove; /* false for add, true for remove */ uint8_t set_key_revision[2]; uint32_t set_activation_time[2]; uint32_t set_expiration_time[2]; @@ -175,127 +177,126 @@ extern "C" { #endif /* __cplusplus */ /* helper functions */ - BACNET_STACK_EXPORT - BACNET_KEY_IDENTIFIER_ALGORITHM key_algorithm(uint16_t id); - BACNET_STACK_EXPORT - BACNET_KEY_IDENTIFIER_KEY_NUMBER key_number(uint16_t id); +BACNET_STACK_EXPORT +BACNET_KEY_IDENTIFIER_ALGORITHM key_algorithm(uint16_t id); +BACNET_STACK_EXPORT +BACNET_KEY_IDENTIFIER_KEY_NUMBER key_number(uint16_t id); /* key manipulation functions - port specific! */ - BACNET_STACK_EXPORT - BACNET_SECURITY_RESPONSE_CODE bacnet_master_key_set(BACNET_SET_MASTER_KEY * - key); - BACNET_STACK_EXPORT - BACNET_SECURITY_RESPONSE_CODE - bacnet_distribution_key_update(BACNET_UPDATE_DISTRIBUTION_KEY * key); - BACNET_STACK_EXPORT - BACNET_SECURITY_RESPONSE_CODE bacnet_key_set_update(BACNET_UPDATE_KEY_SET * - update_key_sets); - BACNET_STACK_EXPORT - BACNET_SECURITY_RESPONSE_CODE bacnet_find_key(uint8_t revision, - BACNET_KEY_ENTRY * key); +BACNET_STACK_EXPORT +BACNET_SECURITY_RESPONSE_CODE bacnet_master_key_set(BACNET_SET_MASTER_KEY *key); +BACNET_STACK_EXPORT +BACNET_SECURITY_RESPONSE_CODE +bacnet_distribution_key_update(BACNET_UPDATE_DISTRIBUTION_KEY *key); +BACNET_STACK_EXPORT +BACNET_SECURITY_RESPONSE_CODE +bacnet_key_set_update(BACNET_UPDATE_KEY_SET *update_key_sets); +BACNET_STACK_EXPORT +BACNET_SECURITY_RESPONSE_CODE +bacnet_find_key(uint8_t revision, BACNET_KEY_ENTRY *key); /* signing/verification and encryption/decryption - port specific */ - BACNET_STACK_EXPORT - int key_sign_msg(BACNET_KEY_ENTRY * key, - uint8_t * msg, - uint32_t msg_len, - uint8_t * signature); - /* BACNET_STACK_EXPORT */ - /* bool key_verify_sign_msg(BACNET_KEY_ENTRY * key, */ - /* uint8_t * msg, */ - /* uint32_t msg_len, */ - /* uint8_t * signature); */ - BACNET_STACK_EXPORT - int key_encrypt_msg(BACNET_KEY_ENTRY * key, - uint8_t * msg, - uint32_t msg_len, - uint8_t * signature); - BACNET_STACK_EXPORT - bool key_decrypt_msg(BACNET_KEY_ENTRY * key, - uint8_t * msg, - uint32_t msg_len, - uint8_t * signature); - BACNET_STACK_EXPORT - void key_set_padding(BACNET_KEY_ENTRY * key, - int enc_len, - uint16_t * padding_len, - uint8_t * padding); +BACNET_STACK_EXPORT +int key_sign_msg( + BACNET_KEY_ENTRY *key, uint8_t *msg, uint32_t msg_len, uint8_t *signature); +/* BACNET_STACK_EXPORT */ +/* bool key_verify_sign_msg(BACNET_KEY_ENTRY * key, */ +/* uint8_t * msg, */ +/* uint32_t msg_len, */ +/* uint8_t * signature); */ +BACNET_STACK_EXPORT +int key_encrypt_msg( + BACNET_KEY_ENTRY *key, uint8_t *msg, uint32_t msg_len, uint8_t *signature); +BACNET_STACK_EXPORT +bool key_decrypt_msg( + BACNET_KEY_ENTRY *key, uint8_t *msg, uint32_t msg_len, uint8_t *signature); +BACNET_STACK_EXPORT +void key_set_padding( + BACNET_KEY_ENTRY *key, + int enc_len, + uint16_t *padding_len, + uint8_t *padding); /* encoders */ - /* BACNET_STACK_EXPORT */ - /* int encode_security_wrapper(int bytes_before, */ - /* uint8_t * apdu, */ - /* BACNET_SECURITY_WRAPPER * wrapper); */ - BACNET_STACK_EXPORT - int encode_challenge_request(uint8_t * apdu, - const BACNET_CHALLENGE_REQUEST * bc_req); - BACNET_STACK_EXPORT - int encode_security_payload(uint8_t * apdu, - const BACNET_SECURITY_PAYLOAD * payload); - BACNET_STACK_EXPORT - int encode_security_response(uint8_t * apdu, - const BACNET_SECURITY_RESPONSE * resp); - BACNET_STACK_EXPORT - int encode_request_key_update(uint8_t * apdu, - const BACNET_REQUEST_KEY_UPDATE * req); - BACNET_STACK_EXPORT - int encode_key_entry(uint8_t * apdu, - const BACNET_KEY_ENTRY * entry); - BACNET_STACK_EXPORT - int encode_update_key_set(uint8_t * apdu, - const BACNET_UPDATE_KEY_SET * key_set); - BACNET_STACK_EXPORT - int encode_update_distribution_key(uint8_t * apdu, - const BACNET_UPDATE_DISTRIBUTION_KEY * dist_key); - BACNET_STACK_EXPORT - int encode_request_master_key(uint8_t * apdu, - const BACNET_REQUEST_MASTER_KEY * req_master_key); - BACNET_STACK_EXPORT - int encode_set_master_key(uint8_t * apdu, - const BACNET_SET_MASTER_KEY * set_master_key); +/* BACNET_STACK_EXPORT */ +/* int encode_security_wrapper(int bytes_before, */ +/* uint8_t * apdu, */ +/* BACNET_SECURITY_WRAPPER * wrapper); */ +BACNET_STACK_EXPORT +int encode_challenge_request( + uint8_t *apdu, const BACNET_CHALLENGE_REQUEST *bc_req); +BACNET_STACK_EXPORT +int encode_security_payload( + uint8_t *apdu, const BACNET_SECURITY_PAYLOAD *payload); +BACNET_STACK_EXPORT +int encode_security_response( + uint8_t *apdu, const BACNET_SECURITY_RESPONSE *resp); +BACNET_STACK_EXPORT +int encode_request_key_update( + uint8_t *apdu, const BACNET_REQUEST_KEY_UPDATE *req); +BACNET_STACK_EXPORT +int encode_key_entry(uint8_t *apdu, const BACNET_KEY_ENTRY *entry); +BACNET_STACK_EXPORT +int encode_update_key_set(uint8_t *apdu, const BACNET_UPDATE_KEY_SET *key_set); +BACNET_STACK_EXPORT +int encode_update_distribution_key( + uint8_t *apdu, const BACNET_UPDATE_DISTRIBUTION_KEY *dist_key); +BACNET_STACK_EXPORT +int encode_request_master_key( + uint8_t *apdu, const BACNET_REQUEST_MASTER_KEY *req_master_key); +BACNET_STACK_EXPORT +int encode_set_master_key( + uint8_t *apdu, const BACNET_SET_MASTER_KEY *set_master_key); /* safe decoders */ - /* BACNET_STACK_EXPORT */ - /* int decode_security_wrapper_safe(int bytes_before, */ - /* uint8_t * apdu, */ - /* uint32_t apdu_len_remaining, */ - /* BACNET_SECURITY_WRAPPER * wrapper); */ - BACNET_STACK_EXPORT - int decode_challenge_request_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_CHALLENGE_REQUEST * bc_req); - BACNET_STACK_EXPORT - int decode_security_payload_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_SECURITY_PAYLOAD * payload); - BACNET_STACK_EXPORT - int decode_security_response_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_SECURITY_RESPONSE * resp); - BACNET_STACK_EXPORT - int decode_request_key_update_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_REQUEST_KEY_UPDATE * req); - BACNET_STACK_EXPORT - int decode_key_entry_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_KEY_ENTRY * entry); - BACNET_STACK_EXPORT - int decode_update_key_set_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_UPDATE_KEY_SET * key_set); - BACNET_STACK_EXPORT - int decode_update_distribution_key_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_UPDATE_DISTRIBUTION_KEY * dist_key); - BACNET_STACK_EXPORT - int decode_request_master_key_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_REQUEST_MASTER_KEY * req_master_key); - BACNET_STACK_EXPORT - int decode_set_master_key_safe(const uint8_t * apdu, - uint32_t apdu_len_remaining, - BACNET_SET_MASTER_KEY * set_master_key); +/* BACNET_STACK_EXPORT */ +/* int decode_security_wrapper_safe(int bytes_before, */ +/* uint8_t * apdu, */ +/* uint32_t apdu_len_remaining, */ +/* BACNET_SECURITY_WRAPPER * wrapper); */ +BACNET_STACK_EXPORT +int decode_challenge_request_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_CHALLENGE_REQUEST *bc_req); +BACNET_STACK_EXPORT +int decode_security_payload_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_SECURITY_PAYLOAD *payload); +BACNET_STACK_EXPORT +int decode_security_response_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_SECURITY_RESPONSE *resp); +BACNET_STACK_EXPORT +int decode_request_key_update_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_REQUEST_KEY_UPDATE *req); +BACNET_STACK_EXPORT +int decode_key_entry_safe( + const uint8_t *apdu, uint32_t apdu_len_remaining, BACNET_KEY_ENTRY *entry); +BACNET_STACK_EXPORT +int decode_update_key_set_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_UPDATE_KEY_SET *key_set); +BACNET_STACK_EXPORT +int decode_update_distribution_key_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_UPDATE_DISTRIBUTION_KEY *dist_key); +BACNET_STACK_EXPORT +int decode_request_master_key_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_REQUEST_MASTER_KEY *req_master_key); +BACNET_STACK_EXPORT +int decode_set_master_key_safe( + const uint8_t *apdu, + uint32_t apdu_len_remaining, + BACNET_SET_MASTER_KEY *set_master_key); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/bip.h b/src/bacnet/datalink/bip.h index 961642d4..d095f2a8 100644 --- a/src/bacnet/datalink/bip.h +++ b/src/bacnet/datalink/bip.h @@ -26,92 +26,90 @@ extern "C" { #endif /* __cplusplus */ - /* note: define init, set_interface, and cleanup in your port */ - /* on Linux, ifname is eth0, ath0, arc0, and others. - on Windows, ifname is the dotted ip address of the interface */ - BACNET_STACK_EXPORT - bool bip_init(char *ifname); +/* note: define init, set_interface, and cleanup in your port */ +/* on Linux, ifname is eth0, ath0, arc0, and others. + on Windows, ifname is the dotted ip address of the interface */ +BACNET_STACK_EXPORT +bool bip_init(char *ifname); - BACNET_STACK_EXPORT - void bip_set_interface(const char *ifname); +BACNET_STACK_EXPORT +void bip_set_interface(const char *ifname); - BACNET_STACK_EXPORT - void bip_cleanup(void); +BACNET_STACK_EXPORT +void bip_cleanup(void); - /* common BACnet/IP functions */ - BACNET_STACK_EXPORT - bool bip_valid(void); +/* common BACnet/IP functions */ +BACNET_STACK_EXPORT +bool bip_valid(void); - BACNET_STACK_EXPORT - void bip_get_broadcast_address(BACNET_ADDRESS *dest); +BACNET_STACK_EXPORT +void bip_get_broadcast_address(BACNET_ADDRESS *dest); - BACNET_STACK_EXPORT - void bip_get_my_address(BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +void bip_get_my_address(BACNET_ADDRESS *my_address); - BACNET_STACK_EXPORT - int bip_send_pdu(BACNET_ADDRESS *dest, - BACNET_NPDU_DATA *npdu_data, - uint8_t *pdu, - unsigned pdu_len); +BACNET_STACK_EXPORT +int bip_send_pdu( + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *npdu_data, + uint8_t *pdu, + unsigned pdu_len); - /* implement in ports module */ - BACNET_STACK_EXPORT - int bip_send_mpdu( - const BACNET_IP_ADDRESS *dest, const uint8_t *mtu, uint16_t mtu_len); +/* implement in ports module */ +BACNET_STACK_EXPORT +int bip_send_mpdu( + const BACNET_IP_ADDRESS *dest, const uint8_t *mtu, uint16_t mtu_len); - BACNET_STACK_EXPORT - uint16_t bip_receive(BACNET_ADDRESS *src, - uint8_t *pdu, - uint16_t max_pdu, - unsigned timeout); +BACNET_STACK_EXPORT +uint16_t bip_receive( + BACNET_ADDRESS *src, uint8_t *pdu, uint16_t max_pdu, unsigned timeout); - /* use host byte order for setting UDP port */ - BACNET_STACK_EXPORT - void bip_set_port(uint16_t port); +/* use host byte order for setting UDP port */ +BACNET_STACK_EXPORT +void bip_set_port(uint16_t port); - BACNET_STACK_EXPORT - bool bip_port_changed(void); +BACNET_STACK_EXPORT +bool bip_port_changed(void); - /* returns host byte order of UDP port */ - BACNET_STACK_EXPORT - uint16_t bip_get_port(void); +/* returns host byte order of UDP port */ +BACNET_STACK_EXPORT +uint16_t bip_get_port(void); - BACNET_STACK_EXPORT - bool bip_set_addr(const BACNET_IP_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip_set_addr(const BACNET_IP_ADDRESS *addr); - BACNET_STACK_EXPORT - bool bip_get_addr(BACNET_IP_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip_get_addr(BACNET_IP_ADDRESS *addr); - BACNET_STACK_EXPORT - bool bip_get_addr_by_name(const char *host_name, BACNET_IP_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip_get_addr_by_name(const char *host_name, BACNET_IP_ADDRESS *addr); - BACNET_STACK_EXPORT - bool bip_set_broadcast_addr(const BACNET_IP_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip_set_broadcast_addr(const BACNET_IP_ADDRESS *addr); - BACNET_STACK_EXPORT - bool bip_get_broadcast_addr(BACNET_IP_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip_get_broadcast_addr(BACNET_IP_ADDRESS *addr); - BACNET_STACK_EXPORT - bool bip_set_subnet_prefix(uint8_t prefix); +BACNET_STACK_EXPORT +bool bip_set_subnet_prefix(uint8_t prefix); - BACNET_STACK_EXPORT - uint8_t bip_get_subnet_prefix(void); +BACNET_STACK_EXPORT +uint8_t bip_get_subnet_prefix(void); - BACNET_STACK_EXPORT - void bip_debug_enable(void); +BACNET_STACK_EXPORT +void bip_debug_enable(void); - BACNET_STACK_EXPORT - void bip_debug_disable(void); +BACNET_STACK_EXPORT +void bip_debug_disable(void); - BACNET_STACK_EXPORT - int bip_get_socket(void); +BACNET_STACK_EXPORT +int bip_get_socket(void); - BACNET_STACK_EXPORT - int bip_get_broadcast_socket(void); +BACNET_STACK_EXPORT +int bip_get_broadcast_socket(void); - BACNET_STACK_EXPORT - int bip_set_broadcast_binding( - const char *ip4_broadcast); +BACNET_STACK_EXPORT +int bip_set_broadcast_binding(const char *ip4_broadcast); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/bip6.h b/src/bacnet/datalink/bip6.h index 2a09a51f..a2421c4d 100644 --- a/src/bacnet/datalink/bip6.h +++ b/src/bacnet/datalink/bip6.h @@ -1,16 +1,16 @@ /** -* @file -* @brief BACnet/IPv6 datalink API and defines -* @author Steve Karg -* @date 2015 -* @copyright SPDX-License-Identifier: MIT -* @details Implementation of the Network Layer using BACnet/IPv6 as the transport, -* as described in ASHRAE 135 Annex J. -* The functions described here fulfill the roles defined generically at the -* DataLink level by serving as the implementation of the function templates. -* @defgroup DLBIP6 BACnet/IPv6 DataLink Network Layer -* @ingroup DataLink -*/ + * @file + * @brief BACnet/IPv6 datalink API and defines + * @author Steve Karg + * @date 2015 + * @copyright SPDX-License-Identifier: MIT + * @details Implementation of the Network Layer using BACnet/IPv6 as the + * transport, as described in ASHRAE 135 Annex J. The functions described here + * fulfill the roles defined generically at the DataLink level by serving as the + * implementation of the function templates. + * @defgroup DLBIP6 BACnet/IPv6 DataLink Network Layer + * @ingroup DataLink + */ #ifndef BACNET_BIP6_H #define BACNET_BIP6_H @@ -25,86 +25,66 @@ /* specific defines for BACnet/IP over Ethernet */ #define BIP6_HEADER_MAX (1 + 1 + 2) -#define BIP6_MPDU_MAX (BIP6_HEADER_MAX+MAX_PDU) +#define BIP6_MPDU_MAX (BIP6_HEADER_MAX + MAX_PDU) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - /* 6 datalink functions used by demo handlers and applications: - init, send, receive, cleanup, unicast/broadcast address. - Note: the addresses used here are VMAC addresses. */ - BACNET_STACK_EXPORT - bool bip6_init( - char *ifname); - BACNET_STACK_EXPORT - void bip6_cleanup( - void); - BACNET_STACK_EXPORT - void bip6_get_broadcast_address( - BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - void bip6_get_my_address( - BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - int bip6_send_pdu( - BACNET_ADDRESS * dest, - BACNET_NPDU_DATA * npdu_data, - uint8_t * pdu, - unsigned pdu_len); - BACNET_STACK_EXPORT - uint16_t bip6_receive( - BACNET_ADDRESS * src, - uint8_t * pdu, - uint16_t max_pdu, - unsigned timeout); +/* 6 datalink functions used by demo handlers and applications: + init, send, receive, cleanup, unicast/broadcast address. + Note: the addresses used here are VMAC addresses. */ +BACNET_STACK_EXPORT +bool bip6_init(char *ifname); +BACNET_STACK_EXPORT +void bip6_cleanup(void); +BACNET_STACK_EXPORT +void bip6_get_broadcast_address(BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +void bip6_get_my_address(BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +int bip6_send_pdu( + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *npdu_data, + uint8_t *pdu, + unsigned pdu_len); +BACNET_STACK_EXPORT +uint16_t bip6_receive( + BACNET_ADDRESS *src, uint8_t *pdu, uint16_t max_pdu, unsigned timeout); - /* functions that are custom per port */ - BACNET_STACK_EXPORT - void bip6_set_interface( - char *ifname); +/* functions that are custom per port */ +BACNET_STACK_EXPORT +void bip6_set_interface(char *ifname); - BACNET_STACK_EXPORT - bool bip6_address_match_self( - const BACNET_IP6_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip6_address_match_self(const BACNET_IP6_ADDRESS *addr); - BACNET_STACK_EXPORT - bool bip6_set_addr( - const BACNET_IP6_ADDRESS *addr); - BACNET_STACK_EXPORT - bool bip6_get_addr( - BACNET_IP6_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip6_set_addr(const BACNET_IP6_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip6_get_addr(BACNET_IP6_ADDRESS *addr); - BACNET_STACK_EXPORT - void bip6_set_port( - uint16_t port); - BACNET_STACK_EXPORT - uint16_t bip6_get_port( - void); +BACNET_STACK_EXPORT +void bip6_set_port(uint16_t port); +BACNET_STACK_EXPORT +uint16_t bip6_get_port(void); - BACNET_STACK_EXPORT - bool bip6_set_broadcast_addr( - const BACNET_IP6_ADDRESS *addr); - /* returns network byte order */ - BACNET_STACK_EXPORT - bool bip6_get_broadcast_addr( - BACNET_IP6_ADDRESS *addr); +BACNET_STACK_EXPORT +bool bip6_set_broadcast_addr(const BACNET_IP6_ADDRESS *addr); +/* returns network byte order */ +BACNET_STACK_EXPORT +bool bip6_get_broadcast_addr(BACNET_IP6_ADDRESS *addr); - BACNET_STACK_EXPORT - int bip6_send_mpdu( - const BACNET_IP6_ADDRESS *addr, - const uint8_t * mtu, - uint16_t mtu_len); - BACNET_STACK_EXPORT - bool bip6_send_pdu_queue_empty( - void); - BACNET_STACK_EXPORT - void bip6_receive_callback( - void); +BACNET_STACK_EXPORT +int bip6_send_mpdu( + const BACNET_IP6_ADDRESS *addr, const uint8_t *mtu, uint16_t mtu_len); +BACNET_STACK_EXPORT +bool bip6_send_pdu_queue_empty(void); +BACNET_STACK_EXPORT +void bip6_receive_callback(void); - BACNET_STACK_EXPORT - void bip6_debug_enable( - void); +BACNET_STACK_EXPORT +void bip6_debug_enable(void); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/bvlc.c b/src/bacnet/datalink/bvlc.c index 1174242d..c25b1187 100644 --- a/src/bacnet/datalink/bvlc.c +++ b/src/bacnet/datalink/bvlc.c @@ -56,7 +56,8 @@ int bvlc_encode_header( * * @return number of bytes decoded */ -int bvlc_decode_header(const uint8_t *pdu, +int bvlc_decode_header( + const uint8_t *pdu, uint16_t pdu_len, uint8_t *message_type, uint16_t *message_length) @@ -406,8 +407,7 @@ bool bvlc_broadcast_distribution_mask_from_host( * @return true if the broadcast distribution was retrieved */ bool bvlc_broadcast_distribution_mask_to_host( - uint32_t *broadcast_mask, - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask) + uint32_t *broadcast_mask, const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask) { bool status = false; @@ -521,7 +521,8 @@ bool bvlc_broadcast_distribution_table_entry_forward_address( * @param bdt_head - head of the BDT linked list * @return length of the APDU buffer */ -int bvlc_broadcast_distribution_table_encode(uint8_t *apdu, +int bvlc_broadcast_distribution_table_encode( + uint8_t *apdu, uint16_t apdu_size, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head) { @@ -541,7 +542,8 @@ int bvlc_broadcast_distribution_table_encode(uint8_t *apdu, len = encode_opening_tag(&apdu[apdu_len], 0); apdu_len += len; /* CHOICE - ip-address [1] OCTET STRING */ - octetstring_init(&octet_string, &bdt_entry->dest_address.address[0], + octetstring_init( + &octet_string, &bdt_entry->dest_address.address[0], IP_ADDRESS_MAX); len = encode_context_octet_string(&apdu[apdu_len], 1, &octet_string); @@ -557,8 +559,9 @@ int bvlc_broadcast_distribution_table_encode(uint8_t *apdu, len = encode_closing_tag(&apdu[apdu_len], 0); apdu_len += len; /* broadcast-mask [1] OCTET STRING */ - octetstring_init(&octet_string, - &bdt_entry->broadcast_mask.address[0], IP_ADDRESS_MAX); + octetstring_init( + &octet_string, &bdt_entry->broadcast_mask.address[0], + IP_ADDRESS_MAX); len = encode_context_octet_string(&apdu[apdu_len], 1, &octet_string); apdu_len += len; @@ -584,7 +587,8 @@ int bvlc_broadcast_distribution_table_encode(uint8_t *apdu, * @param bdt_head - head of a BDT linked list * @return length of the APDU buffer decoded, or ERROR, REJECT, or ABORT */ -int bvlc_broadcast_distribution_table_decode(const uint8_t *apdu, +int bvlc_broadcast_distribution_table_decode( + const uint8_t *apdu, uint16_t apdu_len, BACNET_ERROR_CODE *error_code, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head) @@ -698,8 +702,9 @@ int bvlc_broadcast_distribution_table_decode(const uint8_t *apdu, if (len > apdu_len) { return BACNET_STATUS_REJECT; } - (void)octetstring_copy_value(&bdt_entry->broadcast_mask.address[0], - IP_ADDRESS_MAX, &octet_string); + (void)octetstring_copy_value( + &bdt_entry->broadcast_mask.address[0], IP_ADDRESS_MAX, + &octet_string); bdt_entry->valid = true; /* next entry */ bdt_entry = bdt_entry->next; @@ -726,7 +731,8 @@ int bvlc_broadcast_distribution_table_decode(const uint8_t *apdu, * BVLC Length: 2-octets L Length L, in octets, of the BVLL message * List of BDT Entries: N*10-octets */ -int bvlc_encode_write_broadcast_distribution_table(uint8_t *pdu, +int bvlc_encode_write_broadcast_distribution_table( + uint8_t *pdu, uint16_t pdu_size, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list) { @@ -771,7 +777,8 @@ int bvlc_encode_write_broadcast_distribution_table(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc_decode_write_broadcast_distribution_table(const uint8_t *pdu, +int bvlc_decode_write_broadcast_distribution_table( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list) { @@ -856,7 +863,8 @@ int bvlc_encode_read_broadcast_distribution_table( * BVLC Length: 2-octets L length, in octets, of the BVLL message * List of BDT Entries: N*10-octets */ -int bvlc_encode_read_broadcast_distribution_table_ack(uint8_t *pdu, +int bvlc_encode_read_broadcast_distribution_table_ack( + uint8_t *pdu, uint16_t pdu_size, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list) { @@ -901,7 +909,8 @@ int bvlc_encode_read_broadcast_distribution_table_ack(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc_decode_read_broadcast_distribution_table_ack(const uint8_t *pdu, +int bvlc_decode_read_broadcast_distribution_table_ack( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list) { @@ -956,7 +965,8 @@ int bvlc_decode_read_broadcast_distribution_table_ack(const uint8_t *pdu, * B/IP Address of Originating Device: 6-octets * BACnet NPDU from Originating Device: N-octets (N=L-10) */ -int bvlc_encode_forwarded_npdu(uint8_t *pdu, +int bvlc_encode_forwarded_npdu( + uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_ADDRESS *bip_address, const uint8_t *npdu, @@ -999,7 +1009,8 @@ int bvlc_encode_forwarded_npdu(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc_decode_forwarded_npdu(const uint8_t *pdu, +int bvlc_decode_forwarded_npdu( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_ADDRESS *bip_address, uint8_t *npdu, @@ -1110,7 +1121,8 @@ int bvlc_decode_register_foreign_device( * @param fdt_head - head of the BDT linked list * @return length of the APDU buffer */ -int bvlc_foreign_device_table_encode(uint8_t *apdu, +int bvlc_foreign_device_table_encode( + uint8_t *apdu, uint16_t apdu_size, BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head) { @@ -1124,7 +1136,8 @@ int bvlc_foreign_device_table_encode(uint8_t *apdu, while (fdt_entry) { if (fdt_entry->valid) { /* bacnetip-address [0] OCTET STRING */ - len = bvlc_encode_address(octetstring_value(&octet_string), + len = bvlc_encode_address( + octetstring_value(&octet_string), octetstring_capacity(&octet_string), &fdt_entry->dest_address); octetstring_truncate(&octet_string, len); len = @@ -1369,8 +1382,8 @@ uint16_t bvlc_foreign_device_table_valid_count( * @param bdt_list - first element in array BDT entries * @return number of elements of BDT entries */ -uint16_t bvlc_foreign_device_table_count( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list) +uint16_t +bvlc_foreign_device_table_count(BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list) { BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry = NULL; uint16_t entry_count = 0; @@ -1429,7 +1442,8 @@ void bvlc_foreign_device_table_link_array( * re-registration occurs. The time remaining includes the 30-second grace * period as defined in Clause J.5.2.3. */ -int bvlc_encode_read_foreign_device_table_ack(uint8_t *pdu, +int bvlc_encode_read_foreign_device_table_ack( + uint8_t *pdu, uint16_t pdu_size, BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list) { @@ -1474,7 +1488,8 @@ int bvlc_encode_read_foreign_device_table_ack(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc_decode_read_foreign_device_table_ack(const uint8_t *pdu, +int bvlc_decode_read_foreign_device_table_ack( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list) { @@ -1623,7 +1638,8 @@ int bvlc_encode_distribute_broadcast_to_network( * * @return number of bytes decoded */ -int bvlc_decode_distribute_broadcast_to_network(const uint8_t *pdu, +int bvlc_decode_distribute_broadcast_to_network( + const uint8_t *pdu, uint16_t pdu_len, uint8_t *npdu, uint16_t npdu_size, @@ -1698,7 +1714,8 @@ int bvlc_encode_original_unicast( * * @return number of bytes decoded */ -int bvlc_decode_original_unicast(const uint8_t *pdu, +int bvlc_decode_original_unicast( + const uint8_t *pdu, uint16_t pdu_len, uint8_t *npdu, uint16_t npdu_size, @@ -1773,7 +1790,8 @@ int bvlc_encode_original_broadcast( * * @return number of bytes decoded */ -int bvlc_decode_original_broadcast(const uint8_t *pdu, +int bvlc_decode_original_broadcast( + const uint8_t *pdu, uint16_t pdu_len, uint8_t *npdu, uint16_t npdu_size, @@ -1848,7 +1866,8 @@ int bvlc_encode_secure_bvll( * * @return number of bytes decoded */ -int bvlc_decode_secure_bvll(const uint8_t *pdu, +int bvlc_decode_secure_bvll( + const uint8_t *pdu, uint16_t pdu_len, uint8_t *sbuf, uint16_t sbuf_size, @@ -2003,7 +2022,8 @@ bool bvlc_address_different( * @param mask - B/IPv4 broadcast distribution mask * @return true if the addresses are different */ -bool bvlc_address_mask(BACNET_IP_ADDRESS *dst, +bool bvlc_address_mask( + BACNET_IP_ADDRESS *dst, const BACNET_IP_ADDRESS *src, const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask) { @@ -2036,7 +2056,8 @@ bool bvlc_address_mask(BACNET_IP_ADDRESS *dst, * * @return true if the address is set */ -bool bvlc_address_set(BACNET_IP_ADDRESS *addr, +bool bvlc_address_set( + BACNET_IP_ADDRESS *addr, uint8_t addr0, uint8_t addr1, uint8_t addr2, @@ -2071,7 +2092,8 @@ bool bvlc_address_set(BACNET_IP_ADDRESS *addr, * * @return true if the address is set */ -bool bvlc_address_get(const BACNET_IP_ADDRESS *addr, +bool bvlc_address_get( + const BACNET_IP_ADDRESS *addr, uint8_t *addr0, uint8_t *addr1, uint8_t *addr2, @@ -2336,7 +2358,8 @@ bool bvlc_ip_address_from_bacnet_remote( * * @return number of bytes encoded */ -int bvlc_encode_broadcast_distribution_mask(uint8_t *pdu, +int bvlc_encode_broadcast_distribution_mask( + uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *bd_mask) { @@ -2366,7 +2389,8 @@ int bvlc_encode_broadcast_distribution_mask(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc_decode_broadcast_distribution_mask(const uint8_t *pdu, +int bvlc_decode_broadcast_distribution_mask( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_BROADCAST_DISTRIBUTION_MASK *bd_mask) { @@ -2399,7 +2423,8 @@ int bvlc_decode_broadcast_distribution_mask(const uint8_t *pdu, * * @return number of bytes encoded */ -int bvlc_encode_broadcast_distribution_table_entry(uint8_t *pdu, +int bvlc_encode_broadcast_distribution_table_entry( + uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry) { @@ -2413,8 +2438,9 @@ int bvlc_encode_broadcast_distribution_table_entry(uint8_t *pdu, &pdu[offset], pdu_size - offset, &bdt_entry->dest_address); if (len > 0) { offset += len; - len = bvlc_encode_broadcast_distribution_mask(&pdu[offset], - pdu_size - offset, &bdt_entry->broadcast_mask); + len = bvlc_encode_broadcast_distribution_mask( + &pdu[offset], pdu_size - offset, + &bdt_entry->broadcast_mask); } if (len > 0) { offset += len; @@ -2440,7 +2466,8 @@ int bvlc_encode_broadcast_distribution_table_entry(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc_decode_broadcast_distribution_table_entry(const uint8_t *pdu, +int bvlc_decode_broadcast_distribution_table_entry( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry) { @@ -2480,7 +2507,8 @@ int bvlc_decode_broadcast_distribution_table_entry(const uint8_t *pdu, * * @return number of bytes encoded */ -int bvlc_encode_foreign_device_table_entry(uint8_t *pdu, +int bvlc_encode_foreign_device_table_entry( + uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry) { @@ -2524,7 +2552,8 @@ int bvlc_encode_foreign_device_table_entry(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc_decode_foreign_device_table_entry(const uint8_t *pdu, +int bvlc_decode_foreign_device_table_entry( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry) { @@ -2626,7 +2655,8 @@ int bvlc_foreign_device_bbmd_host_address_encode( * @param ip_address - IP address and port number * @return length of the APDU buffer decoded, or ERROR, REJECT, or ABORT */ -int bvlc_foreign_device_bbmd_host_address_decode(const uint8_t *apdu, +int bvlc_foreign_device_bbmd_host_address_decode( + const uint8_t *apdu, uint16_t apdu_len, BACNET_ERROR_CODE *error_code, BACNET_IP_ADDRESS *ip_address) @@ -2638,8 +2668,9 @@ int bvlc_foreign_device_bbmd_host_address_decode(const uint8_t *apdu, if (len > 0) { if (address.host_ip_address) { ip_address->port = address.port; - (void)octetstring_copy_value(&ip_address->address[0], - IP_ADDRESS_MAX, &address.host.ip_address); + (void)octetstring_copy_value( + &ip_address->address[0], IP_ADDRESS_MAX, + &address.host.ip_address); } else { len = BACNET_STATUS_REJECT; if (error_code) { diff --git a/src/bacnet/datalink/bvlc.h b/src/bacnet/datalink/bvlc.h index 8ad34958..33c9cacb 100644 --- a/src/bacnet/datalink/bvlc.h +++ b/src/bacnet/datalink/bvlc.h @@ -149,371 +149,394 @@ typedef struct BACnet_IP_Foreign_Device_Table_Entry { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bvlc_encode_address( - uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_ADDRESS *ip_address); - - BACNET_STACK_EXPORT - int bvlc_decode_address( - const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_ADDRESS *ip_address); - - BACNET_STACK_EXPORT - bool bvlc_address_copy(BACNET_IP_ADDRESS *dst, const BACNET_IP_ADDRESS *src); - - BACNET_STACK_EXPORT - bool bvlc_address_different( - const BACNET_IP_ADDRESS *dst, const BACNET_IP_ADDRESS *src); - - BACNET_STACK_EXPORT - bool bvlc_address_from_ascii(BACNET_IP_ADDRESS *dst, const char *addrstr); - - BACNET_STACK_EXPORT - bool bvlc_address_port_from_ascii( - BACNET_IP_ADDRESS *dst, const char *addrstr, const char *portstr); - - BACNET_STACK_EXPORT - void bvlc_address_from_network(BACNET_IP_ADDRESS *dst, uint32_t addr); - - BACNET_STACK_EXPORT - bool bvlc_address_set(BACNET_IP_ADDRESS *addr, - uint8_t addr0, - uint8_t addr1, - uint8_t addr2, - uint8_t addr3); - - BACNET_STACK_EXPORT - bool bvlc_address_get(const BACNET_IP_ADDRESS *addr, - uint8_t *addr0, - uint8_t *addr1, - uint8_t *addr2, - uint8_t *addr3); - - BACNET_STACK_EXPORT - bool bvlc_ip_address_to_bacnet_local( - BACNET_ADDRESS *addr, const BACNET_IP_ADDRESS *ipaddr); - - BACNET_STACK_EXPORT - bool bvlc_ip_address_from_bacnet_local( - BACNET_IP_ADDRESS *ipaddr, const BACNET_ADDRESS *addr); - - BACNET_STACK_EXPORT - bool bvlc_ip_address_to_bacnet_remote( - BACNET_ADDRESS *addr, uint16_t dnet, const BACNET_IP_ADDRESS *ipaddr); - - BACNET_STACK_EXPORT - bool bvlc_ip_address_from_bacnet_remote( - BACNET_IP_ADDRESS *ipaddr, uint16_t *dnet, const BACNET_ADDRESS *addr); - - BACNET_STACK_EXPORT - int bvlc_encode_broadcast_distribution_mask(uint8_t *pdu, - uint16_t pdu_size, - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *bd_mask); - - BACNET_STACK_EXPORT - int bvlc_decode_broadcast_distribution_mask(const uint8_t *pdu, - uint16_t pdu_len, - BACNET_IP_BROADCAST_DISTRIBUTION_MASK *bd_mask); - - BACNET_STACK_EXPORT - int bvlc_encode_broadcast_distribution_table_entry(uint8_t *pdu, - uint16_t pdu_size, - const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); - - BACNET_STACK_EXPORT - int bvlc_decode_broadcast_distribution_table_entry(const uint8_t *pdu, - uint16_t pdu_len, - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); - - BACNET_STACK_EXPORT - void bvlc_broadcast_distribution_table_link_array( - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list, - const size_t bdt_array_size); - - BACNET_STACK_EXPORT - uint16_t bvlc_broadcast_distribution_table_count( - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); - - BACNET_STACK_EXPORT - uint16_t bvlc_broadcast_distribution_table_valid_count( - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); - - BACNET_STACK_EXPORT - void bvlc_broadcast_distribution_table_valid_clear( - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_table_entry_different( - const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *dst, - const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *src); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_table_entry_copy( - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *dst, - const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *src); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_mask_different( - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *dst, - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *src); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_mask_copy( - BACNET_IP_BROADCAST_DISTRIBUTION_MASK *dst, - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *src); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_table_entry_append( - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list, - const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_table_entry_set( - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry, - const BACNET_IP_ADDRESS *addr, - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_table_entry_forward_address( - BACNET_IP_ADDRESS *addr, - const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); - - BACNET_STACK_EXPORT - bool bvlc_address_mask( - BACNET_IP_ADDRESS *dst, const BACNET_IP_ADDRESS *src, - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_mask_from_host( - BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask, uint32_t broadcast_mask); - - BACNET_STACK_EXPORT - bool bvlc_broadcast_distribution_mask_to_host( - uint32_t *broadcast_mask, - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask); - - BACNET_STACK_EXPORT - void bvlc_broadcast_distribution_mask_set( - BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask, - uint8_t addr0, - uint8_t addr1, - uint8_t addr2, - uint8_t addr3); - - BACNET_STACK_EXPORT - void bvlc_broadcast_distribution_mask_get( - const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask, - uint8_t *addr0, - uint8_t *addr1, - uint8_t *addr2, - uint8_t *addr3); - - BACNET_STACK_EXPORT - int bvlc_broadcast_distribution_table_decode(const uint8_t *apdu, - uint16_t apdu_len, - BACNET_ERROR_CODE *error_code, - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); - - BACNET_STACK_EXPORT - int bvlc_broadcast_distribution_table_encode(uint8_t *apdu, - uint16_t apdu_size, - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); - - BACNET_STACK_EXPORT - int bvlc_encode_write_broadcast_distribution_table(uint8_t *pdu, - uint16_t pdu_size, - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); - - BACNET_STACK_EXPORT - int bvlc_decode_write_broadcast_distribution_table(const uint8_t *pdu, - uint16_t pdu_len, - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); - - BACNET_STACK_EXPORT - int bvlc_encode_read_broadcast_distribution_table( - uint8_t *pdu, uint16_t pdu_size); - - BACNET_STACK_EXPORT - int bvlc_encode_read_broadcast_distribution_table_ack(uint8_t *pdu, - uint16_t pdu_size, - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); - - BACNET_STACK_EXPORT - int bvlc_decode_read_broadcast_distribution_table_ack(const uint8_t *pdu, - uint16_t pdu_len, - BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); - - BACNET_STACK_EXPORT - int bvlc_encode_header( - uint8_t *pdu, uint16_t pdu_size, uint8_t message_type, uint16_t length); - - BACNET_STACK_EXPORT - int bvlc_decode_header( - const uint8_t *pdu, - uint16_t pdu_len, - uint8_t *message_type, - uint16_t *length); - - - BACNET_STACK_EXPORT - void bvlc_foreign_device_table_maintenance_timer( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, uint16_t seconds); - - BACNET_STACK_EXPORT - uint16_t bvlc_foreign_device_table_valid_count( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); - - BACNET_STACK_EXPORT - uint16_t bvlc_foreign_device_table_count( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); - - BACNET_STACK_EXPORT - void bvlc_foreign_device_table_link_array( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, const size_t array_size); - - BACNET_STACK_EXPORT - bool bvlc_foreign_device_table_entry_different( - const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *dst, - const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *src); - - BACNET_STACK_EXPORT - bool bvlc_foreign_device_table_entry_copy( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *dst, - const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *src); - - BACNET_STACK_EXPORT - bool bvlc_foreign_device_table_entry_delete( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, - const BACNET_IP_ADDRESS *ip_address); - - BACNET_STACK_EXPORT - bool bvlc_foreign_device_table_entry_add( - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, - const BACNET_IP_ADDRESS *ip_address, - uint16_t ttl_seconds); - - BACNET_STACK_EXPORT - int bvlc_encode_foreign_device_table_entry(uint8_t *pdu, - uint16_t pdu_size, - const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry); - - BACNET_STACK_EXPORT - int bvlc_decode_foreign_device_table_entry(const uint8_t *pdu, - uint16_t pdu_len, - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry); - - BACNET_STACK_EXPORT - int bvlc_foreign_device_table_encode(uint8_t *apdu, - uint16_t apdu_size, - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head); - - BACNET_STACK_EXPORT - int bvlc_encode_read_foreign_device_table(uint8_t *pdu, uint16_t pdu_size); - - BACNET_STACK_EXPORT - int bvlc_encode_read_foreign_device_table_ack(uint8_t *pdu, - uint16_t pdu_size, - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); - - BACNET_STACK_EXPORT - int bvlc_decode_read_foreign_device_table_ack(const uint8_t *pdu, - uint16_t pdu_len, - BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); - - BACNET_STACK_EXPORT - int bvlc_encode_result(uint8_t *pdu, uint16_t pdu_size, uint16_t result_code); - - BACNET_STACK_EXPORT - int bvlc_decode_result( - const uint8_t *pdu, uint16_t pdu_len, uint16_t *result_code); - - BACNET_STACK_EXPORT - int bvlc_encode_original_unicast( - uint8_t *pdu, uint16_t pdu_size, const uint8_t *npdu, uint16_t npdu_len); - - BACNET_STACK_EXPORT - int bvlc_decode_original_unicast(const uint8_t *pdu, - uint16_t pdu_len, - uint8_t *npdu, - uint16_t npdu_size, - uint16_t *npdu_len); - - BACNET_STACK_EXPORT - int bvlc_encode_original_broadcast( - uint8_t *pdu, uint16_t pdu_size, const uint8_t *npdu, uint16_t npdu_len); - - BACNET_STACK_EXPORT - int bvlc_decode_original_broadcast(const uint8_t *pdu, - uint16_t pdu_len, - uint8_t *npdu, - uint16_t npdu_size, - uint16_t *npdu_len); - - BACNET_STACK_EXPORT - int bvlc_encode_forwarded_npdu(uint8_t *pdu, - uint16_t pdu_size, - const BACNET_IP_ADDRESS *address, - const uint8_t *npdu, - uint16_t npdu_len); - - BACNET_STACK_EXPORT - int bvlc_decode_forwarded_npdu(const uint8_t *pdu, - uint16_t pdu_len, - BACNET_IP_ADDRESS *address, - uint8_t *npdu, - uint16_t npdu_size, - uint16_t *npdu_len); - - BACNET_STACK_EXPORT - int bvlc_encode_register_foreign_device( - uint8_t *pdu, uint16_t pdu_size, uint16_t ttl_seconds); - - BACNET_STACK_EXPORT - int bvlc_decode_register_foreign_device( - const uint8_t *pdu, uint16_t pdu_len, uint16_t *ttl_seconds); - - BACNET_STACK_EXPORT - int bvlc_encode_delete_foreign_device( - uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_ADDRESS *ip_address); - - BACNET_STACK_EXPORT - int bvlc_decode_delete_foreign_device( - const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_ADDRESS *ip_address); - - BACNET_STACK_EXPORT - int bvlc_encode_secure_bvll( - uint8_t *pdu, uint16_t pdu_size, const uint8_t *sbuf, uint16_t sbuf_len); - - BACNET_STACK_EXPORT - int bvlc_decode_secure_bvll(const uint8_t *pdu, - uint16_t pdu_len, - uint8_t *sbuf, - uint16_t sbuf_size, - uint16_t *sbuf_len); - - BACNET_STACK_EXPORT - int bvlc_encode_distribute_broadcast_to_network( - uint8_t *pdu, uint16_t pdu_size, const uint8_t *npdu, uint16_t npdu_len); - - BACNET_STACK_EXPORT - int bvlc_decode_distribute_broadcast_to_network(const uint8_t *pdu, - uint16_t pdu_len, - uint8_t *npdu, - uint16_t npdu_size, - uint16_t *npdu_len); - - BACNET_STACK_EXPORT - const char *bvlc_result_code_name(uint16_t result_code); - - BACNET_STACK_EXPORT - int bvlc_foreign_device_bbmd_host_address_encode(uint8_t *apdu, - uint16_t apdu_size, - const BACNET_IP_ADDRESS *ip_address); - - BACNET_STACK_EXPORT - int bvlc_foreign_device_bbmd_host_address_decode(const uint8_t *apdu, - uint16_t apdu_len, - BACNET_ERROR_CODE *error_code, - BACNET_IP_ADDRESS *ip_address); +BACNET_STACK_EXPORT +int bvlc_encode_address( + uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_ADDRESS *ip_address); + +BACNET_STACK_EXPORT +int bvlc_decode_address( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_ADDRESS *ip_address); + +BACNET_STACK_EXPORT +bool bvlc_address_copy(BACNET_IP_ADDRESS *dst, const BACNET_IP_ADDRESS *src); + +BACNET_STACK_EXPORT +bool bvlc_address_different( + const BACNET_IP_ADDRESS *dst, const BACNET_IP_ADDRESS *src); + +BACNET_STACK_EXPORT +bool bvlc_address_from_ascii(BACNET_IP_ADDRESS *dst, const char *addrstr); + +BACNET_STACK_EXPORT +bool bvlc_address_port_from_ascii( + BACNET_IP_ADDRESS *dst, const char *addrstr, const char *portstr); + +BACNET_STACK_EXPORT +void bvlc_address_from_network(BACNET_IP_ADDRESS *dst, uint32_t addr); + +BACNET_STACK_EXPORT +bool bvlc_address_set( + BACNET_IP_ADDRESS *addr, + uint8_t addr0, + uint8_t addr1, + uint8_t addr2, + uint8_t addr3); + +BACNET_STACK_EXPORT +bool bvlc_address_get( + const BACNET_IP_ADDRESS *addr, + uint8_t *addr0, + uint8_t *addr1, + uint8_t *addr2, + uint8_t *addr3); + +BACNET_STACK_EXPORT +bool bvlc_ip_address_to_bacnet_local( + BACNET_ADDRESS *addr, const BACNET_IP_ADDRESS *ipaddr); + +BACNET_STACK_EXPORT +bool bvlc_ip_address_from_bacnet_local( + BACNET_IP_ADDRESS *ipaddr, const BACNET_ADDRESS *addr); + +BACNET_STACK_EXPORT +bool bvlc_ip_address_to_bacnet_remote( + BACNET_ADDRESS *addr, uint16_t dnet, const BACNET_IP_ADDRESS *ipaddr); + +BACNET_STACK_EXPORT +bool bvlc_ip_address_from_bacnet_remote( + BACNET_IP_ADDRESS *ipaddr, uint16_t *dnet, const BACNET_ADDRESS *addr); + +BACNET_STACK_EXPORT +int bvlc_encode_broadcast_distribution_mask( + uint8_t *pdu, + uint16_t pdu_size, + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *bd_mask); + +BACNET_STACK_EXPORT +int bvlc_decode_broadcast_distribution_mask( + const uint8_t *pdu, + uint16_t pdu_len, + BACNET_IP_BROADCAST_DISTRIBUTION_MASK *bd_mask); + +BACNET_STACK_EXPORT +int bvlc_encode_broadcast_distribution_table_entry( + uint8_t *pdu, + uint16_t pdu_size, + const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); + +BACNET_STACK_EXPORT +int bvlc_decode_broadcast_distribution_table_entry( + const uint8_t *pdu, + uint16_t pdu_len, + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); + +BACNET_STACK_EXPORT +void bvlc_broadcast_distribution_table_link_array( + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list, + const size_t bdt_array_size); + +BACNET_STACK_EXPORT +uint16_t bvlc_broadcast_distribution_table_count( + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); + +BACNET_STACK_EXPORT +uint16_t bvlc_broadcast_distribution_table_valid_count( + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); + +BACNET_STACK_EXPORT +void bvlc_broadcast_distribution_table_valid_clear( + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_table_entry_different( + const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *dst, + const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *src); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_table_entry_copy( + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *dst, + const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *src); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_mask_different( + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *dst, + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *src); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_mask_copy( + BACNET_IP_BROADCAST_DISTRIBUTION_MASK *dst, + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *src); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_table_entry_append( + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list, + const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_table_entry_set( + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry, + const BACNET_IP_ADDRESS *addr, + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_table_entry_forward_address( + BACNET_IP_ADDRESS *addr, + const BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); + +BACNET_STACK_EXPORT +bool bvlc_address_mask( + BACNET_IP_ADDRESS *dst, + const BACNET_IP_ADDRESS *src, + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_mask_from_host( + BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask, uint32_t broadcast_mask); + +BACNET_STACK_EXPORT +bool bvlc_broadcast_distribution_mask_to_host( + uint32_t *broadcast_mask, + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask); + +BACNET_STACK_EXPORT +void bvlc_broadcast_distribution_mask_set( + BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask, + uint8_t addr0, + uint8_t addr1, + uint8_t addr2, + uint8_t addr3); + +BACNET_STACK_EXPORT +void bvlc_broadcast_distribution_mask_get( + const BACNET_IP_BROADCAST_DISTRIBUTION_MASK *mask, + uint8_t *addr0, + uint8_t *addr1, + uint8_t *addr2, + uint8_t *addr3); + +BACNET_STACK_EXPORT +int bvlc_broadcast_distribution_table_decode( + const uint8_t *apdu, + uint16_t apdu_len, + BACNET_ERROR_CODE *error_code, + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); + +BACNET_STACK_EXPORT +int bvlc_broadcast_distribution_table_encode( + uint8_t *apdu, + uint16_t apdu_size, + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); + +BACNET_STACK_EXPORT +int bvlc_encode_write_broadcast_distribution_table( + uint8_t *pdu, + uint16_t pdu_size, + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); + +BACNET_STACK_EXPORT +int bvlc_decode_write_broadcast_distribution_table( + const uint8_t *pdu, + uint16_t pdu_len, + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); + +BACNET_STACK_EXPORT +int bvlc_encode_read_broadcast_distribution_table( + uint8_t *pdu, uint16_t pdu_size); + +BACNET_STACK_EXPORT +int bvlc_encode_read_broadcast_distribution_table_ack( + uint8_t *pdu, + uint16_t pdu_size, + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); + +BACNET_STACK_EXPORT +int bvlc_decode_read_broadcast_distribution_table_ack( + const uint8_t *pdu, + uint16_t pdu_len, + BACNET_IP_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_list); + +BACNET_STACK_EXPORT +int bvlc_encode_header( + uint8_t *pdu, uint16_t pdu_size, uint8_t message_type, uint16_t length); + +BACNET_STACK_EXPORT +int bvlc_decode_header( + const uint8_t *pdu, + uint16_t pdu_len, + uint8_t *message_type, + uint16_t *length); + +BACNET_STACK_EXPORT +void bvlc_foreign_device_table_maintenance_timer( + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, uint16_t seconds); + +BACNET_STACK_EXPORT +uint16_t bvlc_foreign_device_table_valid_count( + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); + +BACNET_STACK_EXPORT +uint16_t +bvlc_foreign_device_table_count(BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); + +BACNET_STACK_EXPORT +void bvlc_foreign_device_table_link_array( + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, const size_t array_size); + +BACNET_STACK_EXPORT +bool bvlc_foreign_device_table_entry_different( + const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *dst, + const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *src); + +BACNET_STACK_EXPORT +bool bvlc_foreign_device_table_entry_copy( + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *dst, + const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *src); + +BACNET_STACK_EXPORT +bool bvlc_foreign_device_table_entry_delete( + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, + const BACNET_IP_ADDRESS *ip_address); + +BACNET_STACK_EXPORT +bool bvlc_foreign_device_table_entry_add( + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list, + const BACNET_IP_ADDRESS *ip_address, + uint16_t ttl_seconds); + +BACNET_STACK_EXPORT +int bvlc_encode_foreign_device_table_entry( + uint8_t *pdu, + uint16_t pdu_size, + const BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry); + +BACNET_STACK_EXPORT +int bvlc_decode_foreign_device_table_entry( + const uint8_t *pdu, + uint16_t pdu_len, + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry); + +BACNET_STACK_EXPORT +int bvlc_foreign_device_table_encode( + uint8_t *apdu, + uint16_t apdu_size, + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head); + +BACNET_STACK_EXPORT +int bvlc_encode_read_foreign_device_table(uint8_t *pdu, uint16_t pdu_size); + +BACNET_STACK_EXPORT +int bvlc_encode_read_foreign_device_table_ack( + uint8_t *pdu, + uint16_t pdu_size, + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); + +BACNET_STACK_EXPORT +int bvlc_decode_read_foreign_device_table_ack( + const uint8_t *pdu, + uint16_t pdu_len, + BACNET_IP_FOREIGN_DEVICE_TABLE_ENTRY *fdt_list); + +BACNET_STACK_EXPORT +int bvlc_encode_result(uint8_t *pdu, uint16_t pdu_size, uint16_t result_code); + +BACNET_STACK_EXPORT +int bvlc_decode_result( + const uint8_t *pdu, uint16_t pdu_len, uint16_t *result_code); + +BACNET_STACK_EXPORT +int bvlc_encode_original_unicast( + uint8_t *pdu, uint16_t pdu_size, const uint8_t *npdu, uint16_t npdu_len); + +BACNET_STACK_EXPORT +int bvlc_decode_original_unicast( + const uint8_t *pdu, + uint16_t pdu_len, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); + +BACNET_STACK_EXPORT +int bvlc_encode_original_broadcast( + uint8_t *pdu, uint16_t pdu_size, const uint8_t *npdu, uint16_t npdu_len); + +BACNET_STACK_EXPORT +int bvlc_decode_original_broadcast( + const uint8_t *pdu, + uint16_t pdu_len, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); + +BACNET_STACK_EXPORT +int bvlc_encode_forwarded_npdu( + uint8_t *pdu, + uint16_t pdu_size, + const BACNET_IP_ADDRESS *address, + const uint8_t *npdu, + uint16_t npdu_len); + +BACNET_STACK_EXPORT +int bvlc_decode_forwarded_npdu( + const uint8_t *pdu, + uint16_t pdu_len, + BACNET_IP_ADDRESS *address, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); + +BACNET_STACK_EXPORT +int bvlc_encode_register_foreign_device( + uint8_t *pdu, uint16_t pdu_size, uint16_t ttl_seconds); + +BACNET_STACK_EXPORT +int bvlc_decode_register_foreign_device( + const uint8_t *pdu, uint16_t pdu_len, uint16_t *ttl_seconds); + +BACNET_STACK_EXPORT +int bvlc_encode_delete_foreign_device( + uint8_t *pdu, uint16_t pdu_size, const BACNET_IP_ADDRESS *ip_address); + +BACNET_STACK_EXPORT +int bvlc_decode_delete_foreign_device( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP_ADDRESS *ip_address); + +BACNET_STACK_EXPORT +int bvlc_encode_secure_bvll( + uint8_t *pdu, uint16_t pdu_size, const uint8_t *sbuf, uint16_t sbuf_len); + +BACNET_STACK_EXPORT +int bvlc_decode_secure_bvll( + const uint8_t *pdu, + uint16_t pdu_len, + uint8_t *sbuf, + uint16_t sbuf_size, + uint16_t *sbuf_len); + +BACNET_STACK_EXPORT +int bvlc_encode_distribute_broadcast_to_network( + uint8_t *pdu, uint16_t pdu_size, const uint8_t *npdu, uint16_t npdu_len); + +BACNET_STACK_EXPORT +int bvlc_decode_distribute_broadcast_to_network( + const uint8_t *pdu, + uint16_t pdu_len, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); + +BACNET_STACK_EXPORT +const char *bvlc_result_code_name(uint16_t result_code); + +BACNET_STACK_EXPORT +int bvlc_foreign_device_bbmd_host_address_encode( + uint8_t *apdu, uint16_t apdu_size, const BACNET_IP_ADDRESS *ip_address); + +BACNET_STACK_EXPORT +int bvlc_foreign_device_bbmd_host_address_decode( + const uint8_t *apdu, + uint16_t apdu_len, + BACNET_ERROR_CODE *error_code, + BACNET_IP_ADDRESS *ip_address); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/bvlc6.c b/src/bacnet/datalink/bvlc6.c index 24e0276b..ce66ffc5 100644 --- a/src/bacnet/datalink/bvlc6.c +++ b/src/bacnet/datalink/bvlc6.c @@ -127,10 +127,7 @@ int bvlc6_encode_result( * @return number of bytes decoded */ int bvlc6_decode_result( - const uint8_t *pdu, - uint16_t pdu_len, - uint32_t *vmac, - uint16_t *result_code) + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac, uint16_t *result_code) { int bytes_consumed = 0; @@ -168,7 +165,8 @@ int bvlc6_decode_result( * Destination-Virtual-Address: 3-octets * BACnet NPDU: Variable length */ -int bvlc6_encode_original_unicast(uint8_t *pdu, +int bvlc6_encode_original_unicast( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, uint32_t vmac_dst, @@ -211,7 +209,8 @@ int bvlc6_encode_original_unicast(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc6_decode_original_unicast(const uint8_t *pdu, +int bvlc6_decode_original_unicast( + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src, uint32_t *vmac_dst, @@ -264,7 +263,8 @@ int bvlc6_decode_original_unicast(const uint8_t *pdu, * Source-Virtual-Address: 3-octets * BACnet NPDU: Variable length */ -int bvlc6_encode_original_broadcast(uint8_t *pdu, +int bvlc6_encode_original_broadcast( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac, const uint8_t *npdu, @@ -303,7 +303,8 @@ int bvlc6_encode_original_broadcast(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc6_decode_original_broadcast(const uint8_t *pdu, +int bvlc6_decode_original_broadcast( + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac, uint8_t *npdu, @@ -382,7 +383,10 @@ int bvlc6_encode_address_resolution( * @return number of bytes decoded */ int bvlc6_decode_address_resolution( - const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src, uint32_t *vmac_target) + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint32_t *vmac_target) { int bytes_consumed = 0; @@ -535,7 +539,8 @@ bool bvlc6_address_different( * * @return true if the address is set */ -bool bvlc6_address_set(BACNET_IP6_ADDRESS *addr, +bool bvlc6_address_set( + BACNET_IP6_ADDRESS *addr, uint16_t addr0, uint16_t addr1, uint16_t addr2, @@ -581,7 +586,8 @@ bool bvlc6_address_set(BACNET_IP6_ADDRESS *addr, * * @return true if the address is set */ -bool bvlc6_address_get(const BACNET_IP6_ADDRESS *addr, +bool bvlc6_address_get( + const BACNET_IP6_ADDRESS *addr, uint16_t *addr0, uint16_t *addr1, uint16_t *addr2, @@ -649,7 +655,6 @@ static int snprintf_shift(int len, char **buf, size_t *buf_size) return len; } - /** Convert IPv6 Address from ASCII * * IPv6 addresses are represented as eight groups, separated by colons, @@ -679,7 +684,8 @@ static int snprintf_shift(int len, char **buf, size_t *buf_size) * input, excluding the trailing null. * @note buf and buf_size may be null and zero to return only the size */ -int bvlc6_address_to_ascii(const BACNET_IP6_ADDRESS *addr, char *buf, size_t buf_size) +int bvlc6_address_to_ascii( + const BACNET_IP6_ADDRESS *addr, char *buf, size_t buf_size) { uint16_t a; unsigned int i; @@ -878,7 +884,8 @@ bool bvlc6_vmac_address_get(const BACNET_ADDRESS *addr, uint32_t *device_id) * Target-Virtual-Address: 3-octets * Original-Source-B/IPv6-Address 18-octets */ -int bvlc6_encode_forwarded_address_resolution(uint8_t *pdu, +int bvlc6_encode_forwarded_address_resolution( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, uint32_t vmac_target, @@ -916,7 +923,8 @@ int bvlc6_encode_forwarded_address_resolution(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc6_decode_forwarded_address_resolution(const uint8_t *pdu, +int bvlc6_decode_forwarded_address_resolution( + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src, uint32_t *vmac_target, @@ -953,7 +961,8 @@ int bvlc6_decode_forwarded_address_resolution(const uint8_t *pdu, * * @return number of bytes encoded */ -static int bvlc6_encode_address_ack(uint8_t message_type, +static int bvlc6_encode_address_ack( + uint8_t message_type, uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, @@ -1114,8 +1123,9 @@ int bvlc6_decode_virtual_address_resolution( int bvlc6_encode_virtual_address_resolution_ack( uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, uint32_t vmac_dst) { - return bvlc6_encode_address_ack(BVLC6_VIRTUAL_ADDRESS_RESOLUTION_ACK, pdu, - pdu_size, vmac_src, vmac_dst); + return bvlc6_encode_address_ack( + BVLC6_VIRTUAL_ADDRESS_RESOLUTION_ACK, pdu, pdu_size, vmac_src, + vmac_dst); } /** Decode the BVLC Virtual-Address-Resolution-Ack message @@ -1128,7 +1138,10 @@ int bvlc6_encode_virtual_address_resolution_ack( * @return number of bytes decoded */ int bvlc6_decode_virtual_address_resolution_ack( - const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src, uint32_t *vmac_dst) + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint32_t *vmac_dst) { return bvlc6_decode_address_resolution_ack( pdu, pdu_len, vmac_src, vmac_dst); @@ -1157,7 +1170,8 @@ int bvlc6_decode_virtual_address_resolution_ack( * Original-Source-B-IPv6-Address: 18-octets * BACnet NPDU from Originating Device: N-octets (N=L-25) */ -int bvlc6_encode_forwarded_npdu(uint8_t *pdu, +int bvlc6_encode_forwarded_npdu( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, const BACNET_IP6_ADDRESS *bip6_address, @@ -1203,7 +1217,8 @@ int bvlc6_encode_forwarded_npdu(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc6_decode_forwarded_npdu(const uint8_t *pdu, +int bvlc6_decode_forwarded_npdu( + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src, BACNET_IP6_ADDRESS *bip6_address, @@ -1292,7 +1307,10 @@ int bvlc6_encode_register_foreign_device( * @return number of bytes decoded */ int bvlc6_decode_register_foreign_device( - const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src, uint16_t *ttl_seconds) + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint16_t *ttl_seconds) { int bytes_consumed = 0; const uint16_t length = 5; @@ -1332,7 +1350,8 @@ int bvlc6_decode_register_foreign_device( * FDT Entry: 18-octets The FDT entry is the B/IPv6 address * of the foreign device to be deleted. */ -int bvlc6_encode_delete_foreign_device(uint8_t *pdu, +int bvlc6_encode_delete_foreign_device( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, const BACNET_IP6_ADDRESS *bip6_address) @@ -1369,7 +1388,8 @@ int bvlc6_encode_delete_foreign_device(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc6_decode_delete_foreign_device(const uint8_t *pdu, +int bvlc6_decode_delete_foreign_device( + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src, BACNET_IP6_ADDRESS *bip6_address) @@ -1445,7 +1465,8 @@ int bvlc6_encode_secure_bvll( * * @return number of bytes decoded */ -int bvlc6_decode_secure_bvll(const uint8_t *pdu, +int bvlc6_decode_secure_bvll( + const uint8_t *pdu, uint16_t pdu_len, uint8_t *sbuf, uint16_t sbuf_size, @@ -1493,7 +1514,8 @@ int bvlc6_decode_secure_bvll(const uint8_t *pdu, * Original-Source-Virtual-Address: 3-octets * BACnet NPDU from Originating Device: Variable length */ -int bvlc6_encode_distribute_broadcast_to_network(uint8_t *pdu, +int bvlc6_encode_distribute_broadcast_to_network( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac, const uint8_t *npdu, @@ -1532,7 +1554,8 @@ int bvlc6_encode_distribute_broadcast_to_network(uint8_t *pdu, * * @return number of bytes decoded */ -int bvlc6_decode_distribute_broadcast_to_network(const uint8_t *pdu, +int bvlc6_decode_distribute_broadcast_to_network( + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac, uint8_t *npdu, @@ -1600,14 +1623,16 @@ int bvlc6_foreign_device_bbmd_host_address_encode( * } * port [1] Unsigned16 * } - * broadcast-mask [1] OCTET STRING -- shall be present if BACnet/IP, and absent for BACnet/IPv6 + * broadcast-mask [1] OCTET STRING -- shall be present if BACnet/IP, and + * absent for BACnet/IPv6 * } * * @param apdu - the APDU buffer, or NULL for length * @param bdt_head - one BACnetBDTEntry * @return length of the APDU buffer */ -int bvlc6_broadcast_distribution_table_entry_encode(uint8_t *apdu, +int bvlc6_broadcast_distribution_table_entry_encode( + uint8_t *apdu, const BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry) { int len = 0; @@ -1628,10 +1653,10 @@ int bvlc6_broadcast_distribution_table_entry_encode(uint8_t *apdu, apdu += len; } /* CHOICE - ip-address [1] OCTET STRING */ - octetstring_init(&octet_string, &bdt_entry->bip6_address.address[0], + octetstring_init( + &octet_string, &bdt_entry->bip6_address.address[0], IP6_ADDRESS_MAX); - len = - encode_context_octet_string(apdu, 1, &octet_string); + len = encode_context_octet_string(apdu, 1, &octet_string); apdu_len += len; if (apdu) { apdu += len; @@ -1643,8 +1668,7 @@ int bvlc6_broadcast_distribution_table_entry_encode(uint8_t *apdu, apdu += len; } /* port [1] Unsigned16 */ - len = encode_context_unsigned( - apdu, 1, bdt_entry->bip6_address.port); + len = encode_context_unsigned(apdu, 1, bdt_entry->bip6_address.port); apdu_len += len; if (apdu) { apdu += len; @@ -1667,8 +1691,8 @@ int bvlc6_broadcast_distribution_table_entry_encode(uint8_t *apdu, * @param bdt_head - head of the BDT linked list * @return length of the APDU buffer */ -int bvlc6_broadcast_distribution_table_list_encode(uint8_t *apdu, - BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head) +int bvlc6_broadcast_distribution_table_list_encode( + uint8_t *apdu, BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head) { int len = 0; int apdu_len = 0; @@ -1700,17 +1724,16 @@ int bvlc6_broadcast_distribution_table_list_encode(uint8_t *apdu, * @param bdt_head - head of the BDT linked list * @return length of the APDU buffer, or BACNET_STATUS_ERROR on error */ -int bvlc6_broadcast_distribution_table_encode(uint8_t *apdu, +int bvlc6_broadcast_distribution_table_encode( + uint8_t *apdu, uint16_t apdu_size, BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head) { int len = 0; - len = bvlc6_broadcast_distribution_table_list_encode(NULL, - bdt_head); + len = bvlc6_broadcast_distribution_table_list_encode(NULL, bdt_head); if (len <= apdu_size) { - len = bvlc6_broadcast_distribution_table_list_encode(apdu, - bdt_head); + len = bvlc6_broadcast_distribution_table_list_encode(apdu, bdt_head); } else { len = BACNET_STATUS_ERROR; } @@ -1722,17 +1745,17 @@ int bvlc6_broadcast_distribution_table_encode(uint8_t *apdu, * @brief Encode the Foreign_Device-Table for Network Port object * * BACnetFDTEntry ::= SEQUENCE { - * bacnetip-address [0] OCTET STRING, -- the 6-octet B/IP or 18-octet B/IPv6 address of the registrant - * time-to-live [1] Unsigned16, -- time to live in seconds - * remaining-time-to-live [2] Unsigned16 -- remaining time in seconds + * bacnetip-address [0] OCTET STRING, -- the 6-octet B/IP or 18-octet + * B/IPv6 address of the registrant time-to-live [1] Unsigned16, -- time to live + * in seconds remaining-time-to-live [2] Unsigned16 -- remaining time in seconds * } * * @param apdu - the APDU buffer, or NULL for length * @param fdt_head - head of the BDT linked list * @return length of the APDU buffer */ -int bvlc6_foreign_device_table_entry_encode(uint8_t *apdu, - const BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry) +int bvlc6_foreign_device_table_entry_encode( + uint8_t *apdu, const BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry) { int len = 0; int apdu_len = 0; @@ -1740,25 +1763,24 @@ int bvlc6_foreign_device_table_entry_encode(uint8_t *apdu, if (fdt_entry) { /* bacnetip-address [0] OCTET STRING */ - len = bvlc6_encode_address(octetstring_value(&octet_string), + len = bvlc6_encode_address( + octetstring_value(&octet_string), octetstring_capacity(&octet_string), &fdt_entry->bip6_address); octetstring_truncate(&octet_string, len); - len = - encode_context_octet_string(apdu, 0, &octet_string); + len = encode_context_octet_string(apdu, 0, &octet_string); apdu_len += len; if (apdu) { apdu += len; } /* time-to-live [1] Unsigned16 */ - len = encode_context_unsigned( - apdu, 1, fdt_entry->ttl_seconds); + len = encode_context_unsigned(apdu, 1, fdt_entry->ttl_seconds); apdu_len += len; if (apdu) { apdu += len; } /* remaining-time-to-live [2] Unsigned16 */ - len = encode_context_unsigned( - apdu, 2, fdt_entry->ttl_seconds_remaining); + len = + encode_context_unsigned(apdu, 2, fdt_entry->ttl_seconds_remaining); apdu_len += len; } @@ -1774,8 +1796,8 @@ int bvlc6_foreign_device_table_entry_encode(uint8_t *apdu, * @param fdt_head - head of the BDT linked list * @return length of the APDU buffer */ -int bvlc6_foreign_device_table_list_encode(uint8_t *apdu, - BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head) +int bvlc6_foreign_device_table_list_encode( + uint8_t *apdu, BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head) { int len = 0; int apdu_len = 0; @@ -1804,17 +1826,16 @@ int bvlc6_foreign_device_table_list_encode(uint8_t *apdu, * @param fdt_head - head of the BDT linked list * @return length of the APDU buffer */ -int bvlc6_foreign_device_table_encode(uint8_t *apdu, +int bvlc6_foreign_device_table_encode( + uint8_t *apdu, uint16_t apdu_size, BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head) { int len = 0; - len = bvlc6_foreign_device_table_list_encode(NULL, - fdt_head); + len = bvlc6_foreign_device_table_list_encode(NULL, fdt_head); if (len <= apdu_size) { - len = bvlc6_foreign_device_table_list_encode(apdu, - fdt_head); + len = bvlc6_foreign_device_table_list_encode(apdu, fdt_head); } else { len = BACNET_STATUS_ERROR; } diff --git a/src/bacnet/datalink/bvlc6.h b/src/bacnet/datalink/bvlc6.h index b64174d3..6ef65603 100644 --- a/src/bacnet/datalink/bvlc6.h +++ b/src/bacnet/datalink/bvlc6.h @@ -18,16 +18,16 @@ #include "bacnet/npdu.h" /** -* BVLL for BACnet/IPv6 -* @{ -*/ + * BVLL for BACnet/IPv6 + * @{ + */ #define BVLL_TYPE_BACNET_IP6 (0x82) /** @} */ /** -* B/IPv6 BVLL Messages -* @{ -*/ + * B/IPv6 BVLL Messages + * @{ + */ #define BVLC6_RESULT 0x00 #define BVLC6_ORIGINAL_UNICAST_NPDU 0x01 #define BVLC6_ORIGINAL_BROADCAST_NPDU 0x02 @@ -44,9 +44,9 @@ /** @} */ /** -* BVLC Result Code -* @{ -*/ + * BVLC Result Code + * @{ + */ #define BVLC6_RESULT_SUCCESSFUL_COMPLETION 0x0000U #define BVLC6_RESULT_ADDRESS_RESOLUTION_NAK 0x0030U #define BVLC6_RESULT_VIRTUAL_ADDRESS_RESOLUTION_NAK 0x0060U @@ -57,36 +57,36 @@ /** @} */ /** -* BACnet IPv6 Multicast Group ID -* BACnet broadcast messages shall be delivered by IPv6 multicasts -* as opposed to using IP broadcasting. Broadcasting in -* IPv6 is subsumed by multicasting to the all-nodes link -* group FF02::1; however, the use of the all-nodes group is not -* recommended, and BACnet/IPv6 uses an IANA permanently assigned -* multicast group identifier to avoid disturbing -* every interface in the network. -* -* The IANA assigned BACnet/IPv6 variable scope multicast address -* is FF0X:0:0:0:0:0:0:BAC0 (FF0X::BAC0) which indicates the multicast -* group identifier X'BAC0'. The following multicast scopes are -* defined for B/IPv6. -* @{ -*/ -#define BIP6_MULTICAST_GROUP_ID 0xBAC0U + * BACnet IPv6 Multicast Group ID + * BACnet broadcast messages shall be delivered by IPv6 multicasts + * as opposed to using IP broadcasting. Broadcasting in + * IPv6 is subsumed by multicasting to the all-nodes link + * group FF02::1; however, the use of the all-nodes group is not + * recommended, and BACnet/IPv6 uses an IANA permanently assigned + * multicast group identifier to avoid disturbing + * every interface in the network. + * + * The IANA assigned BACnet/IPv6 variable scope multicast address + * is FF0X:0:0:0:0:0:0:BAC0 (FF0X::BAC0) which indicates the multicast + * group identifier X'BAC0'. The following multicast scopes are + * defined for B/IPv6. + * @{ + */ +#define BIP6_MULTICAST_GROUP_ID 0xBAC0U /** @} */ /** -* IANA prefixes -* @{ -*/ -#define BIP6_MULTICAST_reserved_0 0xFF00U -#define BIP6_MULTICAST_NODE_LOCAL 0xFF01U -#define BIP6_MULTICAST_LINK_LOCAL 0xFF02U -#define BIP6_MULTICAST_reserved_3 0xFF03U + * IANA prefixes + * @{ + */ +#define BIP6_MULTICAST_reserved_0 0xFF00U +#define BIP6_MULTICAST_NODE_LOCAL 0xFF01U +#define BIP6_MULTICAST_LINK_LOCAL 0xFF02U +#define BIP6_MULTICAST_reserved_3 0xFF03U #define BIP6_MULTICAST_ADMIN_LOCAL 0xFF04U -#define BIP6_MULTICAST_SITE_LOCAL 0xFF05U -#define BIP6_MULTICAST_ORG_LOCAL 0xFF08U -#define BIP6_MULTICAST_GLOBAL 0xFF0EU +#define BIP6_MULTICAST_SITE_LOCAL 0xFF05U +#define BIP6_MULTICAST_ORG_LOCAL 0xFF08U +#define BIP6_MULTICAST_GLOBAL 0xFF0EU /** @} */ /* number of bytes in the IPv6 address */ @@ -95,14 +95,14 @@ #define BIP6_ADDRESS_MAX 18 /** -* BACnet IPv6 Address -* -* Data link layer addressing between B/IPv6 nodes consists of a 128-bit -* IPv6 address followed by a two-octet UDP port number (both of which -* shall be transmitted with the most significant octet first). -* This address shall be referred to as a B/IPv6 address. -* @{ -*/ + * BACnet IPv6 Address + * + * Data link layer addressing between B/IPv6 nodes consists of a 128-bit + * IPv6 address followed by a two-octet UDP port number (both of which + * shall be transmitted with the most significant octet first). + * This address shall be referred to as a B/IPv6 address. + * @{ + */ typedef struct BACnet_IP6_Address { uint8_t address[IP6_ADDRESS_MAX]; uint16_t port; @@ -110,16 +110,16 @@ typedef struct BACnet_IP6_Address { /** @} */ /** -* BACnet /IPv6 Broadcast Distribution Table Format -* -* The BDT shall consist of either the eighteen-octet B/IPv6 address -* of the peer BBMD or the combination of the fully qualified -* domain name service (DNS) entry and UDP port that resolves to -* the B/IPv6 address of the peer BBMD. The Broadcast -* Distribution Table shall not contain an entry for the BBMD in -* which the BDT resides. -* @{ -*/ + * BACnet /IPv6 Broadcast Distribution Table Format + * + * The BDT shall consist of either the eighteen-octet B/IPv6 address + * of the peer BBMD or the combination of the fully qualified + * domain name service (DNS) entry and UDP port that resolves to + * the B/IPv6 address of the peer BBMD. The Broadcast + * Distribution Table shall not contain an entry for the BBMD in + * which the BDT resides. + * @{ + */ struct BACnet_IP6_Broadcast_Distribution_Table_Entry; typedef struct BACnet_IP6_Broadcast_Distribution_Table_Entry { /* true if valid entry - false if not */ @@ -131,20 +131,20 @@ typedef struct BACnet_IP6_Broadcast_Distribution_Table_Entry { /** @} */ /** -* Foreign Device Table (FDT) -* -* Each entry shall contain the B/IPv6 address and the TTL of the -* registered foreign device. -* -* Each entry shall consist of the eighteen-octet B/IPv6 address of the -* registrant; the 2-octet Time-to-Live value supplied at the time of -* registration; and a 2-octet value representing the number of seconds -* remaining before the BBMD will purge the registrant's FDT entry if no -* re-registration occurs. The number of seconds remaining shall be -* initialized to the 2-octet Time-to-Live value supplied at the time -* of registration plus 30 seconds (see U.4.5.2), with a maximum of 65535. -* @{ -*/ + * Foreign Device Table (FDT) + * + * Each entry shall contain the B/IPv6 address and the TTL of the + * registered foreign device. + * + * Each entry shall consist of the eighteen-octet B/IPv6 address of the + * registrant; the 2-octet Time-to-Live value supplied at the time of + * registration; and a 2-octet value representing the number of seconds + * remaining before the BBMD will purge the registrant's FDT entry if no + * re-registration occurs. The number of seconds remaining shall be + * initialized to the 2-octet Time-to-Live value supplied at the time + * of registration plus 30 seconds (see U.4.5.2), with a maximum of 65535. + * @{ + */ struct BACnet_IP6_Foreign_Device_Table_Entry; typedef struct BACnet_IP6_Foreign_Device_Table_Entry { /* true if valid entry - false if not */ @@ -163,291 +163,254 @@ typedef struct BACnet_IP6_Foreign_Device_Table_Entry { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int bvlc6_encode_address( - uint8_t * pdu, - uint16_t pdu_size, - const BACNET_IP6_ADDRESS * ip6_address); - BACNET_STACK_EXPORT - int bvlc6_decode_address( - const uint8_t * pdu, - uint16_t pdu_len, - BACNET_IP6_ADDRESS * ip6_address); - BACNET_STACK_EXPORT - bool bvlc6_address_copy( - BACNET_IP6_ADDRESS * dst, - const BACNET_IP6_ADDRESS * src); - BACNET_STACK_EXPORT - bool bvlc6_address_different( - const BACNET_IP6_ADDRESS * dst, - const BACNET_IP6_ADDRESS * src); +BACNET_STACK_EXPORT +int bvlc6_encode_address( + uint8_t *pdu, uint16_t pdu_size, const BACNET_IP6_ADDRESS *ip6_address); +BACNET_STACK_EXPORT +int bvlc6_decode_address( + const uint8_t *pdu, uint16_t pdu_len, BACNET_IP6_ADDRESS *ip6_address); +BACNET_STACK_EXPORT +bool bvlc6_address_copy(BACNET_IP6_ADDRESS *dst, const BACNET_IP6_ADDRESS *src); +BACNET_STACK_EXPORT +bool bvlc6_address_different( + const BACNET_IP6_ADDRESS *dst, const BACNET_IP6_ADDRESS *src); - BACNET_STACK_EXPORT - int bvlc6_address_to_ascii(const BACNET_IP6_ADDRESS *addr, char *buf, - size_t buf_size); - BACNET_STACK_EXPORT - bool bvlc6_address_from_ascii( - BACNET_IP6_ADDRESS *addr, - const char *addrstr); +BACNET_STACK_EXPORT +int bvlc6_address_to_ascii( + const BACNET_IP6_ADDRESS *addr, char *buf, size_t buf_size); +BACNET_STACK_EXPORT +bool bvlc6_address_from_ascii(BACNET_IP6_ADDRESS *addr, const char *addrstr); - BACNET_STACK_EXPORT - bool bvlc6_address_set( - BACNET_IP6_ADDRESS * addr, - uint16_t addr0, - uint16_t addr1, - uint16_t addr2, - uint16_t addr3, - uint16_t addr4, - uint16_t addr5, - uint16_t addr6, - uint16_t addr7); - BACNET_STACK_EXPORT - bool bvlc6_address_get( - const BACNET_IP6_ADDRESS * addr, - uint16_t *addr0, - uint16_t *addr1, - uint16_t *addr2, - uint16_t *addr3, - uint16_t *addr4, - uint16_t *addr5, - uint16_t *addr6, - uint16_t *addr7); +BACNET_STACK_EXPORT +bool bvlc6_address_set( + BACNET_IP6_ADDRESS *addr, + uint16_t addr0, + uint16_t addr1, + uint16_t addr2, + uint16_t addr3, + uint16_t addr4, + uint16_t addr5, + uint16_t addr6, + uint16_t addr7); +BACNET_STACK_EXPORT +bool bvlc6_address_get( + const BACNET_IP6_ADDRESS *addr, + uint16_t *addr0, + uint16_t *addr1, + uint16_t *addr2, + uint16_t *addr3, + uint16_t *addr4, + uint16_t *addr5, + uint16_t *addr6, + uint16_t *addr7); - BACNET_STACK_EXPORT - bool bvlc6_vmac_address_set( - BACNET_ADDRESS * addr, - uint32_t device_id); - BACNET_STACK_EXPORT - bool bvlc6_vmac_address_get( - const BACNET_ADDRESS * addr, - uint32_t *device_id); +BACNET_STACK_EXPORT +bool bvlc6_vmac_address_set(BACNET_ADDRESS *addr, uint32_t device_id); +BACNET_STACK_EXPORT +bool bvlc6_vmac_address_get(const BACNET_ADDRESS *addr, uint32_t *device_id); - BACNET_STACK_EXPORT - int bvlc6_encode_header( - uint8_t * pdu, - uint16_t pdu_size, - uint8_t message_type, - uint16_t length); - BACNET_STACK_EXPORT - int bvlc6_decode_header( - const uint8_t * pdu, - uint16_t pdu_len, - uint8_t * message_type, - uint16_t * length); +BACNET_STACK_EXPORT +int bvlc6_encode_header( + uint8_t *pdu, uint16_t pdu_size, uint8_t message_type, uint16_t length); +BACNET_STACK_EXPORT +int bvlc6_decode_header( + const uint8_t *pdu, + uint16_t pdu_len, + uint8_t *message_type, + uint16_t *length); - BACNET_STACK_EXPORT - int bvlc6_encode_result( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac, - uint16_t result_code); - BACNET_STACK_EXPORT - int bvlc6_decode_result( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac, - uint16_t * result_code); +BACNET_STACK_EXPORT +int bvlc6_encode_result( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac, uint16_t result_code); +BACNET_STACK_EXPORT +int bvlc6_decode_result( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac, + uint16_t *result_code); - BACNET_STACK_EXPORT - int bvlc6_encode_original_unicast( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - uint32_t vmac_dst, - const uint8_t * npdu, - uint16_t npdu_len); - BACNET_STACK_EXPORT - int bvlc6_decode_original_unicast( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - uint32_t * vmac_dst, - uint8_t * npdu, - uint16_t npdu_size, - uint16_t * npdu_len); +BACNET_STACK_EXPORT +int bvlc6_encode_original_unicast( + uint8_t *pdu, + uint16_t pdu_size, + uint32_t vmac_src, + uint32_t vmac_dst, + const uint8_t *npdu, + uint16_t npdu_len); +BACNET_STACK_EXPORT +int bvlc6_decode_original_unicast( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint32_t *vmac_dst, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); - BACNET_STACK_EXPORT - int bvlc6_encode_original_broadcast( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac, - const uint8_t * npdu, - uint16_t npdu_len); - BACNET_STACK_EXPORT - int bvlc6_decode_original_broadcast( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac, - uint8_t * npdu, - uint16_t npdu_size, - uint16_t * npdu_len); +BACNET_STACK_EXPORT +int bvlc6_encode_original_broadcast( + uint8_t *pdu, + uint16_t pdu_size, + uint32_t vmac, + const uint8_t *npdu, + uint16_t npdu_len); +BACNET_STACK_EXPORT +int bvlc6_decode_original_broadcast( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); - BACNET_STACK_EXPORT - int bvlc6_encode_address_resolution( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - uint32_t vmac_target); - BACNET_STACK_EXPORT - int bvlc6_decode_address_resolution( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - uint32_t * vmac_target); +BACNET_STACK_EXPORT +int bvlc6_encode_address_resolution( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, uint32_t vmac_target); +BACNET_STACK_EXPORT +int bvlc6_decode_address_resolution( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint32_t *vmac_target); - BACNET_STACK_EXPORT - int bvlc6_encode_forwarded_address_resolution( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - uint32_t vmac_target, - const BACNET_IP6_ADDRESS * bip6_address); - BACNET_STACK_EXPORT - int bvlc6_decode_forwarded_address_resolution( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - uint32_t * vmac_target, - BACNET_IP6_ADDRESS * bip6_address); +BACNET_STACK_EXPORT +int bvlc6_encode_forwarded_address_resolution( + uint8_t *pdu, + uint16_t pdu_size, + uint32_t vmac_src, + uint32_t vmac_target, + const BACNET_IP6_ADDRESS *bip6_address); +BACNET_STACK_EXPORT +int bvlc6_decode_forwarded_address_resolution( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint32_t *vmac_target, + BACNET_IP6_ADDRESS *bip6_address); - BACNET_STACK_EXPORT - int bvlc6_encode_address_resolution_ack( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - uint32_t vmac_dst); - BACNET_STACK_EXPORT - int bvlc6_decode_address_resolution_ack( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - uint32_t * vmac_dst); +BACNET_STACK_EXPORT +int bvlc6_encode_address_resolution_ack( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, uint32_t vmac_dst); +BACNET_STACK_EXPORT +int bvlc6_decode_address_resolution_ack( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint32_t *vmac_dst); - BACNET_STACK_EXPORT - int bvlc6_encode_virtual_address_resolution( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src); - BACNET_STACK_EXPORT - int bvlc6_decode_virtual_address_resolution( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src); +BACNET_STACK_EXPORT +int bvlc6_encode_virtual_address_resolution( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src); +BACNET_STACK_EXPORT +int bvlc6_decode_virtual_address_resolution( + const uint8_t *pdu, uint16_t pdu_len, uint32_t *vmac_src); - BACNET_STACK_EXPORT - int bvlc6_encode_virtual_address_resolution_ack( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - uint32_t vmac_dst); - BACNET_STACK_EXPORT - int bvlc6_decode_virtual_address_resolution_ack( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - uint32_t * vmac_dst); +BACNET_STACK_EXPORT +int bvlc6_encode_virtual_address_resolution_ack( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, uint32_t vmac_dst); +BACNET_STACK_EXPORT +int bvlc6_decode_virtual_address_resolution_ack( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint32_t *vmac_dst); - BACNET_STACK_EXPORT - int bvlc6_encode_forwarded_npdu( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - const BACNET_IP6_ADDRESS * address, - const uint8_t * npdu, - uint16_t npdu_len); - BACNET_STACK_EXPORT - int bvlc6_decode_forwarded_npdu( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - BACNET_IP6_ADDRESS * address, - uint8_t * npdu, - uint16_t npdu_size, - uint16_t * npdu_len); +BACNET_STACK_EXPORT +int bvlc6_encode_forwarded_npdu( + uint8_t *pdu, + uint16_t pdu_size, + uint32_t vmac_src, + const BACNET_IP6_ADDRESS *address, + const uint8_t *npdu, + uint16_t npdu_len); +BACNET_STACK_EXPORT +int bvlc6_decode_forwarded_npdu( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + BACNET_IP6_ADDRESS *address, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); - BACNET_STACK_EXPORT - int bvlc6_encode_register_foreign_device( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - uint16_t ttl_seconds); - BACNET_STACK_EXPORT - int bvlc6_decode_register_foreign_device( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - uint16_t * ttl_seconds); +BACNET_STACK_EXPORT +int bvlc6_encode_register_foreign_device( + uint8_t *pdu, uint16_t pdu_size, uint32_t vmac_src, uint16_t ttl_seconds); +BACNET_STACK_EXPORT +int bvlc6_decode_register_foreign_device( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + uint16_t *ttl_seconds); - BACNET_STACK_EXPORT - int bvlc6_encode_delete_foreign_device( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac_src, - const BACNET_IP6_ADDRESS *bip6_address); +BACNET_STACK_EXPORT +int bvlc6_encode_delete_foreign_device( + uint8_t *pdu, + uint16_t pdu_size, + uint32_t vmac_src, + const BACNET_IP6_ADDRESS *bip6_address); - BACNET_STACK_EXPORT - int bvlc6_decode_delete_foreign_device( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac_src, - BACNET_IP6_ADDRESS *bip6_address); +BACNET_STACK_EXPORT +int bvlc6_decode_delete_foreign_device( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac_src, + BACNET_IP6_ADDRESS *bip6_address); - BACNET_STACK_EXPORT - int bvlc6_encode_secure_bvll( - uint8_t * pdu, - uint16_t pdu_size, - const uint8_t * sbuf, - uint16_t sbuf_len); - BACNET_STACK_EXPORT - int bvlc6_decode_secure_bvll( - const uint8_t * pdu, - uint16_t pdu_len, - uint8_t * sbuf, - uint16_t sbuf_size, - uint16_t * sbuf_len); +BACNET_STACK_EXPORT +int bvlc6_encode_secure_bvll( + uint8_t *pdu, uint16_t pdu_size, const uint8_t *sbuf, uint16_t sbuf_len); +BACNET_STACK_EXPORT +int bvlc6_decode_secure_bvll( + const uint8_t *pdu, + uint16_t pdu_len, + uint8_t *sbuf, + uint16_t sbuf_size, + uint16_t *sbuf_len); - BACNET_STACK_EXPORT - int bvlc6_encode_distribute_broadcast_to_network( - uint8_t * pdu, - uint16_t pdu_size, - uint32_t vmac, - const uint8_t * npdu, - uint16_t npdu_len); - BACNET_STACK_EXPORT - int bvlc6_decode_distribute_broadcast_to_network( - const uint8_t * pdu, - uint16_t pdu_len, - uint32_t * vmac, - uint8_t * npdu, - uint16_t npdu_size, - uint16_t * npdu_len); - BACNET_STACK_EXPORT - int bvlc6_foreign_device_bbmd_host_address_encode(uint8_t *apdu, - uint16_t apdu_size, - const BACNET_IP6_ADDRESS *ip6_address); +BACNET_STACK_EXPORT +int bvlc6_encode_distribute_broadcast_to_network( + uint8_t *pdu, + uint16_t pdu_size, + uint32_t vmac, + const uint8_t *npdu, + uint16_t npdu_len); +BACNET_STACK_EXPORT +int bvlc6_decode_distribute_broadcast_to_network( + const uint8_t *pdu, + uint16_t pdu_len, + uint32_t *vmac, + uint8_t *npdu, + uint16_t npdu_size, + uint16_t *npdu_len); +BACNET_STACK_EXPORT +int bvlc6_foreign_device_bbmd_host_address_encode( + uint8_t *apdu, uint16_t apdu_size, const BACNET_IP6_ADDRESS *ip6_address); - BACNET_STACK_EXPORT - int bvlc6_broadcast_distribution_table_entry_encode(uint8_t *apdu, - const BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); - BACNET_STACK_EXPORT - int bvlc6_broadcast_distribution_table_list_encode(uint8_t *apdu, - BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); - BACNET_STACK_EXPORT - int bvlc6_broadcast_distribution_table_encode(uint8_t *apdu, - uint16_t apdu_size, - BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); - - BACNET_STACK_EXPORT - int bvlc6_foreign_device_table_entry_encode(uint8_t *apdu, - const BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry); - BACNET_STACK_EXPORT - int bvlc6_foreign_device_table_list_encode(uint8_t *apdu, - BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head); - BACNET_STACK_EXPORT - int bvlc6_foreign_device_table_encode(uint8_t *apdu, - uint16_t apdu_size, - BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head); +BACNET_STACK_EXPORT +int bvlc6_broadcast_distribution_table_entry_encode( + uint8_t *apdu, + const BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_entry); +BACNET_STACK_EXPORT +int bvlc6_broadcast_distribution_table_list_encode( + uint8_t *apdu, BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); +BACNET_STACK_EXPORT +int bvlc6_broadcast_distribution_table_encode( + uint8_t *apdu, + uint16_t apdu_size, + BACNET_IP6_BROADCAST_DISTRIBUTION_TABLE_ENTRY *bdt_head); +BACNET_STACK_EXPORT +int bvlc6_foreign_device_table_entry_encode( + uint8_t *apdu, const BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_entry); +BACNET_STACK_EXPORT +int bvlc6_foreign_device_table_list_encode( + uint8_t *apdu, BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head); +BACNET_STACK_EXPORT +int bvlc6_foreign_device_table_encode( + uint8_t *apdu, + uint16_t apdu_size, + BACNET_IP6_FOREIGN_DEVICE_TABLE_ENTRY *fdt_head); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/cobs.c b/src/bacnet/datalink/cobs.c index 8e8fab49..b429de4d 100644 --- a/src/bacnet/datalink/cobs.c +++ b/src/bacnet/datalink/cobs.c @@ -72,7 +72,8 @@ uint32_t cobs_crc32k(uint8_t dataValue, uint32_t crc32kValue) * @return the length of the encoded data, or 0 if error * @note This function is copied mostly from the BACnet standard. */ -size_t cobs_encode(uint8_t *buffer, +size_t cobs_encode( + uint8_t *buffer, size_t buffer_size, const uint8_t *from, size_t length, @@ -177,9 +178,9 @@ size_t cobs_frame_encode( */ crc32K = ~crc32K; (void)cobs_crc32k_encode(crc_buffer, sizeof(crc_buffer), crc32K); - cobs_crc_len = cobs_encode((uint8_t *)(buffer + cobs_data_len), - buffer_size - cobs_data_len, crc_buffer, sizeof(crc_buffer), - MSTP_PREAMBLE_X55); + cobs_crc_len = cobs_encode( + (uint8_t *)(buffer + cobs_data_len), buffer_size - cobs_data_len, + crc_buffer, sizeof(crc_buffer), MSTP_PREAMBLE_X55); if (cobs_crc_len == 0) { return 0; } @@ -201,7 +202,8 @@ size_t cobs_frame_encode( * @return the length of the decoded buffer, or 0 if error * @note This function is copied directly from the BACnet standard. */ -size_t cobs_decode(uint8_t *buffer, +size_t cobs_decode( + uint8_t *buffer, size_t buffer_size, const uint8_t *from, size_t length, @@ -294,8 +296,8 @@ size_t cobs_frame_decode( /* * Decode the Encoded CRC-32K field */ - crc_len = cobs_decode(crc_buffer, sizeof(crc_buffer), - from + length - COBS_ENCODED_CRC_SIZE, + crc_len = cobs_decode( + crc_buffer, sizeof(crc_buffer), from + length - COBS_ENCODED_CRC_SIZE, COBS_ENCODED_CRC_SIZE, MSTP_PREAMBLE_X55); /* * Sanity check length of decoded CRC32K. diff --git a/src/bacnet/datalink/cobs.h b/src/bacnet/datalink/cobs.h index bacc87a6..86cd00b6 100644 --- a/src/bacnet/datalink/cobs.h +++ b/src/bacnet/datalink/cobs.h @@ -18,8 +18,7 @@ /* number of bytes needed for COBS encoded CRC */ #define COBS_ENCODED_CRC_SIZE 5 /* inclusive extra bytes needed for APDU */ -#define COBS_ENCODED_SIZE(a) ((a)+((a)/254)+1) - +#define COBS_ENCODED_SIZE(a) ((a) + ((a) / 254) + 1) /* The first COBS-encoded Frame Type value: 32. */ #define Nmin_COBS_type 32 @@ -66,10 +65,7 @@ size_t cobs_encode( BACNET_STACK_EXPORT size_t cobs_frame_encode( - uint8_t *buffer, - size_t buffer_size, - const uint8_t *from, - size_t length); + uint8_t *buffer, size_t buffer_size, const uint8_t *from, size_t length); BACNET_STACK_EXPORT size_t cobs_decode( @@ -81,21 +77,13 @@ size_t cobs_decode( BACNET_STACK_EXPORT size_t cobs_frame_decode( - uint8_t *buffer, - size_t buffer_size, - const uint8_t *from, - size_t length); + uint8_t *buffer, size_t buffer_size, const uint8_t *from, size_t length); BACNET_STACK_EXPORT -uint32_t cobs_crc32k( - uint8_t dataValue, - uint32_t crc); +uint32_t cobs_crc32k(uint8_t dataValue, uint32_t crc); BACNET_STACK_EXPORT -size_t cobs_crc32k_encode( - uint8_t *buffer, - size_t buffer_size, - uint32_t crc); +size_t cobs_crc32k_encode(uint8_t *buffer, size_t buffer_size, uint32_t crc); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/crc.c b/src/bacnet/datalink/crc.c index 6ac5c92d..c94930dc 100644 --- a/src/bacnet/datalink/crc.c +++ b/src/bacnet/datalink/crc.c @@ -14,28 +14,30 @@ #if defined(CRC_USE_TABLE) /* note: table is created using unit test below */ -static const uint8_t HeaderCRC[256] = { 0x00, 0xfe, 0xff, 0x01, 0xfd, 0x03, - 0x02, 0xfc, 0xf9, 0x07, 0x06, 0xf8, 0x04, 0xfa, 0xfb, 0x05, 0xf1, 0x0f, - 0x0e, 0xf0, 0x0c, 0xf2, 0xf3, 0x0d, 0x08, 0xf6, 0xf7, 0x09, 0xf5, 0x0b, - 0x0a, 0xf4, 0xe1, 0x1f, 0x1e, 0xe0, 0x1c, 0xe2, 0xe3, 0x1d, 0x18, 0xe6, - 0xe7, 0x19, 0xe5, 0x1b, 0x1a, 0xe4, 0x10, 0xee, 0xef, 0x11, 0xed, 0x13, - 0x12, 0xec, 0xe9, 0x17, 0x16, 0xe8, 0x14, 0xea, 0xeb, 0x15, 0xc1, 0x3f, - 0x3e, 0xc0, 0x3c, 0xc2, 0xc3, 0x3d, 0x38, 0xc6, 0xc7, 0x39, 0xc5, 0x3b, - 0x3a, 0xc4, 0x30, 0xce, 0xcf, 0x31, 0xcd, 0x33, 0x32, 0xcc, 0xc9, 0x37, - 0x36, 0xc8, 0x34, 0xca, 0xcb, 0x35, 0x20, 0xde, 0xdf, 0x21, 0xdd, 0x23, - 0x22, 0xdc, 0xd9, 0x27, 0x26, 0xd8, 0x24, 0xda, 0xdb, 0x25, 0xd1, 0x2f, - 0x2e, 0xd0, 0x2c, 0xd2, 0xd3, 0x2d, 0x28, 0xd6, 0xd7, 0x29, 0xd5, 0x2b, - 0x2a, 0xd4, 0x81, 0x7f, 0x7e, 0x80, 0x7c, 0x82, 0x83, 0x7d, 0x78, 0x86, - 0x87, 0x79, 0x85, 0x7b, 0x7a, 0x84, 0x70, 0x8e, 0x8f, 0x71, 0x8d, 0x73, - 0x72, 0x8c, 0x89, 0x77, 0x76, 0x88, 0x74, 0x8a, 0x8b, 0x75, 0x60, 0x9e, - 0x9f, 0x61, 0x9d, 0x63, 0x62, 0x9c, 0x99, 0x67, 0x66, 0x98, 0x64, 0x9a, - 0x9b, 0x65, 0x91, 0x6f, 0x6e, 0x90, 0x6c, 0x92, 0x93, 0x6d, 0x68, 0x96, - 0x97, 0x69, 0x95, 0x6b, 0x6a, 0x94, 0x40, 0xbe, 0xbf, 0x41, 0xbd, 0x43, - 0x42, 0xbc, 0xb9, 0x47, 0x46, 0xb8, 0x44, 0xba, 0xbb, 0x45, 0xb1, 0x4f, - 0x4e, 0xb0, 0x4c, 0xb2, 0xb3, 0x4d, 0x48, 0xb6, 0xb7, 0x49, 0xb5, 0x4b, - 0x4a, 0xb4, 0xa1, 0x5f, 0x5e, 0xa0, 0x5c, 0xa2, 0xa3, 0x5d, 0x58, 0xa6, - 0xa7, 0x59, 0xa5, 0x5b, 0x5a, 0xa4, 0x50, 0xae, 0xaf, 0x51, 0xad, 0x53, - 0x52, 0xac, 0xa9, 0x57, 0x56, 0xa8, 0x54, 0xaa, 0xab, 0x55 }; +static const uint8_t HeaderCRC[256] = { + 0x00, 0xfe, 0xff, 0x01, 0xfd, 0x03, 0x02, 0xfc, 0xf9, 0x07, 0x06, 0xf8, + 0x04, 0xfa, 0xfb, 0x05, 0xf1, 0x0f, 0x0e, 0xf0, 0x0c, 0xf2, 0xf3, 0x0d, + 0x08, 0xf6, 0xf7, 0x09, 0xf5, 0x0b, 0x0a, 0xf4, 0xe1, 0x1f, 0x1e, 0xe0, + 0x1c, 0xe2, 0xe3, 0x1d, 0x18, 0xe6, 0xe7, 0x19, 0xe5, 0x1b, 0x1a, 0xe4, + 0x10, 0xee, 0xef, 0x11, 0xed, 0x13, 0x12, 0xec, 0xe9, 0x17, 0x16, 0xe8, + 0x14, 0xea, 0xeb, 0x15, 0xc1, 0x3f, 0x3e, 0xc0, 0x3c, 0xc2, 0xc3, 0x3d, + 0x38, 0xc6, 0xc7, 0x39, 0xc5, 0x3b, 0x3a, 0xc4, 0x30, 0xce, 0xcf, 0x31, + 0xcd, 0x33, 0x32, 0xcc, 0xc9, 0x37, 0x36, 0xc8, 0x34, 0xca, 0xcb, 0x35, + 0x20, 0xde, 0xdf, 0x21, 0xdd, 0x23, 0x22, 0xdc, 0xd9, 0x27, 0x26, 0xd8, + 0x24, 0xda, 0xdb, 0x25, 0xd1, 0x2f, 0x2e, 0xd0, 0x2c, 0xd2, 0xd3, 0x2d, + 0x28, 0xd6, 0xd7, 0x29, 0xd5, 0x2b, 0x2a, 0xd4, 0x81, 0x7f, 0x7e, 0x80, + 0x7c, 0x82, 0x83, 0x7d, 0x78, 0x86, 0x87, 0x79, 0x85, 0x7b, 0x7a, 0x84, + 0x70, 0x8e, 0x8f, 0x71, 0x8d, 0x73, 0x72, 0x8c, 0x89, 0x77, 0x76, 0x88, + 0x74, 0x8a, 0x8b, 0x75, 0x60, 0x9e, 0x9f, 0x61, 0x9d, 0x63, 0x62, 0x9c, + 0x99, 0x67, 0x66, 0x98, 0x64, 0x9a, 0x9b, 0x65, 0x91, 0x6f, 0x6e, 0x90, + 0x6c, 0x92, 0x93, 0x6d, 0x68, 0x96, 0x97, 0x69, 0x95, 0x6b, 0x6a, 0x94, + 0x40, 0xbe, 0xbf, 0x41, 0xbd, 0x43, 0x42, 0xbc, 0xb9, 0x47, 0x46, 0xb8, + 0x44, 0xba, 0xbb, 0x45, 0xb1, 0x4f, 0x4e, 0xb0, 0x4c, 0xb2, 0xb3, 0x4d, + 0x48, 0xb6, 0xb7, 0x49, 0xb5, 0x4b, 0x4a, 0xb4, 0xa1, 0x5f, 0x5e, 0xa0, + 0x5c, 0xa2, 0xa3, 0x5d, 0x58, 0xa6, 0xa7, 0x59, 0xa5, 0x5b, 0x5a, 0xa4, + 0x50, 0xae, 0xaf, 0x51, 0xad, 0x53, 0x52, 0xac, 0xa9, 0x57, 0x56, 0xa8, + 0x54, 0xaa, 0xab, 0x55 +}; uint8_t CRC_Calc_Header(uint8_t dataValue, uint8_t crcValue) { @@ -43,35 +45,37 @@ uint8_t CRC_Calc_Header(uint8_t dataValue, uint8_t crcValue) } /* note: table is created using unit test below */ -static const uint16_t DataCRC[256] = { 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, - 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, - 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, - 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, - 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, - 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, - 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, - 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, - 0x0420, 0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, - 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, - 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, - 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, - 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, - 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, - 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, - 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, - 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, - 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, - 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, - 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, - 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, - 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, - 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, - 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, - 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, - 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, - 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, - 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, - 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 }; +static const uint16_t DataCRC[256] = { + 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, + 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, + 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, + 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, + 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, + 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, + 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, + 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, + 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, + 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, + 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, + 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, + 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, + 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, + 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, + 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, + 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, + 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, + 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, + 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, + 0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, + 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, + 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, + 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, + 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, + 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, + 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, + 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, + 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 +}; uint16_t CRC_Calc_Data(uint8_t dataValue, uint16_t crcValue) { diff --git a/src/bacnet/datalink/crc.h b/src/bacnet/datalink/crc.h index 83f9259a..ea8c6a8a 100644 --- a/src/bacnet/datalink/crc.h +++ b/src/bacnet/datalink/crc.h @@ -19,14 +19,10 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - uint8_t CRC_Calc_Header( - uint8_t dataValue, - uint8_t crcValue); - BACNET_STACK_EXPORT - uint16_t CRC_Calc_Data( - uint8_t dataValue, - uint16_t crcValue); +BACNET_STACK_EXPORT +uint8_t CRC_Calc_Header(uint8_t dataValue, uint8_t crcValue); +BACNET_STACK_EXPORT +uint16_t CRC_Calc_Data(uint8_t dataValue, uint16_t crcValue); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/datalink.c b/src/bacnet/datalink/datalink.c index 81320a19..34d62b8a 100644 --- a/src/bacnet/datalink/datalink.c +++ b/src/bacnet/datalink/datalink.c @@ -77,7 +77,8 @@ bool datalink_init(char *ifname) return status; } -int datalink_send_pdu(BACNET_ADDRESS *dest, +int datalink_send_pdu( + BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, unsigned pdu_len) @@ -272,7 +273,8 @@ bool datalink_init(char *ifname) return true; } -int datalink_send_pdu(BACNET_ADDRESS *dest, +int datalink_send_pdu( + BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, unsigned pdu_len) diff --git a/src/bacnet/datalink/datalink.h b/src/bacnet/datalink/datalink.h index 715edf34..9e0f2412 100644 --- a/src/bacnet/datalink/datalink.h +++ b/src/bacnet/datalink/datalink.h @@ -64,8 +64,7 @@ extern "C" { #endif BACNET_STACK_EXPORT -void routed_get_my_address( - BACNET_ADDRESS * my_address); +void routed_get_my_address(BACNET_ADDRESS *my_address); #ifdef __cplusplus } #endif @@ -93,51 +92,43 @@ void routed_get_my_address( #include "bacnet/npdu.h" #define MAX_HEADER (8) -#define MAX_MPDU (MAX_HEADER+MAX_PDU) +#define MAX_MPDU (MAX_HEADER + MAX_PDU) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - bool datalink_init(char *ifname); +BACNET_STACK_EXPORT +bool datalink_init(char *ifname); - BACNET_STACK_EXPORT - int datalink_send_pdu( - BACNET_ADDRESS * dest, - BACNET_NPDU_DATA * npdu_data, - uint8_t * pdu, - unsigned pdu_len); +BACNET_STACK_EXPORT +int datalink_send_pdu( + BACNET_ADDRESS *dest, + BACNET_NPDU_DATA *npdu_data, + uint8_t *pdu, + unsigned pdu_len); - BACNET_STACK_EXPORT - uint16_t datalink_receive( - BACNET_ADDRESS * src, - uint8_t * pdu, - uint16_t max_pdu, - unsigned timeout); +BACNET_STACK_EXPORT +uint16_t datalink_receive( + BACNET_ADDRESS *src, uint8_t *pdu, uint16_t max_pdu, unsigned timeout); - BACNET_STACK_EXPORT - void datalink_cleanup( - void); +BACNET_STACK_EXPORT +void datalink_cleanup(void); - BACNET_STACK_EXPORT - void datalink_get_broadcast_address( - BACNET_ADDRESS * dest); +BACNET_STACK_EXPORT +void datalink_get_broadcast_address(BACNET_ADDRESS *dest); - BACNET_STACK_EXPORT - void datalink_get_my_address( - BACNET_ADDRESS * my_address); +BACNET_STACK_EXPORT +void datalink_get_my_address(BACNET_ADDRESS *my_address); - BACNET_STACK_EXPORT - void datalink_set_interface( - char *ifname); +BACNET_STACK_EXPORT +void datalink_set_interface(char *ifname); - BACNET_STACK_EXPORT - void datalink_set( - char *datalink_string); +BACNET_STACK_EXPORT +void datalink_set(char *datalink_string); - BACNET_STACK_EXPORT - void datalink_maintenance_timer(uint16_t seconds); +BACNET_STACK_EXPORT +void datalink_maintenance_timer(uint16_t seconds); #ifdef __cplusplus } @@ -167,7 +158,8 @@ extern "C" { * - BACDL_CUSTOM -- For externally linked datalink_xxx functions * - Clause 10 POINT-TO-POINT (PTP) and Clause 11 EIA/CEA-709.1 ("LonTalk") LAN * are not currently supported by this project. - *//** @defgroup DLTemplates DataLink Template Functions + */ +/** @defgroup DLTemplates DataLink Template Functions * @ingroup DataLink * Most of the functions in this group are function templates which are assigned * to a specific DataLink network layer implementation either at compile time or diff --git a/src/bacnet/datalink/dlenv.c b/src/bacnet/datalink/dlenv.c index 90c7b663..fa7f4872 100644 --- a/src/bacnet/datalink/dlenv.c +++ b/src/bacnet/datalink/dlenv.c @@ -162,7 +162,8 @@ static int bbmd_register_as_foreign_device(void) } if (BBMD_Address_Valid) { if (BIP_DL_Debug) { - fprintf(stderr, + fprintf( + stderr, "Registering with BBMD at %u.%u.%u.%u:%u for %u seconds\n", (unsigned)BBMD_Address.address[0], (unsigned)BBMD_Address.address[1], @@ -172,7 +173,8 @@ static int bbmd_register_as_foreign_device(void) } retval = bvlc_register_with_bbmd(&BBMD_Address, BBMD_TTL_Seconds); if (retval < 0) { - fprintf(stderr, "FAILED to Register with BBMD at %u.%u.%u.%u:%u\n", + fprintf( + stderr, "FAILED to Register with BBMD at %u.%u.%u.%u:%u\n", (unsigned)BBMD_Address.address[0], (unsigned)BBMD_Address.address[1], (unsigned)BBMD_Address.address[2], @@ -190,7 +192,8 @@ static int bbmd_register_as_foreign_device(void) bip_get_addr_by_name(pEnv, &BBMD_Table_Entry.dest_address); if (entry_number == 1) { if (BIP_DL_Debug) { - fprintf(stderr, "BBMD 1 address overridden %s=%s!\n", + fprintf( + stderr, "BBMD 1 address overridden %s=%s!\n", bbmd_env, pEnv); } } @@ -208,7 +211,8 @@ static int bbmd_register_as_foreign_device(void) bdt_entry_port = strtol(pEnv, NULL, 0); if (entry_number == 1) { if (BIP_DL_Debug) { - fprintf(stderr, "BBMD 1 port overridden %s=%s!\n", + fprintf( + stderr, "BBMD 1 port overridden %s=%s!\n", bbmd_env, pEnv); } } @@ -236,7 +240,8 @@ static int bbmd_register_as_foreign_device(void) bvlc_broadcast_distribution_table_entry_append( bvlc_bdt_list(), &BBMD_Table_Entry); if (BIP_DL_Debug) { - fprintf(stderr, "BBMD %4u: %u.%u.%u.%u:%u %u.%u.%u.%u\n", + fprintf( + stderr, "BBMD %4u: %u.%u.%u.%u:%u %u.%u.%u.%u\n", entry_number, (unsigned)BBMD_Table_Entry.dest_address.address[0], (unsigned)BBMD_Table_Entry.dest_address.address[1], @@ -303,14 +308,15 @@ static int bbmd6_register_as_foreign_device(void) pEnv = getenv("BACNET_BBMD6_ADDRESS"); if (bvlc6_address_from_ascii(pEnv, &bip6_addr)) { if (BIP_DL_Debug) { - fprintf(stderr, - "Registering with BBMD6 at %s for %u seconds\n", - pEnv, (unsigned)bip6_port, (unsigned)BBMD_TTL_Seconds); + fprintf( + stderr, "Registering with BBMD6 at %s for %u seconds\n", pEnv, + (unsigned)bip6_port, (unsigned)BBMD_TTL_Seconds); } retval = bvlc6_register_with_bbmd(&bip6_addr, BBMD_TTL_Seconds); if (retval < 0) { - fprintf(stderr, "FAILED to Register with BBMD6 at %s:%u\n", - pEnv, (unsigned)BBMD_Address.port); + fprintf( + stderr, "FAILED to Register with BBMD6 at %s:%u\n", pEnv, + (unsigned)BBMD_Address.port); } BBMD_Timer_Seconds = BBMD_TTL_Seconds; } @@ -361,19 +367,16 @@ void dlenv_network_port_init(void) bip_get_addr(&addr); prefix = bip_get_subnet_prefix(); if (BIP_DL_Debug) { - fprintf(stderr, - "BIP: Setting Network Port %lu address %u.%u.%u.%u:%u/%u\n", - (unsigned long)instance, - (unsigned)addr.address[0], - (unsigned)addr.address[1], - (unsigned)addr.address[2], - (unsigned)addr.address[3], - (unsigned)addr.port, - (unsigned)prefix); + fprintf( + stderr, "BIP: Setting Network Port %lu address %u.%u.%u.%u:%u/%u\n", + (unsigned long)instance, (unsigned)addr.address[0], + (unsigned)addr.address[1], (unsigned)addr.address[2], + (unsigned)addr.address[3], (unsigned)addr.port, (unsigned)prefix); } Network_Port_BIP_Port_Set(instance, addr.port); - Network_Port_IP_Address_Set(instance, addr.address[0], addr.address[1], - addr.address[2], addr.address[3]); + Network_Port_IP_Address_Set( + instance, addr.address[0], addr.address[1], addr.address[2], + addr.address[3]); Network_Port_IP_Subnet_Prefix_Set(instance, prefix); Network_Port_Link_Speed_Set(instance, 0.0); #if BBMD_ENABLED @@ -567,11 +570,13 @@ void dlenv_init(void) } pEnv = getenv("BACNET_BIP6_BROADCAST"); if (pEnv) { - bvlc6_address_set(&addr, (uint16_t)strtol(pEnv, NULL, 0), 0, 0, 0, 0, 0, - 0, BIP6_MULTICAST_GROUP_ID); + bvlc6_address_set( + &addr, (uint16_t)strtol(pEnv, NULL, 0), 0, 0, 0, 0, 0, 0, + BIP6_MULTICAST_GROUP_ID); bip6_set_broadcast_addr(&addr); } else { - bvlc6_address_set(&addr, BIP6_MULTICAST_SITE_LOCAL, 0, 0, 0, 0, 0, 0, + bvlc6_address_set( + &addr, BIP6_MULTICAST_SITE_LOCAL, 0, 0, 0, 0, 0, 0, BIP6_MULTICAST_GROUP_ID); bip6_set_broadcast_addr(&addr); } diff --git a/src/bacnet/datalink/dlenv.h b/src/bacnet/datalink/dlenv.h index 749378dd..b7d5feef 100644 --- a/src/bacnet/datalink/dlenv.h +++ b/src/bacnet/datalink/dlenv.h @@ -20,41 +20,32 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void dlenv_init( - void); +BACNET_STACK_EXPORT +void dlenv_init(void); - BACNET_STACK_EXPORT - void bip_dl_debug_enable( - void); +BACNET_STACK_EXPORT +void bip_dl_debug_enable(void); - BACNET_STACK_EXPORT - void bip_dl_debug_disable( - void); +BACNET_STACK_EXPORT +void bip_dl_debug_disable(void); - BACNET_STACK_EXPORT - int dlenv_register_as_foreign_device( - void); +BACNET_STACK_EXPORT +int dlenv_register_as_foreign_device(void); - BACNET_STACK_EXPORT - void dlenv_network_port_init( - void); +BACNET_STACK_EXPORT +void dlenv_network_port_init(void); - BACNET_STACK_EXPORT - void dlenv_maintenance_timer( - uint16_t elapsed_seconds); +BACNET_STACK_EXPORT +void dlenv_maintenance_timer(uint16_t elapsed_seconds); - BACNET_STACK_EXPORT - void dlenv_bbmd_address_set( - const BACNET_IP_ADDRESS *address); +BACNET_STACK_EXPORT +void dlenv_bbmd_address_set(const BACNET_IP_ADDRESS *address); - BACNET_STACK_EXPORT - void dlenv_bbmd_ttl_set( - uint16_t ttl_secs); +BACNET_STACK_EXPORT +void dlenv_bbmd_ttl_set(uint16_t ttl_secs); - BACNET_STACK_EXPORT - int dlenv_bbmd_result( - void); +BACNET_STACK_EXPORT +int dlenv_bbmd_result(void); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/dlmstp.c b/src/bacnet/datalink/dlmstp.c index 072e5bb2..c783713e 100644 --- a/src/bacnet/datalink/dlmstp.c +++ b/src/bacnet/datalink/dlmstp.c @@ -34,7 +34,8 @@ static struct mstp_port_struct_t *MSTP_Port; * @param pdu_len - number of bytes of PDU data to send * @return number of bytes sent on success, zero on failure */ -int dlmstp_send_pdu(BACNET_ADDRESS *dest, +int dlmstp_send_pdu( + BACNET_ADDRESS *dest, BACNET_NPDU_DATA *npdu_data, uint8_t *pdu, unsigned pdu_len) @@ -85,8 +86,7 @@ int dlmstp_send_pdu(BACNET_ADDRESS *dest, * @param timeout - number of milliseconds to wait for the data * @return amount of PDU data */ -uint16_t MSTP_Get_Send( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Send(struct mstp_port_struct_t *mstp_port, unsigned timeout) { uint16_t pdu_len = 0; struct dlmstp_packet *pkt; @@ -105,9 +105,10 @@ uint16_t MSTP_Get_Send( /* look at next PDU in queue without removing it */ pkt = (struct dlmstp_packet *)(void *)Ringbuf_Peek(&user->PDU_Queue); /* convert the PDU into the MSTP Frame */ - pdu_len = MSTP_Create_Frame(&mstp_port->OutputBuffer[0], - mstp_port->OutputBufferSize, pkt->frame_type, pkt->address.mac[0], - mstp_port->This_Station, &pkt->pdu[0], pkt->pdu_len); + pdu_len = MSTP_Create_Frame( + &mstp_port->OutputBuffer[0], mstp_port->OutputBufferSize, + pkt->frame_type, pkt->address.mac[0], mstp_port->This_Station, + &pkt->pdu[0], pkt->pdu_len); user->Statistics.transmit_pdu_counter++; (void)Ringbuf_Pop(&user->PDU_Queue, NULL); @@ -163,15 +164,15 @@ static bool MSTP_Compare_Data_Expecting_Reply( } request.invoke_id = request_pdu[offset + 2]; /* segmented message? */ - if (request_pdu[offset] & BIT(3)) + if (request_pdu[offset] & BIT(3)) { request.service_choice = request_pdu[offset + 5]; - else + } else { request.service_choice = request_pdu[offset + 3]; + } /* decode the reply data */ bacnet_address_copy(&reply.address, dest_address); offset = bacnet_npdu_decode( - &reply_pdu[0], reply_pdu_len, &reply.address, NULL, - &reply.npdu_data); + &reply_pdu[0], reply_pdu_len, &reply.address, NULL, &reply.npdu_data); if (reply.npdu_data.network_layer_message) { return false; } @@ -186,10 +187,11 @@ static bool MSTP_Compare_Data_Expecting_Reply( case PDU_TYPE_COMPLEX_ACK: reply.invoke_id = reply_pdu[offset + 1]; /* segmented message? */ - if (reply_pdu[offset] & BIT(3)) + if (reply_pdu[offset] & BIT(3)) { reply.service_choice = reply_pdu[offset + 4]; - else + } else { reply.service_choice = reply_pdu[offset + 2]; + } break; case PDU_TYPE_ERROR: reply.invoke_id = reply_pdu[offset + 1]; @@ -241,8 +243,7 @@ static bool MSTP_Compare_Data_Expecting_Reply( * @param timeout number of milliseconds to wait for a packet * @return number of bytes, or 0 if no reply is available */ -uint16_t MSTP_Get_Reply( - struct mstp_port_struct_t *mstp_port, unsigned timeout) +uint16_t MSTP_Get_Reply(struct mstp_port_struct_t *mstp_port, unsigned timeout) { uint16_t pdu_len = 0; bool matched = false; @@ -268,9 +269,10 @@ uint16_t MSTP_Get_Reply( return 0; } /* convert the PDU into the MSTP Frame */ - pdu_len = MSTP_Create_Frame(&mstp_port->OutputBuffer[0], - mstp_port->OutputBufferSize, pkt->frame_type, pkt->address.mac[0], - mstp_port->This_Station, &pkt->pdu[0], pkt->pdu_len); + pdu_len = MSTP_Create_Frame( + &mstp_port->OutputBuffer[0], mstp_port->OutputBufferSize, + pkt->frame_type, pkt->address.mac[0], mstp_port->This_Station, + &pkt->pdu[0], pkt->pdu_len); user->Statistics.transmit_pdu_counter++; (void)Ringbuf_Pop(&user->PDU_Queue, NULL); @@ -283,7 +285,8 @@ uint16_t MSTP_Get_Reply( * @param buffer - buffer to send * @param nbytes - number of bytes of data to send */ -void MSTP_Send_Frame(struct mstp_port_struct_t *mstp_port, +void MSTP_Send_Frame( + struct mstp_port_struct_t *mstp_port, const uint8_t *buffer, uint16_t nbytes) { @@ -366,7 +369,7 @@ uint16_t dlmstp_receive( } /* only do receive state machine while we don't have a frame */ while ((MSTP_Port->ReceivedValidFrame == false) && - (MSTP_Port->ReceivedInvalidFrame == false)) { + (MSTP_Port->ReceivedInvalidFrame == false)) { MSTP_Port->DataAvailable = driver->read(&data_register); if (MSTP_Port->DataAvailable) { MSTP_Port->DataRegister = data_register; @@ -395,7 +398,8 @@ uint16_t dlmstp_receive( /* only node state machines while rx is idle */ if (MSTP_Port->SlaveNodeEnabled) { MSTP_Slave_Node_FSM(MSTP_Port); - } else if ((MSTP_Port->This_Station <= DEFAULT_MAX_MASTER) || + } else if ( + (MSTP_Port->This_Station <= DEFAULT_MAX_MASTER) || MSTP_Port->ZeroConfigEnabled) { while (MSTP_Master_Node_FSM(MSTP_Port)) { /* do nothing while some states fast transition */ @@ -670,7 +674,7 @@ void dlmstp_set_baud_rate(uint32_t baud) /* Tframe_abort=60 bit times, not to exceed 100 milliseconds.*/ if (MSTP_Port->Tframe_abort <= 7) { /* within baud range, so auto-calculate range based on baud */ - MSTP_Port->Tframe_abort = 1+((60*1000UL)/baud); + MSTP_Port->Tframe_abort = 1 + ((60 * 1000UL) / baud); } /* Tturnaround=40 bit times */ MSTP_Port->Tturnaround_timeout = 1 + ((Tturnaround * 1000) / baud); @@ -802,8 +806,8 @@ bool dlmstp_init(char *ifname) MSTP_Port->SilenceTimerReset = dlmstp_silence_reset; user = (struct dlmstp_user_data_t *)MSTP_Port->UserData; if (user && !user->Initialized) { - Ringbuf_Init(&user->PDU_Queue, - (volatile uint8_t *)user->PDU_Buffer, + Ringbuf_Init( + &user->PDU_Queue, (volatile uint8_t *)user->PDU_Buffer, sizeof(user->PDU_Buffer), DLMSTP_MAX_INFO_FRAMES); MSTP_Init(MSTP_Port); user->Initialized = true; diff --git a/src/bacnet/datalink/dlmstp.h b/src/bacnet/datalink/dlmstp.h index c73e45b9..78849f89 100644 --- a/src/bacnet/datalink/dlmstp.h +++ b/src/bacnet/datalink/dlmstp.h @@ -22,15 +22,15 @@ /* defines specific to MS/TP */ /* preamble+type+dest+src+len+crc8+crc16 */ -#define DLMSTP_HEADER_MAX (2+1+1+1+2+1+2) -#define DLMSTP_MPDU_MAX (DLMSTP_HEADER_MAX+MAX_PDU) +#define DLMSTP_HEADER_MAX (2 + 1 + 1 + 1 + 2 + 1 + 2) +#define DLMSTP_MPDU_MAX (DLMSTP_HEADER_MAX + MAX_PDU) typedef struct dlmstp_packet { bool ready; /* true if ready to be sent or received */ - BACNET_ADDRESS address; /* source address */ + BACNET_ADDRESS address; /* source address */ uint8_t frame_type; /* type of message */ - uint16_t pdu_len; /* packet length */ - uint8_t pdu[DLMSTP_MPDU_MAX]; /* packet */ + uint16_t pdu_len; /* packet length */ + uint8_t pdu[DLMSTP_MPDU_MAX]; /* packet */ } DLMSTP_PACKET; /* container for packet and token statistics */ @@ -104,142 +104,124 @@ typedef void (*dlmstp_hook_frame_rx_complete_cb)( uint8_t src, uint8_t dest, uint8_t mstp_msg_type, - uint8_t * pdu, + uint8_t *pdu, uint16_t pdu_len); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - bool dlmstp_init( - char *ifname); - BACNET_STACK_EXPORT - void dlmstp_reset( - void); - BACNET_STACK_EXPORT - void dlmstp_cleanup( - void); +BACNET_STACK_EXPORT +bool dlmstp_init(char *ifname); +BACNET_STACK_EXPORT +void dlmstp_reset(void); +BACNET_STACK_EXPORT +void dlmstp_cleanup(void); - /* returns number of bytes sent on success, negative on failure */ - BACNET_STACK_EXPORT - int dlmstp_send_pdu( - BACNET_ADDRESS * dest, /* destination address */ - BACNET_NPDU_DATA * npdu_data, /* network information */ - uint8_t * pdu, /* any data to be sent - may be null */ - unsigned pdu_len); /* number of bytes of data */ +/* returns number of bytes sent on success, negative on failure */ +BACNET_STACK_EXPORT +int dlmstp_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ + BACNET_NPDU_DATA *npdu_data, /* network information */ + uint8_t *pdu, /* any data to be sent - may be null */ + unsigned pdu_len); /* number of bytes of data */ - /* returns the number of octets in the PDU, or zero on failure */ - BACNET_STACK_EXPORT - uint16_t dlmstp_receive( - BACNET_ADDRESS * src, /* source address */ - uint8_t * pdu, /* PDU data */ - uint16_t max_pdu, /* amount of space available in the PDU */ - unsigned timeout); /* milliseconds to wait for a packet */ +/* returns the number of octets in the PDU, or zero on failure */ +BACNET_STACK_EXPORT +uint16_t dlmstp_receive( + BACNET_ADDRESS *src, /* source address */ + uint8_t *pdu, /* PDU data */ + uint16_t max_pdu, /* amount of space available in the PDU */ + unsigned timeout); /* milliseconds to wait for a packet */ - /* This parameter represents the value of the Max_Info_Frames property of */ - /* the node's Device object. The value of Max_Info_Frames specifies the */ - /* maximum number of information frames the node may send before it must */ - /* pass the token. Max_Info_Frames may have different values on different */ - /* nodes. This may be used to allocate more or less of the available link */ - /* bandwidth to particular nodes. If Max_Info_Frames is not writable in a */ - /* node, its value shall be 1. */ - BACNET_STACK_EXPORT - void dlmstp_set_max_info_frames( - uint8_t max_info_frames); - BACNET_STACK_EXPORT - uint8_t dlmstp_max_info_frames( - void); +/* This parameter represents the value of the Max_Info_Frames property of */ +/* the node's Device object. The value of Max_Info_Frames specifies the */ +/* maximum number of information frames the node may send before it must */ +/* pass the token. Max_Info_Frames may have different values on different */ +/* nodes. This may be used to allocate more or less of the available link */ +/* bandwidth to particular nodes. If Max_Info_Frames is not writable in a */ +/* node, its value shall be 1. */ +BACNET_STACK_EXPORT +void dlmstp_set_max_info_frames(uint8_t max_info_frames); +BACNET_STACK_EXPORT +uint8_t dlmstp_max_info_frames(void); - /* This parameter represents the value of the Max_Master property of the */ - /* node's Device object. The value of Max_Master specifies the highest */ - /* allowable address for master nodes. The value of Max_Master shall be */ - /* less than or equal to 127. If Max_Master is not writable in a node, */ - /* its value shall be 127. */ - BACNET_STACK_EXPORT - void dlmstp_set_max_master( - uint8_t max_master); - BACNET_STACK_EXPORT - uint8_t dlmstp_max_master( - void); +/* This parameter represents the value of the Max_Master property of the */ +/* node's Device object. The value of Max_Master specifies the highest */ +/* allowable address for master nodes. The value of Max_Master shall be */ +/* less than or equal to 127. If Max_Master is not writable in a node, */ +/* its value shall be 127. */ +BACNET_STACK_EXPORT +void dlmstp_set_max_master(uint8_t max_master); +BACNET_STACK_EXPORT +uint8_t dlmstp_max_master(void); - /* MAC address 0-127 */ - BACNET_STACK_EXPORT - void dlmstp_set_mac_address( - uint8_t my_address); - BACNET_STACK_EXPORT - uint8_t dlmstp_mac_address( - void); +/* MAC address 0-127 */ +BACNET_STACK_EXPORT +void dlmstp_set_mac_address(uint8_t my_address); +BACNET_STACK_EXPORT +uint8_t dlmstp_mac_address(void); - BACNET_STACK_EXPORT - void dlmstp_get_my_address( - BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - void dlmstp_get_broadcast_address( - BACNET_ADDRESS * dest); /* destination address */ +BACNET_STACK_EXPORT +void dlmstp_get_my_address(BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +void dlmstp_get_broadcast_address( + BACNET_ADDRESS *dest); /* destination address */ - /* RS485 Baud Rate 9600, 19200, 38400, 57600, 115200 */ - BACNET_STACK_EXPORT - void dlmstp_set_baud_rate( - uint32_t baud); - BACNET_STACK_EXPORT - uint32_t dlmstp_baud_rate( - void); +/* RS485 Baud Rate 9600, 19200, 38400, 57600, 115200 */ +BACNET_STACK_EXPORT +void dlmstp_set_baud_rate(uint32_t baud); +BACNET_STACK_EXPORT +uint32_t dlmstp_baud_rate(void); - BACNET_STACK_EXPORT - void dlmstp_fill_bacnet_address( - BACNET_ADDRESS * src, - uint8_t mstp_address); +BACNET_STACK_EXPORT +void dlmstp_fill_bacnet_address(BACNET_ADDRESS *src, uint8_t mstp_address); - BACNET_STACK_EXPORT - bool dlmstp_sole_master( - void); - BACNET_STACK_EXPORT - bool dlmstp_send_pdu_queue_empty(void); - BACNET_STACK_EXPORT - bool dlmstp_send_pdu_queue_full(void); +BACNET_STACK_EXPORT +bool dlmstp_sole_master(void); +BACNET_STACK_EXPORT +bool dlmstp_send_pdu_queue_empty(void); +BACNET_STACK_EXPORT +bool dlmstp_send_pdu_queue_full(void); - BACNET_STACK_EXPORT - uint8_t dlmstp_max_info_frames_limit(void); - BACNET_STACK_EXPORT - uint8_t dlmstp_max_master_limit(void); +BACNET_STACK_EXPORT +uint8_t dlmstp_max_info_frames_limit(void); +BACNET_STACK_EXPORT +uint8_t dlmstp_max_master_limit(void); - BACNET_STACK_EXPORT - uint32_t dlmstp_silence_milliseconds( - void *arg); - BACNET_STACK_EXPORT - void dlmstp_silence_reset( - void *arg); +BACNET_STACK_EXPORT +uint32_t dlmstp_silence_milliseconds(void *arg); +BACNET_STACK_EXPORT +void dlmstp_silence_reset(void *arg); - /* Set the callback function to be called on every valid received frame */ - /* This is not necessary for normal usage, but is helpful if the caller */ - /* needs to monitor traffic on the MS/TP bus */ - /* The specified callback function should execute quickly so as to avoid */ - /* interfering with bus timing */ - BACNET_STACK_EXPORT - void dlmstp_set_frame_rx_complete_callback( - dlmstp_hook_frame_rx_complete_cb cb_func); +/* Set the callback function to be called on every valid received frame */ +/* This is not necessary for normal usage, but is helpful if the caller */ +/* needs to monitor traffic on the MS/TP bus */ +/* The specified callback function should execute quickly so as to avoid */ +/* interfering with bus timing */ +BACNET_STACK_EXPORT +void dlmstp_set_frame_rx_complete_callback( + dlmstp_hook_frame_rx_complete_cb cb_func); - /* Set the callback function to be called every time the start of a */ - /* frame is detected. This is not necessary for normal usage, but is */ - /* helpful if the caller needs to know when a frame begins for timing */ - /* (timing is heavily dependent upon baud rate and the period with */ - /* which dlmstp_receive is called) */ - /* The specified callback function should execute quickly so as to avoid */ - /* interfering with bus timing */ - BACNET_STACK_EXPORT - void dlmstp_set_frame_rx_start_callback( - dlmstp_hook_frame_rx_start_cb cb_func); +/* Set the callback function to be called every time the start of a */ +/* frame is detected. This is not necessary for normal usage, but is */ +/* helpful if the caller needs to know when a frame begins for timing */ +/* (timing is heavily dependent upon baud rate and the period with */ +/* which dlmstp_receive is called) */ +/* The specified callback function should execute quickly so as to avoid */ +/* interfering with bus timing */ +BACNET_STACK_EXPORT +void dlmstp_set_frame_rx_start_callback(dlmstp_hook_frame_rx_start_cb cb_func); - /* Reset the statistics counters on the MS/TP datalink */ - BACNET_STACK_EXPORT - void dlmstp_reset_statistics(void); +/* Reset the statistics counters on the MS/TP datalink */ +BACNET_STACK_EXPORT +void dlmstp_reset_statistics(void); - /* Retrieve statistics counters from the MS/TP datalink */ - /* Values for the current counters at the time this function is called */ - /* will be copied into *statistics */ - BACNET_STACK_EXPORT - void dlmstp_fill_statistics(struct dlmstp_statistics * statistics); +/* Retrieve statistics counters from the MS/TP datalink */ +/* Values for the current counters at the time this function is called */ +/* will be copied into *statistics */ +BACNET_STACK_EXPORT +void dlmstp_fill_statistics(struct dlmstp_statistics *statistics); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/ethernet.h b/src/bacnet/datalink/ethernet.h index 998cda36..a3670cdb 100644 --- a/src/bacnet/datalink/ethernet.h +++ b/src/bacnet/datalink/ethernet.h @@ -19,60 +19,51 @@ #include "bacnet/npdu.h" /* specific defines for Ethernet */ -#define ETHERNET_HEADER_MAX (6+6+2+1+1+1) -#define ETHERNET_MPDU_MAX (ETHERNET_HEADER_MAX+MAX_PDU) +#define ETHERNET_HEADER_MAX (6 + 6 + 2 + 1 + 1 + 1) +#define ETHERNET_MPDU_MAX (ETHERNET_HEADER_MAX + MAX_PDU) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - bool ethernet_valid( - void); - BACNET_STACK_EXPORT - void ethernet_cleanup( - void); - BACNET_STACK_EXPORT - bool ethernet_init( - char *interface_name); +BACNET_STACK_EXPORT +bool ethernet_valid(void); +BACNET_STACK_EXPORT +void ethernet_cleanup(void); +BACNET_STACK_EXPORT +bool ethernet_init(char *interface_name); /* function to send a packet out the 802.2 socket */ /* returns number of bytes sent on success, negative on failure */ - BACNET_STACK_EXPORT - int ethernet_send_pdu( - BACNET_ADDRESS * dest, /* destination address */ - BACNET_NPDU_DATA * npdu_data, /* network information */ - uint8_t * pdu, /* any data to be sent - may be null */ - unsigned pdu_len); /* number of bytes of data */ +BACNET_STACK_EXPORT +int ethernet_send_pdu( + BACNET_ADDRESS *dest, /* destination address */ + BACNET_NPDU_DATA *npdu_data, /* network information */ + uint8_t *pdu, /* any data to be sent - may be null */ + unsigned pdu_len); /* number of bytes of data */ /* receives an 802.2 framed packet */ /* returns the number of octets in the PDU, or zero on failure */ - BACNET_STACK_EXPORT - uint16_t ethernet_receive( - BACNET_ADDRESS * src, /* source address */ - uint8_t * pdu, /* PDU data */ - uint16_t max_pdu, /* amount of space available in the PDU */ - unsigned timeout); /* milliseconds to wait for a packet */ +BACNET_STACK_EXPORT +uint16_t ethernet_receive( + BACNET_ADDRESS *src, /* source address */ + uint8_t *pdu, /* PDU data */ + uint16_t max_pdu, /* amount of space available in the PDU */ + unsigned timeout); /* milliseconds to wait for a packet */ - BACNET_STACK_EXPORT - void ethernet_set_my_address( - const BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - void ethernet_get_my_address( - BACNET_ADDRESS * my_address); - BACNET_STACK_EXPORT - void ethernet_get_broadcast_address( - BACNET_ADDRESS * dest); /* destination address */ +BACNET_STACK_EXPORT +void ethernet_set_my_address(const BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +void ethernet_get_my_address(BACNET_ADDRESS *my_address); +BACNET_STACK_EXPORT +void ethernet_get_broadcast_address( + BACNET_ADDRESS *dest); /* destination address */ - /* some functions from Linux driver */ - BACNET_STACK_EXPORT - void ethernet_debug_address( - const char *info, - const BACNET_ADDRESS * dest); - BACNET_STACK_EXPORT - int ethernet_send( - uint8_t * mtu, - int mtu_len); +/* some functions from Linux driver */ +BACNET_STACK_EXPORT +void ethernet_debug_address(const char *info, const BACNET_ADDRESS *dest); +BACNET_STACK_EXPORT +int ethernet_send(uint8_t *mtu, int mtu_len); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/mstp.c b/src/bacnet/datalink/mstp.c index de5f9d5f..843b0cf4 100644 --- a/src/bacnet/datalink/mstp.c +++ b/src/bacnet/datalink/mstp.c @@ -157,7 +157,8 @@ void MSTP_Fill_BACnet_Address(BACNET_ADDRESS *src, uint8_t mstp_address) * @param data_len - number of bytes of data * @return number of bytes encoded, or 0 on error */ -uint16_t MSTP_Create_Frame(uint8_t *buffer, +uint16_t MSTP_Create_Frame( + uint8_t *buffer, uint16_t buffer_size, uint8_t frame_type, uint8_t destination, @@ -184,13 +185,13 @@ uint16_t MSTP_Create_Frame(uint8_t *buffer, } else if (frame_type == FRAME_TYPE_BACNET_DATA_NOT_EXPECTING_REPLY) { frame_type = FRAME_TYPE_BACNET_EXTENDED_DATA_NOT_EXPECTING_REPLY; cobs_bacnet_frame = true; - } else if ((frame_type < Nmin_COBS_type) || - (frame_type > Nmax_COBS_type)) { + } else if ( + (frame_type < Nmin_COBS_type) || (frame_type > Nmax_COBS_type)) { /* I'm sorry, Dave, I'm afraid I can't do that. */ return 0; } - cobs_len = cobs_frame_encode(&buffer[8], buffer_size-8, data, - data_len); + cobs_len = + cobs_frame_encode(&buffer[8], buffer_size - 8, data, data_len); /* check the results of COBs encoding for validity */ if (cobs_bacnet_frame) { if (cobs_len < Nmin_COBS_length_BACnet) { @@ -215,7 +216,7 @@ uint16_t MSTP_Create_Frame(uint8_t *buffer, return 0; } if ((8 + data_len + 2) > buffer_size) { - return 0; + return 0; } for (index = 8; index < (data_len + 8); index++, data++) { buffer[index] = *data; @@ -223,7 +224,7 @@ uint16_t MSTP_Create_Frame(uint8_t *buffer, } crc16 = ~crc16; buffer[index] = crc16 & 0xFF; /* LSB first */ - buffer[index+1] = crc16 >> 8; + buffer[index + 1] = crc16 >> 8; } buffer[0] = 0x55; buffer[1] = 0xFF; @@ -255,7 +256,8 @@ uint16_t MSTP_Create_Frame(uint8_t *buffer, * @param data - any data to be sent - may be null * @param data_len - number of bytes of data */ -void MSTP_Create_And_Send_Frame(struct mstp_port_struct_t *mstp_port, +void MSTP_Create_And_Send_Frame( + struct mstp_port_struct_t *mstp_port, uint8_t frame_type, uint8_t destination, uint8_t source, @@ -264,9 +266,9 @@ void MSTP_Create_And_Send_Frame(struct mstp_port_struct_t *mstp_port, { uint16_t len = 0; /* number of bytes to send */ - len = - MSTP_Create_Frame(mstp_port->OutputBuffer, mstp_port->OutputBufferSize, - frame_type, destination, source, data, data_len); + len = MSTP_Create_Frame( + mstp_port->OutputBuffer, mstp_port->OutputBufferSize, frame_type, + destination, source, data, data_len); MSTP_Send_Frame(mstp_port, &mstp_port->OutputBuffer[0], len); /* FIXME: be sure to reset SilenceTimer() after each octet is sent! */ @@ -361,7 +363,8 @@ void MSTP_Receive_Frame_FSM(struct mstp_port_struct_t *mstp_port) mstp_port->ReceivedInvalidFrame = true; /* wait for the start of a frame. */ mstp_port->receive_state = MSTP_RECEIVE_STATE_IDLE; - printf_receive_error("MSTP: Rx Header: SilenceTimer %u > %d\n", + printf_receive_error( + "MSTP: Rx Header: SilenceTimer %u > %d\n", (unsigned)mstp_port->SilenceTimer((void *)mstp_port), mstp_port->Tframe_abort); } else if (mstp_port->ReceiveError == true) { @@ -418,7 +421,8 @@ void MSTP_Receive_Frame_FSM(struct mstp_port_struct_t *mstp_port) /* indicate that an error has occurred during the reception of a frame */ mstp_port->ReceivedInvalidFrame = true; - printf_receive_error("MSTP: Rx Header: BadCRC [%02X]\n", + printf_receive_error( + "MSTP: Rx Header: BadCRC [%02X]\n", mstp_port->DataRegister); /* wait for the start of the next frame. */ mstp_port->receive_state = MSTP_RECEIVE_STATE_IDLE; @@ -426,16 +430,17 @@ void MSTP_Receive_Frame_FSM(struct mstp_port_struct_t *mstp_port) if (mstp_port->DataLength == 0) { /* NoData */ if ((mstp_port->DestinationAddress == - mstp_port->This_Station) || + mstp_port->This_Station) || (mstp_port->DestinationAddress == - MSTP_BROADCAST_ADDRESS) || + MSTP_BROADCAST_ADDRESS) || (mstp_port->This_Station == - MSTP_BROADCAST_ADDRESS)) { - printf_receive_data("%s", + MSTP_BROADCAST_ADDRESS)) { + printf_receive_data( + "%s", mstptext_frame_type( - (unsigned)mstp_port->FrameType)); + (unsigned)mstp_port->FrameType)); /* indicate that a frame with no data has been - * received */ + * received */ mstp_port->ReceivedValidFrame = true; } /* wait for the start of the next frame. */ @@ -443,11 +448,11 @@ void MSTP_Receive_Frame_FSM(struct mstp_port_struct_t *mstp_port) } else { /* receive the data portion of the frame. */ if ((mstp_port->DestinationAddress == - mstp_port->This_Station) || + mstp_port->This_Station) || (mstp_port->DestinationAddress == - MSTP_BROADCAST_ADDRESS) || + MSTP_BROADCAST_ADDRESS) || (mstp_port->This_Station == - MSTP_BROADCAST_ADDRESS)) { + MSTP_BROADCAST_ADDRESS)) { if (mstp_port->DataLength <= mstp_port->InputBufferSize) { /* Data */ @@ -476,7 +481,8 @@ void MSTP_Receive_Frame_FSM(struct mstp_port_struct_t *mstp_port) /* indicate that an error has occurred during */ /* the reception of a frame */ mstp_port->ReceivedInvalidFrame = true; - printf_receive_error("MSTP: Rx Data: BadIndex %u\n", + printf_receive_error( + "MSTP: Rx Data: BadIndex %u\n", (unsigned)mstp_port->Index); /* wait for the start of a frame. */ mstp_port->receive_state = MSTP_RECEIVE_STATE_IDLE; @@ -544,15 +550,16 @@ void MSTP_Receive_Frame_FSM(struct mstp_port_struct_t *mstp_port) mstp_port->DataCRC = CRC_Calc_Data( mstp_port->DataRegister, mstp_port->DataCRC); mstp_port->DataCRCActualLSB = mstp_port->DataRegister; - printf_receive_data("%s", + printf_receive_data( + "%s", mstptext_frame_type((unsigned)mstp_port->FrameType)); if (((mstp_port->Index + 1) < mstp_port->InputBufferSize) && (mstp_port->FrameType >= Nmin_COBS_type) && (mstp_port->FrameType <= Nmax_COBS_type)) { mstp_port->DataLength = cobs_frame_decode( &mstp_port->InputBuffer[mstp_port->Index + 1], - mstp_port->InputBufferSize, - mstp_port->InputBuffer, mstp_port->Index + 1); + mstp_port->InputBufferSize, mstp_port->InputBuffer, + mstp_port->Index + 1); if (mstp_port->DataLength > 0) { mstp_port->ReceivedValidFrame = true; } else { @@ -631,9 +638,10 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) mstp_port->RetryCount = 0; mstp_port->EventCount = 0; mstp_port->SoleMaster = true; - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station, - mstp_port->This_Station, NULL, 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_POLL_FOR_MASTER, + mstp_port->Poll_Station, mstp_port->This_Station, NULL, + 0); mstp_port->master_state = MSTP_MASTER_STATE_POLL_FOR_MASTER; transition_now = true; } @@ -658,9 +666,10 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* wait for the next frame - remain in IDLE */ mstp_port->ReceivedInvalidFrame = false; } else if (mstp_port->ReceivedValidFrame == true) { - printf_master("MSTP: ReceivedValidFrame " - "Src=%02X Dest=%02X DataLen=%u " - "FC=%u ST=%u Type=%s\n", + printf_master( + "MSTP: ReceivedValidFrame " + "Src=%02X Dest=%02X DataLen=%u " + "FC=%u ST=%u Type=%s\n", mstp_port->SourceAddress, mstp_port->DestinationAddress, mstp_port->DataLength, mstp_port->FrameCount, mstp_port->SilenceTimer((void *)mstp_port), @@ -696,7 +705,8 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* DestinationAddress is equal to TS */ if (mstp_port->DestinationAddress == mstp_port->This_Station) { - MSTP_Create_And_Send_Frame(mstp_port, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_REPLY_TO_POLL_FOR_MASTER, mstp_port->SourceAddress, mstp_port->This_Station, NULL, 0); @@ -705,8 +715,9 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) case FRAME_TYPE_BACNET_DATA_NOT_EXPECTING_REPLY: case FRAME_TYPE_BACNET_EXTENDED_DATA_NOT_EXPECTING_REPLY: if ((mstp_port->DestinationAddress == - MSTP_BROADCAST_ADDRESS) && - (npdu_confirmed_service(mstp_port->InputBuffer, + MSTP_BROADCAST_ADDRESS) && + (npdu_confirmed_service( + mstp_port->InputBuffer, mstp_port->DataLength))) { /* BTL test: verifies that the IUT will quietly discard any Confirmed-Request-PDU, whose @@ -733,8 +744,8 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) } break; case FRAME_TYPE_TEST_REQUEST: - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_TEST_RESPONSE, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TEST_RESPONSE, mstp_port->SourceAddress, mstp_port->This_Station, mstp_port->InputBuffer, mstp_port->DataLength); @@ -750,8 +761,8 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) MSTP_MASTER_STATE_ANSWER_DATA_REQUEST) { mstp_port->ReceivedValidFrame = false; } - } else if (mstp_port->SilenceTimer((void *)mstp_port) >= - Tno_token) { + } else if ( + mstp_port->SilenceTimer((void *)mstp_port) >= Tno_token) { /* LostToken */ /* assume that the token has been lost */ mstp_port->EventCount = 0; /* Addendum 135-2004d-8 */ @@ -777,8 +788,8 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) } else { uint8_t frame_type = mstp_port->OutputBuffer[2]; uint8_t destination = mstp_port->OutputBuffer[3]; - MSTP_Send_Frame(mstp_port, - &mstp_port->OutputBuffer[0], (uint16_t)length); + MSTP_Send_Frame( + mstp_port, &mstp_port->OutputBuffer[0], (uint16_t)length); mstp_port->FrameCount++; switch (frame_type) { case FRAME_TYPE_BACNET_DATA_EXPECTING_REPLY: @@ -882,15 +893,16 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* before passing the token. */ mstp_port->master_state = MSTP_MASTER_STATE_USE_TOKEN; transition_now = true; - } else if ((mstp_port->SoleMaster == false) && + } else if ( + (mstp_port->SoleMaster == false) && (mstp_port->Next_Station == mstp_port->This_Station)) { /* NextStationUnknown - added in Addendum 135-2008v-1 */ /* then the next station to which the token should be sent is unknown - so PollForMaster */ mstp_port->Poll_Station = next_this_station; - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station, - mstp_port->This_Station, NULL, 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_POLL_FOR_MASTER, + mstp_port->Poll_Station, mstp_port->This_Station, NULL, 0); mstp_port->RetryCount = 0; mstp_port->master_state = MSTP_MASTER_STATE_POLL_FOR_MASTER; } else if (mstp_port->TokenCount < (Npoll - 1)) { @@ -916,9 +928,9 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) * case. */ mstp_port->TokenCount++; /* transmit a Token frame to NS */ - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TOKEN, - mstp_port->Next_Station, mstp_port->This_Station, NULL, - 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TOKEN, mstp_port->Next_Station, + mstp_port->This_Station, NULL, 0); mstp_port->RetryCount = 0; mstp_port->EventCount = 0; mstp_port->master_state = MSTP_MASTER_STATE_PASS_TOKEN; @@ -927,9 +939,10 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) if (mstp_port->SoleMaster == true) { /* SoleMasterRestartMaintenancePFM */ mstp_port->Poll_Station = next_next_station; - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station, - mstp_port->This_Station, NULL, 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_POLL_FOR_MASTER, + mstp_port->Poll_Station, mstp_port->This_Station, NULL, + 0); /* no known successor node */ mstp_port->Next_Station = mstp_port->This_Station; mstp_port->RetryCount = 0; @@ -943,9 +956,9 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* ResetMaintenancePFM */ mstp_port->Poll_Station = mstp_port->This_Station; /* transmit a Token frame to NS */ - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TOKEN, - mstp_port->Next_Station, mstp_port->This_Station, NULL, - 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TOKEN, mstp_port->Next_Station, + mstp_port->This_Station, NULL, 0); mstp_port->RetryCount = 0; /* changed in Errata SSPC-135-2004 */ mstp_port->TokenCount = 1; @@ -955,9 +968,9 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) } else { /* SendMaintenancePFM */ mstp_port->Poll_Station = next_poll_station; - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station, - mstp_port->This_Station, NULL, 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_POLL_FOR_MASTER, + mstp_port->Poll_Station, mstp_port->This_Station, NULL, 0); mstp_port->RetryCount = 0; mstp_port->master_state = MSTP_MASTER_STATE_POLL_FOR_MASTER; } @@ -980,9 +993,9 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* RetrySendToken */ mstp_port->RetryCount++; /* Transmit a Token frame to NS */ - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TOKEN, - mstp_port->Next_Station, mstp_port->This_Station, NULL, - 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TOKEN, mstp_port->Next_Station, + mstp_port->This_Station, NULL, 0); mstp_port->EventCount = 0; /* re-enter the current state to listen for NS */ /* to begin using the token. */ @@ -992,9 +1005,10 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* note: if NS=TS-1, this node could send PFM to self! */ mstp_port->Poll_Station = next_next_station; /* Transmit a Poll For Master frame to PS. */ - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station, - mstp_port->This_Station, NULL, 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_POLL_FOR_MASTER, + mstp_port->Poll_Station, mstp_port->This_Station, NULL, + 0); /* no known successor node */ mstp_port->Next_Station = mstp_port->This_Station; mstp_port->RetryCount = 0; @@ -1034,9 +1048,10 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* on the network and is empowered to create a token. */ mstp_port->Poll_Station = next_this_station; /* Transmit a Poll For Master frame to PS. */ - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station, - mstp_port->This_Station, NULL, 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_POLL_FOR_MASTER, + mstp_port->Poll_Station, mstp_port->This_Station, NULL, + 0); /* indicate that the next station is unknown */ mstp_port->Next_Station = mstp_port->This_Station; mstp_port->RetryCount = 0; @@ -1067,17 +1082,17 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* a successor node. */ if (mstp_port->ReceivedValidFrame == true) { if ((mstp_port->DestinationAddress == - mstp_port->This_Station) && + mstp_port->This_Station) && (mstp_port->FrameType == - FRAME_TYPE_REPLY_TO_POLL_FOR_MASTER)) { + FRAME_TYPE_REPLY_TO_POLL_FOR_MASTER)) { /* ReceivedReplyToPFM */ mstp_port->SoleMaster = false; mstp_port->Next_Station = mstp_port->SourceAddress; mstp_port->EventCount = 0; /* Transmit a Token frame to NS */ - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TOKEN, - mstp_port->Next_Station, mstp_port->This_Station, NULL, - 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TOKEN, mstp_port->Next_Station, + mstp_port->This_Station, NULL, 0); mstp_port->Poll_Station = mstp_port->This_Station; mstp_port->TokenCount = 0; mstp_port->RetryCount = 0; @@ -1092,8 +1107,9 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) transition_now = true; } mstp_port->ReceivedValidFrame = false; - } else if ((mstp_port->SilenceTimer((void *)mstp_port) > - mstp_port->Tusage_timeout) || + } else if ( + (mstp_port->SilenceTimer((void *)mstp_port) > + mstp_port->Tusage_timeout) || (mstp_port->ReceivedInvalidFrame == true)) { if (mstp_port->SoleMaster == true) { /* SoleMaster */ @@ -1110,7 +1126,8 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* poll for a master at address PS. */ mstp_port->EventCount = 0; /* transmit a Token frame to NS */ - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TOKEN, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TOKEN, mstp_port->Next_Station, mstp_port->This_Station, NULL, 0); mstp_port->RetryCount = 0; @@ -1120,8 +1137,8 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* SendNextPFM */ mstp_port->Poll_Station = next_poll_station; /* Transmit a Poll For Master frame to PS. */ - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_POLL_FOR_MASTER, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station, mstp_port->This_Station, NULL, 0); mstp_port->RetryCount = 0; @@ -1158,12 +1175,13 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* then call MSTP_Create_And_Send_Frame to transmit the reply * frame */ /* and enter the IDLE state to wait for the next frame. */ - MSTP_Send_Frame(mstp_port, - &mstp_port->OutputBuffer[0], (uint16_t)length); + MSTP_Send_Frame( + mstp_port, &mstp_port->OutputBuffer[0], (uint16_t)length); mstp_port->master_state = MSTP_MASTER_STATE_IDLE; /* clear our flag we were holding for comparison */ mstp_port->ReceivedValidFrame = false; - } else if (mstp_port->SilenceTimer((void *)mstp_port) > + } else if ( + mstp_port->SilenceTimer((void *)mstp_port) > mstp_port->Treply_delay) { /* DeferredReply */ /* If no reply will be available from the higher layers */ @@ -1175,9 +1193,9 @@ bool MSTP_Master_Node_FSM(struct mstp_port_struct_t *mstp_port) /* Call MSTP_Create_And_Send_Frame to transmit a Reply Postponed * frame, */ /* and enter the IDLE state. */ - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_REPLY_POSTPONED, mstp_port->SourceAddress, - mstp_port->This_Station, NULL, 0); + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_REPLY_POSTPONED, + mstp_port->SourceAddress, mstp_port->This_Station, NULL, 0); mstp_port->master_state = MSTP_MASTER_STATE_IDLE; /* clear our flag we were holding for comparison */ mstp_port->ReceivedValidFrame = false; @@ -1226,7 +1244,8 @@ void MSTP_Slave_Node_FSM(struct mstp_port_struct_t *mstp_port) } break; case FRAME_TYPE_TEST_REQUEST: - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TEST_RESPONSE, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TEST_RESPONSE, mstp_port->SourceAddress, mstp_port->This_Station, &mstp_port->InputBuffer[0], mstp_port->DataLength); break; @@ -1249,16 +1268,17 @@ void MSTP_Slave_Node_FSM(struct mstp_port_struct_t *mstp_port) /* within Treply_delay after the reception of the */ /* final octet of the requesting frame */ /* (the mechanism used to determine this is a local - * matter), */ + * matter), */ /* then call MSTP_Create_And_Send_Frame to transmit the - * reply frame */ + * reply frame */ /* and enter the IDLE state to wait for the next frame. - */ - MSTP_Send_Frame(mstp_port, - &mstp_port->OutputBuffer[0], (uint16_t)length); + */ + MSTP_Send_Frame( + mstp_port, &mstp_port->OutputBuffer[0], (uint16_t)length); /* clear our flag we were holding for comparison */ mstp_port->ReceivedValidFrame = false; - } else if (mstp_port->SilenceTimer((void *)mstp_port) > + } else if ( + mstp_port->SilenceTimer((void *)mstp_port) > mstp_port->Treply_delay) { /* If no reply will be available from the higher layers within Treply_delay after the reception of the final @@ -1398,7 +1418,8 @@ static void MSTP_Zero_Config_State_Idle(struct mstp_port_struct_t *mstp_port) /* configure max master at maximum */ /* confirm this station with a quick test */ mstp_port->Zero_Config_Max_Master = DEFAULT_MAX_MASTER; - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TEST_REQUEST, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TEST_REQUEST, mstp_port->Zero_Config_Station, mstp_port->Zero_Config_Station, mstp_port->UUID, sizeof(mstp_port->UUID)); mstp_port->Zero_Config_State = MSTP_ZERO_CONFIG_STATE_CONFIRM; @@ -1434,18 +1455,18 @@ static void MSTP_Zero_Config_State_Lurk(struct mstp_port_struct_t *mstp_port) if (src == mstp_port->Zero_Config_Station) { /* AddressInUse */ /* monitor PFM from the next address */ - mstp_port->Zero_Config_Station = - MSTP_Zero_Config_Station_Increment( - mstp_port->Zero_Config_Station); + mstp_port->Zero_Config_Station = MSTP_Zero_Config_Station_Increment( + mstp_port->Zero_Config_Station); mstp_port->Poll_Count = 0; - } else if ((frame == FRAME_TYPE_POLL_FOR_MASTER) && + } else if ( + (frame == FRAME_TYPE_POLL_FOR_MASTER) && (dst == mstp_port->Zero_Config_Station)) { /* calculate this node poll count priority number */ count = Nmin_poll + mstp_port->Npoll_slot; if (mstp_port->Poll_Count == count) { /* PollResponse */ - MSTP_Create_And_Send_Frame(mstp_port, - FRAME_TYPE_REPLY_TO_POLL_FOR_MASTER, src, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_REPLY_TO_POLL_FOR_MASTER, src, mstp_port->Zero_Config_Station, NULL, 0); mstp_port->Zero_Config_State = MSTP_ZERO_CONFIG_STATE_CLAIM; } else { @@ -1487,16 +1508,16 @@ static void MSTP_Zero_Config_State_Claim(struct mstp_port_struct_t *mstp_port) if (src == mstp_port->Zero_Config_Station) { /* ClaimAddressInUse */ /* monitor PFM from the next address */ - mstp_port->Zero_Config_Station = - MSTP_Zero_Config_Station_Increment( - mstp_port->Zero_Config_Station); + mstp_port->Zero_Config_Station = MSTP_Zero_Config_Station_Increment( + mstp_port->Zero_Config_Station); mstp_port->Poll_Count = 0; mstp_port->Zero_Config_State = MSTP_ZERO_CONFIG_STATE_LURK; } else if (frame == FRAME_TYPE_TOKEN) { if (dst == mstp_port->Zero_Config_Station) { /* ClaimTokenForUs */ - MSTP_Create_And_Send_Frame(mstp_port, FRAME_TYPE_TEST_REQUEST, - src, mstp_port->Zero_Config_Station, mstp_port->UUID, + MSTP_Create_And_Send_Frame( + mstp_port, FRAME_TYPE_TEST_REQUEST, src, + mstp_port->Zero_Config_Station, mstp_port->UUID, MSTP_UUID_SIZE); mstp_port->Zero_Config_State = MSTP_ZERO_CONFIG_STATE_CONFIRM; } @@ -1541,8 +1562,9 @@ static void MSTP_Zero_Config_State_Confirm(struct mstp_port_struct_t *mstp_port) match = false; } if (match && - (memcmp(mstp_port->InputBuffer, mstp_port->UUID, - MSTP_UUID_SIZE) != 0)) { + (memcmp( + mstp_port->InputBuffer, mstp_port->UUID, MSTP_UUID_SIZE) != + 0)) { match = false; } if (match) { @@ -1556,15 +1578,15 @@ static void MSTP_Zero_Config_State_Confirm(struct mstp_port_struct_t *mstp_port) } else if (src == mstp_port->Zero_Config_Station) { /* ConfirmationAddressInUse */ /* monitor PFM from the next address */ - mstp_port->Zero_Config_Station = - MSTP_Zero_Config_Station_Increment( - mstp_port->Zero_Config_Station); + mstp_port->Zero_Config_Station = MSTP_Zero_Config_Station_Increment( + mstp_port->Zero_Config_Station); mstp_port->Zero_Config_State = MSTP_ZERO_CONFIG_STATE_LURK; } } else if (mstp_port->ReceivedInvalidFrame) { /* ConfirmationInvalidFrame */ mstp_port->ReceivedInvalidFrame = false; - } else if (mstp_port->SilenceTimer((void *)mstp_port) >= + } else if ( + mstp_port->SilenceTimer((void *)mstp_port) >= mstp_port->Treply_timeout) { /* ConfirmationTimeout */ /* In case validating device doesn't support Test Request */ diff --git a/src/bacnet/datalink/mstp.h b/src/bacnet/datalink/mstp.h index b9d23856..5c2f7e19 100644 --- a/src/bacnet/datalink/mstp.h +++ b/src/bacnet/datalink/mstp.h @@ -47,9 +47,9 @@ struct mstp_port_struct_t { /* A Boolean flag set to TRUE by the master machine if this node is the only known master node. */ unsigned SoleMaster : 1; - /* A Boolean flag set to TRUE if this node is a slave node */ + /* A Boolean flag set to TRUE if this node is a slave node */ unsigned SlaveNodeEnabled : 1; - /* A Boolean flag set to TRUE if this node is using a ZeroConfig address */ + /* A Boolean flag set to TRUE if this node is using a ZeroConfig address */ unsigned ZeroConfigEnabled : 1; /* stores the latest received data */ uint8_t DataRegister; @@ -204,11 +204,11 @@ struct mstp_port_struct_t { not to exceed 35 milliseconds.) */ uint8_t Tusage_timeout; - /* The minimum time after the end of the stop bit of the final - octet of a received frame before a node may enable its - EIA-485 driver: 40 bit times. - 40 bits is 4 octets including a start and stop bit with each octet. - turnaround_time_milliseconds = (Tturnaround*1000UL)/RS485_Baud; */ + /* The minimum time after the end of the stop bit of the final + octet of a received frame before a node may enable its + EIA-485 driver: 40 bit times. + 40 bits is 4 octets including a start and stop bit with each octet. + turnaround_time_milliseconds = (Tturnaround*1000UL)/RS485_Baud; */ uint8_t Tturnaround_timeout; /*Platform-specific port data */ @@ -233,7 +233,8 @@ BACNET_STACK_EXPORT bool MSTP_Line_Active(const struct mstp_port_struct_t *mstp_port); BACNET_STACK_EXPORT -uint16_t MSTP_Create_Frame(uint8_t *buffer, +uint16_t MSTP_Create_Frame( + uint8_t *buffer, uint16_t buffer_len, uint8_t frame_type, uint8_t destination, @@ -266,26 +267,27 @@ void MSTP_Zero_Config_FSM(struct mstp_port_struct_t *mstp_port); /* FIXME: developer must implement these in their DLMSTP module */ BACNET_STACK_EXPORT -uint16_t MSTP_Put_Receive( - struct mstp_port_struct_t *mstp_port); +uint16_t MSTP_Put_Receive(struct mstp_port_struct_t *mstp_port); /* for the MS/TP state machine to use for getting data to send */ /* Return: amount of PDU data */ BACNET_STACK_EXPORT -uint16_t MSTP_Get_Send(struct mstp_port_struct_t *mstp_port, +uint16_t MSTP_Get_Send( + struct mstp_port_struct_t *mstp_port, unsigned timeout); /* milliseconds to wait for a packet */ /* for the MS/TP state machine to use for getting the reply for Data-Expecting-Reply Frame */ /* Return: amount of PDU data */ BACNET_STACK_EXPORT -uint16_t MSTP_Get_Reply(struct mstp_port_struct_t *mstp_port, +uint16_t MSTP_Get_Reply( + struct mstp_port_struct_t *mstp_port, unsigned timeout); /* milliseconds to wait for a packet */ BACNET_STACK_EXPORT void MSTP_Send_Frame( - struct mstp_port_struct_t *mstp_port, - const uint8_t * buffer, - uint16_t nbytes); + struct mstp_port_struct_t *mstp_port, + const uint8_t *buffer, + uint16_t nbytes); #ifdef __cplusplus } diff --git a/src/bacnet/datalink/mstptext.c b/src/bacnet/datalink/mstptext.c index 4a88e40f..3bd78ba8 100644 --- a/src/bacnet/datalink/mstptext.c +++ b/src/bacnet/datalink/mstptext.c @@ -15,19 +15,21 @@ /** @file mstptext.c Text mapping functions for BACnet MS/TP */ -static INDTEXT_DATA mstp_receive_state_text[] = { { MSTP_RECEIVE_STATE_IDLE, - "IDLE" }, +static INDTEXT_DATA mstp_receive_state_text[] = { + { MSTP_RECEIVE_STATE_IDLE, "IDLE" }, { MSTP_RECEIVE_STATE_PREAMBLE, "PREAMBLE" }, { MSTP_RECEIVE_STATE_HEADER, "HEADER" }, - { MSTP_RECEIVE_STATE_DATA, "DATA" }, { 0, NULL } }; + { MSTP_RECEIVE_STATE_DATA, "DATA" }, + { 0, NULL } +}; const char *mstptext_receive_state(unsigned index) { return indtext_by_index_default(mstp_receive_state_text, index, "unknown"); } -static INDTEXT_DATA mstp_master_state_text[] = { { MSTP_MASTER_STATE_INITIALIZE, - "INITIALIZE" }, +static INDTEXT_DATA mstp_master_state_text[] = { + { MSTP_MASTER_STATE_INITIALIZE, "INITIALIZE" }, { MSTP_MASTER_STATE_IDLE, "IDLE" }, { MSTP_MASTER_STATE_USE_TOKEN, "USE_TOKEN" }, { MSTP_MASTER_STATE_WAIT_FOR_REPLY, "WAIT_FOR_REPLY" }, @@ -36,32 +38,37 @@ static INDTEXT_DATA mstp_master_state_text[] = { { MSTP_MASTER_STATE_INITIALIZE, { MSTP_MASTER_STATE_NO_TOKEN, "NO_TOKEN" }, { MSTP_MASTER_STATE_POLL_FOR_MASTER, "POLL_FOR_MASTER" }, { MSTP_MASTER_STATE_ANSWER_DATA_REQUEST, "ANSWER_DATA_REQUEST" }, - { 0, NULL } }; + { 0, NULL } +}; const char *mstptext_master_state(unsigned index) { return indtext_by_index_default(mstp_master_state_text, index, "unknown"); } -static INDTEXT_DATA mstp_frame_type_text[] = { { FRAME_TYPE_TOKEN, "TOKEN" }, +static INDTEXT_DATA mstp_frame_type_text[] = { + { FRAME_TYPE_TOKEN, "TOKEN" }, { FRAME_TYPE_POLL_FOR_MASTER, "POLL_FOR_MASTER" }, { FRAME_TYPE_REPLY_TO_POLL_FOR_MASTER, "REPLY_TO_POLL_FOR_MASTER" }, { FRAME_TYPE_TEST_REQUEST, "TEST_REQUEST" }, { FRAME_TYPE_TEST_RESPONSE, "TEST_RESPONSE" }, { FRAME_TYPE_BACNET_DATA_EXPECTING_REPLY, "BACNET_DATA_EXPECTING_REPLY" }, { FRAME_TYPE_BACNET_DATA_NOT_EXPECTING_REPLY, - "BACNET_DATA_NOT_EXPECTING_REPLY" }, + "BACNET_DATA_NOT_EXPECTING_REPLY" }, { FRAME_TYPE_REPLY_POSTPONED, "REPLY_POSTPONED" }, { FRAME_TYPE_BACNET_EXTENDED_DATA_EXPECTING_REPLY, - "BACNET_EXTENDED_DATA_EXPECTING_REPLY" }, + "BACNET_EXTENDED_DATA_EXPECTING_REPLY" }, { FRAME_TYPE_BACNET_EXTENDED_DATA_NOT_EXPECTING_REPLY, - "BACNET_EXTENDED_DATA_NOT_EXPECTING_REPLY" }, - { FRAME_TYPE_IPV6_ENCAPSULATION, "IPV6_ENCAPSULATION" }, { 0, NULL } }; + "BACNET_EXTENDED_DATA_NOT_EXPECTING_REPLY" }, + { FRAME_TYPE_IPV6_ENCAPSULATION, "IPV6_ENCAPSULATION" }, + { 0, NULL } +}; const char *mstptext_frame_type(unsigned index) { - return indtext_by_index_split_default(mstp_frame_type_text, index, - FRAME_TYPE_PROPRIETARY_MIN, "UNKNOWN", "PROPRIETARY"); + return indtext_by_index_split_default( + mstp_frame_type_text, index, FRAME_TYPE_PROPRIETARY_MIN, "UNKNOWN", + "PROPRIETARY"); } static INDTEXT_DATA mstp_zero_config_state_text[] = { @@ -72,9 +79,10 @@ static INDTEXT_DATA mstp_zero_config_state_text[] = { { MSTP_ZERO_CONFIG_STATE_CONFIRM, "CONFIRM" }, { MSTP_ZERO_CONFIG_STATE_USE, "USE" }, { 0, NULL } - }; +}; const char *mstptext_zero_config_state(unsigned index) { - return indtext_by_index_default(mstp_zero_config_state_text, index, "unknown"); + return indtext_by_index_default( + mstp_zero_config_state_text, index, "unknown"); } diff --git a/src/bacnet/datalink/mstptext.h b/src/bacnet/datalink/mstptext.h index 66a4728c..13b7bd86 100644 --- a/src/bacnet/datalink/mstptext.h +++ b/src/bacnet/datalink/mstptext.h @@ -16,18 +16,14 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - const char *mstptext_receive_state( - unsigned index); - BACNET_STACK_EXPORT - const char *mstptext_master_state( - unsigned index); - BACNET_STACK_EXPORT - const char *mstptext_frame_type( - unsigned index); - BACNET_STACK_EXPORT - const char *mstptext_zero_config_state( - unsigned index); +BACNET_STACK_EXPORT +const char *mstptext_receive_state(unsigned index); +BACNET_STACK_EXPORT +const char *mstptext_master_state(unsigned index); +BACNET_STACK_EXPORT +const char *mstptext_frame_type(unsigned index); +BACNET_STACK_EXPORT +const char *mstptext_zero_config_state(unsigned index); #ifdef __cplusplus } diff --git a/src/bacnet/datetime.c b/src/bacnet/datetime.c index a9372020..2a9f0290 100644 --- a/src/bacnet/datetime.c +++ b/src/bacnet/datetime.c @@ -137,8 +137,8 @@ uint32_t datetime_day_of_year(const BACNET_DATE *bdate) * @param day - day of month (1-31) * @return number of days since epoch, or 0 if out of range */ -uint32_t datetime_ymd_to_days_since_epoch( - uint16_t year, uint8_t month, uint8_t day) +uint32_t +datetime_ymd_to_days_since_epoch(uint16_t year, uint8_t month, uint8_t day) { uint32_t days = 0; /* return value */ uint16_t years = 0; /* loop counter for years */ @@ -475,7 +475,8 @@ void datetime_set_date( } } -void datetime_set_time(BACNET_TIME *btime, +void datetime_set_time( + BACNET_TIME *btime, uint8_t hour, uint8_t minute, uint8_t seconds, @@ -506,7 +507,8 @@ void datetime_set( } } -void datetime_set_values(BACNET_DATE_TIME *bdatetime, +void datetime_set_values( + BACNET_DATE_TIME *bdatetime, uint16_t year, uint8_t month, uint8_t day, @@ -656,8 +658,9 @@ void datetime_add_minutes(BACNET_DATE_TIME *bdatetime, int32_t minutes) } /* convert bdatetime from seconds and days */ - datetime_hms_from_seconds_since_midnight(bdatetime_minutes * 60, - &bdatetime->time.hour, &bdatetime->time.min, NULL); + datetime_hms_from_seconds_since_midnight( + bdatetime_minutes * 60, &bdatetime->time.hour, &bdatetime->time.min, + NULL); datetime_days_since_epoch_into_date(bdatetime_days, &bdatetime->date); } @@ -974,7 +977,8 @@ void datetime_wildcard_set(BACNET_DATE_TIME *bdatetime) * Values are positive East of UTC and negative West of UTC * @return true if the time is converted */ -bool datetime_utc_to_local(BACNET_DATE_TIME *local_time, +bool datetime_utc_to_local( + BACNET_DATE_TIME *local_time, const BACNET_DATE_TIME *utc_time, int16_t utc_offset_minutes, int8_t dst_adjust_minutes) @@ -1006,7 +1010,8 @@ bool datetime_utc_to_local(BACNET_DATE_TIME *local_time, * Values are positive East of UTC and negative West of UTC * @return true if the time is converted */ -bool datetime_local_to_utc(BACNET_DATE_TIME *utc_time, +bool datetime_local_to_utc( + BACNET_DATE_TIME *utc_time, const BACNET_DATE_TIME *local_time, int16_t utc_offset_minutes, int8_t dst_adjust_minutes) @@ -1137,7 +1142,8 @@ int bacapp_decode_datetime(const uint8_t *apdu, BACNET_DATE_TIME *value) * @param value - parameter to store the value after decoding * @return length of the APDU buffer decoded, or BACNET_STATUS_ERROR */ -int bacnet_datetime_context_decode(const uint8_t *apdu, +int bacnet_datetime_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_DATE_TIME *value) @@ -1185,13 +1191,13 @@ int bacapp_decode_context_datetime( * @return true if the two complex data values are the same */ bool bacnet_daterange_same( - const BACNET_DATE_RANGE *value1, - const BACNET_DATE_RANGE *value2) + const BACNET_DATE_RANGE *value1, const BACNET_DATE_RANGE *value2) { bool status = false; if (value1 && value2) { - if ((datetime_compare_date(&value1->startdate, &value2->startdate) == 0) && + if ((datetime_compare_date(&value1->startdate, &value2->startdate) == + 0) && (datetime_compare_date(&value1->enddate, &value2->enddate) == 0)) { status = true; } @@ -1309,7 +1315,8 @@ int bacnet_daterange_context_encode( * @param value - value to encode * @return number of bytes decoded, BACNET_STATUS_ERROR on error */ -int bacnet_daterange_context_decode(const uint8_t *apdu, +int bacnet_daterange_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_DATE_RANGE *value) @@ -1384,11 +1391,9 @@ int datetime_date_to_ascii(const BACNET_DATE *bdate, char *str, size_t str_size) return 0; } /* 2021/12/31 */ - str_len = snprintf(str, str_size, - "%04u/%02u/%02u", - (unsigned)bdate->year, - (unsigned)bdate->month, - (unsigned)bdate->day); + str_len = snprintf( + str, str_size, "%04u/%02u/%02u", (unsigned)bdate->year, + (unsigned)bdate->month, (unsigned)bdate->day); return str_len; } @@ -1445,11 +1450,9 @@ int datetime_time_to_ascii(const BACNET_TIME *btime, char *str, size_t str_size) return 0; } /* 23:59:59.99 */ - str_len = snprintf(str, str_size, - "%02u:%02u:%02u.%02u", - (unsigned)btime->hour, - (unsigned)btime->min, - (unsigned)btime->sec, + str_len = snprintf( + str, str_size, "%02u:%02u:%02u.%02u", (unsigned)btime->hour, + (unsigned)btime->min, (unsigned)btime->sec, (unsigned)btime->hundredths); return str_len; @@ -1468,8 +1471,9 @@ bool datetime_init_ascii(BACNET_DATE_TIME *bdatetime, const char *ascii) int hour = 0, min = 0, sec = 0, hundredths = 0; int count = 0; - count = sscanf(ascii, "%4d/%3d/%3d-%3d:%3d:%3d.%3d", &year, &month, &day, - &hour, &min, &sec, &hundredths); + count = sscanf( + ascii, "%4d/%3d/%3d-%3d:%3d:%3d.%3d", &year, &month, &day, &hour, &min, + &sec, &hundredths); if (count >= 3) { datetime_set_date( &bdatetime->date, (uint16_t)year, (uint8_t)month, (uint8_t)day); @@ -1490,7 +1494,8 @@ bool datetime_init_ascii(BACNET_DATE_TIME *bdatetime, const char *ascii) * @param str_size - size of the string, or 0 for length only * @return number of characters printed */ -int datetime_to_ascii(const BACNET_DATE_TIME *bdatetime, char *str, size_t str_size) +int datetime_to_ascii( + const BACNET_DATE_TIME *bdatetime, char *str, size_t str_size) { int str_len = 0; @@ -1498,14 +1503,11 @@ int datetime_to_ascii(const BACNET_DATE_TIME *bdatetime, char *str, size_t str_s return 0; } /* 2021/12/31-23:59:59.99 */ - str_len = snprintf(str, str_size, - "%04u/%02u/%02u-%02u:%02u:%02u.%02u", - (unsigned)bdatetime->date.year, - (unsigned)bdatetime->date.month, - (unsigned)bdatetime->date.day, - (unsigned)bdatetime->time.hour, - (unsigned)bdatetime->time.min, - (unsigned)bdatetime->time.sec, + str_len = snprintf( + str, str_size, "%04u/%02u/%02u-%02u:%02u:%02u.%02u", + (unsigned)bdatetime->date.year, (unsigned)bdatetime->date.month, + (unsigned)bdatetime->date.day, (unsigned)bdatetime->time.hour, + (unsigned)bdatetime->time.min, (unsigned)bdatetime->time.sec, (unsigned)bdatetime->time.hundredths); return str_len; diff --git a/src/bacnet/datetime.h b/src/bacnet/datetime.h index 745cd994..0584e7b9 100644 --- a/src/bacnet/datetime.h +++ b/src/bacnet/datetime.h @@ -81,7 +81,8 @@ BACNET_STACK_EXPORT void datetime_set_date( BACNET_DATE *bdate, uint16_t year, uint8_t month, uint8_t day); BACNET_STACK_EXPORT -void datetime_set_time(BACNET_TIME *btime, +void datetime_set_time( + BACNET_TIME *btime, uint8_t hour, uint8_t minute, uint8_t seconds, @@ -92,7 +93,8 @@ void datetime_set( const BACNET_DATE *bdate, const BACNET_TIME *btime); BACNET_STACK_EXPORT -void datetime_set_values(BACNET_DATE_TIME *bdatetime, +void datetime_set_values( + BACNET_DATE_TIME *bdatetime, uint16_t year, uint8_t month, uint8_t day, @@ -126,8 +128,8 @@ void datetime_days_since_epoch_into_date(uint32_t days, BACNET_DATE *bdate); BACNET_STACK_EXPORT uint32_t datetime_day_of_year(const BACNET_DATE *bdate); BACNET_STACK_EXPORT -uint32_t datetime_ymd_to_days_since_epoch( - uint16_t year, uint8_t month, uint8_t day); +uint32_t +datetime_ymd_to_days_since_epoch(uint16_t year, uint8_t month, uint8_t day); BACNET_STACK_EXPORT void datetime_day_of_year_into_date( uint32_t days, uint16_t year, BACNET_DATE *bdate); @@ -240,12 +242,14 @@ BACNET_STACK_EXPORT void datetime_time_wildcard_set(BACNET_TIME *btime); BACNET_STACK_EXPORT -bool datetime_local_to_utc(BACNET_DATE_TIME *utc_time, +bool datetime_local_to_utc( + BACNET_DATE_TIME *utc_time, const BACNET_DATE_TIME *local_time, int16_t utc_offset_minutes, int8_t dst_adjust_minutes); BACNET_STACK_EXPORT -bool datetime_utc_to_local(BACNET_DATE_TIME *local_time, +bool datetime_utc_to_local( + BACNET_DATE_TIME *local_time, const BACNET_DATE_TIME *utc_time, int16_t utc_offset_minutes, int8_t dst_adjust_minutes); @@ -253,15 +257,18 @@ bool datetime_utc_to_local(BACNET_DATE_TIME *local_time, BACNET_STACK_EXPORT bool datetime_date_init_ascii(BACNET_DATE *bdate, const char *ascii); BACNET_STACK_EXPORT -int datetime_date_to_ascii(const BACNET_DATE *bdate, char *str, size_t str_size); +int datetime_date_to_ascii( + const BACNET_DATE *bdate, char *str, size_t str_size); BACNET_STACK_EXPORT bool datetime_time_init_ascii(BACNET_TIME *btime, const char *ascii); BACNET_STACK_EXPORT -int datetime_time_to_ascii(const BACNET_TIME *btime, char *str, size_t str_size); +int datetime_time_to_ascii( + const BACNET_TIME *btime, char *str, size_t str_size); BACNET_STACK_EXPORT bool datetime_init_ascii(BACNET_DATE_TIME *bdatetime, const char *ascii); BACNET_STACK_EXPORT -int datetime_to_ascii(const BACNET_DATE_TIME *bdatetime, char *str, size_t str_size); +int datetime_to_ascii( + const BACNET_DATE_TIME *bdatetime, char *str, size_t str_size); BACNET_STACK_EXPORT int bacapp_encode_datetime(uint8_t *apdu, const BACNET_DATE_TIME *value); @@ -273,40 +280,41 @@ int bacnet_datetime_decode( const uint8_t *apdu, uint32_t apdu_size, BACNET_DATE_TIME *value); BACNET_STACK_EXPORT int bacnet_datetime_context_decode( - const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, BACNET_DATE_TIME *value); BACNET_STACK_DEPRECATED("Use bacnet_datetime_decode() instead") BACNET_STACK_EXPORT -int bacapp_decode_datetime( - const uint8_t *apdu, BACNET_DATE_TIME *value); +int bacapp_decode_datetime(const uint8_t *apdu, BACNET_DATE_TIME *value); BACNET_STACK_DEPRECATED("Use bacnet_datetime_context_decode() instead") BACNET_STACK_EXPORT -int bacapp_decode_context_datetime(const uint8_t *apdu, - uint8_t tag_number, - BACNET_DATE_TIME *value); +int bacapp_decode_context_datetime( + const uint8_t *apdu, uint8_t tag_number, BACNET_DATE_TIME *value); BACNET_STACK_EXPORT -bool bacnet_daterange_same(const BACNET_DATE_RANGE *value1, - const BACNET_DATE_RANGE *value2); +bool bacnet_daterange_same( + const BACNET_DATE_RANGE *value1, const BACNET_DATE_RANGE *value2); BACNET_STACK_EXPORT int bacnet_daterange_encode(uint8_t *apdu, const BACNET_DATE_RANGE *value); BACNET_STACK_EXPORT -int bacnet_daterange_decode(const uint8_t *apdu, - uint32_t apdu_size, - BACNET_DATE_RANGE *value); +int bacnet_daterange_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_DATE_RANGE *value); BACNET_STACK_EXPORT int bacnet_daterange_context_encode( uint8_t *apdu, uint8_t tag_number, const BACNET_DATE_RANGE *value); BACNET_STACK_EXPORT -int bacnet_daterange_context_decode(const uint8_t *apdu, +int bacnet_daterange_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_DATE_RANGE *value); /* implementation agnostic functions - create your own! */ BACNET_STACK_EXPORT -bool datetime_local(BACNET_DATE *bdate, +bool datetime_local( + BACNET_DATE *bdate, BACNET_TIME *btime, int16_t *utc_offset_minutes, bool *dst_active); diff --git a/src/bacnet/dcc.c b/src/bacnet/dcc.c index 862fcc5f..9f0ab73c 100644 --- a/src/bacnet/dcc.c +++ b/src/bacnet/dcc.c @@ -141,7 +141,8 @@ bool dcc_set_status_duration( * * @return Bytes encoded or zero on an error. */ -int dcc_apdu_encode(uint8_t *apdu, +int dcc_apdu_encode( + uint8_t *apdu, uint16_t timeDuration, BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, const BACNET_CHARACTER_STRING *password) @@ -183,7 +184,8 @@ int dcc_apdu_encode(uint8_t *apdu, * @param password Pointer to an optional password. * @return number of bytes encoded, or zero if unable to encode or too large */ -size_t dcc_service_request_encode(uint8_t *apdu, +size_t dcc_service_request_encode( + uint8_t *apdu, size_t apdu_size, uint16_t timeDuration, BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, @@ -212,7 +214,8 @@ size_t dcc_service_request_encode(uint8_t *apdu, * @param password Pointer to an optional password, NULL=optional * @return Bytes encoded or zero on an error. */ -int dcc_encode_apdu(uint8_t *apdu, +int dcc_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, uint16_t timeDuration, BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, @@ -232,8 +235,7 @@ int dcc_encode_apdu(uint8_t *apdu, if (apdu) { apdu += len; } - len = dcc_apdu_encode( - apdu, timeDuration, enable_disable, password); + len = dcc_apdu_encode(apdu, timeDuration, enable_disable, password); apdu_len += len; return apdu_len; @@ -252,7 +254,8 @@ int dcc_encode_apdu(uint8_t *apdu, * * @return Bytes decoded, or BACNET_STATUS_ABORT or BACNET_STATUS_REJECT */ -int dcc_decode_service_request(const uint8_t *apdu, +int dcc_decode_service_request( + const uint8_t *apdu, unsigned apdu_len_max, uint16_t *timeDuration, BACNET_COMMUNICATION_ENABLE_DISABLE *enable_disable, @@ -308,13 +311,15 @@ int dcc_decode_service_request(const uint8_t *apdu, context tag number or result in an error */ return BACNET_STATUS_ABORT; } - len = bacnet_tag_number_and_value_decode(&apdu[apdu_len], - apdu_len_max - apdu_len, &tag_number, &len_value_type); + len = bacnet_tag_number_and_value_decode( + &apdu[apdu_len], apdu_len_max - apdu_len, &tag_number, + &len_value_type); if (len > 0) { apdu_len += len; if ((unsigned)apdu_len < apdu_len_max) { - len = bacnet_character_string_decode(&apdu[apdu_len], - apdu_len_max - apdu_len, len_value_type, password); + len = bacnet_character_string_decode( + &apdu[apdu_len], apdu_len_max - apdu_len, + len_value_type, password); if (len > 0) { password_length = len_value_type - 1; if ((password_length >= 1) && (password_length <= 20)) { diff --git a/src/bacnet/dcc.h b/src/bacnet/dcc.h index 524b8fca..68bc77ea 100644 --- a/src/bacnet/dcc.h +++ b/src/bacnet/dcc.h @@ -20,59 +20,54 @@ extern "C" { #endif /* __cplusplus */ /* return the status */ - BACNET_STACK_EXPORT - BACNET_COMMUNICATION_ENABLE_DISABLE dcc_enable_status( - void); - BACNET_STACK_EXPORT - bool dcc_communication_enabled( - void); - BACNET_STACK_EXPORT - bool dcc_communication_disabled( - void); - BACNET_STACK_EXPORT - bool dcc_communication_initiation_disabled( - void); +BACNET_STACK_EXPORT +BACNET_COMMUNICATION_ENABLE_DISABLE dcc_enable_status(void); +BACNET_STACK_EXPORT +bool dcc_communication_enabled(void); +BACNET_STACK_EXPORT +bool dcc_communication_disabled(void); +BACNET_STACK_EXPORT +bool dcc_communication_initiation_disabled(void); /* return the time */ - BACNET_STACK_EXPORT - uint32_t dcc_duration_seconds( - void); +BACNET_STACK_EXPORT +uint32_t dcc_duration_seconds(void); /* called every second or so. If more than one second, then seconds should be the number of seconds to tick away */ - BACNET_STACK_EXPORT - void dcc_timer_seconds( - uint32_t seconds); +BACNET_STACK_EXPORT +void dcc_timer_seconds(uint32_t seconds); /* setup the communication values */ - BACNET_STACK_EXPORT - bool dcc_set_status_duration( - BACNET_COMMUNICATION_ENABLE_DISABLE status, - uint16_t minutes); +BACNET_STACK_EXPORT +bool dcc_set_status_duration( + BACNET_COMMUNICATION_ENABLE_DISABLE status, uint16_t minutes); - BACNET_STACK_EXPORT - int dcc_apdu_encode(uint8_t *apdu, - uint16_t timeDuration, - BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, - const BACNET_CHARACTER_STRING *password); - BACNET_STACK_EXPORT - size_t dcc_service_request_encode(uint8_t *apdu, - size_t apdu_size, - uint16_t timeDuration, - BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, - const BACNET_CHARACTER_STRING *password); - BACNET_STACK_EXPORT - int dcc_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - uint16_t timeDuration, - BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, - const BACNET_CHARACTER_STRING * password); +BACNET_STACK_EXPORT +int dcc_apdu_encode( + uint8_t *apdu, + uint16_t timeDuration, + BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, + const BACNET_CHARACTER_STRING *password); +BACNET_STACK_EXPORT +size_t dcc_service_request_encode( + uint8_t *apdu, + size_t apdu_size, + uint16_t timeDuration, + BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, + const BACNET_CHARACTER_STRING *password); +BACNET_STACK_EXPORT +int dcc_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + uint16_t timeDuration, + BACNET_COMMUNICATION_ENABLE_DISABLE enable_disable, + const BACNET_CHARACTER_STRING *password); - BACNET_STACK_EXPORT - int dcc_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - uint16_t * timeDuration, - BACNET_COMMUNICATION_ENABLE_DISABLE * enable_disable, - BACNET_CHARACTER_STRING * password); +BACNET_STACK_EXPORT +int dcc_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + uint16_t *timeDuration, + BACNET_COMMUNICATION_ENABLE_DISABLE *enable_disable, + BACNET_CHARACTER_STRING *password); #ifdef __cplusplus } @@ -93,8 +88,8 @@ extern "C" { * instruct a remote device to stop initiating and optionally stop responding * to all APDUs (except DeviceCommunicationControl or, if supported, * ReinitializeDevice) on the communication network or internetwork for a - * specified duration of time. This service is primarily used by a human operator - * for diagnostic purposes. A password may be required from the client + * specified duration of time. This service is primarily used by a human + * operator for diagnostic purposes. A password may be required from the client * BACnet-user prior to executing the service. The time duration may be set to * "indefinite," meaning communication must be re-enabled by a * DeviceCommunicationControl or, if supported, ReinitializeDevice service, diff --git a/src/bacnet/event.c b/src/bacnet/event.c index 6b6f59cd..6db65a69 100644 --- a/src/bacnet/event.c +++ b/src/bacnet/event.c @@ -157,15 +157,16 @@ int event_notify_encode_service_request( apdu += len; } /* tag 1 - initiatingObjectIdentifier */ - len = - encode_context_object_id(apdu, 1, data->initiatingObjectIdentifier.type, - data->initiatingObjectIdentifier.instance); + len = encode_context_object_id( + apdu, 1, data->initiatingObjectIdentifier.type, + data->initiatingObjectIdentifier.instance); apdu_len += len; if (apdu) { apdu += len; } /* tag 2 - eventObjectIdentifier */ - len = encode_context_object_id(apdu, 2, data->eventObjectIdentifier.type, + len = encode_context_object_id( + apdu, 2, data->eventObjectIdentifier.type, data->eventObjectIdentifier.instance); apdu_len += len; if (apdu) { @@ -251,14 +252,16 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 0, + len = encode_context_bitstring( + apdu, 0, &data->notificationParams.changeOfBitstring .referencedBitString); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.changeOfBitstring .statusFlags); apdu_len += len; @@ -293,7 +296,8 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.changeOfState.statusFlags); apdu_len += len; if (apdu) { @@ -318,7 +322,8 @@ int event_notify_encode_service_request( } switch (data->notificationParams.changeOfValue.tag) { case CHANGE_OF_VALUE_REAL: - len = encode_context_real(apdu, 1, + len = encode_context_real( + apdu, 1, data->notificationParams.changeOfValue.newValue .changeValue); apdu_len += len; @@ -327,7 +332,8 @@ int event_notify_encode_service_request( } break; case CHANGE_OF_VALUE_BITS: - len = encode_context_bitstring(apdu, 0, + len = encode_context_bitstring( + apdu, 0, &data->notificationParams.changeOfValue.newValue .changedBits); apdu_len += len; @@ -343,7 +349,8 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.changeOfValue.statusFlags); apdu_len += len; if (apdu) { @@ -368,7 +375,8 @@ int event_notify_encode_service_request( } switch (data->notificationParams.commandFailure.tag) { case COMMAND_FAILURE_BINARY_PV: - len = encode_application_enumerated(apdu, + len = encode_application_enumerated( + apdu, data->notificationParams.commandFailure .commandValue.binaryValue); apdu_len += len; @@ -377,7 +385,8 @@ int event_notify_encode_service_request( } break; case COMMAND_FAILURE_UNSIGNED: - len = encode_application_unsigned(apdu, + len = encode_application_unsigned( + apdu, data->notificationParams.commandFailure .commandValue.unsignedValue); apdu_len += len; @@ -393,7 +402,8 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.commandFailure.statusFlags); apdu_len += len; if (apdu) { @@ -406,7 +416,8 @@ int event_notify_encode_service_request( } switch (data->notificationParams.commandFailure.tag) { case COMMAND_FAILURE_BINARY_PV: - len = encode_application_enumerated(apdu, + len = encode_application_enumerated( + apdu, data->notificationParams.commandFailure .feedbackValue.binaryValue); apdu_len += len; @@ -415,7 +426,8 @@ int event_notify_encode_service_request( } break; case COMMAND_FAILURE_UNSIGNED: - len = encode_application_unsigned(apdu, + len = encode_application_unsigned( + apdu, data->notificationParams.commandFailure .feedbackValue.unsignedValue); apdu_len += len; @@ -443,25 +455,29 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_real(apdu, 0, + len = encode_context_real( + apdu, 0, data->notificationParams.floatingLimit.referenceValue); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.floatingLimit.statusFlags); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_real(apdu, 2, + len = encode_context_real( + apdu, 2, data->notificationParams.floatingLimit.setPointValue); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_real(apdu, 3, + len = encode_context_real( + apdu, 3, data->notificationParams.floatingLimit.errorLimit); apdu_len += len; if (apdu) { @@ -479,13 +495,15 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_real(apdu, 0, + len = encode_context_real( + apdu, 0, data->notificationParams.outOfRange.exceedingValue); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.outOfRange.statusFlags); apdu_len += len; if (apdu) { @@ -497,7 +515,8 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_real(apdu, 3, + len = encode_context_real( + apdu, 3, data->notificationParams.outOfRange.exceededLimit); apdu_len += len; if (apdu) { @@ -516,26 +535,30 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_enumerated(apdu, 0, + len = encode_context_enumerated( + apdu, 0, data->notificationParams.changeOfLifeSafety.newState); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_enumerated(apdu, 1, + len = encode_context_enumerated( + apdu, 1, data->notificationParams.changeOfLifeSafety.newMode); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 2, + len = encode_context_bitstring( + apdu, 2, &data->notificationParams.changeOfLifeSafety .statusFlags); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_enumerated(apdu, 3, + len = encode_context_enumerated( + apdu, 3, data->notificationParams.changeOfLifeSafety .operationExpected); apdu_len += len; @@ -555,20 +578,23 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = bacapp_encode_context_device_obj_property_ref(apdu, 0, + len = bacapp_encode_context_device_obj_property_ref( + apdu, 0, &data->notificationParams.bufferReady.bufferProperty); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_unsigned(apdu, 1, + len = encode_context_unsigned( + apdu, 1, data->notificationParams.bufferReady .previousNotification); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_unsigned(apdu, 2, + len = encode_context_unsigned( + apdu, 2, data->notificationParams.bufferReady .currentNotification); apdu_len += len; @@ -587,19 +613,22 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_unsigned(apdu, 0, + len = encode_context_unsigned( + apdu, 0, data->notificationParams.unsignedRange.exceedingValue); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.unsignedRange.statusFlags); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_unsigned(apdu, 2, + len = encode_context_unsigned( + apdu, 2, data->notificationParams.unsignedRange.exceededLimit); apdu_len += len; if (apdu) { @@ -617,31 +646,36 @@ int event_notify_encode_service_request( if (apdu) { apdu += len; } - len = encode_context_enumerated(apdu, 0, + len = encode_context_enumerated( + apdu, 0, data->notificationParams.accessEvent.accessEvent); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_bitstring(apdu, 1, + len = encode_context_bitstring( + apdu, 1, &data->notificationParams.accessEvent.statusFlags); apdu_len += len; if (apdu) { apdu += len; } - len = encode_context_unsigned(apdu, 2, + len = encode_context_unsigned( + apdu, 2, data->notificationParams.accessEvent.accessEventTag); apdu_len += len; if (apdu) { apdu += len; } - len = bacapp_encode_context_timestamp(apdu, 3, + len = bacapp_encode_context_timestamp( + apdu, 3, &data->notificationParams.accessEvent.accessEventTime); apdu_len += len; if (apdu) { apdu += len; } - len = bacapp_encode_context_device_obj_ref(apdu, 4, + len = bacapp_encode_context_device_obj_ref( + apdu, 4, &data->notificationParams.accessEvent.accessCredential); apdu_len += len; if (apdu) { @@ -650,10 +684,10 @@ int event_notify_encode_service_request( if (data->notificationParams.accessEvent .authenticationFactor.format_type < AUTHENTICATION_FACTOR_MAX) { - len = - bacapp_encode_context_authentication_factor(apdu, 5, - &data->notificationParams.accessEvent - .authenticationFactor); + len = bacapp_encode_context_authentication_factor( + apdu, 5, + &data->notificationParams.accessEvent + .authenticationFactor); apdu_len += len; if (apdu) { apdu += len; @@ -690,9 +724,7 @@ int event_notify_encode_service_request( * @return number of bytes encoded, or zero if unable to encode or too large */ size_t event_notification_service_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_EVENT_NOTIFICATION_DATA *data) + uint8_t *apdu, size_t apdu_size, const BACNET_EVENT_NOTIFICATION_DATA *data) { size_t apdu_len = 0; /* total length of the apdu, return value */ @@ -742,16 +774,16 @@ int event_notify_decode_service_request( return BACNET_STATUS_ERROR; } /* tag 1 - initiatingObjectIdentifier */ - if ((section_length = decode_context_object_id(&apdu[len], 1, - &data->initiatingObjectIdentifier.type, + if ((section_length = decode_context_object_id( + &apdu[len], 1, &data->initiatingObjectIdentifier.type, &data->initiatingObjectIdentifier.instance)) == -1) { return -1; } else { len += section_length; } /* tag 2 - eventObjectIdentifier */ - if ((section_length = decode_context_object_id(&apdu[len], 2, - &data->eventObjectIdentifier.type, + if ((section_length = decode_context_object_id( + &apdu[len], 2, &data->eventObjectIdentifier.type, &data->eventObjectIdentifier.instance)) == -1) { return -1; } else { @@ -791,8 +823,8 @@ int event_notify_decode_service_request( return BACNET_STATUS_ERROR; } /* tag 6 - eventType */ - if ((section_length = decode_context_enumerated( - &apdu[len], 6, &enum_value)) == -1) { + if ((section_length = + decode_context_enumerated(&apdu[len], 6, &enum_value)) == -1) { return -1; } else { data->eventType = (BACNET_EVENT_TYPE)enum_value; @@ -819,8 +851,8 @@ int event_notify_decode_service_request( } /* tag 8 - notifyType */ - if ((section_length = decode_context_enumerated( - &apdu[len], 8, &enum_value)) == -1) { + if ((section_length = + decode_context_enumerated(&apdu[len], 8, &enum_value)) == -1) { return -1; } else { data->notifyType = (BACNET_NOTIFY_TYPE)enum_value; @@ -898,19 +930,19 @@ int event_notify_decode_service_request( case EVENT_CHANGE_OF_STATE: if (-1 == (section_length = - bacapp_decode_context_property_state( - &apdu[len], 0, - &data->notificationParams - .changeOfState.newState))) { + bacapp_decode_context_property_state( + &apdu[len], 0, + &data->notificationParams.changeOfState + .newState))) { return -1; } len += section_length; if (-1 == - (section_length = - decode_context_bitstring(&apdu[len], 1, - &data->notificationParams - .changeOfState.statusFlags))) { + (section_length = decode_context_bitstring( + &apdu[len], 1, + &data->notificationParams.changeOfState + .statusFlags))) { return -1; } len += section_length; @@ -958,10 +990,10 @@ int event_notify_decode_service_request( len++; if (-1 == - (section_length = - decode_context_bitstring(&apdu[len], 1, - &data->notificationParams - .changeOfValue.statusFlags))) { + (section_length = decode_context_bitstring( + &apdu[len], 1, + &data->notificationParams.changeOfValue + .statusFlags))) { return -1; } len += section_length; @@ -983,9 +1015,9 @@ int event_notify_decode_service_request( switch (tag_number) { case BACNET_APPLICATION_TAG_ENUMERATED: if (-1 == - (section_length = - decode_enumerated(&apdu[len], - len_value, &enum_value))) { + (section_length = decode_enumerated( + &apdu[len], len_value, + &enum_value))) { return -1; } data->notificationParams.commandFailure @@ -1037,9 +1069,9 @@ int event_notify_decode_service_request( switch (tag_number) { case BACNET_APPLICATION_TAG_ENUMERATED: if (-1 == - (section_length = - decode_enumerated(&apdu[len], - len_value, &enum_value))) { + (section_length = decode_enumerated( + &apdu[len], len_value, + &enum_value))) { return -1; } data->notificationParams.commandFailure @@ -1080,10 +1112,10 @@ int event_notify_decode_service_request( len += section_length; if (-1 == - (section_length = - decode_context_bitstring(&apdu[len], 1, - &data->notificationParams - .floatingLimit.statusFlags))) { + (section_length = decode_context_bitstring( + &apdu[len], 1, + &data->notificationParams.floatingLimit + .statusFlags))) { return -1; } len += section_length; @@ -1097,10 +1129,10 @@ int event_notify_decode_service_request( len += section_length; if (-1 == - (section_length = - decode_context_real(&apdu[len], 3, - &data->notificationParams - .floatingLimit.errorLimit))) { + (section_length = decode_context_real( + &apdu[len], 3, + &data->notificationParams.floatingLimit + .errorLimit))) { return -1; } len += section_length; @@ -1108,36 +1140,36 @@ int event_notify_decode_service_request( case EVENT_OUT_OF_RANGE: if (-1 == - (section_length = - decode_context_real(&apdu[len], 0, - &data->notificationParams.outOfRange - .exceedingValue))) { + (section_length = decode_context_real( + &apdu[len], 0, + &data->notificationParams.outOfRange + .exceedingValue))) { return -1; } len += section_length; if (-1 == - (section_length = - decode_context_bitstring(&apdu[len], 1, - &data->notificationParams.outOfRange - .statusFlags))) { + (section_length = decode_context_bitstring( + &apdu[len], 1, + &data->notificationParams.outOfRange + .statusFlags))) { return -1; } len += section_length; if (-1 == - (section_length = - decode_context_real(&apdu[len], 2, - &data->notificationParams.outOfRange - .deadband))) { + (section_length = decode_context_real( + &apdu[len], 2, + &data->notificationParams.outOfRange + .deadband))) { return -1; } len += section_length; if (-1 == - (section_length = - decode_context_real(&apdu[len], 3, - &data->notificationParams.outOfRange - .exceededLimit))) { + (section_length = decode_context_real( + &apdu[len], 3, + &data->notificationParams.outOfRange + .exceededLimit))) { return -1; } len += section_length; @@ -1244,10 +1276,10 @@ int event_notify_decode_service_request( } /* Tag 1 - statusFlags */ if (-1 == - (section_length = - decode_context_bitstring(&apdu[len], 1, - &data->notificationParams - .unsignedRange.statusFlags))) { + (section_length = decode_context_bitstring( + &apdu[len], 1, + &data->notificationParams.unsignedRange + .statusFlags))) { return -1; } len += section_length; @@ -1278,10 +1310,10 @@ int event_notify_decode_service_request( enum_value; len += section_length; if (-1 == - (section_length = - decode_context_bitstring(&apdu[len], 1, - &data->notificationParams - .accessEvent.statusFlags))) { + (section_length = decode_context_bitstring( + &apdu[len], 1, + &data->notificationParams.accessEvent + .statusFlags))) { return -1; } len += section_length; @@ -1297,22 +1329,20 @@ int event_notify_decode_service_request( if (-1 == (section_length = - bacapp_decode_context_timestamp( - &apdu[len], 3, - &data->notificationParams - .accessEvent - .accessEventTime))) { + bacapp_decode_context_timestamp( + &apdu[len], 3, + &data->notificationParams.accessEvent + .accessEventTime))) { return -1; } len += section_length; if (-1 == (section_length = - bacapp_decode_context_device_obj_ref( - &apdu[len], 4, - &data->notificationParams - .accessEvent - .accessCredential))) { + bacapp_decode_context_device_obj_ref( + &apdu[len], 4, + &data->notificationParams.accessEvent + .accessCredential))) { return -1; } len += section_length; @@ -1320,11 +1350,11 @@ int event_notify_decode_service_request( if (!decode_is_closing_tag(&apdu[len])) { if (-1 == (section_length = - bacapp_decode_context_authentication_factor( - &apdu[len], 5, - &data->notificationParams - .accessEvent - .authenticationFactor))) { + bacapp_decode_context_authentication_factor( + &apdu[len], 5, + &data->notificationParams + .accessEvent + .authenticationFactor))) { return -1; } len += section_length; @@ -1348,7 +1378,8 @@ int event_notify_decode_service_request( return -1; } - if (decode_is_closing_tag_number(&apdu[len], + if (decode_is_closing_tag_number( + &apdu[len], is_complex_event_type ? 6 : (uint8_t)data->eventType)) { len++; } else { diff --git a/src/bacnet/event.h b/src/bacnet/event.h index 2057fdbf..c263b4de 100644 --- a/src/bacnet/event.h +++ b/src/bacnet/event.h @@ -34,18 +34,18 @@ typedef enum { ** Based on UnconfirmedEventNotification-Request */ - -/** Enable decoding of complex-event-type property-values. If set to 0, the values are decoded and discarded. */ +/** Enable decoding of complex-event-type property-values. If set to 0, the + * values are decoded and discarded. */ #ifndef BACNET_DECODE_COMPLEX_EVENT_TYPE_PARAMETERS #define BACNET_DECODE_COMPLEX_EVENT_TYPE_PARAMETERS 1 #endif -/** Max complex-event-type property-values to decode. Events with more values fail to decode. */ +/** Max complex-event-type property-values to decode. Events with more values + * fail to decode. */ #ifndef BACNET_COMPLEX_EVENT_TYPE_MAX_PARAMETERS #define BACNET_COMPLEX_EVENT_TYPE_MAX_PARAMETERS 5 #endif - typedef struct BACnet_Event_Notification_Data { uint32_t processIdentifier; BACNET_OBJECT_ID initiatingObjectIdentifier; @@ -54,7 +54,8 @@ typedef struct BACnet_Event_Notification_Data { uint32_t notificationClass; uint8_t priority; BACNET_EVENT_TYPE eventType; - BACNET_CHARACTER_STRING *messageText; /* OPTIONAL - Set to NULL if not being used */ + /* OPTIONAL - Set to NULL if not being used */ + BACNET_CHARACTER_STRING *messageText; BACNET_NOTIFY_TYPE notifyType; bool ackRequired; BACNET_EVENT_STATE fromState; @@ -91,8 +92,8 @@ typedef struct BACnet_Event_Notification_Data { BACNET_BIT_STRING statusFlags; } changeOfValue; /* - ** EVENT_COMMAND_FAILURE - */ + ** EVENT_COMMAND_FAILURE + */ struct { union { BACNET_BINARY_PV binaryValue; @@ -168,16 +169,17 @@ typedef struct BACnet_Event_Notification_Data { } accessEvent; #if (BACNET_DECODE_COMPLEX_EVENT_TYPE_PARAMETERS == 1) /* - * complex-event-type - a sequence of values, used for proprietary event types + * complex-event-type - a sequence of values, used for proprietary event + * types */ struct { - BACNET_PROPERTY_VALUE values[BACNET_COMPLEX_EVENT_TYPE_MAX_PARAMETERS]; + BACNET_PROPERTY_VALUE + values[BACNET_COMPLEX_EVENT_TYPE_MAX_PARAMETERS]; } complexEventType; #endif } notificationParams; } BACNET_EVENT_NOTIFICATION_DATA; - #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -187,60 +189,57 @@ extern "C" { ** Creates a Confirmed Event Notification APDU ** ****************************************************/ - BACNET_STACK_EXPORT - int cevent_notify_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_EVENT_NOTIFICATION_DATA * data); +BACNET_STACK_EXPORT +int cevent_notify_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_EVENT_NOTIFICATION_DATA *data); /*************************************************** ** ** Creates an Unconfirmed Event Notification APDU ** ****************************************************/ - BACNET_STACK_EXPORT - int uevent_notify_encode_apdu( - uint8_t * apdu, - const BACNET_EVENT_NOTIFICATION_DATA * data); +BACNET_STACK_EXPORT +int uevent_notify_encode_apdu( + uint8_t *apdu, const BACNET_EVENT_NOTIFICATION_DATA *data); /*************************************************** ** ** Encodes the service data part of Event Notification ** ****************************************************/ - BACNET_STACK_EXPORT - int event_notify_encode_service_request( - uint8_t * apdu, - const BACNET_EVENT_NOTIFICATION_DATA * data); +BACNET_STACK_EXPORT +int event_notify_encode_service_request( + uint8_t *apdu, const BACNET_EVENT_NOTIFICATION_DATA *data); - BACNET_STACK_EXPORT - size_t event_notification_service_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_EVENT_NOTIFICATION_DATA *data); +BACNET_STACK_EXPORT +size_t event_notification_service_request_encode( + uint8_t *apdu, + size_t apdu_size, + const BACNET_EVENT_NOTIFICATION_DATA *data); /*************************************************** ** ** Decodes the service data part of Event Notification ** ****************************************************/ - BACNET_STACK_EXPORT - int event_notify_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_EVENT_NOTIFICATION_DATA * data); +BACNET_STACK_EXPORT +int event_notify_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_EVENT_NOTIFICATION_DATA *data); /*************************************************** ** ** Sends an Unconfirmed Event Notification to a dest ** ****************************************************/ - BACNET_STACK_EXPORT - int uevent_notify_send( - uint8_t * buffer, - BACNET_EVENT_NOTIFICATION_DATA * data, - BACNET_ADDRESS * dest); - +BACNET_STACK_EXPORT +int uevent_notify_send( + uint8_t *buffer, + BACNET_EVENT_NOTIFICATION_DATA *data, + BACNET_ADDRESS *dest); #ifdef __cplusplus } @@ -249,7 +248,8 @@ extern "C" { * These BIBBs prescribe the BACnet capabilities required to interoperably * perform the alarm and event management functions enumerated in 22.2.1.2 * for the BACnet devices defined therein. - *//** @defgroup EVNOTFCN Alarm and Event-Notification (AE-N) + */ +/** @defgroup EVNOTFCN Alarm and Event-Notification (AE-N) * @ingroup ALMEVNT * 13.6 ConfirmedCOVNotification Service
* The ConfirmedCOVNotification service is used to notify subscribers about @@ -266,7 +266,8 @@ extern "C" { * For unsubscribed notifications, the algorithm for determining when to issue * this service is a local matter and may be based on a change of value, * periodic updating, or some other criteria. - *//** @defgroup ALMACK Alarm and Event-ACK (AE-ACK) + */ +/** @defgroup ALMACK Alarm and Event-ACK (AE-ACK) * @ingroup ALMEVNT * 13.5 AcknowledgeAlarm Service
* In some systems a device may need to know that an operator has seen the alarm @@ -275,6 +276,7 @@ extern "C" { * notification with 'AckRequired' = TRUE. Ensuring that the acknowledgment * actually comes from a person with appropriate authority is a local matter. * This service may be used in conjunction with either the - * ConfirmedEventNotification service or the UnconfirmedEventNotification service. + * ConfirmedEventNotification service or the + * UnconfirmedEventNotificationservice. */ #endif /* BACNET_EVENT_H_ */ diff --git a/src/bacnet/get_alarm_sum.c b/src/bacnet/get_alarm_sum.c index a3a1a58b..5df3012c 100644 --- a/src/bacnet/get_alarm_sum.c +++ b/src/bacnet/get_alarm_sum.c @@ -64,7 +64,8 @@ int get_alarm_summary_ack_encode_apdu_init(uint8_t *apdu, uint8_t invoke_id) * * @return number of bytes encoded, or BACNET_STATUS_ERROR if an error. */ -int get_alarm_summary_ack_encode_apdu_data(uint8_t *apdu, +int get_alarm_summary_ack_encode_apdu_data( + uint8_t *apdu, size_t max_apdu, const BACNET_GET_ALARM_SUMMARY_DATA *get_alarm_data) { @@ -74,8 +75,8 @@ int get_alarm_summary_ack_encode_apdu_data(uint8_t *apdu, apdu_len = BACNET_STATUS_ERROR; } else if (max_apdu >= 10) { /* tag 0 - Object Identifier */ - apdu_len += encode_application_object_id(&apdu[apdu_len], - get_alarm_data->objectIdentifier.type, + apdu_len += encode_application_object_id( + &apdu[apdu_len], get_alarm_data->objectIdentifier.type, get_alarm_data->objectIdentifier.instance); /* tag 1 - Alarm State */ apdu_len += encode_application_enumerated( @@ -98,7 +99,8 @@ int get_alarm_summary_ack_encode_apdu_data(uint8_t *apdu, * * @return number of bytes decoded, or BACNET_STATUS_ERROR if an error. */ -int get_alarm_summary_ack_decode_apdu_data(const uint8_t *apdu, +int get_alarm_summary_ack_decode_apdu_data( + const uint8_t *apdu, size_t max_apdu, BACNET_GET_ALARM_SUMMARY_DATA *get_alarm_data) { diff --git a/src/bacnet/get_alarm_sum.h b/src/bacnet/get_alarm_sum.h index ef5d416e..062b2bbb 100644 --- a/src/bacnet/get_alarm_sum.h +++ b/src/bacnet/get_alarm_sum.h @@ -25,42 +25,34 @@ typedef struct BACnet_Get_Alarm_Summary_Data { struct BACnet_Get_Alarm_Summary_Data *next; } BACNET_GET_ALARM_SUMMARY_DATA; - /* return 0 if no active alarm at this index return -1 if end of list return +1 if active alarm */ -typedef int ( - *get_alarm_summary_function) ( - unsigned index, - BACNET_GET_ALARM_SUMMARY_DATA * getalarm_data); - +typedef int (*get_alarm_summary_function)( + unsigned index, BACNET_GET_ALARM_SUMMARY_DATA *getalarm_data); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int get_alarm_summary_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id); +BACNET_STACK_EXPORT +int get_alarm_summary_encode_apdu(uint8_t *apdu, uint8_t invoke_id); - /* encode service */ - BACNET_STACK_EXPORT - int get_alarm_summary_ack_encode_apdu_init( - uint8_t * apdu, - uint8_t invoke_id); +/* encode service */ +BACNET_STACK_EXPORT +int get_alarm_summary_ack_encode_apdu_init(uint8_t *apdu, uint8_t invoke_id); - BACNET_STACK_EXPORT - int get_alarm_summary_ack_encode_apdu_data( - uint8_t * apdu, - size_t max_apdu, - const BACNET_GET_ALARM_SUMMARY_DATA * get_alarm_data); +BACNET_STACK_EXPORT +int get_alarm_summary_ack_encode_apdu_data( + uint8_t *apdu, + size_t max_apdu, + const BACNET_GET_ALARM_SUMMARY_DATA *get_alarm_data); - BACNET_STACK_EXPORT - int get_alarm_summary_ack_decode_apdu_data( - const uint8_t * apdu, - size_t max_apdu, - BACNET_GET_ALARM_SUMMARY_DATA * get_alarm_data); +BACNET_STACK_EXPORT +int get_alarm_summary_ack_decode_apdu_data( + const uint8_t *apdu, + size_t max_apdu, + BACNET_GET_ALARM_SUMMARY_DATA *get_alarm_data); #ifdef __cplusplus } diff --git a/src/bacnet/getevent.c b/src/bacnet/getevent.c index f65294f5..8c43d571 100644 --- a/src/bacnet/getevent.c +++ b/src/bacnet/getevent.c @@ -18,16 +18,16 @@ * @param lastReceivedObjectIdentifier Object identifier * @return Bytes encoded. */ -int getevent_apdu_encode(uint8_t *apdu, - const BACNET_OBJECT_ID *lastReceivedObjectIdentifier) +int getevent_apdu_encode( + uint8_t *apdu, const BACNET_OBJECT_ID *lastReceivedObjectIdentifier) { int len = 0; int apdu_len = 0; /* encode optional parameter */ if (lastReceivedObjectIdentifier) { - len = encode_context_object_id(apdu, 0, - lastReceivedObjectIdentifier->type, + len = encode_context_object_id( + apdu, 0, lastReceivedObjectIdentifier->type, lastReceivedObjectIdentifier->instance); apdu_len += len; } @@ -43,8 +43,7 @@ int getevent_apdu_encode(uint8_t *apdu, * @return number of bytes encoded, or zero if unable to encode or too large */ size_t getevent_service_request_encode( - uint8_t *apdu, size_t apdu_size, - const BACNET_OBJECT_ID *data) + uint8_t *apdu, size_t apdu_size, const BACNET_OBJECT_ID *data) { size_t apdu_len = 0; /* total length of the apdu, return value */ @@ -67,9 +66,8 @@ size_t getevent_service_request_encode( * @return Bytes encoded. * @deprecated Use getevent_apdu_encode() instead */ -int getevent_encode_apdu(uint8_t *apdu, - uint8_t invoke_id, - const BACNET_OBJECT_ID *data) +int getevent_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_OBJECT_ID *data) { int len = 0; /* length of each encoding */ int apdu_len = 0; /* total length of the apdu, return value */ @@ -99,7 +97,8 @@ int getevent_encode_apdu(uint8_t *apdu, * * @return Bytes encoded. */ -int getevent_decode_service_request(const uint8_t *apdu, +int getevent_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_OBJECT_ID *lastReceivedObjectIdentifier) { @@ -112,8 +111,8 @@ int getevent_decode_service_request(const uint8_t *apdu, return -1; } if (len < apdu_len) { - len += decode_object_id(&apdu[len], - &lastReceivedObjectIdentifier->type, + len += decode_object_id( + &apdu[len], &lastReceivedObjectIdentifier->type, &lastReceivedObjectIdentifier->instance); } } @@ -139,7 +138,8 @@ int getevent_ack_encode_apdu_init( return apdu_len; } -int getevent_ack_encode_apdu_data(uint8_t *apdu, +int getevent_ack_encode_apdu_data( + uint8_t *apdu, size_t max_apdu, BACNET_GET_EVENT_INFORMATION_DATA *get_event_data) { @@ -152,8 +152,8 @@ int getevent_ack_encode_apdu_data(uint8_t *apdu, event_data = get_event_data; while (event_data) { /* Tag 0: objectIdentifier */ - apdu_len += encode_context_object_id(&apdu[apdu_len], 0, - event_data->objectIdentifier.type, + apdu_len += encode_context_object_id( + &apdu[apdu_len], 0, event_data->objectIdentifier.type, event_data->objectIdentifier.instance); /* Tag 1: eventState */ apdu_len += encode_context_enumerated( @@ -202,7 +202,8 @@ int getevent_ack_encode_apdu_end( return apdu_len; } -int getevent_ack_decode_service_request(const uint8_t *apdu, +int getevent_ack_decode_service_request( + const uint8_t *apdu, int apdu_len, /* total length of the apdu */ BACNET_GET_EVENT_INFORMATION_DATA *get_event_data, bool *moreEvents) @@ -227,8 +228,8 @@ int getevent_ack_decode_service_request(const uint8_t *apdu, if (decode_is_context_tag(&apdu[len], 0)) { len += decode_tag_number_and_value( &apdu[len], &tag_number, &len_value); - len += decode_object_id(&apdu[len], - &event_data->objectIdentifier.type, + len += decode_object_id( + &apdu[len], &event_data->objectIdentifier.type, &event_data->objectIdentifier.instance); } else { return -1; @@ -250,7 +251,8 @@ int getevent_ack_decode_service_request(const uint8_t *apdu, if (decode_is_context_tag(&apdu[len], 2)) { len += decode_tag_number_and_value( &apdu[len], &tag_number, &len_value); - len += decode_bitstring(&apdu[len], len_value, + len += decode_bitstring( + &apdu[len], len_value, &event_data->acknowledgedTransitions); } else { return -1; diff --git a/src/bacnet/getevent.h b/src/bacnet/getevent.h index 74b28b4f..0fc00e91 100644 --- a/src/bacnet/getevent.h +++ b/src/bacnet/getevent.h @@ -31,62 +31,52 @@ typedef struct BACnet_Get_Event_Information_Data { /* return 0 if no active event at this index return -1 if end of list return +1 if active event */ -typedef int ( - *get_event_info_function) ( - unsigned index, - BACNET_GET_EVENT_INFORMATION_DATA * getevent_data); +typedef int (*get_event_info_function)( + unsigned index, BACNET_GET_EVENT_INFORMATION_DATA *getevent_data); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int getevent_apdu_encode( - uint8_t *apdu, - const BACNET_OBJECT_ID *lastReceivedObjectIdentifier); +BACNET_STACK_EXPORT +int getevent_apdu_encode( + uint8_t *apdu, const BACNET_OBJECT_ID *lastReceivedObjectIdentifier); - BACNET_STACK_DEPRECATED("Use getevent_apdu_encode() instead") - BACNET_STACK_EXPORT - int getevent_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_OBJECT_ID * lastReceivedObjectIdentifier); +BACNET_STACK_DEPRECATED("Use getevent_apdu_encode() instead") +BACNET_STACK_EXPORT +int getevent_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_OBJECT_ID *lastReceivedObjectIdentifier); - BACNET_STACK_EXPORT - size_t getevent_service_request_encode( - uint8_t *apdu, size_t apdu_size, - const BACNET_OBJECT_ID *data); +BACNET_STACK_EXPORT +size_t getevent_service_request_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_OBJECT_ID *data); - BACNET_STACK_EXPORT - int getevent_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_OBJECT_ID * object_id); +BACNET_STACK_EXPORT +int getevent_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_OBJECT_ID *object_id); - BACNET_STACK_EXPORT - int getevent_ack_encode_apdu_init( - uint8_t * apdu, - size_t max_apdu, - uint8_t invoke_id); +BACNET_STACK_EXPORT +int getevent_ack_encode_apdu_init( + uint8_t *apdu, size_t max_apdu, uint8_t invoke_id); - BACNET_STACK_EXPORT - int getevent_ack_encode_apdu_data( - uint8_t * apdu, - size_t max_apdu, - BACNET_GET_EVENT_INFORMATION_DATA * get_event_data); +BACNET_STACK_EXPORT +int getevent_ack_encode_apdu_data( + uint8_t *apdu, + size_t max_apdu, + BACNET_GET_EVENT_INFORMATION_DATA *get_event_data); - BACNET_STACK_EXPORT - int getevent_ack_encode_apdu_end( - uint8_t * apdu, - size_t max_apdu, - bool moreEvents); +BACNET_STACK_EXPORT +int getevent_ack_encode_apdu_end( + uint8_t *apdu, size_t max_apdu, bool moreEvents); - BACNET_STACK_EXPORT - int getevent_ack_decode_service_request( - const uint8_t * apdu, - int apdu_len, /* total length of the apdu */ - BACNET_GET_EVENT_INFORMATION_DATA * get_event_data, - bool * moreEvents); +BACNET_STACK_EXPORT +int getevent_ack_decode_service_request( + const uint8_t *apdu, + int apdu_len, /* total length of the apdu */ + BACNET_GET_EVENT_INFORMATION_DATA *get_event_data, + bool *moreEvents); #ifdef __cplusplus } diff --git a/src/bacnet/hostnport.c b/src/bacnet/hostnport.c index e6f97b20..748118c3 100644 --- a/src/bacnet/hostnport.c +++ b/src/bacnet/hostnport.c @@ -542,14 +542,16 @@ int bacnet_bdt_entry_decode( apdu_len += len; /* BACnetHostNPort ::= SEQUENCE */ len = host_n_port_decode( - &apdu[apdu_len], apdu_size-apdu_len, error_code, &address->bbmd_address); + &apdu[apdu_len], apdu_size - apdu_len, error_code, + &address->bbmd_address); if (len > 0) { apdu_len += len; } else { return BACNET_STATUS_REJECT; } /* bbmd-address [0] BACnetHostNPort - closing */ - if (!bacnet_is_closing_tag_number(&apdu[apdu_len], apdu_size-apdu_len, 0, &len)) { + if (!bacnet_is_closing_tag_number( + &apdu[apdu_len], apdu_size - apdu_len, 0, &len)) { if (error_code) { *error_code = ERROR_CODE_REJECT_INVALID_TAG; } @@ -558,7 +560,7 @@ int bacnet_bdt_entry_decode( apdu_len += len; /* broadcast-mask [1] OCTET STRING */ len = bacnet_octet_string_context_decode( - &apdu[apdu_len], apdu_size-apdu_len, 1, &address->broadcast_mask); + &apdu[apdu_len], apdu_size - apdu_len, 1, &address->broadcast_mask); if (len > 0) { apdu_len += len; } @@ -709,9 +711,9 @@ bool bacnet_bdt_entry_from_ascii(BACNET_BDT_ENTRY *value, const char *argv) if (name && isalnum(name[0])) { value->bbmd_address.host_ip_address = false; value->bbmd_address.host_name = true; - characterstring_init(&value->bbmd_address.host.name, - CHARACTER_ANSI_X34, - name, name_len); + characterstring_init( + &value->bbmd_address.host.name, CHARACTER_ANSI_X34, name, + name_len); } else { value->bbmd_address.host_ip_address = false; value->bbmd_address.host_name = false; @@ -878,8 +880,7 @@ int bacnet_fdt_entry_decode( } /* bacnetip-address [0] OCTET STRING */ len = bacnet_octet_string_context_decode( - &apdu[apdu_len], apdu_size - apdu_len, 0, - &entry->bacnetip_address); + &apdu[apdu_len], apdu_size - apdu_len, 0, &entry->bacnetip_address); if (len > 0) { apdu_len += len; } else { @@ -899,8 +900,7 @@ int bacnet_fdt_entry_decode( } /* remaining-time-to-live [2] Unsigned16 */ len = bacnet_unsigned_context_decode( - &apdu[apdu_len], apdu_size - apdu_len, 2, - &unsigned_value); + &apdu[apdu_len], apdu_size - apdu_len, 2, &unsigned_value); if ((len > 0) && (unsigned_value <= UINT16_MAX)) { entry->remaining_time_to_live = unsigned_value; apdu_len += len; diff --git a/src/bacnet/hostnport.h b/src/bacnet/hostnport.h index ffdf7779..3a715397 100644 --- a/src/bacnet/hostnport.h +++ b/src/bacnet/hostnport.h @@ -28,8 +28,8 @@ * } */ typedef struct BACnetHostNPort { - bool host_ip_address:1; - bool host_name:1; + bool host_ip_address : 1; + bool host_name : 1; union BACnetHostAddress { /* none = host_ip_address AND host_name are FALSE */ BACNET_OCTET_STRING ip_address; @@ -70,121 +70,98 @@ typedef struct BACnetFDTEntry { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int host_n_port_address_encode( - uint8_t *apdu, - const BACNET_HOST_N_PORT *address); - BACNET_STACK_EXPORT - int host_n_port_encode( - uint8_t * apdu, - const BACNET_HOST_N_PORT *address); - BACNET_STACK_EXPORT - int host_n_port_context_encode( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_HOST_N_PORT *address); - BACNET_STACK_EXPORT - int host_n_port_address_decode(const uint8_t *apdu, - uint32_t apdu_size, - BACNET_ERROR_CODE *error_code, - BACNET_HOST_N_PORT *address); - BACNET_STACK_EXPORT - int host_n_port_decode(const uint8_t *apdu, - uint32_t apdu_len, - BACNET_ERROR_CODE *error_code, - BACNET_HOST_N_PORT *address); - BACNET_STACK_EXPORT - int host_n_port_context_decode(const uint8_t *apdu, - uint32_t apdu_size, - uint8_t tag_number, - BACNET_ERROR_CODE *error_code, - BACNET_HOST_N_PORT *address); - BACNET_STACK_EXPORT - bool host_n_port_copy( - BACNET_HOST_N_PORT * dst, - const BACNET_HOST_N_PORT * src); - BACNET_STACK_EXPORT - bool host_n_port_same( - const BACNET_HOST_N_PORT * dst, - const BACNET_HOST_N_PORT * src); - BACNET_STACK_EXPORT - bool host_n_port_from_ascii( - BACNET_HOST_N_PORT *value, - const char *argv); +BACNET_STACK_EXPORT +int host_n_port_address_encode( + uint8_t *apdu, const BACNET_HOST_N_PORT *address); +BACNET_STACK_EXPORT +int host_n_port_encode(uint8_t *apdu, const BACNET_HOST_N_PORT *address); +BACNET_STACK_EXPORT +int host_n_port_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_HOST_N_PORT *address); +BACNET_STACK_EXPORT +int host_n_port_address_decode( + const uint8_t *apdu, + uint32_t apdu_size, + BACNET_ERROR_CODE *error_code, + BACNET_HOST_N_PORT *address); +BACNET_STACK_EXPORT +int host_n_port_decode( + const uint8_t *apdu, + uint32_t apdu_len, + BACNET_ERROR_CODE *error_code, + BACNET_HOST_N_PORT *address); +BACNET_STACK_EXPORT +int host_n_port_context_decode( + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + BACNET_ERROR_CODE *error_code, + BACNET_HOST_N_PORT *address); +BACNET_STACK_EXPORT +bool host_n_port_copy(BACNET_HOST_N_PORT *dst, const BACNET_HOST_N_PORT *src); +BACNET_STACK_EXPORT +bool host_n_port_same( + const BACNET_HOST_N_PORT *dst, const BACNET_HOST_N_PORT *src); +BACNET_STACK_EXPORT +bool host_n_port_from_ascii(BACNET_HOST_N_PORT *value, const char *argv); - BACNET_STACK_EXPORT - int bacnet_bdt_entry_encode( - uint8_t * apdu, - const BACNET_BDT_ENTRY *entry); - BACNET_STACK_EXPORT - int bacnet_bdt_entry_context_encode( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_BDT_ENTRY *entry); - BACNET_STACK_EXPORT - int bacnet_bdt_entry_decode(const uint8_t *apdu, - uint32_t apdu_len, - BACNET_ERROR_CODE *error_code, - BACNET_BDT_ENTRY *address); - BACNET_STACK_EXPORT - int bacnet_bdt_entry_context_decode(const uint8_t *apdu, - uint32_t apdu_size, - uint8_t tag_number, - BACNET_ERROR_CODE *error_code, - BACNET_BDT_ENTRY *address); - BACNET_STACK_EXPORT - bool bacnet_bdt_entry_copy( - BACNET_BDT_ENTRY * dst, - const BACNET_BDT_ENTRY * src); - BACNET_STACK_EXPORT - bool bacnet_bdt_entry_same( - const BACNET_BDT_ENTRY * dst, - const BACNET_BDT_ENTRY * src); - BACNET_STACK_EXPORT - bool bacnet_bdt_entry_from_ascii( - BACNET_BDT_ENTRY *value, - const char *argv); - BACNET_STACK_EXPORT - int bacnet_bdt_entry_to_ascii( - char *str, size_t str_size, - const BACNET_BDT_ENTRY *value); +BACNET_STACK_EXPORT +int bacnet_bdt_entry_encode(uint8_t *apdu, const BACNET_BDT_ENTRY *entry); +BACNET_STACK_EXPORT +int bacnet_bdt_entry_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_BDT_ENTRY *entry); +BACNET_STACK_EXPORT +int bacnet_bdt_entry_decode( + const uint8_t *apdu, + uint32_t apdu_len, + BACNET_ERROR_CODE *error_code, + BACNET_BDT_ENTRY *address); +BACNET_STACK_EXPORT +int bacnet_bdt_entry_context_decode( + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + BACNET_ERROR_CODE *error_code, + BACNET_BDT_ENTRY *address); +BACNET_STACK_EXPORT +bool bacnet_bdt_entry_copy(BACNET_BDT_ENTRY *dst, const BACNET_BDT_ENTRY *src); +BACNET_STACK_EXPORT +bool bacnet_bdt_entry_same( + const BACNET_BDT_ENTRY *dst, const BACNET_BDT_ENTRY *src); +BACNET_STACK_EXPORT +bool bacnet_bdt_entry_from_ascii(BACNET_BDT_ENTRY *value, const char *argv); +BACNET_STACK_EXPORT +int bacnet_bdt_entry_to_ascii( + char *str, size_t str_size, const BACNET_BDT_ENTRY *value); - BACNET_STACK_EXPORT - int bacnet_fdt_entry_encode( - uint8_t * apdu, - const BACNET_FDT_ENTRY *entry); - BACNET_STACK_EXPORT - int bacnet_fdt_entry_context_encode( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_FDT_ENTRY *entry); - BACNET_STACK_EXPORT - int bacnet_fdt_entry_decode(const uint8_t *apdu, - uint32_t apdu_len, - BACNET_ERROR_CODE *error_code, - BACNET_FDT_ENTRY *address); - BACNET_STACK_EXPORT - int bacnet_fdt_entry_context_decode(const uint8_t *apdu, - uint32_t apdu_size, - uint8_t tag_number, - BACNET_ERROR_CODE *error_code, - BACNET_FDT_ENTRY *address); - BACNET_STACK_EXPORT - bool bacnet_fdt_entry_copy( - BACNET_FDT_ENTRY * dst, - const BACNET_FDT_ENTRY * src); - BACNET_STACK_EXPORT - bool bacnet_fdt_entry_same( - const BACNET_FDT_ENTRY * dst, - const BACNET_FDT_ENTRY * src); - BACNET_STACK_EXPORT - bool bacnet_fdt_entry_from_ascii( - BACNET_FDT_ENTRY *value, - const char *argv); - BACNET_STACK_EXPORT - int bacnet_fdt_entry_to_ascii( - char *str, size_t str_size, - const BACNET_FDT_ENTRY *value); +BACNET_STACK_EXPORT +int bacnet_fdt_entry_encode(uint8_t *apdu, const BACNET_FDT_ENTRY *entry); +BACNET_STACK_EXPORT +int bacnet_fdt_entry_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_FDT_ENTRY *entry); +BACNET_STACK_EXPORT +int bacnet_fdt_entry_decode( + const uint8_t *apdu, + uint32_t apdu_len, + BACNET_ERROR_CODE *error_code, + BACNET_FDT_ENTRY *address); +BACNET_STACK_EXPORT +int bacnet_fdt_entry_context_decode( + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + BACNET_ERROR_CODE *error_code, + BACNET_FDT_ENTRY *address); +BACNET_STACK_EXPORT +bool bacnet_fdt_entry_copy(BACNET_FDT_ENTRY *dst, const BACNET_FDT_ENTRY *src); +BACNET_STACK_EXPORT +bool bacnet_fdt_entry_same( + const BACNET_FDT_ENTRY *dst, const BACNET_FDT_ENTRY *src); +BACNET_STACK_EXPORT +bool bacnet_fdt_entry_from_ascii(BACNET_FDT_ENTRY *value, const char *argv); +BACNET_STACK_EXPORT +int bacnet_fdt_entry_to_ascii( + char *str, size_t str_size, const BACNET_FDT_ENTRY *value); #ifdef __cplusplus } diff --git a/src/bacnet/iam.c b/src/bacnet/iam.c index 8f1840ae..428e6f67 100644 --- a/src/bacnet/iam.c +++ b/src/bacnet/iam.c @@ -25,7 +25,8 @@ * * @return Total length of the apdu, zero otherwise. */ -int iam_encode_apdu(uint8_t *apdu, +int iam_encode_apdu( + uint8_t *apdu, uint32_t device_id, unsigned max_apdu, int segmentation, @@ -64,7 +65,8 @@ int iam_encode_apdu(uint8_t *apdu, * * @return Total length of the apdu, zero otherwise. */ -int iam_decode_service_request(const uint8_t *apdu, +int iam_decode_service_request( + const uint8_t *apdu, uint32_t *pDevice_id, unsigned *pMax_apdu, int *pSegmentation, diff --git a/src/bacnet/iam.h b/src/bacnet/iam.h index 2058d6ee..fa5d6c21 100644 --- a/src/bacnet/iam.h +++ b/src/bacnet/iam.h @@ -20,21 +20,21 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int iam_encode_apdu( - uint8_t * apdu, - uint32_t device_id, - unsigned max_apdu, - int segmentation, - uint16_t vendor_id); +BACNET_STACK_EXPORT +int iam_encode_apdu( + uint8_t *apdu, + uint32_t device_id, + unsigned max_apdu, + int segmentation, + uint16_t vendor_id); - BACNET_STACK_EXPORT - int iam_decode_service_request( - const uint8_t * apdu, - uint32_t * pDevice_id, - unsigned *pMax_apdu, - int *pSegmentation, - uint16_t * pVendor_id); +BACNET_STACK_EXPORT +int iam_decode_service_request( + const uint8_t *apdu, + uint32_t *pDevice_id, + unsigned *pMax_apdu, + int *pSegmentation, + uint16_t *pVendor_id); #ifdef __cplusplus } diff --git a/src/bacnet/ihave.h b/src/bacnet/ihave.h index fced6978..73e5079f 100644 --- a/src/bacnet/ihave.h +++ b/src/bacnet/ihave.h @@ -25,22 +25,16 @@ typedef struct BACnet_I_Have_Data { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int ihave_encode_apdu( - uint8_t * apdu, - const BACNET_I_HAVE_DATA * data); +BACNET_STACK_EXPORT +int ihave_encode_apdu(uint8_t *apdu, const BACNET_I_HAVE_DATA *data); - BACNET_STACK_EXPORT - int ihave_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_I_HAVE_DATA * data); +BACNET_STACK_EXPORT +int ihave_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_I_HAVE_DATA *data); - BACNET_STACK_EXPORT - int ihave_decode_apdu( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_I_HAVE_DATA * data); +BACNET_STACK_EXPORT +int ihave_decode_apdu( + const uint8_t *apdu, unsigned apdu_len, BACNET_I_HAVE_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/indtext.c b/src/bacnet/indtext.c index a6045451..8ad207f1 100644 --- a/src/bacnet/indtext.c +++ b/src/bacnet/indtext.c @@ -169,7 +169,8 @@ const char *indtext_by_index_default( * @param default_name - default string to return if the index is not found * @return the string found, or a default string */ -const char *indtext_by_index_split_default(INDTEXT_DATA *data_list, +const char *indtext_by_index_split_default( + INDTEXT_DATA *data_list, unsigned index, unsigned split_index, const char *before_split_default_name, diff --git a/src/bacnet/indtext.h b/src/bacnet/indtext.h index 51b3c3cc..4f68b253 100644 --- a/src/bacnet/indtext.h +++ b/src/bacnet/indtext.h @@ -16,75 +16,62 @@ /* index and text pairs */ typedef const struct { - const unsigned index; /* index number that matches the text */ - const char *pString; /* text pair - use NULL to end the list */ + const unsigned index; /* index number that matches the text */ + const char *pString; /* text pair - use NULL to end the list */ } INDTEXT_DATA; #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int indtext_stricmp(const char *a, const char *b); +BACNET_STACK_EXPORT +int indtext_stricmp(const char *a, const char *b); /* Searches for a matching string and returns the index to the string in the parameter found_index. If the string is not found, false is returned If the string is found, true is returned and the found_index contains the first index where the string was found. */ - BACNET_STACK_EXPORT - bool indtext_by_string( - INDTEXT_DATA * data_list, - const char *search_name, - unsigned *found_index); +BACNET_STACK_EXPORT +bool indtext_by_string( + INDTEXT_DATA *data_list, const char *search_name, unsigned *found_index); /* case insensitive version */ - BACNET_STACK_EXPORT - bool indtext_by_istring( - INDTEXT_DATA * data_list, - const char *search_name, - unsigned *found_index); +BACNET_STACK_EXPORT +bool indtext_by_istring( + INDTEXT_DATA *data_list, const char *search_name, unsigned *found_index); /* Searches for a matching string and returns the index to the string or the default_index if the string is not found. */ - BACNET_STACK_EXPORT - unsigned indtext_by_string_default( - INDTEXT_DATA * data_list, - const char *search_name, - unsigned default_index); +BACNET_STACK_EXPORT +unsigned indtext_by_string_default( + INDTEXT_DATA *data_list, const char *search_name, unsigned default_index); /* case insensitive version */ - BACNET_STACK_EXPORT - unsigned indtext_by_istring_default( - INDTEXT_DATA * data_list, - const char *search_name, - unsigned default_index); +BACNET_STACK_EXPORT +unsigned indtext_by_istring_default( + INDTEXT_DATA *data_list, const char *search_name, unsigned default_index); /* for a given index, return the matching string, or NULL if not found */ - BACNET_STACK_EXPORT - const char *indtext_by_index( - INDTEXT_DATA * data_list, - unsigned index); +BACNET_STACK_EXPORT +const char *indtext_by_index(INDTEXT_DATA *data_list, unsigned index); /* for a given index, return the matching string, or default_name if not found */ - BACNET_STACK_EXPORT - const char *indtext_by_index_default( - INDTEXT_DATA * data_list, - unsigned index, - const char *default_name); +BACNET_STACK_EXPORT +const char *indtext_by_index_default( + INDTEXT_DATA *data_list, unsigned index, const char *default_name); /* for a given index, return the matching string, or default_name if not found. if the index is before the split, the before_split_default_name is used */ - BACNET_STACK_EXPORT - const char *indtext_by_index_split_default( - INDTEXT_DATA * data_list, - unsigned index, - unsigned split_index, - const char *before_split_default_name, - const char *default_name); +BACNET_STACK_EXPORT +const char *indtext_by_index_split_default( + INDTEXT_DATA *data_list, + unsigned index, + unsigned split_index, + const char *before_split_default_name, + const char *default_name); /* returns the number of elements in the list */ - BACNET_STACK_EXPORT - unsigned indtext_count( - INDTEXT_DATA * data_list); +BACNET_STACK_EXPORT +unsigned indtext_count(INDTEXT_DATA *data_list); #ifdef __cplusplus } diff --git a/src/bacnet/lighting.c b/src/bacnet/lighting.c index 6164856d..59740e28 100644 --- a/src/bacnet/lighting.c +++ b/src/bacnet/lighting.c @@ -493,7 +493,8 @@ int lighting_command_to_ascii( if (value->use_priority) { priority = value->priority; } - len = snprintf(buf, buf_size, "%u,%f,%lu,%u", value->operation, + len = snprintf( + buf, buf_size, "%u,%f,%lu,%u", value->operation, (double)target_level, (unsigned long)fade_time, (unsigned)priority); break; @@ -507,9 +508,9 @@ int lighting_command_to_ascii( if (value->use_priority) { priority = value->priority; } - len = snprintf(buf, buf_size, "%u,%f,%f,%u", - (unsigned)value->operation, (double)target_level, - (double)ramp_rate, (unsigned)priority); + len = snprintf( + buf, buf_size, "%u,%f,%f,%u", (unsigned)value->operation, + (double)target_level, (double)ramp_rate, (unsigned)priority); break; case BACNET_LIGHTS_STEP_UP: case BACNET_LIGHTS_STEP_DOWN: @@ -521,9 +522,9 @@ int lighting_command_to_ascii( if (value->use_priority) { priority = value->priority; } - len = snprintf(buf, buf_size, "%u,%f,%u", - (unsigned)value->operation, (double)step_increment, - (unsigned)priority); + len = snprintf( + buf, buf_size, "%u,%f,%u", (unsigned)value->operation, + (double)step_increment, (unsigned)priority); break; case BACNET_LIGHTS_WARN: case BACNET_LIGHTS_WARN_OFF: @@ -532,7 +533,8 @@ int lighting_command_to_ascii( if (value->use_priority) { priority = value->priority; } - len = snprintf(buf, buf_size, "%u,%u", (unsigned)value->operation, + len = snprintf( + buf, buf_size, "%u,%u", (unsigned)value->operation, (unsigned)priority); break; default: @@ -803,7 +805,8 @@ int xy_color_context_encode( * * @return the number of apdu bytes consumed, or BACNET_STATUS_ERROR */ -int xy_color_decode(const uint8_t *apdu, uint32_t apdu_size, BACNET_XY_COLOR *value) +int xy_color_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_XY_COLOR *value) { float real_value; int len = 0; @@ -844,7 +847,8 @@ int xy_color_decode(const uint8_t *apdu, uint32_t apdu_size, BACNET_XY_COLOR *va * * @return the number of apdu bytes consumed, or BACNET_STATUS_ERROR */ -int xy_color_context_decode(const uint8_t *apdu, +int xy_color_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_XY_COLOR *value) @@ -916,8 +920,7 @@ int xy_color_copy(BACNET_XY_COLOR *dst, const BACNET_XY_COLOR *src) * @param value2 - BACNET_XY_COLOR structure * @return true if the same */ -bool xy_color_same( - const BACNET_XY_COLOR *value1, const BACNET_XY_COLOR *value2) +bool xy_color_same(const BACNET_XY_COLOR *value1, const BACNET_XY_COLOR *value2) { bool status = false; @@ -1069,9 +1072,9 @@ int color_command_encode(uint8_t *apdu, const BACNET_COLOR_COMMAND *value) case BACNET_COLOR_OPERATION_STEP_UP_CCT: case BACNET_COLOR_OPERATION_STEP_DOWN_CCT: if ((value->transit.step_increment >= - BACNET_COLOR_STEP_INCREMENT_MIN) && + BACNET_COLOR_STEP_INCREMENT_MIN) && (value->transit.step_increment <= - BACNET_COLOR_STEP_INCREMENT_MAX)) { + BACNET_COLOR_STEP_INCREMENT_MAX)) { /* step-increment [5] Unsigned (1..30000) OPTIONAL */ unsigned_value = value->transit.step_increment; len = encode_context_unsigned(apdu, 5, unsigned_value); @@ -1136,7 +1139,8 @@ int color_command_context_encode( * @param value - BACnetColorCommand structure values * @return length of the APDU buffer decoded, or ERROR, REJECT, or ABORT */ -int color_command_decode(const uint8_t *apdu, +int color_command_decode( + const uint8_t *apdu, uint16_t apdu_size, BACNET_ERROR_CODE *error_code, BACNET_COLOR_COMMAND *value) @@ -1406,7 +1410,8 @@ int color_command_decode(const uint8_t *apdu, * @param src - source structure * @return true if successfully copied */ -bool color_command_copy(BACNET_COLOR_COMMAND *dst, const BACNET_COLOR_COMMAND *src) +bool color_command_copy( + BACNET_COLOR_COMMAND *dst, const BACNET_COLOR_COMMAND *src) { bool status = false; @@ -1435,9 +1440,11 @@ bool color_command_same( status = true; break; case BACNET_COLOR_OPERATION_FADE_TO_COLOR: - if (!islessgreater(value1->target.color.x_coordinate, + if (!islessgreater( + value1->target.color.x_coordinate, value2->target.color.x_coordinate) && - !islessgreater(value1->target.color.y_coordinate, + !islessgreater( + value1->target.color.y_coordinate, value2->target.color.y_coordinate) && (value1->transit.fade_time == value2->transit.fade_time)) { status = true; @@ -1445,14 +1452,14 @@ bool color_command_same( break; case BACNET_COLOR_OPERATION_FADE_TO_CCT: if ((value1->target.color_temperature == - value2->target.color_temperature) && + value2->target.color_temperature) && (value1->transit.fade_time == value2->transit.fade_time)) { status = true; } break; case BACNET_COLOR_OPERATION_RAMP_TO_CCT: if ((value1->target.color_temperature == - value2->target.color_temperature) && + value2->target.color_temperature) && (value1->transit.ramp_rate == value2->transit.ramp_rate)) { status = true; } diff --git a/src/bacnet/lighting.h b/src/bacnet/lighting.h index 74af1853..f7503a50 100644 --- a/src/bacnet/lighting.h +++ b/src/bacnet/lighting.h @@ -21,17 +21,18 @@ fade-time [4] Unsigned (100.. 86400000) OPTIONAL, priority [5] Unsigned (1..16) OPTIONAL } --- Note that the combination of level, ramp-rate, step-increment, and fade-time fields is +-- Note that the combination of level, ramp-rate, step-increment, and fade-time +fields is -- dependent on the specific lighting operation. See Table 12-67. */ typedef struct BACnetLightingCommand { BACNET_LIGHTING_OPERATION operation; /* fields are optional */ - bool use_target_level:1; - bool use_ramp_rate:1; - bool use_step_increment:1; - bool use_fade_time:1; - bool use_priority:1; + bool use_target_level : 1; + bool use_ramp_rate : 1; + bool use_step_increment : 1; + bool use_fade_time : 1; + bool use_priority : 1; float target_level; float ramp_rate; float step_increment; @@ -88,103 +89,71 @@ typedef struct BACnetColorCommand { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int lighting_command_encode( - uint8_t * apdu, - const BACNET_LIGHTING_COMMAND * data); - BACNET_STACK_EXPORT - int lighting_command_encode_context( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_LIGHTING_COMMAND * value); - BACNET_STACK_EXPORT - int lighting_command_decode( - const uint8_t * apdu, - unsigned apdu_max_len, - BACNET_LIGHTING_COMMAND * data); - BACNET_STACK_EXPORT - bool lighting_command_copy( - BACNET_LIGHTING_COMMAND * dst, - const BACNET_LIGHTING_COMMAND * src); - BACNET_STACK_EXPORT - bool lighting_command_same( - const BACNET_LIGHTING_COMMAND * dst, - const BACNET_LIGHTING_COMMAND * src); +BACNET_STACK_EXPORT +int lighting_command_encode(uint8_t *apdu, const BACNET_LIGHTING_COMMAND *data); +BACNET_STACK_EXPORT +int lighting_command_encode_context( + uint8_t *apdu, uint8_t tag_number, const BACNET_LIGHTING_COMMAND *value); +BACNET_STACK_EXPORT +int lighting_command_decode( + const uint8_t *apdu, unsigned apdu_max_len, BACNET_LIGHTING_COMMAND *data); +BACNET_STACK_EXPORT +bool lighting_command_copy( + BACNET_LIGHTING_COMMAND *dst, const BACNET_LIGHTING_COMMAND *src); +BACNET_STACK_EXPORT +bool lighting_command_same( + const BACNET_LIGHTING_COMMAND *dst, const BACNET_LIGHTING_COMMAND *src); - BACNET_STACK_EXPORT - bool lighting_command_from_ascii( - BACNET_LIGHTING_COMMAND *value, - const char *argv); - BACNET_STACK_EXPORT - int lighting_command_to_ascii( - const BACNET_LIGHTING_COMMAND *value, - char *buf, - size_t buf_size); +BACNET_STACK_EXPORT +bool lighting_command_from_ascii( + BACNET_LIGHTING_COMMAND *value, const char *argv); +BACNET_STACK_EXPORT +int lighting_command_to_ascii( + const BACNET_LIGHTING_COMMAND *value, char *buf, size_t buf_size); - BACNET_STACK_EXPORT - int xy_color_encode(uint8_t *apdu, - const BACNET_XY_COLOR *value); - BACNET_STACK_EXPORT - int xy_color_context_encode( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_XY_COLOR *value); - BACNET_STACK_EXPORT - int xy_color_decode( - const uint8_t *apdu, - uint32_t apdu_size, - BACNET_XY_COLOR *value); - BACNET_STACK_EXPORT - int xy_color_context_decode( - const uint8_t *apdu, - uint32_t apdu_size, - uint8_t tag_number, - BACNET_XY_COLOR *value); - BACNET_STACK_EXPORT - int xy_color_copy( - BACNET_XY_COLOR *dst, - const BACNET_XY_COLOR *src); - BACNET_STACK_EXPORT - bool xy_color_same( - const BACNET_XY_COLOR *value1, - const BACNET_XY_COLOR *value2); - BACNET_STACK_EXPORT - void xy_color_set( - BACNET_XY_COLOR *dst, - float x, - float y); - BACNET_STACK_EXPORT - int xy_color_to_ascii( - const BACNET_XY_COLOR *value, - char *buf, - size_t buf_size); - BACNET_STACK_EXPORT - bool xy_color_from_ascii( - BACNET_XY_COLOR *value, - const char *arg); +BACNET_STACK_EXPORT +int xy_color_encode(uint8_t *apdu, const BACNET_XY_COLOR *value); +BACNET_STACK_EXPORT +int xy_color_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_XY_COLOR *value); +BACNET_STACK_EXPORT +int xy_color_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_XY_COLOR *value); +BACNET_STACK_EXPORT +int xy_color_context_decode( + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + BACNET_XY_COLOR *value); +BACNET_STACK_EXPORT +int xy_color_copy(BACNET_XY_COLOR *dst, const BACNET_XY_COLOR *src); +BACNET_STACK_EXPORT +bool xy_color_same( + const BACNET_XY_COLOR *value1, const BACNET_XY_COLOR *value2); +BACNET_STACK_EXPORT +void xy_color_set(BACNET_XY_COLOR *dst, float x, float y); +BACNET_STACK_EXPORT +int xy_color_to_ascii(const BACNET_XY_COLOR *value, char *buf, size_t buf_size); +BACNET_STACK_EXPORT +bool xy_color_from_ascii(BACNET_XY_COLOR *value, const char *arg); - BACNET_STACK_EXPORT - int color_command_encode( - uint8_t * apdu, - const BACNET_COLOR_COMMAND *address); - BACNET_STACK_EXPORT - int color_command_context_encode( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_COLOR_COMMAND *address); - BACNET_STACK_EXPORT - int color_command_decode(const uint8_t *apdu, - uint16_t apdu_len, - BACNET_ERROR_CODE *error_code, - BACNET_COLOR_COMMAND *address); - BACNET_STACK_EXPORT - bool color_command_copy( - BACNET_COLOR_COMMAND * dst, - const BACNET_COLOR_COMMAND * src); - BACNET_STACK_EXPORT - bool color_command_same( - const BACNET_COLOR_COMMAND * dst, - const BACNET_COLOR_COMMAND * src); +BACNET_STACK_EXPORT +int color_command_encode(uint8_t *apdu, const BACNET_COLOR_COMMAND *address); +BACNET_STACK_EXPORT +int color_command_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_COLOR_COMMAND *address); +BACNET_STACK_EXPORT +int color_command_decode( + const uint8_t *apdu, + uint16_t apdu_len, + BACNET_ERROR_CODE *error_code, + BACNET_COLOR_COMMAND *address); +BACNET_STACK_EXPORT +bool color_command_copy( + BACNET_COLOR_COMMAND *dst, const BACNET_COLOR_COMMAND *src); +BACNET_STACK_EXPORT +bool color_command_same( + const BACNET_COLOR_COMMAND *dst, const BACNET_COLOR_COMMAND *src); #ifdef __cplusplus } diff --git a/src/bacnet/list_element.c b/src/bacnet/list_element.c index 9d7f3954..683823c5 100644 --- a/src/bacnet/list_element.c +++ b/src/bacnet/list_element.c @@ -123,7 +123,6 @@ int list_element_decode_service_request( uint32_t property = 0; BACNET_UNSIGNED_INTEGER unsigned_value = 0; - /* Must have at least 2 tags, an object id and a property identifier * of at least 1 byte in length to have any chance of parsing */ if (apdu_len < 7) { diff --git a/src/bacnet/list_element.h b/src/bacnet/list_element.h index eb30007a..6fce8f03 100644 --- a/src/bacnet/list_element.h +++ b/src/bacnet/list_element.h @@ -69,9 +69,7 @@ size_t list_element_service_request_encode( const BACNET_LIST_ELEMENT_DATA *list_element); BACNET_STACK_EXPORT int list_element_decode_service_request( - uint8_t *apdu, - unsigned apdu_len, - BACNET_LIST_ELEMENT_DATA *list_element); + uint8_t *apdu, unsigned apdu_len, BACNET_LIST_ELEMENT_DATA *list_element); BACNET_STACK_EXPORT int list_element_error_ack_encode( uint8_t *apdu, const BACNET_LIST_ELEMENT_DATA *list_element); diff --git a/src/bacnet/lso.c b/src/bacnet/lso.c index 9975c520..ae8f551f 100644 --- a/src/bacnet/lso.c +++ b/src/bacnet/lso.c @@ -32,8 +32,7 @@ int life_safety_operation_encode(uint8_t *apdu, const BACNET_LSO_DATA *data) apdu += len; } /* tag 1 - requestingSource */ - len = encode_context_character_string( - apdu, 1, &data->requestingSrc); + len = encode_context_character_string(apdu, 1, &data->requestingSrc); apdu_len += len; if (apdu) { apdu += len; @@ -46,8 +45,8 @@ int life_safety_operation_encode(uint8_t *apdu, const BACNET_LSO_DATA *data) } /* Object ID */ if (data->use_target) { - len = encode_context_object_id(apdu, 3, - data->targetObject.type, data->targetObject.instance); + len = encode_context_object_id( + apdu, 3, data->targetObject.type, data->targetObject.instance); apdu_len += len; } @@ -143,8 +142,9 @@ int lso_decode_service_request( ** This is an optional parameter, so don't fail if it doesn't exist */ if (decode_is_context_tag(&apdu[len], 3)) { - section_length = decode_context_object_id(&apdu[len], 3, - &data->targetObject.type, &data->targetObject.instance); + section_length = decode_context_object_id( + &apdu[len], 3, &data->targetObject.type, + &data->targetObject.instance); if (section_length == BACNET_STATUS_ERROR) { return BACNET_STATUS_ERROR; } diff --git a/src/bacnet/lso.h b/src/bacnet/lso.h index 192498b1..05ded6f2 100644 --- a/src/bacnet/lso.h +++ b/src/bacnet/lso.h @@ -21,35 +21,27 @@ typedef struct { BACNET_CHARACTER_STRING requestingSrc; BACNET_LIFE_SAFETY_OPERATION operation; BACNET_OBJECT_ID targetObject; - bool use_target:1; + bool use_target : 1; } BACNET_LSO_DATA; #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int lso_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_LSO_DATA * data); +BACNET_STACK_EXPORT +int lso_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_LSO_DATA *data); - BACNET_STACK_EXPORT - int life_safety_operation_encode( - uint8_t *apdu, - const BACNET_LSO_DATA *data); +BACNET_STACK_EXPORT +int life_safety_operation_encode(uint8_t *apdu, const BACNET_LSO_DATA *data); - BACNET_STACK_EXPORT - size_t life_safety_operation_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_LSO_DATA *data); +BACNET_STACK_EXPORT +size_t life_safety_operation_request_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_LSO_DATA *data); - BACNET_STACK_EXPORT - int lso_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_LSO_DATA * data); +BACNET_STACK_EXPORT +int lso_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_LSO_DATA *data); #ifdef __cplusplus } diff --git a/src/bacnet/memcopy.c b/src/bacnet/memcopy.c index 2ec46729..fa370443 100644 --- a/src/bacnet/memcopy.c +++ b/src/bacnet/memcopy.c @@ -76,7 +76,8 @@ size_t memcopy(void *dest, void *src, size_t offset, size_t len, size_t max) * @return returns zero if there is not enough space, or returns * the number of bytes copied. */ -size_t memcopy(void *dest, +size_t memcopy( + void *dest, const void *src, size_t offset, /* where in dest to put the data */ size_t len, /* amount of data to copy */ diff --git a/src/bacnet/memcopy.h b/src/bacnet/memcopy.h index 734e9a70..f74098f1 100644 --- a/src/bacnet/memcopy.h +++ b/src/bacnet/memcopy.h @@ -16,16 +16,9 @@ extern "C" { #endif /* __cplusplus */ - bool memcopylen( - size_t offset, - size_t max, - size_t len); - size_t memcopy( - void *dest, - const void *src, - size_t offset, - size_t len, - size_t max); +bool memcopylen(size_t offset, size_t max, size_t len); +size_t +memcopy(void *dest, const void *src, size_t offset, size_t len, size_t max); #ifdef __cplusplus } diff --git a/src/bacnet/npdu.c b/src/bacnet/npdu.c index bd2e43d4..560c5b7e 100644 --- a/src/bacnet/npdu.c +++ b/src/bacnet/npdu.c @@ -95,7 +95,8 @@ ABORT.indication Yes Yes Yes No * @return On success, returns the number of bytes which were encoded into * the NPDU section, or 0 if there were problems with the data or encoding. */ -int npdu_encode_pdu(uint8_t *npdu, +int npdu_encode_pdu( + uint8_t *npdu, BACNET_ADDRESS *dest, BACNET_ADDRESS *src, const BACNET_NPDU_DATA *npdu_data) @@ -259,7 +260,8 @@ int npdu_encode_pdu(uint8_t *npdu, * @return On success, returns the number of bytes which were encoded into * the NPDU section, or 0 if there were problems with the data or encoding. */ -int bacnet_npdu_encode_pdu(uint8_t *pdu, +int bacnet_npdu_encode_pdu( + uint8_t *pdu, uint16_t pdu_size, BACNET_ADDRESS *dest, BACNET_ADDRESS *src, @@ -320,7 +322,8 @@ is expected for the service being issued. * @param priority [in] One of the 4 priorities defined in section 6.2.2, * like B'11' = Life Safety message */ -void npdu_encode_npdu_data(BACNET_NPDU_DATA *npdu_data, +void npdu_encode_npdu_data( + BACNET_NPDU_DATA *npdu_data, bool data_expecting_reply, BACNET_MESSAGE_PRIORITY priority) { @@ -350,7 +353,8 @@ void npdu_encode_npdu_data(BACNET_NPDU_DATA *npdu_data, * @param priority [in] One of the 4 priorities defined in section 6.2.2, * like B'11' = Life Safety message */ -void npdu_encode_npdu_network(BACNET_NPDU_DATA *npdu_data, +void npdu_encode_npdu_network( + BACNET_NPDU_DATA *npdu_data, BACNET_NETWORK_MESSAGE_TYPE network_message_type, bool data_expecting_reply, BACNET_MESSAGE_PRIORITY priority) @@ -389,7 +393,8 @@ void npdu_encode_npdu_network(BACNET_NPDU_DATA *npdu_data, * be more bytes left in the NPDU; if not a network msg, the APDU follows. If 0 * or negative, there were problems with the data or arguments. */ -int npdu_decode(const uint8_t *npdu, +int npdu_decode( + const uint8_t *npdu, BACNET_ADDRESS *dest, BACNET_ADDRESS *src, BACNET_NPDU_DATA *npdu_data) @@ -421,7 +426,8 @@ int npdu_decode(const uint8_t *npdu, * be more bytes left in the NPDU; if not a network msg, the APDU follows. If 0 * or negative, there were problems with the data or arguments. */ -int bacnet_npdu_decode(const uint8_t *npdu, +int bacnet_npdu_decode( + const uint8_t *npdu, uint16_t pdu_len, BACNET_ADDRESS *dest, BACNET_ADDRESS *src, diff --git a/src/bacnet/npdu.h b/src/bacnet/npdu.h index 93380ee8..5b3129f3 100644 --- a/src/bacnet/npdu.h +++ b/src/bacnet/npdu.h @@ -36,7 +36,7 @@ typedef struct bacnet_npdu_data_t { bool network_layer_message; /* false if APDU */ BACNET_MESSAGE_PRIORITY priority; /* optional network message info */ - BACNET_NETWORK_MESSAGE_TYPE network_message_type; /* optional */ + BACNET_NETWORK_MESSAGE_TYPE network_message_type; /* optional */ uint16_t vendor_id; /* optional, if net message type is > 0x80 */ uint8_t hop_count; } BACNET_NPDU_DATA, BACNET_NPCI_DATA; @@ -47,11 +47,11 @@ struct router_port_t; #define ROUTER_PORT_INFO_LEN 2 /** Port Info structure used by Routers for their routing table. */ typedef struct router_port_t { - uint16_t dnet; /**< The DNET number that identifies this port. */ - uint8_t id; /**< Either 0 or some ill-defined, meaningless value. */ - uint8_t info[ROUTER_PORT_INFO_LEN]; /**< Info like 'modem dialing string' */ - uint8_t info_len; /**< Length of info[]. */ - struct router_port_t *next; /**< Point to next in linked list */ + uint16_t dnet; /**< The DNET number that identifies this port. */ + uint8_t id; /**< Either 0 or some ill-defined, meaningless value. */ + uint8_t info[ROUTER_PORT_INFO_LEN]; /**< Info like 'modem dialing string' */ + uint8_t info_len; /**< Length of info[]. */ + struct router_port_t *next; /**< Point to next in linked list */ } BACNET_ROUTER_PORT; #define NETWORK_NUMBER_LEARNED 0 @@ -61,64 +61,58 @@ typedef struct router_port_t { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - uint8_t npdu_encode_max_seg_max_apdu( - int max_segs, - int max_apdu); +BACNET_STACK_EXPORT +uint8_t npdu_encode_max_seg_max_apdu(int max_segs, int max_apdu); - BACNET_STACK_EXPORT - int npdu_encode_pdu( - uint8_t * npdu, - BACNET_ADDRESS * dest, - BACNET_ADDRESS * src, - const BACNET_NPDU_DATA * npdu_data); +BACNET_STACK_EXPORT +int npdu_encode_pdu( + uint8_t *npdu, + BACNET_ADDRESS *dest, + BACNET_ADDRESS *src, + const BACNET_NPDU_DATA *npdu_data); - BACNET_STACK_EXPORT - int bacnet_npdu_encode_pdu( - uint8_t * pdu, - uint16_t pdu_size, - BACNET_ADDRESS * dest, - BACNET_ADDRESS * src, - const BACNET_NPDU_DATA * npdu_data); +BACNET_STACK_EXPORT +int bacnet_npdu_encode_pdu( + uint8_t *pdu, + uint16_t pdu_size, + BACNET_ADDRESS *dest, + BACNET_ADDRESS *src, + const BACNET_NPDU_DATA *npdu_data); - BACNET_STACK_EXPORT - void npdu_encode_npdu_data( - BACNET_NPDU_DATA * npdu, - bool data_expecting_reply, - BACNET_MESSAGE_PRIORITY priority); +BACNET_STACK_EXPORT +void npdu_encode_npdu_data( + BACNET_NPDU_DATA *npdu, + bool data_expecting_reply, + BACNET_MESSAGE_PRIORITY priority); - BACNET_STACK_EXPORT - void npdu_encode_npdu_network( - BACNET_NPDU_DATA *npdu_data, - BACNET_NETWORK_MESSAGE_TYPE network_message_type, - bool data_expecting_reply, - BACNET_MESSAGE_PRIORITY priority); +BACNET_STACK_EXPORT +void npdu_encode_npdu_network( + BACNET_NPDU_DATA *npdu_data, + BACNET_NETWORK_MESSAGE_TYPE network_message_type, + bool data_expecting_reply, + BACNET_MESSAGE_PRIORITY priority); - BACNET_STACK_EXPORT - void npdu_copy_data( - BACNET_NPDU_DATA * dest, - const BACNET_NPDU_DATA * src); +BACNET_STACK_EXPORT +void npdu_copy_data(BACNET_NPDU_DATA *dest, const BACNET_NPDU_DATA *src); - BACNET_STACK_DEPRECATED("Use bacnet_npdu_decode() instead") - BACNET_STACK_EXPORT - int npdu_decode( - const uint8_t * npdu, - BACNET_ADDRESS * dest, - BACNET_ADDRESS * src, - BACNET_NPDU_DATA * npdu_data); +BACNET_STACK_DEPRECATED("Use bacnet_npdu_decode() instead") +BACNET_STACK_EXPORT +int npdu_decode( + const uint8_t *npdu, + BACNET_ADDRESS *dest, + BACNET_ADDRESS *src, + BACNET_NPDU_DATA *npdu_data); - BACNET_STACK_EXPORT - int bacnet_npdu_decode( - const uint8_t * npdu, - uint16_t pdu_len, - BACNET_ADDRESS * dest, - BACNET_ADDRESS * src, - BACNET_NPDU_DATA * npdu_data); +BACNET_STACK_EXPORT +int bacnet_npdu_decode( + const uint8_t *npdu, + uint16_t pdu_len, + BACNET_ADDRESS *dest, + BACNET_ADDRESS *src, + BACNET_NPDU_DATA *npdu_data); - BACNET_STACK_EXPORT - bool npdu_confirmed_service( - const uint8_t *pdu, - uint16_t pdu_len); +BACNET_STACK_EXPORT +bool npdu_confirmed_service(const uint8_t *pdu, uint16_t pdu_len); #ifdef __cplusplus } diff --git a/src/bacnet/property.c b/src/bacnet/property.c index 1ad8f998..49029fc8 100644 --- a/src/bacnet/property.c +++ b/src/bacnet/property.c @@ -28,757 +28,565 @@ /* note: the PROP_PROPERTY_LIST is NOT included in these lists, on purpose */ static const int Default_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, -1 }; static const int Default_Properties_Optional[] = { -1 }; static const int Access_Credential_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_GLOBAL_IDENTIFIER, PROP_STATUS_FLAGS, PROP_RELIABILITY, - PROP_CREDENTIAL_STATUS, PROP_REASON_FOR_DISABLE, - PROP_AUTHENTICATION_FACTORS, PROP_ACTIVATION_TIME, PROP_EXPIRATION_TIME, - PROP_CREDENTIAL_DISABLE, PROP_ASSIGNED_ACCESS_RIGHTS, -1 + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_CREDENTIAL_STATUS, + PROP_REASON_FOR_DISABLE, + PROP_AUTHENTICATION_FACTORS, + PROP_ACTIVATION_TIME, + PROP_EXPIRATION_TIME, + PROP_CREDENTIAL_DISABLE, + PROP_ASSIGNED_ACCESS_RIGHTS, + -1 }; -static const int Access_Credential_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DAYS_REMAINING, PROP_USES_REMAINING, PROP_ABSENTEE_LIMIT, - PROP_BELONGS_TO, PROP_LAST_ACCESS_POINT, PROP_LAST_ACCESS_EVENT, - PROP_LAST_USE_TIME, PROP_TRACE_FLAG, PROP_THREAT_AUTHORITY, - PROP_EXTENDED_TIME_ENABLE, PROP_AUTHORIZATION_EXEMPTIONS, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Access_Credential_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DAYS_REMAINING, + PROP_USES_REMAINING, + PROP_ABSENTEE_LIMIT, + PROP_BELONGS_TO, + PROP_LAST_ACCESS_POINT, + PROP_LAST_ACCESS_EVENT, + PROP_LAST_USE_TIME, + PROP_TRACE_FLAG, + PROP_THREAT_AUTHORITY, + PROP_EXTENDED_TIME_ENABLE, + PROP_AUTHORIZATION_EXEMPTIONS, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Access_Door_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_DOOR_PULSE_TIME, - PROP_DOOR_EXTENDED_PULSE_TIME, PROP_DOOR_OPEN_TOO_LONG_TIME, - PROP_CURRENT_COMMAND_PRIORITY, -1 }; +static const int Access_Door_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_DOOR_PULSE_TIME, + PROP_DOOR_EXTENDED_PULSE_TIME, + PROP_DOOR_OPEN_TOO_LONG_TIME, + PROP_CURRENT_COMMAND_PRIORITY, + -1 +}; -static const int Access_Door_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DOOR_STATUS, PROP_LOCK_STATUS, PROP_SECURED_STATUS, PROP_DOOR_MEMBERS, - PROP_DOOR_UNLOCK_DELAY_TIME, PROP_DOOR_ALARM_STATE, - PROP_MASKED_ALARM_VALUES, PROP_MAINTENANCE_REQUIRED, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_ALARM_VALUES, PROP_FAULT_VALUES, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Access_Door_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DOOR_STATUS, + PROP_LOCK_STATUS, + PROP_SECURED_STATUS, + PROP_DOOR_MEMBERS, + PROP_DOOR_UNLOCK_DELAY_TIME, + PROP_DOOR_ALARM_STATE, + PROP_MASKED_ALARM_VALUES, + PROP_MAINTENANCE_REQUIRED, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUES, + PROP_FAULT_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Access_Point_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, - PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_AUTHENTICATION_STATUS, - PROP_ACTIVE_AUTHENTICATION_POLICY, PROP_NUMBER_OF_AUTHENTICATION_POLICIES, - PROP_AUTHORIZATION_MODE, PROP_ACCESS_EVENT, PROP_ACCESS_EVENT_TAG, - PROP_ACCESS_EVENT_TIME, PROP_ACCESS_EVENT_CREDENTIAL, PROP_ACCESS_DOORS, - PROP_PRIORITY_FOR_WRITING, -1 }; +static const int Access_Point_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_AUTHENTICATION_STATUS, + PROP_ACTIVE_AUTHENTICATION_POLICY, + PROP_NUMBER_OF_AUTHENTICATION_POLICIES, + PROP_AUTHORIZATION_MODE, + PROP_ACCESS_EVENT, + PROP_ACCESS_EVENT_TAG, + PROP_ACCESS_EVENT_TIME, + PROP_ACCESS_EVENT_CREDENTIAL, + PROP_ACCESS_DOORS, + PROP_PRIORITY_FOR_WRITING, + -1 +}; -static const int Access_Point_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_AUTHENTICATION_POLICY_LIST, PROP_AUTHENTICATION_POLICY_NAMES, - PROP_VERIFICATION_TIME, PROP_LOCKOUT, PROP_LOCKOUT_RELINQUISH_TIME, - PROP_FAILED_ATTEMPTS, PROP_FAILED_ATTEMPT_EVENTS, PROP_MAX_FAILED_ATTEMPTS, - PROP_FAILED_ATTEMPTS_TIME, PROP_THREAT_LEVEL, - PROP_OCCUPANCY_UPPER_LIMIT_ENFORCED, PROP_OCCUPANCY_LOWER_LIMIT_ENFORCED, - PROP_OCCUPANCY_COUNT_ADJUST, PROP_ACCOMPANIMENT_TIME, - PROP_ACCESS_EVENT_AUTHENTICATION_FACTOR, PROP_MUSTER_POINT, PROP_ZONE_TO, - PROP_ZONE_FROM, PROP_NOTIFICATION_CLASS, - PROP_TRANSACTION_NOTIFICATION_CLASS, PROP_ACCESS_ALARM_EVENTS, - PROP_ACCESS_TRANSACTION_EVENTS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Access_Point_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_AUTHENTICATION_POLICY_LIST, + PROP_AUTHENTICATION_POLICY_NAMES, + PROP_VERIFICATION_TIME, + PROP_LOCKOUT, + PROP_LOCKOUT_RELINQUISH_TIME, + PROP_FAILED_ATTEMPTS, + PROP_FAILED_ATTEMPT_EVENTS, + PROP_MAX_FAILED_ATTEMPTS, + PROP_FAILED_ATTEMPTS_TIME, + PROP_THREAT_LEVEL, + PROP_OCCUPANCY_UPPER_LIMIT_ENFORCED, + PROP_OCCUPANCY_LOWER_LIMIT_ENFORCED, + PROP_OCCUPANCY_COUNT_ADJUST, + PROP_ACCOMPANIMENT_TIME, + PROP_ACCESS_EVENT_AUTHENTICATION_FACTOR, + PROP_MUSTER_POINT, + PROP_ZONE_TO, + PROP_ZONE_FROM, + PROP_NOTIFICATION_CLASS, + PROP_TRANSACTION_NOTIFICATION_CLASS, + PROP_ACCESS_ALARM_EVENTS, + PROP_ACCESS_TRANSACTION_EVENTS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Access_Rights_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GLOBAL_IDENTIFIER, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_ENABLE, - PROP_NEGATIVE_ACCESS_RULES, PROP_POSITIVE_ACCESS_RULES, -1 }; +static const int Access_Rights_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_ENABLE, + PROP_NEGATIVE_ACCESS_RULES, + PROP_POSITIVE_ACCESS_RULES, + -1 +}; -static const int Access_Rights_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_ACCOMPANIMENT, PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Access_Rights_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_ACCOMPANIMENT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Access_User_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GLOBAL_IDENTIFIER, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_USER_TYPE, PROP_CREDENTIALS, -1 }; +static const int Access_User_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, PROP_STATUS_FLAGS, PROP_RELIABILITY, + PROP_USER_TYPE, PROP_CREDENTIALS, -1 +}; -static const int Access_User_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_USER_NAME, PROP_USER_EXTERNAL_IDENTIFIER, - PROP_USER_INFORMATION_REFERENCE, PROP_MEMBERS, PROP_MEMBER_OF, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Access_User_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_USER_NAME, + PROP_USER_EXTERNAL_IDENTIFIER, + PROP_USER_INFORMATION_REFERENCE, + PROP_MEMBERS, + PROP_MEMBER_OF, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Access_Zone_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GLOBAL_IDENTIFIER, - PROP_OCCUPANCY_STATE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_RELIABILITY, - PROP_OUT_OF_SERVICE, PROP_ENTRY_POINTS, PROP_EXIT_POINTS, -1 }; +static const int Access_Zone_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, PROP_OCCUPANCY_STATE, PROP_STATUS_FLAGS, + PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, + PROP_ENTRY_POINTS, PROP_EXIT_POINTS, -1 +}; -static const int Access_Zone_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_OCCUPANCY_COUNT, PROP_OCCUPANCY_COUNT_ENABLE, PROP_ADJUST_VALUE, - PROP_OCCUPANCY_UPPER_LIMIT, PROP_OCCUPANCY_LOWER_LIMIT, - PROP_CREDENTIALS_IN_ZONE, PROP_LAST_CREDENTIAL_ADDED, - PROP_LAST_CREDENTIAL_ADDED_TIME, PROP_LAST_CREDENTIAL_REMOVED, - PROP_LAST_CREDENTIAL_REMOVED_TIME, PROP_PASSBACK_MODE, - PROP_PASSBACK_TIMEOUT, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_ALARM_VALUES, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Access_Zone_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_OCCUPANCY_COUNT, + PROP_OCCUPANCY_COUNT_ENABLE, + PROP_ADJUST_VALUE, + PROP_OCCUPANCY_UPPER_LIMIT, + PROP_OCCUPANCY_LOWER_LIMIT, + PROP_CREDENTIALS_IN_ZONE, + PROP_LAST_CREDENTIAL_ADDED, + PROP_LAST_CREDENTIAL_ADDED_TIME, + PROP_LAST_CREDENTIAL_REMOVED, + PROP_LAST_CREDENTIAL_REMOVED_TIME, + PROP_PASSBACK_MODE, + PROP_PASSBACK_TIMEOUT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; static const int Accumulator_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_SCALE, PROP_UNITS, - PROP_MAX_PRES_VALUE, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_SCALE, + PROP_UNITS, + PROP_MAX_PRES_VALUE, + -1 }; -static const int Accumulator_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_RELIABILITY, PROP_PRESCALE, PROP_VALUE_CHANGE_TIME, - PROP_VALUE_BEFORE_CHANGE, PROP_VALUE_SET, PROP_LOGGING_RECORD, - PROP_LOGGING_OBJECT, PROP_PULSE_RATE, PROP_HIGH_LIMIT, PROP_LOW_LIMIT, - PROP_LIMIT_MONITORING_INTERVAL, PROP_NOTIFICATION_CLASS, PROP_TIME_DELAY, - PROP_LIMIT_ENABLE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_FAULT_HIGH_LIMIT, PROP_FAULT_LOW_LIMIT, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Alert_Enrollment_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_EVENT_STATE, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, -1 +static const int Accumulator_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_RELIABILITY, + PROP_PRESCALE, + PROP_VALUE_CHANGE_TIME, + PROP_VALUE_BEFORE_CHANGE, + PROP_VALUE_SET, + PROP_LOGGING_RECORD, + PROP_LOGGING_OBJECT, + PROP_PULSE_RATE, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_LIMIT_MONITORING_INTERVAL, + PROP_NOTIFICATION_CLASS, + PROP_TIME_DELAY, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_FAULT_HIGH_LIMIT, + PROP_FAULT_LOW_LIMIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 }; -static const int Alert_Enrollment_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Alert_Enrollment_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_EVENT_STATE, PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, -1 +}; -static const int Analog_Input_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_UNITS, -1 }; +static const int Alert_Enrollment_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Analog_Input_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_RELIABILITY, PROP_UPDATE_INTERVAL, - PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, PROP_RESOLUTION, - PROP_COV_INCREMENT, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_HIGH_LIMIT, PROP_LOW_LIMIT, PROP_DEADBAND, PROP_LIMIT_ENABLE, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_INTERFACE_VALUE, PROP_FAULT_HIGH_LIMIT, PROP_FAULT_LOW_LIMIT, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Analog_Input_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, PROP_UNITS, -1 +}; -static const int Analog_Output_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_UNITS, PROP_PRIORITY_ARRAY, +static const int Analog_Input_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_RELIABILITY, + PROP_UPDATE_INTERVAL, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_RESOLUTION, + PROP_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_DEADBAND, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_INTERFACE_VALUE, + PROP_FAULT_HIGH_LIMIT, + PROP_FAULT_LOW_LIMIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Analog_Output_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_UNITS, + PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, #if (BACNET_PROTOCOL_REVISION >= 17) PROP_CURRENT_COMMAND_PRIORITY, #endif - -1 }; - -static const int Analog_Output_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_RELIABILITY, PROP_MIN_PRES_VALUE, - PROP_MAX_PRES_VALUE, PROP_RESOLUTION, PROP_COV_INCREMENT, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_HIGH_LIMIT, PROP_LOW_LIMIT, PROP_DEADBAND, - PROP_LIMIT_ENABLE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_INTERFACE_VALUE, PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, - PROP_LAST_COMMAND_TIME, PROP_COMMAND_TIME_ARRAY, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Analog_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_UNITS, -1 }; - -static const int Analog_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_COV_INCREMENT, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_HIGH_LIMIT, PROP_LOW_LIMIT, PROP_DEADBAND, PROP_LIMIT_ENABLE, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, PROP_RESOLUTION, - PROP_FAULT_HIGH_LIMIT, PROP_FAULT_LOW_LIMIT, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Averaging_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_MINIMUM_VALUE, PROP_AVERAGE_VALUE, - PROP_MAXIMUM_VALUE, PROP_ATTEMPTED_SAMPLES, PROP_VALID_SAMPLES, - PROP_OBJECT_PROPERTY_REFERENCE, PROP_WINDOW_INTERVAL, PROP_WINDOW_SAMPLES, - -1 }; - -static const int Averaging_Properties_Optional[] = { - PROP_MINIMUM_VALUE_TIMESTAMP, PROP_VARIANCE_VALUE, - PROP_MAXIMUM_VALUE_TIMESTAMP, PROP_DESCRIPTION, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 + -1 }; -static const int Binary_Input_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_POLARITY, -1 }; +static const int Analog_Output_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_RELIABILITY, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_RESOLUTION, + PROP_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_DEADBAND, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_INTERFACE_VALUE, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Binary_Input_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_RELIABILITY, PROP_INACTIVE_TEXT, PROP_ACTIVE_TEXT, - PROP_CHANGE_OF_STATE_TIME, PROP_CHANGE_OF_STATE_COUNT, - PROP_TIME_OF_STATE_COUNT_RESET, PROP_ELAPSED_ACTIVE_TIME, - PROP_TIME_OF_ACTIVE_TIME_RESET, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_ALARM_VALUE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_INTERFACE_VALUE, PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, - -1 }; +static const int Analog_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, PROP_UNITS, -1 +}; + +static const int Analog_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_DEADBAND, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_RESOLUTION, + PROP_FAULT_HIGH_LIMIT, + PROP_FAULT_LOW_LIMIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Averaging_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_MINIMUM_VALUE, PROP_AVERAGE_VALUE, PROP_MAXIMUM_VALUE, + PROP_ATTEMPTED_SAMPLES, PROP_VALID_SAMPLES, PROP_OBJECT_PROPERTY_REFERENCE, + PROP_WINDOW_INTERVAL, PROP_WINDOW_SAMPLES, -1 +}; + +static const int Averaging_Properties_Optional[] = { + PROP_MINIMUM_VALUE_TIMESTAMP, + PROP_VARIANCE_VALUE, + PROP_MAXIMUM_VALUE_TIMESTAMP, + PROP_DESCRIPTION, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Binary_Input_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, PROP_POLARITY, -1 +}; + +static const int Binary_Input_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_RELIABILITY, + PROP_INACTIVE_TEXT, + PROP_ACTIVE_TEXT, + PROP_CHANGE_OF_STATE_TIME, + PROP_CHANGE_OF_STATE_COUNT, + PROP_TIME_OF_STATE_COUNT_RESET, + PROP_ELAPSED_ACTIVE_TIME, + PROP_TIME_OF_ACTIVE_TIME_RESET, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_INTERFACE_VALUE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; static const int Binary_Lighting_Output_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_OUT_OF_SERVICE, - PROP_BLINK_WARN_ENABLE, PROP_EGRESS_TIME, PROP_EGRESS_ACTIVE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_CURRENT_COMMAND_PRIORITY, + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_OUT_OF_SERVICE, + PROP_BLINK_WARN_ENABLE, + PROP_EGRESS_TIME, + PROP_EGRESS_ACTIVE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_CURRENT_COMMAND_PRIORITY, -1 }; static const int Binary_Lighting_Output_Properties_Optional[] = { - PROP_DESCRIPTION, PROP_RELIABILITY, PROP_FEEDBACK_VALUE, PROP_POWER, - PROP_POLARITY, PROP_ELAPSED_ACTIVE_TIME, PROP_TIME_OF_ACTIVE_TIME_RESET, - PROP_STRIKE_COUNT, PROP_TIME_OF_STRIKE_COUNT_RESET, - PROP_EVENT_DETECTION_ENABLE, PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_VALUE_SOURCE, - PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, PROP_COMMAND_TIME_ARRAY, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_FEEDBACK_VALUE, + PROP_POWER, + PROP_POLARITY, + PROP_ELAPSED_ACTIVE_TIME, + PROP_TIME_OF_ACTIVE_TIME_RESET, + PROP_STRIKE_COUNT, + PROP_TIME_OF_STRIKE_COUNT_RESET, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 }; -static const int Binary_Output_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_POLARITY, PROP_PRIORITY_ARRAY, - PROP_RELINQUISH_DEFAULT, -#if (BACNET_PROTOCOL_REVISION >= 17) - PROP_CURRENT_COMMAND_PRIORITY, -#endif - -1 }; - -static const int Binary_Output_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_RELIABILITY, PROP_INACTIVE_TEXT, PROP_ACTIVE_TEXT, - PROP_CHANGE_OF_STATE_TIME, PROP_CHANGE_OF_STATE_COUNT, - PROP_TIME_OF_STATE_COUNT_RESET, PROP_ELAPSED_ACTIVE_TIME, - PROP_TIME_OF_ACTIVE_TIME_RESET, PROP_MINIMUM_OFF_TIME, PROP_MINIMUM_ON_TIME, - PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, PROP_FEEDBACK_VALUE, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_INTERFACE_VALUE, PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, - PROP_LAST_COMMAND_TIME, PROP_COMMAND_TIME_ARRAY, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Binary_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, -1 }; - -static const int Binary_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_INACTIVE_TEXT, PROP_ACTIVE_TEXT, - PROP_CHANGE_OF_STATE_TIME, PROP_CHANGE_OF_STATE_COUNT, - PROP_TIME_OF_STATE_COUNT_RESET, PROP_ELAPSED_ACTIVE_TIME, - PROP_TIME_OF_ACTIVE_TIME_RESET, PROP_MINIMUM_OFF_TIME, PROP_MINIMUM_ON_TIME, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_ALARM_VALUE, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_DETECTION_ENABLE, PROP_EVENT_ALGORITHM_INHIBIT_REF, - PROP_EVENT_ALGORITHM_INHIBIT, PROP_TIME_DELAY_NORMAL, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int BitString_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 -}; - -static const int BitString_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_ALARM_VALUES, PROP_BIT_MASK, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_CURRENT_COMMAND_PRIORITY, PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, - PROP_LAST_COMMAND_TIME, PROP_COMMAND_TIME_ARRAY, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Calendar_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_DATE_LIST, - -1 }; - -static const int Calendar_Properties_Optional[] = { PROP_DESCRIPTION, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Channel_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_LAST_PRIORITY, - PROP_WRITE_STATUS, PROP_STATUS_FLAGS, PROP_OUT_OF_SERVICE, - PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, PROP_CHANNEL_NUMBER, - PROP_CONTROL_GROUPS, -1 }; - -static const int Channel_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_EXECUTION_DELAY, PROP_ALLOW_GROUP_DELAY_INHIBIT, - PROP_EVENT_DETECTION_ENABLE, PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, - PROP_EVENT_STATE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_VALUE_SOURCE, PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, - -1 }; - -static const int Command_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_IN_PROCESS, - PROP_ALL_WRITES_SUCCESSFUL, PROP_ACTION, -1 }; - -static const int Command_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_ACTION_TEXT, PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_RELIABILITY, - PROP_EVENT_DETECTION_ENABLE, PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_VALUE_SOURCE, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int CharacterString_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 -}; - -static const int CharacterString_Value_Properties_Optional[] = { - PROP_DESCRIPTION, PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_ALARM_VALUES, PROP_FAULT_VALUES, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_CURRENT_COMMAND_PRIORITY, PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, - PROP_LAST_COMMAND_TIME, PROP_COMMAND_TIME_ARRAY, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 -}; - -static const int Color_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, - PROP_COLOR_COMMAND, PROP_IN_PROGRESS, PROP_DEFAULT_COLOR, - PROP_DEFAULT_FADE_TIME, -1 }; - -static const int Color_Properties_Optional[] = { PROP_RELIABILITY, - PROP_DESCRIPTION, PROP_TRANSITION, PROP_VALUE_SOURCE, PROP_AUDIT_LEVEL, - PROP_AUDITABLE_OPERATIONS, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Color_Temperature_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, PROP_COLOR_COMMAND, - PROP_IN_PROGRESS, PROP_DEFAULT_COLOR_TEMPERATURE, PROP_DEFAULT_FADE_TIME, - PROP_DEFAULT_RAMP_RATE, PROP_DEFAULT_STEP_INCREMENT, -1 -}; - -static const int Color_Temperature_Properties_Optional[] = { - PROP_DESCRIPTION, PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, - PROP_TRANSITION, PROP_VALUE_SOURCE, PROP_AUDIT_LEVEL, - PROP_AUDITABLE_OPERATIONS, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Credential_Data_Input_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_RELIABILITY, - PROP_OUT_OF_SERVICE, PROP_SUPPORTED_FORMATS, PROP_UPDATE_TIME, -1 -}; - -static const int Credential_Data_Input_Properties_Optional[] = { - PROP_DESCRIPTION, PROP_SUPPORTED_FORMAT_CLASSES, - PROP_EVENT_DETECTION_ENABLE, PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, - PROP_EVENT_STATE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 -}; - -static const int Date_Pattern_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 -}; - -static const int Date_Pattern_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Date_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - -1 }; - -static const int Date_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int DateTime_Pattern_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 -}; - -static const int DateTime_Pattern_Value_Properties_Optional[] = { - PROP_DESCRIPTION, PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_IS_UTC, PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 -}; - -static const int DateTime_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 -}; - -static const int DateTime_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_IS_UTC, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Device_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_SYSTEM_STATUS, PROP_VENDOR_NAME, - PROP_VENDOR_IDENTIFIER, PROP_MODEL_NAME, PROP_FIRMWARE_REVISION, - PROP_APPLICATION_SOFTWARE_VERSION, PROP_PROTOCOL_VERSION, - PROP_PROTOCOL_REVISION, PROP_PROTOCOL_SERVICES_SUPPORTED, - PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, PROP_OBJECT_LIST, - PROP_MAX_APDU_LENGTH_ACCEPTED, PROP_SEGMENTATION_SUPPORTED, - PROP_APDU_TIMEOUT, PROP_NUMBER_OF_APDU_RETRIES, PROP_DEVICE_ADDRESS_BINDING, - PROP_DATABASE_REVISION, -1 }; - -static const int Device_Properties_Optional[] = { PROP_LOCATION, - PROP_DESCRIPTION, PROP_STRUCTURED_OBJECT_LIST, PROP_MAX_SEGMENTS_ACCEPTED, - PROP_VT_CLASSES_SUPPORTED, PROP_ACTIVE_VT_SESSIONS, PROP_LOCAL_TIME, - PROP_LOCAL_DATE, PROP_UTC_OFFSET, PROP_DAYLIGHT_SAVINGS_STATUS, - PROP_APDU_SEGMENT_TIMEOUT, PROP_TIME_SYNCHRONIZATION_RECIPIENTS, - PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_CONFIGURATION_FILES, - PROP_LAST_RESTORE_TIME, PROP_BACKUP_FAILURE_TIMEOUT, - PROP_BACKUP_PREPARATION_TIME, PROP_RESTORE_PREPARATION_TIME, - PROP_RESTORE_COMPLETION_TIME, PROP_BACKUP_AND_RESTORE_STATE, - PROP_ACTIVE_COV_SUBSCRIPTIONS, PROP_LAST_RESTART_REASON, - PROP_TIME_OF_DEVICE_RESTART, PROP_RESTART_NOTIFICATION_RECIPIENTS, - PROP_UTC_TIME_SYNCHRONIZATION_RECIPIENTS, - PROP_TIME_SYNCHRONIZATION_INTERVAL, PROP_ALIGN_INTERVALS, - PROP_INTERVAL_OFFSET, PROP_SERIAL_NUMBER, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_DEPLOYED_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Elevator_Group_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_MACHINE_ROOM_ID, PROP_GROUP_ID, PROP_GROUP_MEMBERS, -1 -}; - -static const int Elevator_Group_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_GROUP_MODE, PROP_LANDING_CALLS, PROP_LANDING_CALL_CONTROL, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Escalator_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_ELEVATOR_GROUP, - PROP_GROUP_ID, PROP_INSTALLATION_ID, PROP_OPERATION_DIRECTION, - PROP_OUT_OF_SERVICE, PROP_PASSENGER_ALARM, -1 }; - -static const int Escalator_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_POWER_MODE, PROP_ESCALATOR_MODE, PROP_ENERGY_METER, - PROP_ENERGY_METER_REF, PROP_RELIABILITY, PROP_FAULT_SIGNALS, - PROP_TIME_DELAY, PROP_TIME_DELAY_NORMAL, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_EVENT_STATE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_ALGORITHM_INHIBIT, PROP_EVENT_ALGORITHM_INHIBIT_REF, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Event_Enrollment_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_EVENT_TYPE, - PROP_NOTIFY_TYPE, PROP_EVENT_PARAMETERS, PROP_OBJECT_PROPERTY_REFERENCE, - PROP_EVENT_STATE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFICATION_CLASS, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_DETECTION_ENABLE, PROP_STATUS_FLAGS, PROP_RELIABILITY, -1 -}; - -static const int Event_Enrollment_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_FAULT_TYPE, PROP_FAULT_PARAMETERS, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Event_Log_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, - PROP_ENABLE, PROP_STOP_WHEN_FULL, PROP_BUFFER_SIZE, PROP_LOG_BUFFER, - PROP_RECORD_COUNT, PROP_TOTAL_RECORD_COUNT, -1 }; - -static const int Event_Log_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_START_TIME, PROP_STOP_TIME, - PROP_NOTIFICATION_THRESHOLD, PROP_RECORDS_SINCE_NOTIFICATION, - PROP_LAST_NOTIFY_RECORD, PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_DETECTION_ENABLE, PROP_EVENT_ALGORITHM_INHIBIT_REF, - PROP_EVENT_ALGORITHM_INHIBIT, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int File_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_FILE_TYPE, PROP_FILE_SIZE, - PROP_MODIFICATION_DATE, PROP_ARCHIVE, PROP_READ_ONLY, - PROP_FILE_ACCESS_METHOD, -1 }; - -static const int File_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RECORD_COUNT, PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, - -1 }; - -static const int Global_Group_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_GROUP_MEMBERS, PROP_PRESENT_VALUE, - PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_MEMBER_STATUS_FLAGS, - PROP_OUT_OF_SERVICE, -1 }; - -static const int Global_Group_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_GROUP_MEMBER_NAMES, PROP_RELIABILITY, PROP_UPDATE_INTERVAL, - PROP_REQUESTED_UPDATE_INTERVAL, PROP_COV_RESUBSCRIPTION_INTERVAL, - PROP_CLIENT_COV_INCREMENT, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_COVU_PERIOD, PROP_COVU_RECIPIENTS, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Group_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_LIST_OF_GROUP_MEMBERS, - PROP_PRESENT_VALUE, -1 }; - -static const int Group_Properties_Optional[] = { PROP_DESCRIPTION, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Integer_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_UNITS, -1 }; - -static const int Integer_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_COV_INCREMENT, - PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, PROP_HIGH_LIMIT, PROP_LOW_LIMIT, - PROP_DEADBAND, PROP_LIMIT_ENABLE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, PROP_RESOLUTION, - PROP_FAULT_HIGH_LIMIT, PROP_FAULT_LOW_LIMIT, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Large_Analog_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_UNITS, -1 -}; - -static const int Large_Analog_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_COV_INCREMENT, - PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, PROP_HIGH_LIMIT, PROP_LOW_LIMIT, - PROP_DEADBAND, PROP_LIMIT_ENABLE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, PROP_RESOLUTION, - PROP_FAULT_HIGH_LIMIT, PROP_FAULT_LOW_LIMIT, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Lift_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_ELEVATOR_GROUP, - PROP_GROUP_ID, PROP_INSTALLATION_ID, PROP_CAR_POSITION, - PROP_CAR_MOVING_DIRECTION, PROP_CAR_DOOR_STATUS, PROP_PASSENGER_ALARM, - PROP_OUT_OF_SERVICE, PROP_FAULT_SIGNALS, -1 }; - -static const int Lift_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_FLOOR_TEXT, PROP_CAR_DOOR_TEXT, PROP_ASSIGNED_LANDING_CALLS, - PROP_MAKING_CAR_CALL, PROP_REGISTERED_CAR_CALL, PROP_CAR_ASSIGNED_DIRECTION, - PROP_CAR_DOOR_COMMAND, PROP_CAR_DOOR_ZONE, PROP_CAR_MODE, PROP_CAR_LOAD, - PROP_CAR_LOAD_UNITS, PROP_NEXT_STOPPING_FLOOR, PROP_TIME_DELAY, - PROP_TIME_DELAY_NORMAL, PROP_ENERGY_METER, PROP_ENERGY_METER_REF, - PROP_RELIABILITY, PROP_CAR_DRIVE_STATUS, PROP_LANDING_DOOR_STATUS, - PROP_HIGHER_DECK, PROP_LOWER_DECK, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_EVENT_STATE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Lighting_Output_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, PROP_LIGHTING_COMMAND, - PROP_IN_PROGRESS, PROP_STATUS_FLAGS, PROP_OUT_OF_SERVICE, - PROP_BLINK_WARN_ENABLE, PROP_EGRESS_TIME, PROP_EGRESS_ACTIVE, - PROP_DEFAULT_FADE_TIME, PROP_DEFAULT_RAMP_RATE, PROP_DEFAULT_STEP_INCREMENT, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_LIGHTING_COMMAND_DEFAULT_PRIORITY, PROP_CURRENT_COMMAND_PRIORITY, -1 -}; - -static const int Lighting_Output_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_TRANSITION, PROP_FEEDBACK_VALUE, PROP_POWER, - PROP_INSTANTANEOUS_POWER, PROP_MIN_ACTUAL_VALUE, PROP_MAX_ACTUAL_VALUE, - PROP_COV_INCREMENT, PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_VALUE_SOURCE, - PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, PROP_COMMAND_TIME_ARRAY, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Load_Control_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_REQUESTED_SHED_LEVEL, PROP_START_TIME, - PROP_SHED_DURATION, PROP_DUTY_WINDOW, PROP_ENABLE, PROP_EXPECTED_SHED_LEVEL, - PROP_ACTUAL_SHED_LEVEL, PROP_SHED_LEVELS, PROP_SHED_LEVEL_DESCRIPTIONS, - -1 }; - -static const int Load_Control_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_STATE_DESCRIPTION, PROP_RELIABILITY, PROP_FULL_DUTY_BASELINE, - PROP_NOTIFICATION_CLASS, PROP_TIME_DELAY, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_DETECTION_ENABLE, PROP_EVENT_ALGORITHM_INHIBIT_REF, - PROP_EVENT_ALGORITHM_INHIBIT, PROP_TIME_DELAY_NORMAL, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_VALUE_SOURCE, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Life_Safety_Point_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_MODE, - PROP_ACCEPTED_MODES, PROP_SILENCED, PROP_OPERATION_EXPECTED, -1 -}; - -static const int Life_Safety_Point_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_LIFE_SAFETY_ALARM_VALUES, PROP_ALARM_VALUES, PROP_FAULT_VALUES, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_MAINTENANCE_REQUIRED, PROP_SETTING, PROP_DIRECT_READING, PROP_UNITS, - PROP_MEMBER_OF, PROP_VALUE_SOURCE, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Life_Safety_Zone_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_TRACKING_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_MODE, - PROP_ACCEPTED_MODES, PROP_SILENCED, PROP_OPERATION_EXPECTED, - PROP_ZONE_MEMBERS, -1 -}; - -static const int Life_Safety_Zone_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_LIFE_SAFETY_ALARM_VALUES, PROP_ALARM_VALUES, PROP_FAULT_VALUES, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_MAINTENANCE_REQUIRED, PROP_MEMBER_OF, - PROP_VALUE_SOURCE, PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, - -1 }; - -static const int Loop_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, PROP_OUT_OF_SERVICE, PROP_OUTPUT_UNITS, - PROP_MANIPULATED_VARIABLE_REFERENCE, PROP_CONTROLLED_VARIABLE_REFERENCE, - PROP_CONTROLLED_VARIABLE_VALUE, PROP_CONTROLLED_VARIABLE_UNITS, - PROP_SETPOINT_REFERENCE, PROP_SETPOINT, PROP_ACTION, - PROP_PRIORITY_FOR_WRITING, -1 }; - -static const int Loop_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_PROPORTIONAL_CONSTANT, - PROP_PROPORTIONAL_CONSTANT_UNITS, PROP_INTEGRAL_CONSTANT, - PROP_INTEGRAL_CONSTANT_UNITS, PROP_DERIVATIVE_CONSTANT, - PROP_DERIVATIVE_CONSTANT_UNITS, PROP_BIAS, PROP_MAXIMUM_OUTPUT, - PROP_MINIMUM_OUTPUT, PROP_COV_INCREMENT, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_ERROR_LIMIT, PROP_DEADBAND, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_DETECTION_ENABLE, PROP_EVENT_ALGORITHM_INHIBIT_REF, - PROP_EVENT_ALGORITHM_INHIBIT, PROP_TIME_DELAY_NORMAL, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_LOW_DIFF_LIMIT, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Multistate_Input_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, - PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 -}; - -static const int Multistate_Input_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_RELIABILITY, PROP_STATE_TEXT, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_ALARM_VALUES, PROP_FAULT_VALUES, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_INTERFACE_VALUE, PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, - -1 }; - -static const int Multistate_Output_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, - PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, PROP_PRIORITY_ARRAY, +static const int Binary_Output_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_POLARITY, + PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, #if (BACNET_PROTOCOL_REVISION >= 17) PROP_CURRENT_COMMAND_PRIORITY, @@ -786,296 +594,1790 @@ static const int Multistate_Output_Properties_Required[] = { -1 }; -static const int Multistate_Output_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_DEVICE_TYPE, PROP_RELIABILITY, PROP_STATE_TEXT, PROP_TIME_DELAY, - PROP_NOTIFICATION_CLASS, PROP_FEEDBACK_VALUE, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_DETECTION_ENABLE, PROP_EVENT_ALGORITHM_INHIBIT_REF, - PROP_EVENT_ALGORITHM_INHIBIT, PROP_TIME_DELAY_NORMAL, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_INTERFACE_VALUE, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Binary_Output_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_RELIABILITY, + PROP_INACTIVE_TEXT, + PROP_ACTIVE_TEXT, + PROP_CHANGE_OF_STATE_TIME, + PROP_CHANGE_OF_STATE_COUNT, + PROP_TIME_OF_STATE_COUNT_RESET, + PROP_ELAPSED_ACTIVE_TIME, + PROP_TIME_OF_ACTIVE_TIME_RESET, + PROP_MINIMUM_OFF_TIME, + PROP_MINIMUM_ON_TIME, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_FEEDBACK_VALUE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_INTERFACE_VALUE, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Multistate_Value_Properties_Required[] = { +static const int Binary_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, -1 +}; + +static const int Binary_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_INACTIVE_TEXT, + PROP_ACTIVE_TEXT, + PROP_CHANGE_OF_STATE_TIME, + PROP_CHANGE_OF_STATE_COUNT, + PROP_TIME_OF_STATE_COUNT_RESET, + PROP_ELAPSED_ACTIVE_TIME, + PROP_TIME_OF_ACTIVE_TIME_RESET, + PROP_MINIMUM_OFF_TIME, + PROP_MINIMUM_ON_TIME, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int BitString_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; + +static const int BitString_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUES, + PROP_BIT_MASK, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Calendar_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, - PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 + PROP_PRESENT_VALUE, PROP_DATE_LIST, -1 }; -static const int Multistate_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_STATE_TEXT, PROP_PRIORITY_ARRAY, - PROP_RELINQUISH_DEFAULT, PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, - PROP_ALARM_VALUES, PROP_FAULT_VALUES, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_DETECTION_ENABLE, PROP_EVENT_ALGORITHM_INHIBIT_REF, - PROP_EVENT_ALGORITHM_INHIBIT, PROP_TIME_DELAY_NORMAL, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Calendar_Properties_Optional[] = { PROP_DESCRIPTION, PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, -1 }; -static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY, - PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, - PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_CHANGES_PENDING, - PROP_APDU_LENGTH, PROP_LINK_SPEED, -1 }; - -static const int Network_Port_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_REFERENCE_PORT, PROP_COMMAND, PROP_MAC_ADDRESS, PROP_LINK_SPEEDS, - PROP_LINK_SPEED_AUTONEGOTIATE, PROP_NETWORK_INTERFACE_NAME, - PROP_BACNET_IP_MODE, PROP_IP_ADDRESS, PROP_BACNET_IP_UDP_PORT, - PROP_IP_SUBNET_MASK, PROP_IP_DEFAULT_GATEWAY, - PROP_BACNET_IP_MULTICAST_ADDRESS, PROP_IP_DNS_SERVER, PROP_IP_DHCP_ENABLE, - PROP_IP_DHCP_LEASE_TIME, PROP_IP_DHCP_LEASE_TIME_REMAINING, - PROP_IP_DHCP_SERVER, PROP_BACNET_IP_NAT_TRAVERSAL, - PROP_BACNET_IP_GLOBAL_ADDRESS, PROP_BBMD_BROADCAST_DISTRIBUTION_TABLE, - PROP_BBMD_ACCEPT_FD_REGISTRATIONS, PROP_BBMD_FOREIGN_DEVICE_TABLE, - PROP_FD_BBMD_ADDRESS, PROP_FD_SUBSCRIPTION_LIFETIME, PROP_BACNET_IPV6_MODE, - PROP_IPV6_ADDRESS, PROP_IPV6_PREFIX_LENGTH, PROP_BACNET_IPV6_UDP_PORT, - PROP_IPV6_DEFAULT_GATEWAY, PROP_BACNET_IPV6_MULTICAST_ADDRESS, - PROP_IPV6_DNS_SERVER, PROP_IPV6_AUTO_ADDRESSING_ENABLE, - PROP_IPV6_DHCP_LEASE_TIME, PROP_IPV6_DHCP_LEASE_TIME_REMAINING, - PROP_IPV6_DHCP_SERVER, PROP_IPV6_ZONE_INDEX, PROP_MAX_MASTER, - PROP_MAX_INFO_FRAMES, PROP_SLAVE_PROXY_ENABLE, - PROP_MANUAL_SLAVE_ADDRESS_BINDING, PROP_AUTO_SLAVE_DISCOVERY, - PROP_SLAVE_ADDRESS_BINDING, PROP_VIRTUAL_MAC_ADDRESS_TABLE, - PROP_ROUTING_TABLE, PROP_EVENT_DETECTION_ENABLE, PROP_NOTIFICATION_CLASS, - PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, - PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_STATE, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Network_Security_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_BASE_DEVICE_SECURITY_POLICY, PROP_NETWORK_ACCESS_SECURITY_POLICIES, - PROP_SECURITY_TIME_WINDOW, PROP_PACKET_REORDER_TIME, - PROP_DISTRIBUTION_KEY_REVISION, PROP_KEY_SETS, PROP_LAST_KEY_SERVER, - PROP_SECURITY_PDU_TIMEOUT, PROP_UPDATE_KEY_SET_TIMEOUT, - PROP_SUPPORTED_SECURITY_ALGORITHM, PROP_DO_NOT_HIDE, -1 +static const int Channel_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_LAST_PRIORITY, + PROP_WRITE_STATUS, + PROP_STATUS_FLAGS, + PROP_OUT_OF_SERVICE, + PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, + PROP_CHANNEL_NUMBER, + PROP_CONTROL_GROUPS, + -1 }; -static const int Network_Security_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; - -static const int Notification_Class_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_NOTIFICATION_CLASS, PROP_PRIORITY, PROP_ACK_REQUIRED, - PROP_RECIPIENT_LIST, -1 +static const int Channel_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_EXECUTION_DELAY, + PROP_ALLOW_GROUP_DELAY_INHIBIT, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_EVENT_STATE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_VALUE_SOURCE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 }; -static const int Notification_Class_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_RELIABILITY, - PROP_EVENT_DETECTION_ENABLE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Command_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_IN_PROCESS, + PROP_ALL_WRITES_SUCCESSFUL, + PROP_ACTION, + -1 }; -static const int Notification_Forwarder_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_RECIPIENT_LIST, PROP_SUBSCRIBED_RECIPIENTS, - PROP_PROCESS_IDENTIFIER_FILTER, PROP_LOCAL_FORWARDING_ONLY, -1 +static const int Command_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_ACTION_TEXT, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_VALUE_SOURCE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 }; -static const int Notification_Forwarder_Properties_Optional[] = { - PROP_DESCRIPTION, PROP_PORT_FILTER, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 +static const int CharacterString_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 }; -static const int OctetString_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +static const int CharacterString_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUES, + PROP_FAULT_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 }; -static const int OctetString_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Positive_Integer_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_UNITS, -1 +static const int Color_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, PROP_COLOR_COMMAND, + PROP_IN_PROGRESS, PROP_DEFAULT_COLOR, + PROP_DEFAULT_FADE_TIME, -1 }; -static const int Positive_Integer_Value_Properties_Optional[] = { - PROP_DESCRIPTION, PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, PROP_COV_INCREMENT, - PROP_TIME_DELAY, PROP_NOTIFICATION_CLASS, PROP_HIGH_LIMIT, PROP_LOW_LIMIT, - PROP_DEADBAND, PROP_LIMIT_ENABLE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, - PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, PROP_RESOLUTION, - PROP_FAULT_HIGH_LIMIT, PROP_FAULT_LOW_LIMIT, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, +static const int Color_Properties_Optional[] = { + PROP_RELIABILITY, PROP_DESCRIPTION, + PROP_TRANSITION, PROP_VALUE_SOURCE, + PROP_AUDIT_LEVEL, PROP_AUDITABLE_OPERATIONS, + PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; -static const int Program_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PROGRAM_STATE, PROP_PROGRAM_CHANGE, - PROP_STATUS_FLAGS, PROP_OUT_OF_SERVICE, -1 }; +static const int Color_Temperature_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, + PROP_COLOR_COMMAND, + PROP_IN_PROGRESS, + PROP_DEFAULT_COLOR_TEMPERATURE, + PROP_DEFAULT_FADE_TIME, + PROP_DEFAULT_RAMP_RATE, + PROP_DEFAULT_STEP_INCREMENT, + -1 +}; -static const int Program_Properties_Optional[] = { PROP_REASON_FOR_HALT, - PROP_DESCRIPTION_OF_HALT, PROP_PROGRAM_LOCATION, PROP_DESCRIPTION, - PROP_INSTANCE_OF, PROP_RELIABILITY, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_EVENT_STATE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Color_Temperature_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_TRANSITION, + PROP_VALUE_SOURCE, + PROP_AUDIT_LEVEL, + PROP_AUDITABLE_OPERATIONS, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Credential_Data_Input_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, PROP_SUPPORTED_FORMATS, + PROP_UPDATE_TIME, -1 +}; + +static const int Credential_Data_Input_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_SUPPORTED_FORMAT_CLASSES, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_EVENT_STATE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Date_Pattern_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; + +static const int Date_Pattern_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Date_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; + +static const int Date_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int DateTime_Pattern_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; + +static const int DateTime_Pattern_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_IS_UTC, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int DateTime_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; + +static const int DateTime_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_IS_UTC, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Device_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_SYSTEM_STATUS, + PROP_VENDOR_NAME, + PROP_VENDOR_IDENTIFIER, + PROP_MODEL_NAME, + PROP_FIRMWARE_REVISION, + PROP_APPLICATION_SOFTWARE_VERSION, + PROP_PROTOCOL_VERSION, + PROP_PROTOCOL_REVISION, + PROP_PROTOCOL_SERVICES_SUPPORTED, + PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, + PROP_OBJECT_LIST, + PROP_MAX_APDU_LENGTH_ACCEPTED, + PROP_SEGMENTATION_SUPPORTED, + PROP_APDU_TIMEOUT, + PROP_NUMBER_OF_APDU_RETRIES, + PROP_DEVICE_ADDRESS_BINDING, + PROP_DATABASE_REVISION, + -1 +}; + +static const int Device_Properties_Optional[] = { + PROP_LOCATION, + PROP_DESCRIPTION, + PROP_STRUCTURED_OBJECT_LIST, + PROP_MAX_SEGMENTS_ACCEPTED, + PROP_VT_CLASSES_SUPPORTED, + PROP_ACTIVE_VT_SESSIONS, + PROP_LOCAL_TIME, + PROP_LOCAL_DATE, + PROP_UTC_OFFSET, + PROP_DAYLIGHT_SAVINGS_STATUS, + PROP_APDU_SEGMENT_TIMEOUT, + PROP_TIME_SYNCHRONIZATION_RECIPIENTS, + PROP_MAX_MASTER, + PROP_MAX_INFO_FRAMES, + PROP_CONFIGURATION_FILES, + PROP_LAST_RESTORE_TIME, + PROP_BACKUP_FAILURE_TIMEOUT, + PROP_BACKUP_PREPARATION_TIME, + PROP_RESTORE_PREPARATION_TIME, + PROP_RESTORE_COMPLETION_TIME, + PROP_BACKUP_AND_RESTORE_STATE, + PROP_ACTIVE_COV_SUBSCRIPTIONS, + PROP_LAST_RESTART_REASON, + PROP_TIME_OF_DEVICE_RESTART, + PROP_RESTART_NOTIFICATION_RECIPIENTS, + PROP_UTC_TIME_SYNCHRONIZATION_RECIPIENTS, + PROP_TIME_SYNCHRONIZATION_INTERVAL, + PROP_ALIGN_INTERVALS, + PROP_INTERVAL_OFFSET, + PROP_SERIAL_NUMBER, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_DEPLOYED_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Elevator_Group_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_MACHINE_ROOM_ID, + PROP_GROUP_ID, + PROP_GROUP_MEMBERS, + -1 +}; + +static const int Elevator_Group_Properties_Optional[] = { + PROP_DESCRIPTION, PROP_GROUP_MODE, + PROP_LANDING_CALLS, PROP_LANDING_CALL_CONTROL, + PROP_TAGS, PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, -1 +}; + +static const int Escalator_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_STATUS_FLAGS, + PROP_ELEVATOR_GROUP, + PROP_GROUP_ID, + PROP_INSTALLATION_ID, + PROP_OPERATION_DIRECTION, + PROP_OUT_OF_SERVICE, + PROP_PASSENGER_ALARM, + -1 }; + +static const int Escalator_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_POWER_MODE, + PROP_ESCALATOR_MODE, + PROP_ENERGY_METER, + PROP_ENERGY_METER_REF, + PROP_RELIABILITY, + PROP_FAULT_SIGNALS, + PROP_TIME_DELAY, + PROP_TIME_DELAY_NORMAL, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_EVENT_STATE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Event_Enrollment_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_EVENT_TYPE, + PROP_NOTIFY_TYPE, + PROP_EVENT_PARAMETERS, + PROP_OBJECT_PROPERTY_REFERENCE, + PROP_EVENT_STATE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_DETECTION_ENABLE, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + -1 +}; + +static const int Event_Enrollment_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_FAULT_TYPE, + PROP_FAULT_PARAMETERS, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Event_Log_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_ENABLE, + PROP_STOP_WHEN_FULL, PROP_BUFFER_SIZE, PROP_LOG_BUFFER, + PROP_RECORD_COUNT, PROP_TOTAL_RECORD_COUNT, -1 +}; + +static const int Event_Log_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_START_TIME, + PROP_STOP_TIME, + PROP_NOTIFICATION_THRESHOLD, + PROP_RECORDS_SINCE_NOTIFICATION, + PROP_LAST_NOTIFY_RECORD, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int File_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_FILE_TYPE, + PROP_FILE_SIZE, + PROP_MODIFICATION_DATE, + PROP_ARCHIVE, + PROP_READ_ONLY, + PROP_FILE_ACCESS_METHOD, + -1 }; + +static const int File_Properties_Optional[] = { + PROP_DESCRIPTION, PROP_RECORD_COUNT, PROP_TAGS, + PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 +}; + +static const int Global_Group_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_GROUP_MEMBERS, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, + PROP_EVENT_STATE, PROP_MEMBER_STATUS_FLAGS, + PROP_OUT_OF_SERVICE, -1 +}; + +static const int Global_Group_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_GROUP_MEMBER_NAMES, + PROP_RELIABILITY, + PROP_UPDATE_INTERVAL, + PROP_REQUESTED_UPDATE_INTERVAL, + PROP_COV_RESUBSCRIPTION_INTERVAL, + PROP_CLIENT_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_COVU_PERIOD, + PROP_COVU_RECIPIENTS, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Group_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_LIST_OF_GROUP_MEMBERS, PROP_PRESENT_VALUE, -1 +}; + +static const int Group_Properties_Optional[] = { PROP_DESCRIPTION, PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, -1 }; + +static const int Integer_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_UNITS, + -1 }; + +static const int Integer_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_DEADBAND, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_RESOLUTION, + PROP_FAULT_HIGH_LIMIT, + PROP_FAULT_LOW_LIMIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Large_Analog_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_UNITS, + -1 +}; + +static const int Large_Analog_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_DEADBAND, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_RESOLUTION, + PROP_FAULT_HIGH_LIMIT, + PROP_FAULT_LOW_LIMIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Lift_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, + PROP_ELEVATOR_GROUP, PROP_GROUP_ID, + PROP_INSTALLATION_ID, PROP_CAR_POSITION, + PROP_CAR_MOVING_DIRECTION, PROP_CAR_DOOR_STATUS, + PROP_PASSENGER_ALARM, PROP_OUT_OF_SERVICE, + PROP_FAULT_SIGNALS, -1 +}; + +static const int Lift_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_FLOOR_TEXT, + PROP_CAR_DOOR_TEXT, + PROP_ASSIGNED_LANDING_CALLS, + PROP_MAKING_CAR_CALL, + PROP_REGISTERED_CAR_CALL, + PROP_CAR_ASSIGNED_DIRECTION, + PROP_CAR_DOOR_COMMAND, + PROP_CAR_DOOR_ZONE, + PROP_CAR_MODE, + PROP_CAR_LOAD, + PROP_CAR_LOAD_UNITS, + PROP_NEXT_STOPPING_FLOOR, + PROP_TIME_DELAY, + PROP_TIME_DELAY_NORMAL, + PROP_ENERGY_METER, + PROP_ENERGY_METER_REF, + PROP_RELIABILITY, + PROP_CAR_DRIVE_STATUS, + PROP_LANDING_DOOR_STATUS, + PROP_HIGHER_DECK, + PROP_LOWER_DECK, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_EVENT_STATE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Lighting_Output_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, + PROP_LIGHTING_COMMAND, + PROP_IN_PROGRESS, + PROP_STATUS_FLAGS, + PROP_OUT_OF_SERVICE, + PROP_BLINK_WARN_ENABLE, + PROP_EGRESS_TIME, + PROP_EGRESS_ACTIVE, + PROP_DEFAULT_FADE_TIME, + PROP_DEFAULT_RAMP_RATE, + PROP_DEFAULT_STEP_INCREMENT, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_LIGHTING_COMMAND_DEFAULT_PRIORITY, + PROP_CURRENT_COMMAND_PRIORITY, + -1 +}; + +static const int Lighting_Output_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_TRANSITION, + PROP_FEEDBACK_VALUE, + PROP_POWER, + PROP_INSTANTANEOUS_POWER, + PROP_MIN_ACTUAL_VALUE, + PROP_MAX_ACTUAL_VALUE, + PROP_COV_INCREMENT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Load_Control_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_REQUESTED_SHED_LEVEL, + PROP_START_TIME, + PROP_SHED_DURATION, + PROP_DUTY_WINDOW, + PROP_ENABLE, + PROP_EXPECTED_SHED_LEVEL, + PROP_ACTUAL_SHED_LEVEL, + PROP_SHED_LEVELS, + PROP_SHED_LEVEL_DESCRIPTIONS, + -1 +}; + +static const int Load_Control_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_STATE_DESCRIPTION, + PROP_RELIABILITY, + PROP_FULL_DUTY_BASELINE, + PROP_NOTIFICATION_CLASS, + PROP_TIME_DELAY, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_VALUE_SOURCE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Life_Safety_Point_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, PROP_STATUS_FLAGS, + PROP_EVENT_STATE, PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, PROP_MODE, + PROP_ACCEPTED_MODES, PROP_SILENCED, + PROP_OPERATION_EXPECTED, -1 +}; + +static const int Life_Safety_Point_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_LIFE_SAFETY_ALARM_VALUES, + PROP_ALARM_VALUES, + PROP_FAULT_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_MAINTENANCE_REQUIRED, + PROP_SETTING, + PROP_DIRECT_READING, + PROP_UNITS, + PROP_MEMBER_OF, + PROP_VALUE_SOURCE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Life_Safety_Zone_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_TRACKING_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_MODE, + PROP_ACCEPTED_MODES, + PROP_SILENCED, + PROP_OPERATION_EXPECTED, + PROP_ZONE_MEMBERS, + -1 +}; + +static const int Life_Safety_Zone_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_LIFE_SAFETY_ALARM_VALUES, + PROP_ALARM_VALUES, + PROP_FAULT_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_MAINTENANCE_REQUIRED, + PROP_MEMBER_OF, + PROP_VALUE_SOURCE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Loop_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_OUTPUT_UNITS, + PROP_MANIPULATED_VARIABLE_REFERENCE, + PROP_CONTROLLED_VARIABLE_REFERENCE, + PROP_CONTROLLED_VARIABLE_VALUE, + PROP_CONTROLLED_VARIABLE_UNITS, + PROP_SETPOINT_REFERENCE, + PROP_SETPOINT, + PROP_ACTION, + PROP_PRIORITY_FOR_WRITING, + -1 +}; + +static const int Loop_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_PROPORTIONAL_CONSTANT, + PROP_PROPORTIONAL_CONSTANT_UNITS, + PROP_INTEGRAL_CONSTANT, + PROP_INTEGRAL_CONSTANT_UNITS, + PROP_DERIVATIVE_CONSTANT, + PROP_DERIVATIVE_CONSTANT_UNITS, + PROP_BIAS, + PROP_MAXIMUM_OUTPUT, + PROP_MINIMUM_OUTPUT, + PROP_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ERROR_LIMIT, + PROP_DEADBAND, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_LOW_DIFF_LIMIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Multistate_Input_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 +}; + +static const int Multistate_Input_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_RELIABILITY, + PROP_STATE_TEXT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUES, + PROP_FAULT_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_INTERFACE_VALUE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Multistate_Output_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_NUMBER_OF_STATES, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, +#if (BACNET_PROTOCOL_REVISION >= 17) + PROP_CURRENT_COMMAND_PRIORITY, +#endif + -1 +}; + +static const int Multistate_Output_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_DEVICE_TYPE, + PROP_RELIABILITY, + PROP_STATE_TEXT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_FEEDBACK_VALUE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_INTERFACE_VALUE, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Multistate_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, PROP_NUMBER_OF_STATES, -1 +}; + +static const int Multistate_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_STATE_TEXT, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_ALARM_VALUES, + PROP_FAULT_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Network_Port_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, + PROP_RELIABILITY, PROP_OUT_OF_SERVICE, + PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, + PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, + PROP_CHANGES_PENDING, PROP_APDU_LENGTH, + PROP_LINK_SPEED, -1 +}; + +static const int Network_Port_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_REFERENCE_PORT, + PROP_COMMAND, + PROP_MAC_ADDRESS, + PROP_LINK_SPEEDS, + PROP_LINK_SPEED_AUTONEGOTIATE, + PROP_NETWORK_INTERFACE_NAME, + PROP_BACNET_IP_MODE, + PROP_IP_ADDRESS, + PROP_BACNET_IP_UDP_PORT, + PROP_IP_SUBNET_MASK, + PROP_IP_DEFAULT_GATEWAY, + PROP_BACNET_IP_MULTICAST_ADDRESS, + PROP_IP_DNS_SERVER, + PROP_IP_DHCP_ENABLE, + PROP_IP_DHCP_LEASE_TIME, + PROP_IP_DHCP_LEASE_TIME_REMAINING, + PROP_IP_DHCP_SERVER, + PROP_BACNET_IP_NAT_TRAVERSAL, + PROP_BACNET_IP_GLOBAL_ADDRESS, + PROP_BBMD_BROADCAST_DISTRIBUTION_TABLE, + PROP_BBMD_ACCEPT_FD_REGISTRATIONS, + PROP_BBMD_FOREIGN_DEVICE_TABLE, + PROP_FD_BBMD_ADDRESS, + PROP_FD_SUBSCRIPTION_LIFETIME, + PROP_BACNET_IPV6_MODE, + PROP_IPV6_ADDRESS, + PROP_IPV6_PREFIX_LENGTH, + PROP_BACNET_IPV6_UDP_PORT, + PROP_IPV6_DEFAULT_GATEWAY, + PROP_BACNET_IPV6_MULTICAST_ADDRESS, + PROP_IPV6_DNS_SERVER, + PROP_IPV6_AUTO_ADDRESSING_ENABLE, + PROP_IPV6_DHCP_LEASE_TIME, + PROP_IPV6_DHCP_LEASE_TIME_REMAINING, + PROP_IPV6_DHCP_SERVER, + PROP_IPV6_ZONE_INDEX, + PROP_MAX_MASTER, + PROP_MAX_INFO_FRAMES, + PROP_SLAVE_PROXY_ENABLE, + PROP_MANUAL_SLAVE_ADDRESS_BINDING, + PROP_AUTO_SLAVE_DISCOVERY, + PROP_SLAVE_ADDRESS_BINDING, + PROP_VIRTUAL_MAC_ADDRESS_TABLE, + PROP_ROUTING_TABLE, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_STATE, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Network_Security_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_BASE_DEVICE_SECURITY_POLICY, + PROP_NETWORK_ACCESS_SECURITY_POLICIES, + PROP_SECURITY_TIME_WINDOW, + PROP_PACKET_REORDER_TIME, + PROP_DISTRIBUTION_KEY_REVISION, + PROP_KEY_SETS, + PROP_LAST_KEY_SERVER, + PROP_SECURITY_PDU_TIMEOUT, + PROP_UPDATE_KEY_SET_TIMEOUT, + PROP_SUPPORTED_SECURITY_ALGORITHM, + PROP_DO_NOT_HIDE, + -1 +}; + +static const int Network_Security_Properties_Optional[] = { + PROP_DESCRIPTION, PROP_TAGS, PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 +}; + +static const int Notification_Class_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_NOTIFICATION_CLASS, + PROP_PRIORITY, PROP_ACK_REQUIRED, + PROP_RECIPIENT_LIST, -1 +}; + +static const int Notification_Class_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Notification_Forwarder_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_RECIPIENT_LIST, + PROP_SUBSCRIBED_RECIPIENTS, + PROP_PROCESS_IDENTIFIER_FILTER, + PROP_LOCAL_FORWARDING_ONLY, + -1 +}; + +static const int Notification_Forwarder_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_PORT_FILTER, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int OctetString_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; + +static const int OctetString_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Positive_Integer_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_UNITS, + -1 +}; + +static const int Positive_Integer_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_COV_INCREMENT, + PROP_TIME_DELAY, + PROP_NOTIFICATION_CLASS, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_DEADBAND, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_RESOLUTION, + PROP_FAULT_HIGH_LIMIT, + PROP_FAULT_LOW_LIMIT, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; + +static const int Program_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PROGRAM_STATE, + PROP_PROGRAM_CHANGE, PROP_STATUS_FLAGS, + PROP_OUT_OF_SERVICE, -1 +}; + +static const int Program_Properties_Optional[] = { + PROP_REASON_FOR_HALT, + PROP_DESCRIPTION_OF_HALT, + PROP_PROGRAM_LOCATION, + PROP_DESCRIPTION, + PROP_INSTANCE_OF, + PROP_RELIABILITY, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_EVENT_STATE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; static const int Pulse_Converter_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, PROP_EVENT_STATE, - PROP_OUT_OF_SERVICE, PROP_UNITS, PROP_SCALE_FACTOR, PROP_ADJUST_VALUE, - PROP_COUNT, PROP_UPDATE_TIME, PROP_COUNT_CHANGE_TIME, - PROP_COUNT_BEFORE_CHANGE, -1 + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_OUT_OF_SERVICE, + PROP_UNITS, + PROP_SCALE_FACTOR, + PROP_ADJUST_VALUE, + PROP_COUNT, + PROP_UPDATE_TIME, + PROP_COUNT_CHANGE_TIME, + PROP_COUNT_BEFORE_CHANGE, + -1 }; -static const int Pulse_Converter_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_INPUT_REFERENCE, PROP_RELIABILITY, PROP_COV_INCREMENT, PROP_COV_PERIOD, - PROP_NOTIFICATION_CLASS, PROP_TIME_DELAY, PROP_HIGH_LIMIT, PROP_LOW_LIMIT, - PROP_DEADBAND, PROP_LIMIT_ENABLE, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_TIME_DELAY_NORMAL, PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Pulse_Converter_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_INPUT_REFERENCE, + PROP_RELIABILITY, + PROP_COV_INCREMENT, + PROP_COV_PERIOD, + PROP_NOTIFICATION_CLASS, + PROP_TIME_DELAY, + PROP_HIGH_LIMIT, + PROP_LOW_LIMIT, + PROP_DEADBAND, + PROP_LIMIT_ENABLE, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_TIME_DELAY_NORMAL, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Schedule_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, - PROP_EFFECTIVE_PERIOD, PROP_SCHEDULE_DEFAULT, - PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, PROP_PRIORITY_FOR_WRITING, - PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, -1 }; +static const int Schedule_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_EFFECTIVE_PERIOD, + PROP_SCHEDULE_DEFAULT, + PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, + PROP_PRIORITY_FOR_WRITING, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + -1 +}; -static const int Schedule_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_WEEKLY_SCHEDULE, PROP_EXCEPTION_SCHEDULE, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_EVENT_STATE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Schedule_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_WEEKLY_SCHEDULE, + PROP_EXCEPTION_SCHEDULE, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_EVENT_STATE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; static const int Staging_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_PRESENT_STAGE, - PROP_STAGES, PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_RELIABILITY, - PROP_OUT_OF_SERVICE, PROP_UNITS, PROP_TARGET_REFERENCES, - PROP_PRIORITY_FOR_WRITING, PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, + PROP_PRESENT_STAGE, + PROP_STAGES, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_UNITS, + PROP_TARGET_REFERENCES, + PROP_PRIORITY_FOR_WRITING, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + -1 }; -static const int Staging_Properties_Optional[] = { PROP_STAGE_NAMES, - PROP_DESCRIPTION, PROP_DEFAULT_PRESENT_VALUE, PROP_COV_INCREMENT, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_VALUE_SOURCE, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Staging_Properties_Optional[] = { + PROP_STAGE_NAMES, + PROP_DESCRIPTION, + PROP_DEFAULT_PRESENT_VALUE, + PROP_COV_INCREMENT, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_VALUE_SOURCE, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; static const int Structured_View_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_NODE_TYPE, - PROP_SUBORDINATE_LIST, -1 + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_NODE_TYPE, PROP_SUBORDINATE_LIST, -1 }; -static const int Structured_View_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_NODE_SUBTYPE, PROP_SUBORDINATE_ANNOTATIONS, PROP_SUBORDINATE_TAGS, - PROP_SUBORDINATE_NODE_TYPES, PROP_SUBORDINATE_RELATIONSHIPS, - PROP_DEFAULT_SUBORDINATE_RELATIONSHIP, PROP_REPRESENTS, PROP_TAGS, - PROP_PROFILE_LOCATION, PROP_PROFILE_NAME, -1 }; +static const int Structured_View_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_NODE_SUBTYPE, + PROP_SUBORDINATE_ANNOTATIONS, + PROP_SUBORDINATE_TAGS, + PROP_SUBORDINATE_NODE_TYPES, + PROP_SUBORDINATE_RELATIONSHIPS, + PROP_DEFAULT_SUBORDINATE_RELATIONSHIP, + PROP_REPRESENTS, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; static const int Time_Pattern_Value_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 }; -static const int Time_Pattern_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Time_Pattern_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Time_Value_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - -1 }; +static const int Time_Value_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, + PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, -1 +}; -static const int Time_Value_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, - PROP_PRIORITY_ARRAY, PROP_RELINQUISH_DEFAULT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_EVENT_DETECTION_ENABLE, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_CURRENT_COMMAND_PRIORITY, - PROP_VALUE_SOURCE, PROP_VALUE_SOURCE_ARRAY, PROP_LAST_COMMAND_TIME, - PROP_COMMAND_TIME_ARRAY, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Time_Value_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_PRIORITY_ARRAY, + PROP_RELINQUISH_DEFAULT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_CURRENT_COMMAND_PRIORITY, + PROP_VALUE_SOURCE, + PROP_VALUE_SOURCE_ARRAY, + PROP_LAST_COMMAND_TIME, + PROP_COMMAND_TIME_ARRAY, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; -static const int Timer_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, PROP_STATUS_FLAGS, - PROP_TIMER_STATE, PROP_TIMER_RUNNING, -1 }; +static const int Timer_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, PROP_PRESENT_VALUE, + PROP_STATUS_FLAGS, PROP_TIMER_STATE, + PROP_TIMER_RUNNING, -1 +}; -static const int Timer_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_EVENT_STATE, PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_UPDATE_TIME, - PROP_LAST_STATE_CHANGE, PROP_EXPIRATION_TIME, PROP_INITIAL_TIMEOUT, - PROP_DEFAULT_TIMEOUT, PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, - PROP_RESOLUTION, PROP_STATE_CHANGE_VALUES, - PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, PROP_PRIORITY_FOR_WRITING, - PROP_EVENT_DETECTION_ENABLE, PROP_NOTIFICATION_CLASS, PROP_TIME_DELAY, - PROP_TIME_DELAY_NORMAL, PROP_ALARM_VALUES, PROP_EVENT_ENABLE, - PROP_ACKED_TRANSITIONS, PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, - PROP_EVENT_MESSAGE_TEXTS, PROP_EVENT_MESSAGE_TEXTS_CONFIG, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Timer_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_EVENT_STATE, + PROP_RELIABILITY, + PROP_OUT_OF_SERVICE, + PROP_UPDATE_TIME, + PROP_LAST_STATE_CHANGE, + PROP_EXPIRATION_TIME, + PROP_INITIAL_TIMEOUT, + PROP_DEFAULT_TIMEOUT, + PROP_MIN_PRES_VALUE, + PROP_MAX_PRES_VALUE, + PROP_RESOLUTION, + PROP_STATE_CHANGE_VALUES, + PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES, + PROP_PRIORITY_FOR_WRITING, + PROP_EVENT_DETECTION_ENABLE, + PROP_NOTIFICATION_CLASS, + PROP_TIME_DELAY, + PROP_TIME_DELAY_NORMAL, + PROP_ALARM_VALUES, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; static const int Trend_Log_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_ENABLE, PROP_STOP_WHEN_FULL, - PROP_BUFFER_SIZE, PROP_LOG_BUFFER, PROP_RECORD_COUNT, - PROP_TOTAL_RECORD_COUNT, PROP_LOGGING_TYPE, PROP_STATUS_FLAGS, - PROP_EVENT_STATE, -1 }; + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_ENABLE, + PROP_STOP_WHEN_FULL, + PROP_BUFFER_SIZE, + PROP_LOG_BUFFER, + PROP_RECORD_COUNT, + PROP_TOTAL_RECORD_COUNT, + PROP_LOGGING_TYPE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + -1 }; -static const int Trend_Log_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_START_TIME, PROP_STOP_TIME, PROP_LOG_DEVICE_OBJECT_PROPERTY, - PROP_LOG_INTERVAL, PROP_COV_RESUBSCRIPTION_INTERVAL, - PROP_CLIENT_COV_INCREMENT, PROP_ALIGN_INTERVALS, PROP_INTERVAL_OFFSET, - PROP_TRIGGER, PROP_RELIABILITY, PROP_NOTIFICATION_THRESHOLD, - PROP_RECORDS_SINCE_NOTIFICATION, PROP_LAST_NOTIFY_RECORD, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; - -static const int Trend_Log_Multiple_Properties_Required[] = { - PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, - PROP_STATUS_FLAGS, PROP_EVENT_STATE, PROP_ENABLE, - PROP_LOG_DEVICE_OBJECT_PROPERTY, PROP_LOGGING_TYPE, PROP_LOG_INTERVAL, - PROP_STOP_WHEN_FULL, PROP_BUFFER_SIZE, PROP_LOG_BUFFER, PROP_RECORD_COUNT, - PROP_TOTAL_RECORD_COUNT, -1 +static const int Trend_Log_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_START_TIME, + PROP_STOP_TIME, + PROP_LOG_DEVICE_OBJECT_PROPERTY, + PROP_LOG_INTERVAL, + PROP_COV_RESUBSCRIPTION_INTERVAL, + PROP_CLIENT_COV_INCREMENT, + PROP_ALIGN_INTERVALS, + PROP_INTERVAL_OFFSET, + PROP_TRIGGER, + PROP_RELIABILITY, + PROP_NOTIFICATION_THRESHOLD, + PROP_RECORDS_SINCE_NOTIFICATION, + PROP_LAST_NOTIFY_RECORD, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 }; -static const int Trend_Log_Multiple_Properties_Optional[] = { PROP_DESCRIPTION, - PROP_RELIABILITY, PROP_START_TIME, PROP_STOP_TIME, PROP_ALIGN_INTERVALS, - PROP_INTERVAL_OFFSET, PROP_TRIGGER, PROP_NOTIFICATION_THRESHOLD, - PROP_RECORDS_SINCE_NOTIFICATION, PROP_LAST_NOTIFY_RECORD, - PROP_NOTIFICATION_CLASS, PROP_EVENT_ENABLE, PROP_ACKED_TRANSITIONS, - PROP_NOTIFY_TYPE, PROP_EVENT_TIME_STAMPS, PROP_EVENT_MESSAGE_TEXTS, - PROP_EVENT_MESSAGE_TEXTS_CONFIG, PROP_EVENT_DETECTION_ENABLE, - PROP_EVENT_ALGORITHM_INHIBIT_REF, PROP_EVENT_ALGORITHM_INHIBIT, - PROP_RELIABILITY_EVALUATION_INHIBIT, PROP_TAGS, PROP_PROFILE_LOCATION, - PROP_PROFILE_NAME, -1 }; +static const int Trend_Log_Multiple_Properties_Required[] = { + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_STATUS_FLAGS, + PROP_EVENT_STATE, + PROP_ENABLE, + PROP_LOG_DEVICE_OBJECT_PROPERTY, + PROP_LOGGING_TYPE, + PROP_LOG_INTERVAL, + PROP_STOP_WHEN_FULL, + PROP_BUFFER_SIZE, + PROP_LOG_BUFFER, + PROP_RECORD_COUNT, + PROP_TOTAL_RECORD_COUNT, + -1 +}; + +static const int Trend_Log_Multiple_Properties_Optional[] = { + PROP_DESCRIPTION, + PROP_RELIABILITY, + PROP_START_TIME, + PROP_STOP_TIME, + PROP_ALIGN_INTERVALS, + PROP_INTERVAL_OFFSET, + PROP_TRIGGER, + PROP_NOTIFICATION_THRESHOLD, + PROP_RECORDS_SINCE_NOTIFICATION, + PROP_LAST_NOTIFY_RECORD, + PROP_NOTIFICATION_CLASS, + PROP_EVENT_ENABLE, + PROP_ACKED_TRANSITIONS, + PROP_NOTIFY_TYPE, + PROP_EVENT_TIME_STAMPS, + PROP_EVENT_MESSAGE_TEXTS, + PROP_EVENT_MESSAGE_TEXTS_CONFIG, + PROP_EVENT_DETECTION_ENABLE, + PROP_EVENT_ALGORITHM_INHIBIT_REF, + PROP_EVENT_ALGORITHM_INHIBIT, + PROP_RELIABILITY_EVALUATION_INHIBIT, + PROP_TAGS, + PROP_PROFILE_LOCATION, + PROP_PROFILE_NAME, + -1 +}; /** * Function that returns the list of all Optional properties @@ -1508,7 +2810,8 @@ const int *property_list_required(BACNET_OBJECT_TYPE object_type) * type 'int' that contain BACnet object properties for the given object * type. */ -void property_list_special(BACNET_OBJECT_TYPE object_type, +void property_list_special( + BACNET_OBJECT_TYPE object_type, struct special_property_list_t *pPropertyList) { if (pPropertyList == NULL) { @@ -1641,8 +2944,7 @@ const int *property_list_bacnet_array(void) * @return true if the property is a BACnetARRAY property */ bool property_list_bacnet_array_member( - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID object_property) + BACNET_OBJECT_TYPE object_type, BACNET_PROPERTY_ID object_property) { switch (object_type) { case OBJECT_GLOBAL_GROUP: @@ -1670,8 +2972,7 @@ bool property_list_bacnet_array_member( * @return true if the property is a required writable property */ bool property_list_writable_member( - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID object_property) + BACNET_OBJECT_TYPE object_type, BACNET_PROPERTY_ID object_property) { bool writable = false; diff --git a/src/bacnet/property.h b/src/bacnet/property.h index 597785cd..b7010dac 100644 --- a/src/bacnet/property.h +++ b/src/bacnet/property.h @@ -20,37 +20,31 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - const int * property_list_optional( - BACNET_OBJECT_TYPE object_type); - BACNET_STACK_EXPORT - const int * property_list_required( - BACNET_OBJECT_TYPE object_type); - BACNET_STACK_EXPORT - void property_list_special( - BACNET_OBJECT_TYPE object_type, - struct special_property_list_t *pPropertyList); - BACNET_STACK_EXPORT - BACNET_PROPERTY_ID property_list_special_property( - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID special_property, - unsigned index); - BACNET_STACK_EXPORT - unsigned property_list_special_count( - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID special_property); +BACNET_STACK_EXPORT +const int *property_list_optional(BACNET_OBJECT_TYPE object_type); +BACNET_STACK_EXPORT +const int *property_list_required(BACNET_OBJECT_TYPE object_type); +BACNET_STACK_EXPORT +void property_list_special( + BACNET_OBJECT_TYPE object_type, + struct special_property_list_t *pPropertyList); +BACNET_STACK_EXPORT +BACNET_PROPERTY_ID property_list_special_property( + BACNET_OBJECT_TYPE object_type, + BACNET_PROPERTY_ID special_property, + unsigned index); +BACNET_STACK_EXPORT +unsigned property_list_special_count( + BACNET_OBJECT_TYPE object_type, BACNET_PROPERTY_ID special_property); - BACNET_STACK_EXPORT - const int *property_list_bacnet_array( - void); - BACNET_STACK_EXPORT - bool property_list_bacnet_array_member( - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID object_property); - BACNET_STACK_EXPORT - bool property_list_writable_member( - BACNET_OBJECT_TYPE object_type, - BACNET_PROPERTY_ID object_property); +BACNET_STACK_EXPORT +const int *property_list_bacnet_array(void); +BACNET_STACK_EXPORT +bool property_list_bacnet_array_member( + BACNET_OBJECT_TYPE object_type, BACNET_PROPERTY_ID object_property); +BACNET_STACK_EXPORT +bool property_list_writable_member( + BACNET_OBJECT_TYPE object_type, BACNET_PROPERTY_ID object_property); #ifdef __cplusplus } diff --git a/src/bacnet/proplist.c b/src/bacnet/proplist.c index f5951909..31daea76 100644 --- a/src/bacnet/proplist.c +++ b/src/bacnet/proplist.c @@ -96,7 +96,8 @@ bool property_lists_member( * @return number of APDU bytes in the response, or * BACNET_STATUS_ERROR on error. */ -int property_list_encode(BACNET_READ_PROPERTY_DATA *rpdata, +int property_list_encode( + BACNET_READ_PROPERTY_DATA *rpdata, const int *pListRequired, const int *pListOptional, const int *pListProprietary) diff --git a/src/bacnet/proplist.h b/src/bacnet/proplist.h index 12f4517f..6af4273f 100644 --- a/src/bacnet/proplist.h +++ b/src/bacnet/proplist.h @@ -30,32 +30,27 @@ struct special_property_list_t { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - unsigned property_list_count( - const int *pList); - BACNET_STACK_EXPORT - bool property_list_member( - const int *pList, - int object_property); - BACNET_STACK_EXPORT - bool property_lists_member( - const int *pRequired, - const int *pOptional, - const int *pProprietary, - int object_property); - BACNET_STACK_EXPORT - int property_list_encode( - BACNET_READ_PROPERTY_DATA * rpdata, - const int *pListRequired, - const int *pListOptional, - const int *pListProprietary); - BACNET_STACK_EXPORT - int property_list_common_encode( - BACNET_READ_PROPERTY_DATA *rpdata, - uint32_t device_instance_number); - BACNET_STACK_EXPORT - bool property_list_common( - BACNET_PROPERTY_ID property); +BACNET_STACK_EXPORT +unsigned property_list_count(const int *pList); +BACNET_STACK_EXPORT +bool property_list_member(const int *pList, int object_property); +BACNET_STACK_EXPORT +bool property_lists_member( + const int *pRequired, + const int *pOptional, + const int *pProprietary, + int object_property); +BACNET_STACK_EXPORT +int property_list_encode( + BACNET_READ_PROPERTY_DATA *rpdata, + const int *pListRequired, + const int *pListOptional, + const int *pListProprietary); +BACNET_STACK_EXPORT +int property_list_common_encode( + BACNET_READ_PROPERTY_DATA *rpdata, uint32_t device_instance_number); +BACNET_STACK_EXPORT +bool property_list_common(BACNET_PROPERTY_ID property); #ifdef __cplusplus } diff --git a/src/bacnet/ptransfer.c b/src/bacnet/ptransfer.c index 86c1ba00..33645496 100644 --- a/src/bacnet/ptransfer.c +++ b/src/bacnet/ptransfer.c @@ -13,7 +13,8 @@ #include "bacnet/ptransfer.h" /* encode service */ -static int pt_encode_apdu(uint8_t *apdu, +static int pt_encode_apdu( + uint8_t *apdu, uint16_t max_apdu, const BACNET_PRIVATE_TRANSFER_DATA *private_data) { @@ -48,7 +49,8 @@ static int pt_encode_apdu(uint8_t *apdu, return apdu_len; } -int ptransfer_encode_apdu(uint8_t *apdu, +int ptransfer_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_PRIVATE_TRANSFER_DATA *private_data) { @@ -88,7 +90,8 @@ int uptransfer_encode_apdu( } /* decode the service request only */ -int ptransfer_decode_service_request(uint8_t *apdu, +int ptransfer_decode_service_request( + uint8_t *apdu, unsigned apdu_len, BACNET_PRIVATE_TRANSFER_DATA *private_data) { @@ -130,7 +133,8 @@ int ptransfer_decode_service_request(uint8_t *apdu, return len; } -int ptransfer_error_encode_apdu(uint8_t *apdu, +int ptransfer_error_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, BACNET_ERROR_CLASS error_class, BACNET_ERROR_CODE error_code, @@ -181,7 +185,8 @@ int ptransfer_error_encode_apdu(uint8_t *apdu, } /* decode the service request only */ -int ptransfer_error_decode_service_request(uint8_t *apdu, +int ptransfer_error_decode_service_request( + uint8_t *apdu, unsigned apdu_len, BACNET_ERROR_CLASS *error_class, BACNET_ERROR_CODE *error_code, @@ -264,7 +269,8 @@ int ptransfer_error_decode_service_request(uint8_t *apdu, return len; } -int ptransfer_ack_encode_apdu(uint8_t *apdu, +int ptransfer_ack_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_PRIVATE_TRANSFER_DATA *private_data) { diff --git a/src/bacnet/ptransfer.h b/src/bacnet/ptransfer.h index 04b4fd85..5bf9b8d5 100644 --- a/src/bacnet/ptransfer.h +++ b/src/bacnet/ptransfer.h @@ -24,41 +24,40 @@ typedef struct BACnet_Private_Transfer_Data { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int ptransfer_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_PRIVATE_TRANSFER_DATA * private_data); - BACNET_STACK_EXPORT - int uptransfer_encode_apdu( - uint8_t * apdu, - const BACNET_PRIVATE_TRANSFER_DATA * private_data); - BACNET_STACK_EXPORT - int ptransfer_decode_service_request( - uint8_t * apdu, - unsigned apdu_len, - BACNET_PRIVATE_TRANSFER_DATA * private_data); +BACNET_STACK_EXPORT +int ptransfer_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_PRIVATE_TRANSFER_DATA *private_data); +BACNET_STACK_EXPORT +int uptransfer_encode_apdu( + uint8_t *apdu, const BACNET_PRIVATE_TRANSFER_DATA *private_data); +BACNET_STACK_EXPORT +int ptransfer_decode_service_request( + uint8_t *apdu, + unsigned apdu_len, + BACNET_PRIVATE_TRANSFER_DATA *private_data); - BACNET_STACK_EXPORT - int ptransfer_error_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - BACNET_ERROR_CLASS error_class, - BACNET_ERROR_CODE error_code, - const BACNET_PRIVATE_TRANSFER_DATA * private_data); - BACNET_STACK_EXPORT - int ptransfer_error_decode_service_request( - uint8_t * apdu, - unsigned apdu_len, - BACNET_ERROR_CLASS * error_class, - BACNET_ERROR_CODE * error_code, - BACNET_PRIVATE_TRANSFER_DATA * private_data); +BACNET_STACK_EXPORT +int ptransfer_error_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + BACNET_ERROR_CLASS error_class, + BACNET_ERROR_CODE error_code, + const BACNET_PRIVATE_TRANSFER_DATA *private_data); +BACNET_STACK_EXPORT +int ptransfer_error_decode_service_request( + uint8_t *apdu, + unsigned apdu_len, + BACNET_ERROR_CLASS *error_class, + BACNET_ERROR_CODE *error_code, + BACNET_PRIVATE_TRANSFER_DATA *private_data); - BACNET_STACK_EXPORT - int ptransfer_ack_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_PRIVATE_TRANSFER_DATA * private_data); +BACNET_STACK_EXPORT +int ptransfer_ack_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_PRIVATE_TRANSFER_DATA *private_data); /* ptransfer_ack_decode_service_request() is the same as ptransfer_decode_service_request */ diff --git a/src/bacnet/rd.c b/src/bacnet/rd.c index a45d73ec..1d1350f1 100644 --- a/src/bacnet/rd.c +++ b/src/bacnet/rd.c @@ -35,7 +35,8 @@ * @param password Pointer to the pass phrase. * @return number of bytes encoded */ -int reinitialize_device_encode(uint8_t *apdu, +int reinitialize_device_encode( + uint8_t *apdu, BACNET_REINITIALIZED_STATE state, const BACNET_CHARACTER_STRING *password) { @@ -67,7 +68,8 @@ int reinitialize_device_encode(uint8_t *apdu, * @param password Pointer to the pass phrase. * @return number of bytes encoded, or zero if unable to encode or too large */ -size_t reinitialize_device_request_encode(uint8_t *apdu, +size_t reinitialize_device_request_encode( + uint8_t *apdu, size_t apdu_size, BACNET_REINITIALIZED_STATE state, const BACNET_CHARACTER_STRING *password) @@ -93,7 +95,8 @@ size_t reinitialize_device_request_encode(uint8_t *apdu, * * @return Bytes encoded. */ -int rd_encode_apdu(uint8_t *apdu, +int rd_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, BACNET_REINITIALIZED_STATE state, const BACNET_CHARACTER_STRING *password) @@ -143,7 +146,8 @@ int rd_encode_apdu(uint8_t *apdu, * * @return number of bytes decoded, or #BACNET_STATUS_ERROR if malformed */ -int rd_decode_service_request(const uint8_t *apdu, +int rd_decode_service_request( + const uint8_t *apdu, unsigned apdu_size, BACNET_REINITIALIZED_STATE *state, BACNET_CHARACTER_STRING *password) diff --git a/src/bacnet/rd.h b/src/bacnet/rd.h index e920b823..c0c672a5 100644 --- a/src/bacnet/rd.h +++ b/src/bacnet/rd.h @@ -20,40 +20,40 @@ typedef struct BACnet_Reinitialize_Device_Data { BACNET_ERROR_CODE error_code; } BACNET_REINITIALIZE_DEVICE_DATA; -typedef bool( - *reinitialize_device_function) ( - BACNET_REINITIALIZE_DEVICE_DATA * rd_data); - +typedef bool (*reinitialize_device_function)( + BACNET_REINITIALIZE_DEVICE_DATA *rd_data); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int rd_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - BACNET_REINITIALIZED_STATE state, - const BACNET_CHARACTER_STRING * password); +BACNET_STACK_EXPORT +int rd_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + BACNET_REINITIALIZED_STATE state, + const BACNET_CHARACTER_STRING *password); - BACNET_STACK_EXPORT - int reinitialize_device_encode(uint8_t *apdu, - BACNET_REINITIALIZED_STATE state, - const BACNET_CHARACTER_STRING *password); +BACNET_STACK_EXPORT +int reinitialize_device_encode( + uint8_t *apdu, + BACNET_REINITIALIZED_STATE state, + const BACNET_CHARACTER_STRING *password); - BACNET_STACK_EXPORT - size_t reinitialize_device_request_encode( - uint8_t *apdu, size_t apdu_size, - BACNET_REINITIALIZED_STATE state, - const BACNET_CHARACTER_STRING *password); +BACNET_STACK_EXPORT +size_t reinitialize_device_request_encode( + uint8_t *apdu, + size_t apdu_size, + BACNET_REINITIALIZED_STATE state, + const BACNET_CHARACTER_STRING *password); /* decode the service request only */ - BACNET_STACK_EXPORT - int rd_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_REINITIALIZED_STATE * state, - BACNET_CHARACTER_STRING * password); +BACNET_STACK_EXPORT +int rd_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_REINITIALIZED_STATE *state, + BACNET_CHARACTER_STRING *password); #ifdef __cplusplus } diff --git a/src/bacnet/readrange.c b/src/bacnet/readrange.c index 5a284f1e..c16288cc 100644 --- a/src/bacnet/readrange.c +++ b/src/bacnet/readrange.c @@ -480,7 +480,8 @@ int rr_ack_encode_apdu( * * @return Bytes decoded. */ -int rr_ack_decode_service_request(uint8_t *apdu, +int rr_ack_decode_service_request( + uint8_t *apdu, int apdu_len, /* total length of the apdu */ BACNET_READ_RANGE_DATA *rrdata) { diff --git a/src/bacnet/readrange.h b/src/bacnet/readrange.h index 91a7ae5d..35b587ec 100644 --- a/src/bacnet/readrange.h +++ b/src/bacnet/readrange.h @@ -18,45 +18,47 @@ extern "C" { #endif /* __cplusplus */ - struct BACnet_Read_Range_Data; - typedef struct BACnet_Read_Range_Data { - BACNET_OBJECT_TYPE object_type; - uint32_t object_instance; - BACNET_PROPERTY_ID object_property; - BACNET_ARRAY_INDEX array_index; - uint8_t *application_data; - int application_data_len; - BACNET_BIT_STRING ResultFlags; /**< FIRST_ITEM, LAST_ITEM, MORE_ITEMS. */ - int RequestType;/**< Index, sequence or time based request. */ - int Overhead; /**< How much space the baggage takes in the response. */ - uint32_t ItemCount; - uint32_t FirstSequence; - union { /**< Pick the appropriate data type. */ - uint32_t RefIndex; - uint32_t RefSeqNum; - BACNET_DATE_TIME RefTime; - } Range; - int32_t Count; /**< SIGNED value as +ve vs -ve is important. */ - BACNET_ERROR_CLASS error_class; - BACNET_ERROR_CODE error_code; - } BACNET_READ_RANGE_DATA; +struct BACnet_Read_Range_Data; +typedef struct BACnet_Read_Range_Data { + BACNET_OBJECT_TYPE object_type; + uint32_t object_instance; + BACNET_PROPERTY_ID object_property; + BACNET_ARRAY_INDEX array_index; + uint8_t *application_data; + int application_data_len; + BACNET_BIT_STRING ResultFlags; /**< FIRST_ITEM, LAST_ITEM, MORE_ITEMS. */ + int RequestType; /**< Index, sequence or time based request. */ + int Overhead; /**< How much space the baggage takes in the response. */ + uint32_t ItemCount; + uint32_t FirstSequence; + union { /**< Pick the appropriate data type. */ + uint32_t RefIndex; + uint32_t RefSeqNum; + BACNET_DATE_TIME RefTime; + } Range; + int32_t Count; /**< SIGNED value as +ve vs -ve is important. */ + BACNET_ERROR_CLASS error_class; + BACNET_ERROR_CODE error_code; +} BACNET_READ_RANGE_DATA; /** Defines to indicate which type of read range request it is. Not really a bit map but we do it like this to allow quick checking of request against capabilities for the property */ -#define RR_BY_POSITION 1 -#define RR_BY_SEQUENCE 2 -#define RR_BY_TIME 4 -#define RR_READ_ALL 8 /**< Read all of array - so don't send any range in the request */ -#define RR_ARRAY_OF_LISTS 16 /**< For info functionality indicates array of lists if set */ +#define RR_BY_POSITION 1 +#define RR_BY_SEQUENCE 2 +#define RR_BY_TIME 4 +#define RR_READ_ALL \ + 8 /**< Read all of array - so don't send any range in the request */ +#define RR_ARRAY_OF_LISTS \ + 16 /**< For info functionality indicates array of lists if set */ /** Bit String Enumerations */ - typedef enum { - RESULT_FLAG_FIRST_ITEM = 0, - RESULT_FLAG_LAST_ITEM = 1, - RESULT_FLAG_MORE_ITEMS = 2 - } BACNET_RESULT_FLAGS; +typedef enum { + RESULT_FLAG_FIRST_ITEM = 0, + RESULT_FLAG_LAST_ITEM = 1, + RESULT_FLAG_MORE_ITEMS = 2 +} BACNET_RESULT_FLAGS; /** Defines for ReadRange packet overheads to allow us to determine how * much space is left for actual payload: @@ -70,9 +72,9 @@ extern "C" { * 256-65535 theoretical max of 5 bytes but how likely is that? * - 5. Flags = 3 bytes * - 6. Opening and closing tag for data = 2 bytes - * - 7. firstSequenceNumber [6] Unsigned32 OPTIONAL -- used only if 'Item Count' > 0 - * and the request was either of type 'By Sequence Number' or 'By Time' - * = minimum of 2 bytes, maximum of 5 bytes. + * - 7. firstSequenceNumber [6] Unsigned32 OPTIONAL -- used only if 'Item Count' + * > 0 and the request was either of type 'By Sequence Number' or 'By Time' = + * minimum of 2 bytes, maximum of 5 bytes. * * These figures give an absolute worst-case overhead of 28 bytes. A less * conservative value (if we assume object property is 3 bytes and array @@ -82,29 +84,28 @@ extern "C" { * first sequence number requirements. again if you are really paranoid * use a value of 18 */ -#define RR_OVERHEAD 16 +#define RR_OVERHEAD 16 #define RR_1ST_SEQ_OVERHEAD 5 -#define RR_INDEX_OVERHEAD 3 /* or 5 if paranoid */ +#define RR_INDEX_OVERHEAD 3 /* or 5 if paranoid */ /** Define pointer to function type for handling ReadRange request. This function will take the following parameters: - - 1. A pointer to a buffer of at least MAX_APDU bytes to build the response in. + - 1. A pointer to a buffer of at least MAX_APDU bytes to build the response + in. - 2. A pointer to a BACNET_READ_RANGE_DATA structure with all the request information in it. The function is responsible for applying the request to the property in question and returning the response. */ - typedef int ( - *rr_handler_function) ( - uint8_t * apdu, - BACNET_READ_RANGE_DATA * pRequest); +typedef int (*rr_handler_function)( + uint8_t *apdu, BACNET_READ_RANGE_DATA *pRequest); /** Structure to return the type of requests a given object property can * accept and the address of the function to handle the request */ - typedef struct rrpropertyinfo { - int RequestTypes; - rr_handler_function Handler; - } RR_PROP_INFO; +typedef struct rrpropertyinfo { + int RequestTypes; + rr_handler_function Handler; +} RR_PROP_INFO; /** Function template for ReadRange information retrieval function. * A function template; @see device.c for assignment to object types. @@ -113,44 +114,33 @@ extern "C" { * @param pInfo [out] Where to write the response to. * @return True on success, False on error or failure. */ - typedef bool( - *rr_info_function) ( - BACNET_READ_RANGE_DATA * pRequest, /* Info on the request */ - RR_PROP_INFO * pInfo); /* Where to write the response to */ +typedef bool (*rr_info_function)( + BACNET_READ_RANGE_DATA *pRequest, /* Info on the request */ + RR_PROP_INFO *pInfo); /* Where to write the response to */ - BACNET_STACK_EXPORT - int rr_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_READ_RANGE_DATA * rrdata); +BACNET_STACK_EXPORT +int rr_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_READ_RANGE_DATA *rrdata); - BACNET_STACK_EXPORT - int read_range_encode( - uint8_t *apdu, - const BACNET_READ_RANGE_DATA *data); - BACNET_STACK_EXPORT - size_t read_range_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_READ_RANGE_DATA *data); +BACNET_STACK_EXPORT +int read_range_encode(uint8_t *apdu, const BACNET_READ_RANGE_DATA *data); +BACNET_STACK_EXPORT +size_t read_range_request_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_READ_RANGE_DATA *data); - BACNET_STACK_EXPORT - int rr_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_READ_RANGE_DATA * rrdata); +BACNET_STACK_EXPORT +int rr_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_READ_RANGE_DATA *rrdata); - BACNET_STACK_EXPORT - int rr_ack_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_READ_RANGE_DATA * rrdata); +BACNET_STACK_EXPORT +int rr_ack_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_READ_RANGE_DATA *rrdata); - BACNET_STACK_EXPORT - int rr_ack_decode_service_request( - uint8_t * apdu, - int apdu_len, /* total length of the apdu */ - BACNET_READ_RANGE_DATA * rrdata); +BACNET_STACK_EXPORT +int rr_ack_decode_service_request( + uint8_t *apdu, + int apdu_len, /* total length of the apdu */ + BACNET_READ_RANGE_DATA *rrdata); #ifdef __cplusplus } @@ -158,8 +148,8 @@ extern "C" { /** @defgroup Trend Trending BIBBs * These BIBBs prescribe the BACnet capabilities required to interoperably * perform the trending functions enumerated in clause 22.2.1.4 for the - * BACnet devices defined therein. -*/ + * BACnet devices defined therein. + */ /** @defgroup TrendReadRange Trending -Read Range Service (eg, in T-VMT) * @ingroup Trend diff --git a/src/bacnet/reject.c b/src/bacnet/reject.c index f9839a60..ce6a896a 100644 --- a/src/bacnet/reject.c +++ b/src/bacnet/reject.c @@ -96,7 +96,6 @@ bool reject_valid_error_code(BACNET_ERROR_CODE error_code) return status; } - /** * @brief Convert a reject code to BACnet Error code * @param reject_code - code to be converted @@ -186,7 +185,8 @@ int reject_encode_apdu(uint8_t *apdu, uint8_t invoke_id, uint8_t reject_reason) * * @return Bytes encoded, typically 3. */ -int reject_decode_service_request(const uint8_t *apdu, +int reject_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, uint8_t *invoke_id, uint8_t *reject_reason) diff --git a/src/bacnet/reject.h b/src/bacnet/reject.h index e7d26a96..b167b713 100644 --- a/src/bacnet/reject.h +++ b/src/bacnet/reject.h @@ -17,28 +17,23 @@ extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - BACNET_REJECT_REASON reject_convert_error_code( - BACNET_ERROR_CODE error_code); - BACNET_STACK_EXPORT - bool reject_valid_error_code( - BACNET_ERROR_CODE error_code); - BACNET_STACK_EXPORT - BACNET_ERROR_CODE reject_convert_to_error_code( - BACNET_REJECT_REASON reject_code); +BACNET_STACK_EXPORT +BACNET_REJECT_REASON reject_convert_error_code(BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +bool reject_valid_error_code(BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +BACNET_ERROR_CODE +reject_convert_to_error_code(BACNET_REJECT_REASON reject_code); - BACNET_STACK_EXPORT - int reject_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - uint8_t reject_reason); +BACNET_STACK_EXPORT +int reject_encode_apdu(uint8_t *apdu, uint8_t invoke_id, uint8_t reject_reason); - BACNET_STACK_EXPORT - int reject_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - uint8_t * invoke_id, - uint8_t * reject_reason); +BACNET_STACK_EXPORT +int reject_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + uint8_t *invoke_id, + uint8_t *reject_reason); #ifdef __cplusplus } diff --git a/src/bacnet/rp.c b/src/bacnet/rp.c index 32ade1ff..e1ff347f 100644 --- a/src/bacnet/rp.c +++ b/src/bacnet/rp.c @@ -411,9 +411,8 @@ int rp_ack_encode_apdu( * @return Number of decoded bytes (could be less than apdu_len), * or -1 on decoding error. */ -int rp_ack_decode_service_request(uint8_t *apdu, - int apdu_size, - BACNET_READ_PROPERTY_DATA *data) +int rp_ack_decode_service_request( + uint8_t *apdu, int apdu_size, BACNET_READ_PROPERTY_DATA *data) { int apdu_len = 0; /* return value */ int len = 0; @@ -472,8 +471,8 @@ int rp_ack_decode_service_request(uint8_t *apdu, return BACNET_STATUS_ERROR; } /* determine the length of the data blob */ - data_len = bacnet_enclosed_data_length(&apdu[apdu_len], - apdu_size - apdu_len); + data_len = + bacnet_enclosed_data_length(&apdu[apdu_len], apdu_size - apdu_len); if (data_len == BACNET_STATUS_ERROR) { return BACNET_STATUS_ERROR; } diff --git a/src/bacnet/rp.h b/src/bacnet/rp.h index d6486048..9bdeb7e6 100644 --- a/src/bacnet/rp.h +++ b/src/bacnet/rp.h @@ -36,88 +36,70 @@ struct BACnet_Read_Access_Data; * @return The length of the apdu encoded or -1 for error or * -2 for abort message. */ -typedef int ( - *read_property_function) ( - BACNET_READ_PROPERTY_DATA * rp_data); +typedef int (*read_property_function)(BACNET_READ_PROPERTY_DATA *rp_data); /** * @brief Process a ReadProperty-ACK message * @param device_id [in] The device ID of the source of the message * @param rp_data [in] The contents of the ReadProperty-ACK message */ -typedef void ( - *read_property_ack_process) ( +typedef void (*read_property_ack_process)( uint32_t device_id, BACNET_READ_PROPERTY_DATA *rp_data); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - int read_property_request_encode( - uint8_t *apdu, - const BACNET_READ_PROPERTY_DATA *data); +BACNET_STACK_EXPORT +int read_property_request_encode( + uint8_t *apdu, const BACNET_READ_PROPERTY_DATA *data); - BACNET_STACK_EXPORT - size_t read_property_request_service_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_READ_PROPERTY_DATA *data); +BACNET_STACK_EXPORT +size_t read_property_request_service_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_READ_PROPERTY_DATA *data); - BACNET_STACK_EXPORT - int read_property_ack_encode( - uint8_t *apdu, - const BACNET_READ_PROPERTY_DATA *data); +BACNET_STACK_EXPORT +int read_property_ack_encode( + uint8_t *apdu, const BACNET_READ_PROPERTY_DATA *data); - BACNET_STACK_EXPORT - size_t read_property_ack_service_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_READ_PROPERTY_DATA *data); +BACNET_STACK_EXPORT +size_t read_property_ack_service_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_READ_PROPERTY_DATA *data); - BACNET_STACK_EXPORT - int rp_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int rp_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_READ_PROPERTY_DATA *rpdata); /* decode the service request only */ - BACNET_STACK_EXPORT - int rp_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int rp_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_READ_PROPERTY_DATA *rpdata); - /* method to encode the ack without extra buffer */ - BACNET_STACK_EXPORT - int rp_ack_encode_apdu_init( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_READ_PROPERTY_DATA * rpdata); +/* method to encode the ack without extra buffer */ +BACNET_STACK_EXPORT +int rp_ack_encode_apdu_init( + uint8_t *apdu, uint8_t invoke_id, const BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - int rp_ack_encode_apdu_object_property_end( - uint8_t * apdu); +BACNET_STACK_EXPORT +int rp_ack_encode_apdu_object_property_end(uint8_t *apdu); - /* method to encode the ack using extra buffer */ - BACNET_STACK_EXPORT - int rp_ack_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_READ_PROPERTY_DATA * rpdata); +/* method to encode the ack using extra buffer */ +BACNET_STACK_EXPORT +int rp_ack_encode_apdu( + uint8_t *apdu, uint8_t invoke_id, const BACNET_READ_PROPERTY_DATA *rpdata); - BACNET_STACK_EXPORT - int rp_ack_decode_service_request( - uint8_t * apdu, - int apdu_len, /* total length of the apdu */ - BACNET_READ_PROPERTY_DATA * rpdata); +BACNET_STACK_EXPORT +int rp_ack_decode_service_request( + uint8_t *apdu, + int apdu_len, /* total length of the apdu */ + BACNET_READ_PROPERTY_DATA *rpdata); - /* Decode instead to RPM-style data structure. */ - BACNET_STACK_EXPORT - int rp_ack_fully_decode_service_request( - uint8_t * apdu, - int apdu_len, - struct BACnet_Read_Access_Data *read_access_data); +/* Decode instead to RPM-style data structure. */ +BACNET_STACK_EXPORT +int rp_ack_fully_decode_service_request( + uint8_t *apdu, + int apdu_len, + struct BACnet_Read_Access_Data *read_access_data); #ifdef __cplusplus } @@ -125,8 +107,8 @@ extern "C" { /** @defgroup DataShare Data Sharing BIBBs * These BIBBs prescribe the BACnet capabilities required to interoperably * perform the data sharing functions enumerated in 22.2.1.1 for the BACnet - * devices defined therein. -*/ + * devices defined therein. + */ /** @defgroup DSRP Data Sharing -Read Property Service (DS-RP) * @ingroup DataShare diff --git a/src/bacnet/rpm.h b/src/bacnet/rpm.h index c91a96ec..3e3f1604 100644 --- a/src/bacnet/rpm.h +++ b/src/bacnet/rpm.h @@ -50,16 +50,12 @@ typedef struct BACnet_Read_Access_Data { * @param pProprietary [out] Pointer reference for the list of Proprietary * properties for this BACNET_OBJECT_TYPE. */ -typedef void ( - *rpm_property_lists_function) ( - const int **pRequired, - const int **pOptional, - const int **pProprietary); +typedef void (*rpm_property_lists_function)( + const int **pRequired, const int **pOptional, const int **pProprietary); -typedef void ( - *rpm_object_property_lists_function) ( +typedef void (*rpm_object_property_lists_function)( BACNET_OBJECT_TYPE object_type, - struct special_property_list_t * pPropertyList); + struct special_property_list_t *pPropertyList); #ifdef __cplusplus extern "C" { @@ -72,121 +68,101 @@ extern "C" { until the APDU is full.*/ /* RPM */ - BACNET_STACK_EXPORT - int rpm_encode_apdu_init( - uint8_t * apdu, - uint8_t invoke_id); +BACNET_STACK_EXPORT +int rpm_encode_apdu_init(uint8_t *apdu, uint8_t invoke_id); - BACNET_STACK_EXPORT - int rpm_encode_apdu_object_begin( - uint8_t * apdu, - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance); +BACNET_STACK_EXPORT +int rpm_encode_apdu_object_begin( + uint8_t *apdu, BACNET_OBJECT_TYPE object_type, uint32_t object_instance); - BACNET_STACK_EXPORT - int rpm_encode_apdu_object_property( - uint8_t * apdu, - BACNET_PROPERTY_ID object_property, - BACNET_ARRAY_INDEX array_index); +BACNET_STACK_EXPORT +int rpm_encode_apdu_object_property( + uint8_t *apdu, + BACNET_PROPERTY_ID object_property, + BACNET_ARRAY_INDEX array_index); - BACNET_STACK_EXPORT - int rpm_encode_apdu_object_end( - uint8_t * apdu); +BACNET_STACK_EXPORT +int rpm_encode_apdu_object_end(uint8_t *apdu); - BACNET_STACK_EXPORT - int read_property_multiple_request_encode( - uint8_t *apdu, - BACNET_READ_ACCESS_DATA *data); - BACNET_STACK_EXPORT - size_t read_property_multiple_request_service_encode( - uint8_t *apdu, - size_t apdu_size, - BACNET_READ_ACCESS_DATA *data); +BACNET_STACK_EXPORT +int read_property_multiple_request_encode( + uint8_t *apdu, BACNET_READ_ACCESS_DATA *data); +BACNET_STACK_EXPORT +size_t read_property_multiple_request_service_encode( + uint8_t *apdu, size_t apdu_size, BACNET_READ_ACCESS_DATA *data); - BACNET_STACK_EXPORT - int rpm_encode_apdu( - uint8_t * apdu, - size_t max_apdu, - uint8_t invoke_id, - BACNET_READ_ACCESS_DATA * read_access_data); +BACNET_STACK_EXPORT +int rpm_encode_apdu( + uint8_t *apdu, + size_t max_apdu, + uint8_t invoke_id, + BACNET_READ_ACCESS_DATA *read_access_data); /* decode the object portion of the service request only */ - BACNET_STACK_EXPORT - int rpm_decode_object_id( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_RPM_DATA * rpmdata); +BACNET_STACK_EXPORT +int rpm_decode_object_id( + const uint8_t *apdu, unsigned apdu_len, BACNET_RPM_DATA *rpmdata); /* is this the end of this object property list? */ - BACNET_STACK_EXPORT - int rpm_decode_object_end( - const uint8_t * apdu, - unsigned apdu_len); +BACNET_STACK_EXPORT +int rpm_decode_object_end(const uint8_t *apdu, unsigned apdu_len); /* decode the object property portion of the service request only */ - BACNET_STACK_EXPORT - int rpm_decode_object_property( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_RPM_DATA * rpmdata); +BACNET_STACK_EXPORT +int rpm_decode_object_property( + const uint8_t *apdu, unsigned apdu_len, BACNET_RPM_DATA *rpmdata); /* RPM Ack - reply from server */ - BACNET_STACK_EXPORT - int rpm_ack_encode_apdu_init( - uint8_t * apdu, - uint8_t invoke_id); +BACNET_STACK_EXPORT +int rpm_ack_encode_apdu_init(uint8_t *apdu, uint8_t invoke_id); - BACNET_STACK_EXPORT - int rpm_ack_encode_apdu_object_begin( - uint8_t * apdu, - const BACNET_RPM_DATA * rpmdata); +BACNET_STACK_EXPORT +int rpm_ack_encode_apdu_object_begin( + uint8_t *apdu, const BACNET_RPM_DATA *rpmdata); - BACNET_STACK_EXPORT - int rpm_ack_encode_apdu_object_property( - uint8_t * apdu, - BACNET_PROPERTY_ID object_property, - BACNET_ARRAY_INDEX array_index); +BACNET_STACK_EXPORT +int rpm_ack_encode_apdu_object_property( + uint8_t *apdu, + BACNET_PROPERTY_ID object_property, + BACNET_ARRAY_INDEX array_index); - BACNET_STACK_EXPORT - int rpm_ack_encode_apdu_object_property_value( - uint8_t * apdu, - const uint8_t * application_data, - unsigned application_data_len); +BACNET_STACK_EXPORT +int rpm_ack_encode_apdu_object_property_value( + uint8_t *apdu, + const uint8_t *application_data, + unsigned application_data_len); - BACNET_STACK_EXPORT - int rpm_ack_encode_apdu_object_property_error( - uint8_t * apdu, - BACNET_ERROR_CLASS error_class, - BACNET_ERROR_CODE error_code); +BACNET_STACK_EXPORT +int rpm_ack_encode_apdu_object_property_error( + uint8_t *apdu, + BACNET_ERROR_CLASS error_class, + BACNET_ERROR_CODE error_code); - BACNET_STACK_EXPORT - int rpm_ack_encode_apdu_object_end( - uint8_t * apdu); +BACNET_STACK_EXPORT +int rpm_ack_encode_apdu_object_end(uint8_t *apdu); - BACNET_STACK_EXPORT - int rpm_ack_decode_object_id( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_OBJECT_TYPE * object_type, - uint32_t * object_instance); +BACNET_STACK_EXPORT +int rpm_ack_decode_object_id( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_OBJECT_TYPE *object_type, + uint32_t *object_instance); /* is this the end of the list of this objects properties values? */ - BACNET_STACK_EXPORT - int rpm_ack_decode_object_end( - const uint8_t * apdu, - unsigned apdu_len); - BACNET_STACK_EXPORT - int rpm_ack_decode_object_property( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_PROPERTY_ID * object_property, - BACNET_ARRAY_INDEX * array_index); - BACNET_STACK_EXPORT - void rpm_ack_object_property_process( - uint8_t *apdu, - unsigned apdu_len, - uint32_t device_id, - BACNET_READ_PROPERTY_DATA *rp_data, - read_property_ack_process callback); +BACNET_STACK_EXPORT +int rpm_ack_decode_object_end(const uint8_t *apdu, unsigned apdu_len); +BACNET_STACK_EXPORT +int rpm_ack_decode_object_property( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_PROPERTY_ID *object_property, + BACNET_ARRAY_INDEX *array_index); +BACNET_STACK_EXPORT +void rpm_ack_object_property_process( + uint8_t *apdu, + unsigned apdu_len, + uint32_t device_id, + BACNET_READ_PROPERTY_DATA *rp_data, + read_property_ack_process callback); #ifdef __cplusplus } diff --git a/src/bacnet/special_event.c b/src/bacnet/special_event.c index 0126c311..9e55a104 100644 --- a/src/bacnet/special_event.c +++ b/src/bacnet/special_event.c @@ -46,18 +46,20 @@ int bacnet_special_event_decode( if (tag.opening && (tag.number == BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY)) { value->periodTag = BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY; - len = bacnet_calendar_entry_context_decode(&apdu[apdu_len], - apdu_size - apdu_len, BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY, + len = bacnet_calendar_entry_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, + BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY, &value->period.calendarEntry); if (len < 0) { return BACNET_STATUS_ERROR; } apdu_len += len; - } else if (tag.context && + } else if ( + tag.context && (tag.number == BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_REFERENCE)) { value->periodTag = BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_REFERENCE; - len = bacnet_object_id_context_decode(&apdu[apdu_len], - apdu_size - apdu_len, + len = bacnet_object_id_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_REFERENCE, &value->period.calendarReference.type, &value->period.calendarReference.instance); @@ -104,8 +106,8 @@ int bacnet_special_event_encode( int len; if (value->periodTag == BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY) { - len = bacnet_calendar_entry_context_encode(apdu, - BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY, + len = bacnet_calendar_entry_context_encode( + apdu, BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY, &value->period.calendarEntry); if (len < 0) { return -1; @@ -115,8 +117,8 @@ int bacnet_special_event_encode( apdu += len; } } else { - len = encode_context_object_id(apdu, - BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_REFERENCE, + len = encode_context_object_id( + apdu, BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_REFERENCE, value->period.calendarReference.type, value->period.calendarReference.instance); if (len < 0) { @@ -185,7 +187,8 @@ int bacnet_special_event_context_encode( * @param value - BACnetSpecialEvent structure * @return length of the APDU buffer, or BACNET_STATUS_ERROR if unable to decode */ -int bacnet_special_event_context_decode(const uint8_t *apdu, +int bacnet_special_event_context_decode( + const uint8_t *apdu, int apdu_size, uint8_t tag_number, BACNET_SPECIAL_EVENT *value) diff --git a/src/bacnet/special_event.h b/src/bacnet/special_event.h index 2a91a514..d6106555 100644 --- a/src/bacnet/special_event.h +++ b/src/bacnet/special_event.h @@ -22,49 +22,47 @@ extern "C" { #endif /* __cplusplus */ +typedef enum BACnet_SpecialEventPeriod_Tags { + BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY = 0, + BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_REFERENCE = 1 +} BACNET_SPECIAL_EVENT_PERIOD_TAG; - typedef enum BACnet_SpecialEventPeriod_Tags { - BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_ENTRY = 0, - BACNET_SPECIAL_EVENT_PERIOD_CALENDAR_REFERENCE = 1 - } BACNET_SPECIAL_EVENT_PERIOD_TAG; +typedef struct BACnet_Special_Event { + BACNET_SPECIAL_EVENT_PERIOD_TAG periodTag; + union { + BACNET_CALENDAR_ENTRY calendarEntry; + BACNET_OBJECT_ID calendarReference; + } period; + /* We reuse the daily schedule struct and its encoding/decoding - it's + * identical */ + BACNET_DAILY_SCHEDULE timeValues; + uint8_t priority; +} BACNET_SPECIAL_EVENT; - typedef struct BACnet_Special_Event { - BACNET_SPECIAL_EVENT_PERIOD_TAG periodTag; - union { - BACNET_CALENDAR_ENTRY calendarEntry; - BACNET_OBJECT_ID calendarReference; - } period; - /* We reuse the daily schedule struct and its encoding/decoding - it's identical */ - BACNET_DAILY_SCHEDULE timeValues; - uint8_t priority; - } BACNET_SPECIAL_EVENT; +/** Decode Special Event */ +BACNET_STACK_EXPORT +int bacnet_special_event_decode( + const uint8_t *apdu, int max_apdu_len, BACNET_SPECIAL_EVENT *value); - /** Decode Special Event */ - BACNET_STACK_EXPORT - int bacnet_special_event_decode( - const uint8_t * apdu, - int max_apdu_len, - BACNET_SPECIAL_EVENT * value); +/** Encode Special Event */ +BACNET_STACK_EXPORT +int bacnet_special_event_encode( + uint8_t *apdu, const BACNET_SPECIAL_EVENT *value); - /** Encode Special Event */ - BACNET_STACK_EXPORT - int bacnet_special_event_encode( - uint8_t * apdu, - const BACNET_SPECIAL_EVENT * value); +BACNET_STACK_EXPORT +int bacnet_special_event_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_SPECIAL_EVENT *value); - BACNET_STACK_EXPORT - int bacnet_special_event_context_encode( - uint8_t *apdu, uint8_t tag_number, const BACNET_SPECIAL_EVENT *value); +BACNET_STACK_EXPORT +int bacnet_special_event_context_decode( + const uint8_t *apdu, + int max_apdu_len, + uint8_t tag_number, + BACNET_SPECIAL_EVENT *value); - BACNET_STACK_EXPORT - int bacnet_special_event_context_decode( - const uint8_t *apdu, int max_apdu_len, uint8_t tag_number, - BACNET_SPECIAL_EVENT *value); - - BACNET_STACK_EXPORT - bool bacnet_special_event_same( - const BACNET_SPECIAL_EVENT *value1, - const BACNET_SPECIAL_EVENT *value2); +BACNET_STACK_EXPORT +bool bacnet_special_event_same( + const BACNET_SPECIAL_EVENT *value1, const BACNET_SPECIAL_EVENT *value2); #ifdef __cplusplus } diff --git a/src/bacnet/timestamp.c b/src/bacnet/timestamp.c index 552b1bf0..5c1985ad 100644 --- a/src/bacnet/timestamp.c +++ b/src/bacnet/timestamp.c @@ -109,8 +109,9 @@ bool bacapp_timestamp_same( } break; case TIME_STAMP_DATETIME: - if (datetime_compare(&value1->value.dateTime, - &value2->value.dateTime) == 0) { + if (datetime_compare( + &value1->value.dateTime, &value2->value.dateTime) == + 0) { status = true; } break; @@ -250,8 +251,9 @@ int bacnet_timestamp_decode( break; case TIME_STAMP_SEQUENCE: - len = bacnet_unsigned_context_decode(&apdu[apdu_len], - apdu_size - apdu_len, tag.number, &unsigned_value); + len = bacnet_unsigned_context_decode( + &apdu[apdu_len], apdu_size - apdu_len, tag.number, + &unsigned_value); if (len <= 0) { return BACNET_STATUS_ERROR; } @@ -305,7 +307,8 @@ int bacapp_decode_timestamp(const uint8_t *apdu, BACNET_TIMESTAMP *value) * take the time stamp values. * @return number of bytes decoded, or BACNET_STATUS_ERROR if an error occurs */ -int bacnet_timestamp_context_decode(const uint8_t *apdu, +int bacnet_timestamp_context_decode( + const uint8_t *apdu, uint32_t apdu_size, uint8_t tag_number, BACNET_TIMESTAMP *value) @@ -398,22 +401,26 @@ bool bacapp_timestamp_init_ascii(BACNET_TIMESTAMP *timestamp, const char *ascii) status = true; } if (!status) { - count = sscanf(ascii, "%4d/%3d/%3d-%3d:%3d:%3d.%3d", &year, &month, - &day, &hour, &min, &sec, &hundredths); + count = sscanf( + ascii, "%4d/%3d/%3d-%3d:%3d:%3d.%3d", &year, &month, &day, &hour, + &min, &sec, &hundredths); if (count >= 3) { timestamp->tag = TIME_STAMP_DATETIME; - datetime_set_date(×tamp->value.dateTime.date, (uint16_t)year, - (uint8_t)month, (uint8_t)day); + datetime_set_date( + ×tamp->value.dateTime.date, (uint16_t)year, (uint8_t)month, + (uint8_t)day); if (count >= 7) { - datetime_set_time(×tamp->value.dateTime.time, - (uint8_t)hour, (uint8_t)min, (uint8_t)sec, - (uint8_t)hundredths); + datetime_set_time( + ×tamp->value.dateTime.time, (uint8_t)hour, + (uint8_t)min, (uint8_t)sec, (uint8_t)hundredths); } else if (count >= 6) { - datetime_set_time(×tamp->value.dateTime.time, - (uint8_t)hour, (uint8_t)min, (uint8_t)sec, 0); + datetime_set_time( + ×tamp->value.dateTime.time, (uint8_t)hour, + (uint8_t)min, (uint8_t)sec, 0); } else if (count >= 5) { - datetime_set_time(×tamp->value.dateTime.time, - (uint8_t)hour, (uint8_t)min, 0, 0); + datetime_set_time( + ×tamp->value.dateTime.time, (uint8_t)hour, + (uint8_t)min, 0, 0); } else if (count >= 4) { datetime_set_time( ×tamp->value.dateTime.time, (uint8_t)hour, 0, 0, 0); @@ -441,9 +448,9 @@ bool bacapp_timestamp_init_ascii(BACNET_TIMESTAMP *timestamp, const char *ascii) * @param str_size - size of the string, or 0 for length only * @param ts - pointer to the timestamp * @return number of characters printed -*/ -int bacapp_timestamp_to_ascii(char *str, size_t str_size, - const BACNET_TIMESTAMP *timestamp) + */ +int bacapp_timestamp_to_ascii( + char *str, size_t str_size, const BACNET_TIMESTAMP *timestamp) { int str_len = 0; @@ -453,8 +460,8 @@ int bacapp_timestamp_to_ascii(char *str, size_t str_size, switch (timestamp->tag) { case TIME_STAMP_TIME: /* 23:59:59.99 */ - str_len = snprintf(str, str_size, - "%02u:%02u:%02u.%02u", + str_len = snprintf( + str, str_size, "%02u:%02u:%02u.%02u", (unsigned)timestamp->value.time.hour, (unsigned)timestamp->value.time.min, (unsigned)timestamp->value.time.sec, @@ -462,13 +469,13 @@ int bacapp_timestamp_to_ascii(char *str, size_t str_size, break; case TIME_STAMP_SEQUENCE: /* 65535 */ - str_len = snprintf(str, str_size, "%u", - (unsigned)timestamp->value.sequenceNum); + str_len = snprintf( + str, str_size, "%u", (unsigned)timestamp->value.sequenceNum); break; case TIME_STAMP_DATETIME: /* 2021/12/31-23:59:59.99 */ - str_len = snprintf(str, str_size, - "%04u/%02u/%02u-%02u:%02u:%02u.%02u", + str_len = snprintf( + str, str_size, "%04u/%02u/%02u-%02u:%02u:%02u.%02u", (unsigned)timestamp->value.dateTime.date.year, (unsigned)timestamp->value.dateTime.date.month, (unsigned)timestamp->value.dateTime.date.day, diff --git a/src/bacnet/timestamp.h b/src/bacnet/timestamp.h index 75c140e2..6043e496 100644 --- a/src/bacnet/timestamp.h +++ b/src/bacnet/timestamp.h @@ -35,74 +35,55 @@ typedef struct BACnet_Timestamp { extern "C" { #endif /* __cplusplus */ - BACNET_STACK_EXPORT - void bacapp_timestamp_sequence_set( - BACNET_TIMESTAMP * dest, - uint16_t sequenceNum); +BACNET_STACK_EXPORT +void bacapp_timestamp_sequence_set( + BACNET_TIMESTAMP *dest, uint16_t sequenceNum); - BACNET_STACK_EXPORT - void bacapp_timestamp_time_set( - BACNET_TIMESTAMP * dest, - const BACNET_TIME *btime); +BACNET_STACK_EXPORT +void bacapp_timestamp_time_set( + BACNET_TIMESTAMP *dest, const BACNET_TIME *btime); - BACNET_STACK_EXPORT - void bacapp_timestamp_datetime_set( - BACNET_TIMESTAMP * dest, - const BACNET_DATE_TIME * bdateTime); +BACNET_STACK_EXPORT +void bacapp_timestamp_datetime_set( + BACNET_TIMESTAMP *dest, const BACNET_DATE_TIME *bdateTime); - BACNET_STACK_EXPORT - void bacapp_timestamp_copy( - BACNET_TIMESTAMP * dest, - const BACNET_TIMESTAMP * src); +BACNET_STACK_EXPORT +void bacapp_timestamp_copy(BACNET_TIMESTAMP *dest, const BACNET_TIMESTAMP *src); - BACNET_STACK_EXPORT - bool bacapp_timestamp_same( - const BACNET_TIMESTAMP *value1, - const BACNET_TIMESTAMP *value2); +BACNET_STACK_EXPORT +bool bacapp_timestamp_same( + const BACNET_TIMESTAMP *value1, const BACNET_TIMESTAMP *value2); - BACNET_STACK_EXPORT - int bacapp_encode_timestamp( - uint8_t * apdu, - const BACNET_TIMESTAMP * value); - BACNET_STACK_EXPORT - int bacapp_encode_context_timestamp( - uint8_t * apdu, - uint8_t tag_number, - const BACNET_TIMESTAMP * value); +BACNET_STACK_EXPORT +int bacapp_encode_timestamp(uint8_t *apdu, const BACNET_TIMESTAMP *value); +BACNET_STACK_EXPORT +int bacapp_encode_context_timestamp( + uint8_t *apdu, uint8_t tag_number, const BACNET_TIMESTAMP *value); - BACNET_STACK_EXPORT - int bacnet_timestamp_decode( - const uint8_t * apdu, - uint32_t apdu_size, - BACNET_TIMESTAMP * value); - BACNET_STACK_EXPORT - int bacnet_timestamp_context_decode( - const uint8_t * apdu, - uint32_t apdu_size, - uint8_t tag_number, - BACNET_TIMESTAMP * value); +BACNET_STACK_EXPORT +int bacnet_timestamp_decode( + const uint8_t *apdu, uint32_t apdu_size, BACNET_TIMESTAMP *value); +BACNET_STACK_EXPORT +int bacnet_timestamp_context_decode( + const uint8_t *apdu, + uint32_t apdu_size, + uint8_t tag_number, + BACNET_TIMESTAMP *value); - BACNET_STACK_DEPRECATED("Use bacnet_timestamp_decode() instead") - BACNET_STACK_EXPORT - int bacapp_decode_timestamp( - const uint8_t * apdu, - BACNET_TIMESTAMP * value); - BACNET_STACK_DEPRECATED("Use bacnet_timestamp_context_decode() instead") - BACNET_STACK_EXPORT - int bacapp_decode_context_timestamp( - const uint8_t * apdu, - uint8_t tag_number, - BACNET_TIMESTAMP * value); +BACNET_STACK_DEPRECATED("Use bacnet_timestamp_decode() instead") +BACNET_STACK_EXPORT +int bacapp_decode_timestamp(const uint8_t *apdu, BACNET_TIMESTAMP *value); +BACNET_STACK_DEPRECATED("Use bacnet_timestamp_context_decode() instead") +BACNET_STACK_EXPORT +int bacapp_decode_context_timestamp( + const uint8_t *apdu, uint8_t tag_number, BACNET_TIMESTAMP *value); - BACNET_STACK_EXPORT - bool bacapp_timestamp_init_ascii( - BACNET_TIMESTAMP *timestamp, - const char *ascii); - BACNET_STACK_EXPORT - int bacapp_timestamp_to_ascii( - char *str, - size_t str_size, - const BACNET_TIMESTAMP *timestamp); +BACNET_STACK_EXPORT +bool bacapp_timestamp_init_ascii( + BACNET_TIMESTAMP *timestamp, const char *ascii); +BACNET_STACK_EXPORT +int bacapp_timestamp_to_ascii( + char *str, size_t str_size, const BACNET_TIMESTAMP *timestamp); #ifdef __cplusplus } diff --git a/src/bacnet/timesync.c b/src/bacnet/timesync.c index a34b22aa..41f8d37f 100644 --- a/src/bacnet/timesync.c +++ b/src/bacnet/timesync.c @@ -25,7 +25,8 @@ * * @return Count of encoded bytes. */ -int timesync_encode_apdu_service(uint8_t *apdu, +int timesync_encode_apdu_service( + uint8_t *apdu, BACNET_UNCONFIRMED_SERVICE service, const BACNET_DATE *my_date, const BACNET_TIME *my_time) @@ -86,7 +87,8 @@ int timesync_encode_apdu( * * @return Count of decoded bytes. */ -int timesync_decode_service_request(const uint8_t *apdu, +int timesync_decode_service_request( + const uint8_t *apdu, unsigned apdu_len, BACNET_DATE *my_date, BACNET_TIME *my_time) @@ -164,8 +166,8 @@ int timesync_encode_timesync_recipients( if (pRecipient->tag == 0) { if (max_apdu >= (1 + 4)) { /* CHOICE - device [0] BACnetObjectIdentifier */ - len = encode_context_object_id(&apdu[apdu_len], 0, - pRecipient->type.device.type, + len = encode_context_object_id( + &apdu[apdu_len], 0, pRecipient->type.device.type, pRecipient->type.device.instance); apdu_len += len; } else { @@ -191,12 +193,12 @@ int timesync_encode_timesync_recipients( if (pRecipient->type.address.net == BACNET_BROADCAST_NETWORK) { octetstring_init(&octet_string, NULL, 0); } else if (pRecipient->type.address.net) { - octetstring_init(&octet_string, - &pRecipient->type.address.adr[0], + octetstring_init( + &octet_string, &pRecipient->type.address.adr[0], pRecipient->type.address.len); } else { - octetstring_init(&octet_string, - &pRecipient->type.address.mac[0], + octetstring_init( + &octet_string, &pRecipient->type.address.mac[0], pRecipient->type.address.mac_len); } len = encode_application_octet_string( @@ -263,8 +265,8 @@ int timesync_decode_timesync_recipients( if ((unsigned)(apdu_len + 4) > max_apdu) { return BACNET_STATUS_ABORT; } - len = decode_context_object_id(&apdu[apdu_len], 0, - &pRecipient->type.device.type, + len = decode_context_object_id( + &apdu[apdu_len], 0, &pRecipient->type.device.type, &pRecipient->type.device.instance); if (len < 0) { return BACNET_STATUS_ABORT; @@ -297,8 +299,9 @@ int timesync_decode_timesync_recipients( if (tag_number != BACNET_APPLICATION_TAG_OCTET_STRING) { return BACNET_STATUS_ABORT; } - len = bacnet_octet_string_decode(&apdu[apdu_len], - max_apdu - apdu_len, len_value_type, &octet_string); + len = bacnet_octet_string_decode( + &apdu[apdu_len], max_apdu - apdu_len, len_value_type, + &octet_string); if (len < 0) { return BACNET_STATUS_ERROR; } @@ -306,13 +309,13 @@ int timesync_decode_timesync_recipients( if (octetstring_length(&octet_string) == 0) { /* -- A string of length 0 indicates a broadcast */ } else if (pRecipient->type.address.net) { - pRecipient->type.address.len = - octetstring_copy_value(&pRecipient->type.address.adr[0], - sizeof(pRecipient->type.address.adr), &octet_string); + pRecipient->type.address.len = octetstring_copy_value( + &pRecipient->type.address.adr[0], + sizeof(pRecipient->type.address.adr), &octet_string); } else { - pRecipient->type.address.mac_len = - octetstring_copy_value(&pRecipient->type.address.mac[0], - sizeof(pRecipient->type.address.mac), &octet_string); + pRecipient->type.address.mac_len = octetstring_copy_value( + &pRecipient->type.address.mac[0], + sizeof(pRecipient->type.address.mac), &octet_string); } if (!decode_is_closing_tag_number(&apdu[apdu_len], 1)) { return BACNET_STATUS_ABORT; diff --git a/src/bacnet/timesync.h b/src/bacnet/timesync.h index fe411092..6d7fde6f 100644 --- a/src/bacnet/timesync.h +++ b/src/bacnet/timesync.h @@ -35,53 +35,45 @@ typedef struct BACnet_Recipient_List { extern "C" { #endif /* __cplusplus */ - /* encode service */ - BACNET_STACK_EXPORT - int timesync_utc_encode_apdu( - uint8_t * apdu, - const BACNET_DATE * my_date, - const BACNET_TIME * my_time); - BACNET_STACK_EXPORT - int timesync_encode_apdu( - uint8_t * apdu, - const BACNET_DATE * my_date, - const BACNET_TIME * my_time); - BACNET_STACK_EXPORT - int timesync_encode_apdu_service( - uint8_t * apdu, - BACNET_UNCONFIRMED_SERVICE service, - const BACNET_DATE * my_date, - const BACNET_TIME * my_time); - /* decode the service request only */ - BACNET_STACK_EXPORT - int timesync_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_DATE * my_date, - BACNET_TIME * my_time); - BACNET_STACK_EXPORT - int timesync_utc_decode_apdu( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_DATE * my_date, - BACNET_TIME * my_time); - BACNET_STACK_EXPORT - int timesync_decode_apdu( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_DATE * my_date, - BACNET_TIME * my_time); +/* encode service */ +BACNET_STACK_EXPORT +int timesync_utc_encode_apdu( + uint8_t *apdu, const BACNET_DATE *my_date, const BACNET_TIME *my_time); +BACNET_STACK_EXPORT +int timesync_encode_apdu( + uint8_t *apdu, const BACNET_DATE *my_date, const BACNET_TIME *my_time); +BACNET_STACK_EXPORT +int timesync_encode_apdu_service( + uint8_t *apdu, + BACNET_UNCONFIRMED_SERVICE service, + const BACNET_DATE *my_date, + const BACNET_TIME *my_time); +/* decode the service request only */ +BACNET_STACK_EXPORT +int timesync_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_DATE *my_date, + BACNET_TIME *my_time); +BACNET_STACK_EXPORT +int timesync_utc_decode_apdu( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_DATE *my_date, + BACNET_TIME *my_time); +BACNET_STACK_EXPORT +int timesync_decode_apdu( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_DATE *my_date, + BACNET_TIME *my_time); - BACNET_STACK_EXPORT - int timesync_encode_timesync_recipients( - uint8_t * apdu, - unsigned max_apdu, - BACNET_RECIPIENT_LIST * recipient); - BACNET_STACK_EXPORT - int timesync_decode_timesync_recipients( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_RECIPIENT_LIST * recipient); +BACNET_STACK_EXPORT +int timesync_encode_timesync_recipients( + uint8_t *apdu, unsigned max_apdu, BACNET_RECIPIENT_LIST *recipient); +BACNET_STACK_EXPORT +int timesync_decode_timesync_recipients( + const uint8_t *apdu, unsigned apdu_len, BACNET_RECIPIENT_LIST *recipient); #ifdef __cplusplus } diff --git a/src/bacnet/version.h b/src/bacnet/version.h index 3170a669..e59add86 100644 --- a/src/bacnet/version.h +++ b/src/bacnet/version.h @@ -12,13 +12,13 @@ /* This BACnet protocol stack version 0.0.0 - 255.255.255 */ #ifndef BACNET_VERSION -#define BACNET_VERSION(x,y,z) (((x)<<16)+((y)<<8)+(z)) +#define BACNET_VERSION(x, y, z) (((x) << 16) + ((y) << 8) + (z)) #endif #define BACNET_VERSION_TEXT "1.3.8" -#define BACNET_VERSION_CODE BACNET_VERSION(1,3,8) -#define BACNET_VERSION_MAJOR ((BACNET_VERSION_CODE>>16)&0xFF) -#define BACNET_VERSION_MINOR ((BACNET_VERSION_CODE>>8)&0xFF) -#define BACNET_VERSION_MAINTENANCE (BACNET_VERSION_CODE&0xFF) +#define BACNET_VERSION_CODE BACNET_VERSION(1, 3, 8) +#define BACNET_VERSION_MAJOR ((BACNET_VERSION_CODE >> 16) & 0xFF) +#define BACNET_VERSION_MINOR ((BACNET_VERSION_CODE >> 8) & 0xFF) +#define BACNET_VERSION_MAINTENANCE (BACNET_VERSION_CODE & 0xFF) #endif diff --git a/src/bacnet/weeklyschedule.h b/src/bacnet/weeklyschedule.h index a049746b..49e32279 100644 --- a/src/bacnet/weeklyschedule.h +++ b/src/bacnet/weeklyschedule.h @@ -20,38 +20,35 @@ extern "C" { #endif /* __cplusplus */ - typedef struct BACnet_Weekly_Schedule { - BACNET_DAILY_SCHEDULE weeklySchedule[7]; - bool singleDay; - } BACNET_WEEKLY_SCHEDULE; +typedef struct BACnet_Weekly_Schedule { + BACNET_DAILY_SCHEDULE weeklySchedule[7]; + bool singleDay; +} BACNET_WEEKLY_SCHEDULE; - /** Decode WeeklySchedule */ - BACNET_STACK_EXPORT - int bacnet_weeklyschedule_decode( - const uint8_t * apdu, - int apdu_size, - BACNET_WEEKLY_SCHEDULE * value); +/** Decode WeeklySchedule */ +BACNET_STACK_EXPORT +int bacnet_weeklyschedule_decode( + const uint8_t *apdu, int apdu_size, BACNET_WEEKLY_SCHEDULE *value); - /** Encode WeeklySchedule */ - BACNET_STACK_EXPORT - int bacnet_weeklyschedule_encode( - uint8_t * apdu, - const BACNET_WEEKLY_SCHEDULE * value); +/** Encode WeeklySchedule */ +BACNET_STACK_EXPORT +int bacnet_weeklyschedule_encode( + uint8_t *apdu, const BACNET_WEEKLY_SCHEDULE *value); - BACNET_STACK_EXPORT - int bacnet_weeklyschedule_context_encode( - uint8_t *apdu, uint8_t tag_number, - const BACNET_WEEKLY_SCHEDULE *value); +BACNET_STACK_EXPORT +int bacnet_weeklyschedule_context_encode( + uint8_t *apdu, uint8_t tag_number, const BACNET_WEEKLY_SCHEDULE *value); - BACNET_STACK_EXPORT - int bacnet_weeklyschedule_context_decode( - const uint8_t *apdu, int apdu_size, uint8_t tag_number, - BACNET_WEEKLY_SCHEDULE *value); +BACNET_STACK_EXPORT +int bacnet_weeklyschedule_context_decode( + const uint8_t *apdu, + int apdu_size, + uint8_t tag_number, + BACNET_WEEKLY_SCHEDULE *value); - BACNET_STACK_EXPORT - bool bacnet_weeklyschedule_same( - const BACNET_WEEKLY_SCHEDULE *value1, - const BACNET_WEEKLY_SCHEDULE *value2); +BACNET_STACK_EXPORT +bool bacnet_weeklyschedule_same( + const BACNET_WEEKLY_SCHEDULE *value1, const BACNET_WEEKLY_SCHEDULE *value2); #ifdef __cplusplus } diff --git a/src/bacnet/whois.h b/src/bacnet/whois.h index ffdd2ab7..c0a6ecc2 100644 --- a/src/bacnet/whois.h +++ b/src/bacnet/whois.h @@ -18,18 +18,15 @@ extern "C" { #endif /* __cplusplus */ /* encode service - use -1 for limit if you want unlimited */ - BACNET_STACK_EXPORT - int whois_encode_apdu( - uint8_t * apdu, - int32_t low_limit, - int32_t high_limit); +BACNET_STACK_EXPORT +int whois_encode_apdu(uint8_t *apdu, int32_t low_limit, int32_t high_limit); - BACNET_STACK_EXPORT - int whois_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - int32_t * pLow_limit, - int32_t * pHigh_limit); +BACNET_STACK_EXPORT +int whois_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + int32_t *pLow_limit, + int32_t *pHigh_limit); #ifdef __cplusplus } @@ -41,14 +38,14 @@ extern "C" { * object identifier, the network address, or both, of other BACnet devices * that share the same internetwork. * The Who-Is service is an unconfirmed service. The Who-Is service may be used - * to determine the device object identifier and network addresses of all devices - * on the network, or to determine the network address of a specific device whose - * device object identifier is known, but whose address is not.
- * The I-Am service is also an unconfirmed service. The I-Am service is used to - * respond to Who-Is service requests. However, the I-Am service request may be - * issued at any time. It does not need to be preceded by the receipt of a - * Who-Is service request. In particular, a device may wish to broadcast an I-Am - * service request when it powers up. The network address is derived either + * to determine the device object identifier and network addresses of all + * devices on the network, or to determine the network address of a specific + * device whose device object identifier is known, but whose address is not. + *
The I-Am service is also an unconfirmed service. The I-Am service is + * used to respond to Who-Is service requests. However, the I-Am service request + * may be issued at any time. It does not need to be preceded by the receipt of + * a Who-Is service request. In particular, a device may wish to broadcast an + * I-Am service request when it powers up. The network address is derived either * from the MAC address associated with the I-Am service request, if the device * issuing the request is on the local network, or from the NPCI if the device * is on a remote network. diff --git a/src/bacnet/wp.c b/src/bacnet/wp.c index 0cdfd07a..79c083ea 100644 --- a/src/bacnet/wp.c +++ b/src/bacnet/wp.c @@ -36,8 +36,8 @@ * @param data Pointer to the service data used for encoding values * @return number of bytes encoded, or zero if unable to encode */ -size_t writeproperty_apdu_encode( - uint8_t *apdu, const BACNET_WRITE_PROPERTY_DATA *data) +size_t +writeproperty_apdu_encode(uint8_t *apdu, const BACNET_WRITE_PROPERTY_DATA *data) { size_t apdu_len = 0; /* total length of the apdu, return value */ size_t len = 0; /* total length of the apdu, return value */ @@ -184,9 +184,7 @@ int wp_encode_apdu( * @return number of bytes decoded, or #BACNET_STATUS_ERROR */ int wp_decode_service_request( - const uint8_t *apdu, - unsigned apdu_size, - BACNET_WRITE_PROPERTY_DATA *wpdata) + const uint8_t *apdu, unsigned apdu_size, BACNET_WRITE_PROPERTY_DATA *wpdata) { int len = 0; int apdu_len = 0; @@ -305,7 +303,8 @@ int wp_decode_service_request( * @param expected_tag - the tag that is expected for this property value * @return true if the expected tag matches the value tag */ -bool write_property_type_valid(BACNET_WRITE_PROPERTY_DATA *wp_data, +bool write_property_type_valid( + BACNET_WRITE_PROPERTY_DATA *wp_data, const BACNET_APPLICATION_DATA_VALUE *value, uint8_t expected_tag) { @@ -331,7 +330,8 @@ bool write_property_type_valid(BACNET_WRITE_PROPERTY_DATA *wp_data, * @param len_max - max length accepted for a character string, or 0=unchecked * @return true if the character string value is valid */ -bool write_property_string_valid(BACNET_WRITE_PROPERTY_DATA *wp_data, +bool write_property_string_valid( + BACNET_WRITE_PROPERTY_DATA *wp_data, const BACNET_APPLICATION_DATA_VALUE *value, size_t len_max) { @@ -352,9 +352,10 @@ bool write_property_string_valid(BACNET_WRITE_PROPERTY_DATA *wp_data, wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else if ((len_max > 0) && + } else if ( + (len_max > 0) && (characterstring_length(&value->type.Character_String) > - len_max)) { + len_max)) { if (wp_data) { wp_data->error_class = ERROR_CLASS_RESOURCES; wp_data->error_code = ERROR_CODE_NO_SPACE_TO_WRITE_PROPERTY; @@ -388,7 +389,8 @@ bool write_property_string_valid(BACNET_WRITE_PROPERTY_DATA *wp_data, * @param len_max - max length accepted for a character string, or 0=unchecked * @return true if the character string value is valid */ -bool write_property_empty_string_valid(BACNET_WRITE_PROPERTY_DATA *wp_data, +bool write_property_empty_string_valid( + BACNET_WRITE_PROPERTY_DATA *wp_data, const BACNET_APPLICATION_DATA_VALUE *value, size_t len_max) { @@ -399,7 +401,7 @@ bool write_property_empty_string_valid(BACNET_WRITE_PROPERTY_DATA *wp_data, CHARACTER_ANSI_X34) { if ((len_max > 0) && (characterstring_length(&value->type.Character_String) > - len_max)) { + len_max)) { if (wp_data) { wp_data->error_class = ERROR_CLASS_RESOURCES; wp_data->error_code = ERROR_CODE_NO_SPACE_TO_WRITE_PROPERTY; diff --git a/src/bacnet/wp.h b/src/bacnet/wp.h index ed22c42f..6850e628 100644 --- a/src/bacnet/wp.h +++ b/src/bacnet/wp.h @@ -16,8 +16,8 @@ #include "bacnet/bacdcode.h" #include "bacnet/bacapp.h" -/** @note: write property can have application tagged data, or context tagged data, - or even complex data types (i.e. opening and closing tag around data). +/** @note: write property can have application tagged data, or context tagged + data, or even complex data types (i.e. opening and closing tag around data). It could also have more than one value or element. */ typedef struct BACnet_Write_Property_Data { @@ -29,7 +29,7 @@ typedef struct BACnet_Write_Property_Data { BACNET_ARRAY_INDEX array_index; uint8_t application_data[MAX_APDU]; int application_data_len; - uint8_t priority; /* use BACNET_NO_PRIORITY if no priority */ + uint8_t priority; /* use BACNET_NO_PRIORITY if no priority */ BACNET_ERROR_CLASS error_class; BACNET_ERROR_CODE error_code; } BACNET_WRITE_PROPERTY_DATA; @@ -44,52 +44,47 @@ typedef struct BACnet_Write_Property_Data { * @return The length of the apdu encoded or -1 for error or * -2 for abort message. */ -typedef bool( - *write_property_function) ( - BACNET_WRITE_PROPERTY_DATA * wp_data); +typedef bool (*write_property_function)(BACNET_WRITE_PROPERTY_DATA *wp_data); #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ - /* encode service */ - BACNET_STACK_EXPORT - size_t writeproperty_apdu_encode( - uint8_t *apdu, - const BACNET_WRITE_PROPERTY_DATA *data); - BACNET_STACK_EXPORT - size_t writeproperty_service_request_encode( - uint8_t *apdu, - size_t apdu_size, - const BACNET_WRITE_PROPERTY_DATA *data); - BACNET_STACK_EXPORT - int wp_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_WRITE_PROPERTY_DATA * wp_data); +/* encode service */ +BACNET_STACK_EXPORT +size_t writeproperty_apdu_encode( + uint8_t *apdu, const BACNET_WRITE_PROPERTY_DATA *data); +BACNET_STACK_EXPORT +size_t writeproperty_service_request_encode( + uint8_t *apdu, size_t apdu_size, const BACNET_WRITE_PROPERTY_DATA *data); +BACNET_STACK_EXPORT +int wp_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_WRITE_PROPERTY_DATA *wp_data); - /* decode the service request only */ - BACNET_STACK_EXPORT - int wp_decode_service_request( - const uint8_t * apdu, - unsigned apdu_len, - BACNET_WRITE_PROPERTY_DATA * wp_data); +/* decode the service request only */ +BACNET_STACK_EXPORT +int wp_decode_service_request( + const uint8_t *apdu, + unsigned apdu_len, + BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - bool write_property_type_valid( - BACNET_WRITE_PROPERTY_DATA * wp_data, - const BACNET_APPLICATION_DATA_VALUE * value, - uint8_t expected_tag); - BACNET_STACK_EXPORT - bool write_property_string_valid( - BACNET_WRITE_PROPERTY_DATA * wp_data, - const BACNET_APPLICATION_DATA_VALUE * value, - size_t len_max); - BACNET_STACK_EXPORT - bool write_property_empty_string_valid( - BACNET_WRITE_PROPERTY_DATA * wp_data, - const BACNET_APPLICATION_DATA_VALUE * value, - size_t len_max); +BACNET_STACK_EXPORT +bool write_property_type_valid( + BACNET_WRITE_PROPERTY_DATA *wp_data, + const BACNET_APPLICATION_DATA_VALUE *value, + uint8_t expected_tag); +BACNET_STACK_EXPORT +bool write_property_string_valid( + BACNET_WRITE_PROPERTY_DATA *wp_data, + const BACNET_APPLICATION_DATA_VALUE *value, + size_t len_max); +BACNET_STACK_EXPORT +bool write_property_empty_string_valid( + BACNET_WRITE_PROPERTY_DATA *wp_data, + const BACNET_APPLICATION_DATA_VALUE *value, + size_t len_max); #ifdef __cplusplus } diff --git a/src/bacnet/wpm.c b/src/bacnet/wpm.c index 433df751..2d0061d6 100644 --- a/src/bacnet/wpm.c +++ b/src/bacnet/wpm.c @@ -307,8 +307,8 @@ int wpm_encode_apdu_object_property( * @param data Pointer to the data to encode. * @return number of bytes encoded, or zero on error. */ -int write_property_multiple_request_encode(uint8_t *apdu, - BACNET_WRITE_ACCESS_DATA *data) +int write_property_multiple_request_encode( + uint8_t *apdu, BACNET_WRITE_ACCESS_DATA *data) { int len = 0; /* length of each encoding */ int apdu_len = 0; /* total length of the apdu, return value */ @@ -318,8 +318,8 @@ int write_property_multiple_request_encode(uint8_t *apdu, wpm_object = data; while (wpm_object) { - len = wpm_encode_apdu_object_begin(apdu, - wpm_object->object_type, wpm_object->object_instance); + len = wpm_encode_apdu_object_begin( + apdu, wpm_object->object_type, wpm_object->object_instance); apdu_len += len; if (apdu) { apdu += len; @@ -330,10 +330,9 @@ int write_property_multiple_request_encode(uint8_t *apdu, wpdata.array_index = wpm_property->propertyArrayIndex; wpdata.priority = wpm_property->priority; /* check length for fitting */ - wpdata.application_data_len = bacapp_encode_data( - NULL, &wpm_property->value); - if (wpdata.application_data_len > - sizeof(wpdata.application_data)) { + wpdata.application_data_len = + bacapp_encode_data(NULL, &wpm_property->value); + if (wpdata.application_data_len > sizeof(wpdata.application_data)) { /* too big for buffer */ return 0; } @@ -390,7 +389,8 @@ size_t write_property_multiple_request_service_encode( * @return number of bytes encoded, or zero if unable to encode or * too big for buffer */ -int wpm_encode_apdu(uint8_t *apdu, +int wpm_encode_apdu( + uint8_t *apdu, size_t apdu_size, uint8_t invoke_id, BACNET_WRITE_ACCESS_DATA *data) @@ -409,7 +409,7 @@ int wpm_encode_apdu(uint8_t *apdu, apdu += len; } len = write_property_multiple_request_service_encode( - apdu, apdu_size-apdu_len, data); + apdu, apdu_size - apdu_len, data); if (len > 0) { /* too big for buffer */ apdu_len += len; @@ -493,7 +493,9 @@ int wpm_error_ack_encode_apdu( * @return Count of decoded bytes. */ int wpm_error_ack_decode_apdu( - const uint8_t *apdu, uint16_t apdu_size, BACNET_WRITE_PROPERTY_DATA *wp_data) + const uint8_t *apdu, + uint16_t apdu_size, + BACNET_WRITE_PROPERTY_DATA *wp_data) { int len = 0, apdu_len = 0; const uint8_t *apdu_offset = NULL; @@ -618,10 +620,9 @@ int wpm_error_ack_decode_apdu( * @brief Convert an array of BACnetWriteAccessData to linked list * @param array pointer to element zero of the array * @param size number of elements in the array -*/ + */ void wpm_write_access_data_link_array( - BACNET_WRITE_ACCESS_DATA *array, - size_t size) + BACNET_WRITE_ACCESS_DATA *array, size_t size) { size_t i = 0; diff --git a/src/bacnet/wpm.h b/src/bacnet/wpm.h index 84e7f312..8dbe9848 100644 --- a/src/bacnet/wpm.h +++ b/src/bacnet/wpm.h @@ -22,84 +22,69 @@ extern "C" { #endif /* __cplusplus */ - struct BACnet_Write_Access_Data; - typedef struct BACnet_Write_Access_Data { - BACNET_OBJECT_TYPE object_type; - uint32_t object_instance; - /* simple linked list of values */ - BACNET_PROPERTY_VALUE *listOfProperties; - struct BACnet_Write_Access_Data *next; - } BACNET_WRITE_ACCESS_DATA; +struct BACnet_Write_Access_Data; +typedef struct BACnet_Write_Access_Data { + BACNET_OBJECT_TYPE object_type; + uint32_t object_instance; + /* simple linked list of values */ + BACNET_PROPERTY_VALUE *listOfProperties; + struct BACnet_Write_Access_Data *next; +} BACNET_WRITE_ACCESS_DATA; - /* decode the service request only */ - BACNET_STACK_EXPORT - int wpm_decode_object_id( - const uint8_t * apdu, - uint16_t apdu_len, - BACNET_WRITE_PROPERTY_DATA * wpdata); +/* decode the service request only */ +BACNET_STACK_EXPORT +int wpm_decode_object_id( + const uint8_t *apdu, uint16_t apdu_len, BACNET_WRITE_PROPERTY_DATA *wpdata); - BACNET_STACK_EXPORT - int wpm_decode_object_property( - const uint8_t * apdu, - uint16_t apdu_len, - BACNET_WRITE_PROPERTY_DATA * wpdata); +BACNET_STACK_EXPORT +int wpm_decode_object_property( + const uint8_t *apdu, uint16_t apdu_len, BACNET_WRITE_PROPERTY_DATA *wpdata); - /* encode objects */ - BACNET_STACK_EXPORT - int wpm_encode_apdu_init( - uint8_t * apdu, - uint8_t invoke_id); - BACNET_STACK_EXPORT - int wpm_encode_apdu_object_begin( - uint8_t * apdu, - BACNET_OBJECT_TYPE object_type, - uint32_t object_instance); - BACNET_STACK_EXPORT - int wpm_encode_apdu_object_property( - uint8_t * apdu, - const BACNET_WRITE_PROPERTY_DATA * wpdata); - BACNET_STACK_EXPORT - int wpm_encode_apdu_object_end( - uint8_t * apdu); +/* encode objects */ +BACNET_STACK_EXPORT +int wpm_encode_apdu_init(uint8_t *apdu, uint8_t invoke_id); +BACNET_STACK_EXPORT +int wpm_encode_apdu_object_begin( + uint8_t *apdu, BACNET_OBJECT_TYPE object_type, uint32_t object_instance); +BACNET_STACK_EXPORT +int wpm_encode_apdu_object_property( + uint8_t *apdu, const BACNET_WRITE_PROPERTY_DATA *wpdata); +BACNET_STACK_EXPORT +int wpm_encode_apdu_object_end(uint8_t *apdu); - BACNET_STACK_EXPORT - int write_property_multiple_request_encode(uint8_t *apdu, - BACNET_WRITE_ACCESS_DATA *data); - BACNET_STACK_EXPORT - size_t write_property_multiple_request_service_encode( - uint8_t *apdu, - size_t apdu_size, - BACNET_WRITE_ACCESS_DATA *data); +BACNET_STACK_EXPORT +int write_property_multiple_request_encode( + uint8_t *apdu, BACNET_WRITE_ACCESS_DATA *data); +BACNET_STACK_EXPORT +size_t write_property_multiple_request_service_encode( + uint8_t *apdu, size_t apdu_size, BACNET_WRITE_ACCESS_DATA *data); - BACNET_STACK_EXPORT - int wpm_encode_apdu( - uint8_t * apdu, - size_t max_apdu, - uint8_t invoke_id, - BACNET_WRITE_ACCESS_DATA * write_access_data); +BACNET_STACK_EXPORT +int wpm_encode_apdu( + uint8_t *apdu, + size_t max_apdu, + uint8_t invoke_id, + BACNET_WRITE_ACCESS_DATA *write_access_data); - /* encode service */ - BACNET_STACK_EXPORT - int wpm_ack_encode_apdu_init( - uint8_t * apdu, - uint8_t invoke_id); +/* encode service */ +BACNET_STACK_EXPORT +int wpm_ack_encode_apdu_init(uint8_t *apdu, uint8_t invoke_id); - BACNET_STACK_EXPORT - int wpm_error_ack_encode_apdu( - uint8_t * apdu, - uint8_t invoke_id, - const BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int wpm_error_ack_encode_apdu( + uint8_t *apdu, + uint8_t invoke_id, + const BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - int wpm_error_ack_decode_apdu( - const uint8_t *apdu, - uint16_t apdu_size, - BACNET_WRITE_PROPERTY_DATA * wp_data); +BACNET_STACK_EXPORT +int wpm_error_ack_decode_apdu( + const uint8_t *apdu, + uint16_t apdu_size, + BACNET_WRITE_PROPERTY_DATA *wp_data); - BACNET_STACK_EXPORT - void wpm_write_access_data_link_array( - BACNET_WRITE_ACCESS_DATA *base, - size_t size); +BACNET_STACK_EXPORT +void wpm_write_access_data_link_array( + BACNET_WRITE_ACCESS_DATA *base, size_t size); #ifdef __cplusplus } @@ -112,15 +97,15 @@ extern "C" { * This service potentially allows write access to any property of any object, * whether a BACnet-defined object or not. * Properties shall be modified by the WritePropertyMultiple service - * in the order specified in the 'List of Write Access Specifications' parameter, - * and execution of the service shall continue until all of the specified - * properties have been written to or a property is encountered that + * in the order specified in the 'List of Write Access Specifications' + * parameter, and execution of the service shall continue until all of the + * specified properties have been written to or a property is encountered that * for some reason cannot be modified as requested. * Some implementors may wish to restrict write access to certain properties * of certain objects. In such cases, an attempt to modify a restricted property - * shall result in the return of an error of 'Error Class' PROPERTY and 'Error Code' - * WRITE_ACCESS_DENIED. Note that these restricted properties may be accessible - * through the use of Virtual Terminal services or other means at the discretion - * of the implementor. -*/ + * shall result in the return of an error of 'Error Class' PROPERTY and 'Error + * Code' WRITE_ACCESS_DENIED. Note that these restricted properties may be + * accessible through the use of Virtual Terminal services or other means at the + * discretion of the implementor. + */ #endif diff --git a/test/bacnet/abort/src/main.c b/test/bacnet/abort/src/main.c index 26cdeafe..b4f29962 100644 --- a/test/bacnet/abort/src/main.c +++ b/test/bacnet/abort/src/main.c @@ -28,16 +28,19 @@ static int abort_decode_apdu( { int len = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ if (apdu_len > 0) { - if ((apdu[0] & 0xF0) != PDU_TYPE_ABORT) + if ((apdu[0] & 0xF0) != PDU_TYPE_ABORT) { return -1; - if (apdu[0] & 1) + } + if (apdu[0] & 1) { *server = true; - else + } else { *server = false; + } if (apdu_len > 1) { len = abort_decode_service_request( &apdu[1], apdu_len - 1, invoke_id, abort_reason); diff --git a/test/bacnet/alarm_ack/src/main.c b/test/bacnet/alarm_ack/src/main.c index b79cc757..1a51da76 100644 --- a/test/bacnet/alarm_ack/src/main.c +++ b/test/bacnet/alarm_ack/src/main.c @@ -45,8 +45,10 @@ static void testAlarmAck(void) data.eventStateAcked = EVENT_STATE_OFFNORMAL; memset(&test_data, 0, sizeof(test_data)); - apdu_len = bacnet_acknowledge_alarm_info_request_encode(apdu, sizeof(apdu), &data); - null_len = bacnet_acknowledge_alarm_info_request_encode(NULL, apdu_len, &data); + apdu_len = + bacnet_acknowledge_alarm_info_request_encode(apdu, sizeof(apdu), &data); + null_len = + bacnet_acknowledge_alarm_info_request_encode(NULL, apdu_len, &data); zassert_equal(null_len, apdu_len, NULL); test_len = alarm_ack_decode_service_request(apdu, apdu_len, &test_data); @@ -93,8 +95,10 @@ static void testAlarmAck(void) status = bacapp_timestamp_init_ascii(&data.eventTimeStamp, "2021/12/31"); zassert_true(status, NULL); zassert_equal(data.eventTimeStamp.tag, TIME_STAMP_DATETIME, NULL); - apdu_len = bacnet_acknowledge_alarm_info_request_encode(apdu, sizeof(apdu), &data); - null_len = bacnet_acknowledge_alarm_info_request_encode(NULL, apdu_len, &data); + apdu_len = + bacnet_acknowledge_alarm_info_request_encode(apdu, sizeof(apdu), &data); + null_len = + bacnet_acknowledge_alarm_info_request_encode(NULL, apdu_len, &data); zassert_equal(null_len, apdu_len, NULL); test_len = alarm_ack_decode_service_request(apdu, apdu_len, &test_data); zassert_equal( @@ -103,20 +107,25 @@ static void testAlarmAck(void) status = bacapp_timestamp_init_ascii(&data.eventTimeStamp, "1234"); zassert_true(status, NULL); zassert_equal(data.eventTimeStamp.tag, TIME_STAMP_SEQUENCE, NULL); - apdu_len = bacnet_acknowledge_alarm_info_request_encode(apdu, sizeof(apdu), &data); - null_len = bacnet_acknowledge_alarm_info_request_encode(NULL, apdu_len, &data); + apdu_len = + bacnet_acknowledge_alarm_info_request_encode(apdu, sizeof(apdu), &data); + null_len = + bacnet_acknowledge_alarm_info_request_encode(NULL, apdu_len, &data); zassert_equal(null_len, apdu_len, NULL); test_len = alarm_ack_decode_service_request(apdu, apdu_len, &test_data); zassert_equal( apdu_len, test_len, "apdu_len=%d test_len=%d", apdu_len, test_len); while (--apdu_len) { - test_len = bacnet_acknowledge_alarm_info_request_encode(apdu, apdu_len, &data); - zassert_equal(test_len, 0, "apdu_len=%d test_len=%d", apdu_len, test_len); + test_len = + bacnet_acknowledge_alarm_info_request_encode(apdu, apdu_len, &data); + zassert_equal( + test_len, 0, "apdu_len=%d test_len=%d", apdu_len, test_len); } apdu_len = null_len; while (--apdu_len) { test_len = alarm_ack_decode_service_request(apdu, apdu_len, &data); - zassert_true(test_len < 0, "apdu_len=%d test_len=%d", apdu_len, test_len); + zassert_true( + test_len < 0, "apdu_len=%d test_len=%d", apdu_len, test_len); } } diff --git a/test/bacnet/awf/src/main.c b/test/bacnet/awf/src/main.c index c7186c94..5a242e87 100644 --- a/test/bacnet/awf/src/main.c +++ b/test/bacnet/awf/src/main.c @@ -100,8 +100,8 @@ static void testAtomicWriteFile(void) return; } -static void testAtomicWriteFileAckAccess( - const BACNET_ATOMIC_WRITE_FILE_DATA *data) +static void +testAtomicWriteFileAckAccess(const BACNET_ATOMIC_WRITE_FILE_DATA *data) { BACNET_ATOMIC_WRITE_FILE_DATA test_data = { 0 }; uint8_t apdu[480] = { 0 }; diff --git a/test/bacnet/bacapp/src/main.c b/test/bacnet/bacapp/src/main.c index 6d430f04..36479114 100644 --- a/test/bacnet/bacapp/src/main.c +++ b/test/bacnet/bacapp/src/main.c @@ -1249,10 +1249,8 @@ static void test_bacapp_data(void) /* 1. test encoding matches for NULL and APDU buffer */ BACNET_APPLICATION_TAG tag = tag_list[i]; value.tag = tag; - null_len = - bacapp_encode_application_data(NULL, &value); - apdu_len = - bacapp_encode_application_data(apdu, &value); + null_len = bacapp_encode_application_data(NULL, &value); + apdu_len = bacapp_encode_application_data(apdu, &value); if (apdu_len != null_len) { printf( "bacapp: NULL len=%d != APDU len=%d for tag=%s", null_len, @@ -1264,8 +1262,7 @@ static void test_bacapp_data(void) test_len = 0; len = encode_opening_tag(apdu, 3); apdu_len += len; - len = bacapp_encode_application_data( - &apdu[apdu_len], &value); + len = bacapp_encode_application_data(&apdu[apdu_len], &value); test_len += len; apdu_len += len; len = encode_closing_tag(&apdu[apdu_len], 3); diff --git a/test/bacnet/bacdcode/src/main.c b/test/bacnet/bacdcode/src/main.c index a5952f34..bbd434f2 100644 --- a/test/bacnet/bacdcode/src/main.c +++ b/test/bacnet/bacdcode/src/main.c @@ -1230,10 +1230,8 @@ static void testBACDCodeBitString(void) null_len = encode_application_bitstring(NULL, &value); zassert_equal(len, null_len, NULL); /* decode */ - len = bacnet_bitstring_application_decode( - apdu, null_len, &test_value); - zassert_equal( - bitstring_bits_used(&test_value), (bit + 1), NULL); + len = bacnet_bitstring_application_decode(apdu, null_len, &test_value); + zassert_equal(bitstring_bits_used(&test_value), (bit + 1), NULL); zassert_true(bitstring_bit(&test_value, bit), NULL); len = bacnet_tag_decode(apdu, len, &tag); zassert_true(len > 0, NULL); @@ -1247,26 +1245,22 @@ static void testBACDCodeBitString(void) zassert_false(bitstring_bit(&value, bit), NULL); /* encode */ len = bacnet_bitstring_application_encode(apdu, sizeof(apdu), &value); - null_len = bacnet_bitstring_application_encode(NULL, sizeof(apdu), &value); + null_len = + bacnet_bitstring_application_encode(NULL, sizeof(apdu), &value); zassert_equal(len, null_len, NULL); /* decode */ - len = bacnet_bitstring_application_decode( - apdu, null_len, &test_value); + len = bacnet_bitstring_application_decode(apdu, null_len, &test_value); len = bacnet_tag_decode(apdu, len, &tag); zassert_true(len > 0, NULL); zassert_equal(tag.number, BACNET_APPLICATION_TAG_BIT_STRING, NULL); - zassert_equal( - bitstring_bits_used(&test_value), (bit + 1), NULL); + zassert_equal(bitstring_bits_used(&test_value), (bit + 1), NULL); zassert_false(bitstring_bit(&test_value, bit), NULL); } /* test APDU size limits */ - apdu_len = - bacnet_bitstring_application_encode(apdu, sizeof(apdu), &value); - null_len = - bacnet_bitstring_application_encode(NULL, sizeof(apdu), &value); + apdu_len = bacnet_bitstring_application_encode(apdu, sizeof(apdu), &value); + null_len = bacnet_bitstring_application_encode(NULL, sizeof(apdu), &value); zassert_equal(apdu_len, null_len, NULL); - test_len = - bacnet_bitstring_application_decode(apdu, apdu_len, &test_value); + test_len = bacnet_bitstring_application_decode(apdu, apdu_len, &test_value); zassert_equal( apdu_len, test_len, "test_len=%d apdu_len=%d", test_len, apdu_len); zassert_true(bitstring_same(&value, &test_value), NULL); @@ -1275,8 +1269,7 @@ static void testBACDCodeBitString(void) zassert_equal(len, BACNET_STATUS_ERROR, NULL); } while (--apdu_len) { - len = - bacnet_bitstring_application_encode(apdu, apdu_len, &value); + len = bacnet_bitstring_application_encode(apdu, apdu_len, &value); zassert_equal(len, 0, NULL); } } diff --git a/test/bacnet/bacdest/src/main.c b/test/bacnet/bacdest/src/main.c index 2a2615a6..c9728573 100644 --- a/test/bacnet/bacdest/src/main.c +++ b/test/bacnet/bacdest/src/main.c @@ -83,8 +83,8 @@ static void testBACnetDestination(void) zassert_equal(apdu_len, null_len, NULL); test_len = bacnet_destination_decode(apdu, apdu_len, &test_destination); zassert_equal(apdu_len, test_len, NULL); - testBACnetRecipientData(&destination.Recipient, - &test_destination.Recipient); + testBACnetRecipientData( + &destination.Recipient, &test_destination.Recipient); destination.Recipient.tag = BACNET_RECIPIENT_TAG_ADDRESS; destination.Recipient.type.address.net = 1234; @@ -151,11 +151,12 @@ static void test_BACnetDestination_ASCII(void) if (null_len > 0) { test_ascii = calloc(null_len, 1); if (test_ascii) { - test_len = - bacnet_destination_to_ascii(&test_destination, test_ascii, null_len); + test_len = bacnet_destination_to_ascii( + &test_destination, test_ascii, null_len); zassert_equal(null_len, test_len, NULL); while (--test_len) { - len = bacnet_destination_to_ascii(&test_destination, test_ascii, test_len); + len = bacnet_destination_to_ascii( + &test_destination, test_ascii, test_len); zassert_equal(len, null_len, NULL); } free(test_ascii); diff --git a/test/bacnet/bacint/src/main.c b/test/bacnet/bacint/src/main.c index e3e0eca9..f64193ca 100644 --- a/test/bacnet/bacint/src/main.c +++ b/test/bacnet/bacint/src/main.c @@ -339,8 +339,9 @@ static void testBACnetSigned8(void) test_value = ~0U; len = decode_signed8(&apdu[0], &test_value); zassert_equal(value, test_value, NULL); - if (value == 127) + if (value == 127) { break; + } } } @@ -376,8 +377,9 @@ static void testBACnetSigned16(void) test_value = ~0U; len = decode_signed16(&apdu[0], &test_value); zassert_equal(value, test_value, NULL); - if (value == 32767) + if (value == 32767) { break; + } } } diff --git a/test/bacnet/bactimevalue/src/main.c b/test/bacnet/bactimevalue/src/main.c index 08b59667..86536d74 100644 --- a/test/bacnet/bactimevalue/src/main.c +++ b/test/bacnet/bactimevalue/src/main.c @@ -53,7 +53,7 @@ static void test_BACnetTimeValue(BACNET_TIME_VALUE *value) } len = bacnet_time_value_context_encode(apdu, tag_number, value); - null_len = bacnet_time_value_context_encode(NULL,tag_number, value); + null_len = bacnet_time_value_context_encode(NULL, tag_number, value); zassert_equal(len, null_len, NULL); apdu_len = bacnet_time_value_context_decode(apdu, len, tag_number, &test_value); @@ -67,7 +67,8 @@ static void test_BACnetTimeValue(BACNET_TIME_VALUE *value) zassert_true(status, NULL); /* apdu too short testing */ while (--apdu_len) { - len = bacnet_time_value_context_decode(apdu, apdu_len, tag_number, &test_value); + len = bacnet_time_value_context_decode( + apdu, apdu_len, tag_number, &test_value); zassert_true(len < 0, NULL); } /* negative testing */ @@ -162,11 +163,11 @@ static void test_BACnetTimeValues(void) BACNET_APPLICATION_TAG_OBJECT_ID, "8:4194303", &value); zassert_true(status, NULL); rc = bacnet_application_to_primitive_data_value(&time_value.Value, &value); - zassert_equal(rc, BACNET_STATUS_ERROR ,"rc=%d", rc); + zassert_equal(rc, BACNET_STATUS_ERROR, "rc=%d", rc); rc = bacnet_application_to_primitive_data_value(NULL, &value); - zassert_equal(rc, BACNET_STATUS_ERROR ,"rc=%d", rc); + zassert_equal(rc, BACNET_STATUS_ERROR, "rc=%d", rc); rc = bacnet_application_to_primitive_data_value(&time_value.Value, NULL); - zassert_equal(rc, BACNET_STATUS_ERROR ,"rc=%d", rc); + zassert_equal(rc, BACNET_STATUS_ERROR, "rc=%d", rc); rc = bacnet_primitive_to_application_data_value(NULL, &time_value.Value); zassert_equal(rc, BACNET_STATUS_ERROR, NULL); rc = bacnet_primitive_to_application_data_value(&value, NULL); diff --git a/test/bacnet/basic/object/ai/src/main.c b/test/bacnet/basic/object/ai/src/main.c index 93c618a7..9d9ba69a 100644 --- a/test/bacnet/basic/object/ai/src/main.c +++ b/test/bacnet/basic/object/ai/src/main.c @@ -41,9 +41,7 @@ static void testAnalogInput(void) Analog_Input_Read_Property, Analog_Input_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Analog_Input_Name_Set, - Analog_Input_Name_ASCII); + object_instance, Analog_Input_Name_Set, Analog_Input_Name_ASCII); status = Analog_Input_Delete(object_instance); zassert_true(status, NULL); } diff --git a/test/bacnet/basic/object/ao/src/main.c b/test/bacnet/basic/object/ao/src/main.c index c640b6a3..ad69fc21 100644 --- a/test/bacnet/basic/object/ao/src/main.c +++ b/test/bacnet/basic/object/ao/src/main.c @@ -41,9 +41,7 @@ static void testAnalogOutput(void) Analog_Output_Read_Property, Analog_Output_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Analog_Output_Name_Set, - Analog_Output_Name_ASCII); + object_instance, Analog_Output_Name_Set, Analog_Output_Name_ASCII); status = Analog_Output_Delete(object_instance); zassert_true(status, NULL); } diff --git a/test/bacnet/basic/object/av/src/main.c b/test/bacnet/basic/object/av/src/main.c index a918f436..46e28851 100644 --- a/test/bacnet/basic/object/av/src/main.c +++ b/test/bacnet/basic/object/av/src/main.c @@ -41,9 +41,7 @@ static void testAnalog_Value(void) Analog_Value_Read_Property, Analog_Value_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Analog_Value_Name_Set, - Analog_Value_Name_ASCII); + object_instance, Analog_Value_Name_Set, Analog_Value_Name_ASCII); status = Analog_Value_Delete(object_instance); zassert_true(status, NULL); } diff --git a/test/bacnet/basic/object/bi/src/main.c b/test/bacnet/basic/object/bi/src/main.c index c826cf06..e095b194 100644 --- a/test/bacnet/basic/object/bi/src/main.c +++ b/test/bacnet/basic/object/bi/src/main.c @@ -42,9 +42,7 @@ static void testBinaryInput(void) Binary_Input_Read_Property, Binary_Input_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Binary_Input_Name_Set, - Binary_Input_Name_ASCII); + object_instance, Binary_Input_Name_Set, Binary_Input_Name_ASCII); status = Binary_Input_Delete(object_instance); zassert_true(status, NULL); } diff --git a/test/bacnet/basic/object/bitstring_value/src/main.c b/test/bacnet/basic/object/bitstring_value/src/main.c index 27098138..9c47b595 100644 --- a/test/bacnet/basic/object/bitstring_value/src/main.c +++ b/test/bacnet/basic/object/bitstring_value/src/main.c @@ -40,7 +40,7 @@ static void test_BitString_Value_Object(void) zassert_true(status, NULL); status = BitString_Value_Valid_Instance(instance); zassert_true(status, NULL); - status = BitString_Value_Valid_Instance(instance+1); + status = BitString_Value_Valid_Instance(instance + 1); zassert_false(status, NULL); test_count = BitString_Value_Count(); zassert_equal(test_count, 1, NULL); @@ -53,9 +53,7 @@ static void test_BitString_Value_Object(void) BitString_Value_Read_Property, BitString_Value_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - instance, - BitString_Value_Name_Set, - BitString_Value_Name_ASCII); + instance, BitString_Value_Name_Set, BitString_Value_Name_ASCII); /* test specific WriteProperty values */ BitString_Value_Write_Disable(instance); status = BitString_Value_Write_Enabled(instance); @@ -73,24 +71,24 @@ static void test_BitString_Value_Object(void) wpdata.object_property = PROP_PRESENT_VALUE; value.tag = BACNET_APPLICATION_TAG_BIT_STRING; bitstring_init(&value.type.Bit_String); - wpdata.application_data_len = bacapp_encode_application_data( - wpdata.application_data, &value); + wpdata.application_data_len = + bacapp_encode_application_data(wpdata.application_data, &value); status = BitString_Value_Write_Property(&wpdata); zassert_true(status, NULL); /* WP to out-of-service */ wpdata.object_property = PROP_OUT_OF_SERVICE; value.tag = BACNET_APPLICATION_TAG_BOOLEAN; value.type.Boolean = false; - wpdata.application_data_len = bacapp_encode_application_data( - wpdata.application_data, &value); + wpdata.application_data_len = + bacapp_encode_application_data(wpdata.application_data, &value); status = BitString_Value_Write_Property(&wpdata); zassert_true(status, NULL); /* WP to status-flags - read-only */ wpdata.object_property = PROP_STATUS_FLAGS; value.tag = BACNET_APPLICATION_TAG_BIT_STRING; bitstring_init(&value.type.Bit_String); - wpdata.application_data_len = bacapp_encode_application_data( - wpdata.application_data, &value); + wpdata.application_data_len = + bacapp_encode_application_data(wpdata.application_data, &value); status = BitString_Value_Write_Property(&wpdata); zassert_false(status, NULL); zassert_equal(wpdata.error_class, ERROR_CLASS_PROPERTY, NULL); @@ -99,8 +97,8 @@ static void test_BitString_Value_Object(void) wpdata.object_property = PROP_PRESENT_VALUE; value.tag = BACNET_APPLICATION_TAG_BIT_STRING; wpdata.array_index = 0; - wpdata.application_data_len = bacapp_encode_application_data( - wpdata.application_data, &value); + wpdata.application_data_len = + bacapp_encode_application_data(wpdata.application_data, &value); status = BitString_Value_Write_Property(&wpdata); zassert_false(status, NULL); zassert_equal(wpdata.error_class, ERROR_CLASS_PROPERTY, NULL); @@ -114,21 +112,21 @@ static void test_BitString_Value_Object(void) zassert_false(status, NULL); /* set same value */ BitString_Value_Change_Of_Value_Clear(instance); - status = BitString_Value_Present_Value_Set(instance, - &value.type.Bit_String); + status = + BitString_Value_Present_Value_Set(instance, &value.type.Bit_String); zassert_true(status, NULL); status = BitString_Value_Change_Of_Value(instance); zassert_false(status, NULL); /* set different value */ bitstring_set_bit(&value.type.Bit_String, 1, true); - status = BitString_Value_Present_Value_Set(instance, - &value.type.Bit_String); + status = + BitString_Value_Present_Value_Set(instance, &value.type.Bit_String); zassert_true(status, NULL); status = BitString_Value_Change_Of_Value(instance); zassert_true(status, NULL); /* COV */ - cov_property_value_list_link(value_list, - sizeof(value_list)/sizeof(value_list[0])); + cov_property_value_list_link( + value_list, sizeof(value_list) / sizeof(value_list[0])); status = BitString_Value_Encode_Value_List(instance, value_list); zassert_true(status, NULL); /* delete */ @@ -149,9 +147,9 @@ ZTEST_SUITE(bitstring_value_object_tests, NULL, NULL, NULL, NULL, NULL); #else void test_main(void) { - ztest_test_suite(bitstring_value_object_tests, - ztest_unit_test(test_BitString_Value_Object) - ); + ztest_test_suite( + bitstring_value_object_tests, + ztest_unit_test(test_BitString_Value_Object)); ztest_run_test_suite(bitstring_value_object_tests); } diff --git a/test/bacnet/basic/object/bo/src/main.c b/test/bacnet/basic/object/bo/src/main.c index 3a4adf81..f1424e8e 100644 --- a/test/bacnet/basic/object/bo/src/main.c +++ b/test/bacnet/basic/object/bo/src/main.c @@ -41,9 +41,7 @@ static void testBinaryOutput(void) Binary_Output_Read_Property, Binary_Output_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Binary_Output_Name_Set, - Binary_Output_Name_ASCII); + object_instance, Binary_Output_Name_Set, Binary_Output_Name_ASCII); status = Binary_Output_Delete(object_instance); zassert_true(status, NULL); } diff --git a/test/bacnet/basic/object/bv/src/main.c b/test/bacnet/basic/object/bv/src/main.c index 9641ee27..74817cbd 100644 --- a/test/bacnet/basic/object/bv/src/main.c +++ b/test/bacnet/basic/object/bv/src/main.c @@ -43,9 +43,7 @@ static void testBinary_Value(void) Binary_Value_Read_Property, Binary_Value_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Binary_Value_Name_Set, - Binary_Value_Name_ASCII); + object_instance, Binary_Value_Name_Set, Binary_Value_Name_ASCII); status = Binary_Value_Delete(object_instance); zassert_true(status, NULL); } diff --git a/test/bacnet/basic/object/calendar/src/main.c b/test/bacnet/basic/object/calendar/src/main.c index 6d695803..e6717162 100644 --- a/test/bacnet/basic/object/calendar/src/main.c +++ b/test/bacnet/basic/object/calendar/src/main.c @@ -230,16 +230,18 @@ static void testPresentValue(void) value->type.WeekNDay.weekofmonth = (date.day - 1) % 7 + 1; zassert_true(Calendar_Present_Value(instance), NULL); value->type.WeekNDay.weekofmonth++; - if (value->type.WeekNDay.weekofmonth > 5) + if (value->type.WeekNDay.weekofmonth > 5) { value->type.WeekNDay.weekofmonth = 1; + } zassert_false(Calendar_Present_Value(instance), NULL); value->type.WeekNDay.weekofmonth = 0xff; value->type.WeekNDay.dayofweek = date.wday; zassert_true(Calendar_Present_Value(instance), NULL); value->type.WeekNDay.dayofweek++; - if (value->type.WeekNDay.dayofweek > 7) + if (value->type.WeekNDay.dayofweek > 7) { value->type.WeekNDay.dayofweek = 1; + } zassert_false(Calendar_Present_Value(instance), NULL); Calendar_Date_List_Delete_All(instance); diff --git a/test/bacnet/basic/object/lc/src/main.c b/test/bacnet/basic/object/lc/src/main.c index f6cd5b86..3912ee76 100644 --- a/test/bacnet/basic/object/lc/src/main.c +++ b/test/bacnet/basic/object/lc/src/main.c @@ -255,8 +255,7 @@ static bool Test_Present_Value_Priority_Set(float value, unsigned priority) * @param priority - priority-array index value 1..16 * @return true if values are within range and present-value is relinquished. */ -static bool Test_Present_Value_Priority_Relinquish( - unsigned priority) +static bool Test_Present_Value_Priority_Relinquish(unsigned priority) { bool status = false; @@ -615,8 +614,8 @@ static void testLoadControlStateMachine(void) Load_Control_Present_Value(object_instance), BACNET_SHED_COMPLIANT, NULL); level = Test_Present_Value(); - zassert_true(islessgreater(100.0f, level), - "Present Value = %f", (double)level); + zassert_true( + islessgreater(100.0f, level), "Present Value = %f", (double)level); priority = Test_Present_Value_Priority(); zassert_equal( Load_Control_Priority_For_Writing(object_instance), priority, NULL); @@ -658,9 +657,7 @@ static void test_Load_Control_Read_Write_Property(void) Load_Control_Read_Property, Load_Control_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Load_Control_Name_Set, - Load_Control_Name_ASCII); + object_instance, Load_Control_Name_Set, Load_Control_Name_ASCII); test_teardown(object_instance); } diff --git a/test/bacnet/basic/object/lsz/src/main.c b/test/bacnet/basic/object/lsz/src/main.c index a6826b6b..8450b08d 100644 --- a/test/bacnet/basic/object/lsz/src/main.c +++ b/test/bacnet/basic/object/lsz/src/main.c @@ -55,7 +55,6 @@ static void testLifeSafetyZone(void) zassert_equal(test_name, NULL, NULL); /* cleanup */ status = Life_Safety_Zone_Delete(object_instance); - } /** * @} diff --git a/test/bacnet/basic/object/ms-input/src/main.c b/test/bacnet/basic/object/ms-input/src/main.c index 46c4bae9..d3f1bbea 100644 --- a/test/bacnet/basic/object/ms-input/src/main.c +++ b/test/bacnet/basic/object/ms-input/src/main.c @@ -42,8 +42,7 @@ static void testMultistateInput(void) Multistate_Input_Property_Lists, Multistate_Input_Read_Property, Multistate_Input_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Multistate_Input_Name_Set, + object_instance, Multistate_Input_Name_Set, Multistate_Input_Name_ASCII); status = Multistate_Input_Delete(object_instance); zassert_true(status, NULL); diff --git a/test/bacnet/basic/object/mso/src/main.c b/test/bacnet/basic/object/mso/src/main.c index 5c6bf797..cbd38680 100644 --- a/test/bacnet/basic/object/mso/src/main.c +++ b/test/bacnet/basic/object/mso/src/main.c @@ -41,8 +41,7 @@ static void testMultistateOutput(void) Multistate_Output_Property_Lists, Multistate_Output_Read_Property, Multistate_Output_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Multistate_Output_Name_Set, + object_instance, Multistate_Output_Name_Set, Multistate_Output_Name_ASCII); status = Multistate_Output_Delete(object_instance); zassert_true(status, NULL); diff --git a/test/bacnet/basic/object/msv/src/main.c b/test/bacnet/basic/object/msv/src/main.c index 9e136e86..4233a147 100644 --- a/test/bacnet/basic/object/msv/src/main.c +++ b/test/bacnet/basic/object/msv/src/main.c @@ -42,8 +42,7 @@ static void testMultistateValue(void) Multistate_Value_Property_Lists, Multistate_Value_Read_Property, Multistate_Value_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Multistate_Value_Name_Set, + object_instance, Multistate_Value_Name_Set, Multistate_Value_Name_ASCII); status = Multistate_Value_Delete(object_instance); zassert_true(status, NULL); diff --git a/test/bacnet/basic/object/netport/src/main.c b/test/bacnet/basic/object/netport/src/main.c index 51925e35..d1fd16e2 100644 --- a/test/bacnet/basic/object/netport/src/main.c +++ b/test/bacnet/basic/object/netport/src/main.c @@ -58,8 +58,7 @@ static void test_network_port(void) Network_Port_Read_Property, Network_Port_Write_Property, known_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Network_Port_Name_Set, + object_instance, Network_Port_Name_Set, Network_Port_Object_Name_ASCII); port++; } diff --git a/test/bacnet/basic/object/schedule/src/main.c b/test/bacnet/basic/object/schedule/src/main.c index 56279204..5a6b00a2 100644 --- a/test/bacnet/basic/object/schedule/src/main.c +++ b/test/bacnet/basic/object/schedule/src/main.c @@ -27,9 +27,7 @@ static void testSchedule(void) { unsigned count = 0; uint32_t object_instance = 0; - const int skip_fail_property_list[] = { - -1 - }; + const int skip_fail_property_list[] = { -1 }; Schedule_Init(); count = Schedule_Count(); diff --git a/test/bacnet/basic/object/structured_view/src/main.c b/test/bacnet/basic/object/structured_view/src/main.c index ea78f655..3fe4ac25 100644 --- a/test/bacnet/basic/object/structured_view/src/main.c +++ b/test/bacnet/basic/object/structured_view/src/main.c @@ -41,9 +41,7 @@ static void test_object_structured_view(void) OBJECT_STRUCTURED_VIEW, instance, Structured_View_Property_Lists, Structured_View_Read_Property, NULL, skip_fail_property_list); bacnet_object_name_ascii_test( - instance, - Structured_View_Name_Set, - Structured_View_Name_ASCII); + instance, Structured_View_Name_Set, Structured_View_Name_ASCII); } /** * @} diff --git a/test/bacnet/basic/object/test/datetime_local.c b/test/bacnet/basic/object/test/datetime_local.c index c1f6dac8..03acc203 100644 --- a/test/bacnet/basic/object/test/datetime_local.c +++ b/test/bacnet/basic/object/test/datetime_local.c @@ -31,8 +31,7 @@ bool datetime_local( return true; } -void datetime_timesync( - BACNET_DATE *bdate, BACNET_TIME *btime, bool utc) +void datetime_timesync(BACNET_DATE *bdate, BACNET_TIME *btime, bool utc) { if (bdate) { datetime_copy_date(&BACnet_Date, bdate); diff --git a/test/bacnet/basic/object/test/property_test.h b/test/bacnet/basic/object/test/property_test.h index b2be59f2..2b2d8b8a 100644 --- a/test/bacnet/basic/object/test/property_test.h +++ b/test/bacnet/basic/object/test/property_test.h @@ -14,10 +14,9 @@ #include /* function API pattern for testing ASCII name get/set */ -typedef bool (*object_name_ascii_set_function) (uint32_t object_instance, - const char *new_name); -typedef const char * (*object_name_ascii_function) ( - uint32_t object_instance); +typedef bool (*object_name_ascii_set_function)( + uint32_t object_instance, const char *new_name); +typedef const char *(*object_name_ascii_function)(uint32_t object_instance); void bacnet_object_name_ascii_test( uint32_t object_instance, diff --git a/test/bacnet/basic/object/time_value/src/main.c b/test/bacnet/basic/object/time_value/src/main.c index 906b5673..d8161877 100644 --- a/test/bacnet/basic/object/time_value/src/main.c +++ b/test/bacnet/basic/object/time_value/src/main.c @@ -41,9 +41,7 @@ static void testTimeValue(void) Time_Value_Read_Property, Time_Value_Write_Property, skip_fail_property_list); bacnet_object_name_ascii_test( - object_instance, - Time_Value_Name_Set, - Time_Value_Name_ASCII); + object_instance, Time_Value_Name_Set, Time_Value_Name_ASCII); /* check the delete function */ status = Time_Value_Delete(object_instance); zassert_true(status, NULL); diff --git a/test/bacnet/basic/sys/keylist/src/main.c b/test/bacnet/basic/sys/keylist/src/main.c index 8bbcc121..e3d200bd 100644 --- a/test/bacnet/basic/sys/keylist/src/main.c +++ b/test/bacnet/basic/sys/keylist/src/main.c @@ -291,8 +291,9 @@ static void testKeyListLarge(void) const unsigned num_keys = 1024 * 16; list = Keylist_Create(); - if (!list) + if (!list) { return; + } for (key = 0; key < num_keys; key++) { data_list[key] = 42 + key; diff --git a/test/bacnet/cov/src/main.c b/test/bacnet/cov/src/main.c index 5c60738f..0e55b7ff 100644 --- a/test/bacnet/cov/src/main.c +++ b/test/bacnet/cov/src/main.c @@ -33,12 +33,14 @@ int ccov_notify_decode_apdu( return -1; } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) { return -2; + } /* apdu[1] = encode_max_segs_max_apdu(0, MAX_APDU); */ *invoke_id = apdu[2]; /* invoke id - filled in by net layer */ - if (apdu[3] != SERVICE_CONFIRMED_COV_NOTIFICATION) + if (apdu[3] != SERVICE_CONFIRMED_COV_NOTIFICATION) { return -3; + } offset = 4; /* optional limits - must be used as a pair */ @@ -56,13 +58,16 @@ int ucov_notify_decode_apdu( int len = 0; unsigned offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) { return -2; - if (apdu[1] != SERVICE_UNCONFIRMED_COV_NOTIFICATION) + } + if (apdu[1] != SERVICE_UNCONFIRMED_COV_NOTIFICATION) { return -3; + } /* optional limits - must be used as a pair */ offset = 2; if (apdu_len > offset) { @@ -82,15 +87,18 @@ static int cov_subscribe_decode_apdu( int len = 0; unsigned offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) { return -2; + } /* apdu[1] = encode_max_segs_max_apdu(0, MAX_APDU); */ *invoke_id = apdu[2]; /* invoke id - filled in by net layer */ - if (apdu[3] != SERVICE_CONFIRMED_SUBSCRIBE_COV) + if (apdu[3] != SERVICE_CONFIRMED_SUBSCRIBE_COV) { return -3; + } offset = 4; /* optional limits - must be used as a pair */ @@ -111,15 +119,18 @@ static int cov_subscribe_property_decode_apdu( int len = 0; unsigned offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) { return -2; + } /* apdu[1] = encode_max_segs_max_apdu(0, MAX_APDU); */ *invoke_id = apdu[2]; /* invoke id - filled in by net layer */ - if (apdu[3] != SERVICE_CONFIRMED_SUBSCRIBE_COV_PROPERTY) + if (apdu[3] != SERVICE_CONFIRMED_SUBSCRIBE_COV_PROPERTY) { return -3; + } offset = 4; /* optional limits - must be used as a pair */ @@ -132,8 +143,8 @@ static int cov_subscribe_property_decode_apdu( } /* dummy function stubs */ -static void testCOVNotifyData( - const BACNET_COV_DATA *data, BACNET_COV_DATA *test_data) +static void +testCOVNotifyData(const BACNET_COV_DATA *data, BACNET_COV_DATA *test_data) { const BACNET_PROPERTY_VALUE *value = NULL; BACNET_PROPERTY_VALUE *test_value = NULL; @@ -295,8 +306,7 @@ static void testCOVSubscribePropertyData( } } -static void -testCOVSubscribeEncoding( +static void testCOVSubscribeEncoding( uint8_t invoke_id, const BACNET_SUBSCRIBE_COV_DATA *data) { uint8_t apdu[480] = { 0 }; diff --git a/test/bacnet/datalink/bvlc/src/main.c b/test/bacnet/datalink/bvlc/src/main.c index a3e60945..37c4f015 100644 --- a/test/bacnet/datalink/bvlc/src/main.c +++ b/test/bacnet/datalink/bvlc/src/main.c @@ -365,8 +365,8 @@ static void test_BVLC_Delete_Foreign_Device(void) test_BVLC_Delete_Foreign_Device_Message(&fdt_entry); } -static void test_BVLC_Secure_BVLL_Message( - const uint8_t *sbuf, uint16_t sbuf_len) +static void +test_BVLC_Secure_BVLL_Message(const uint8_t *sbuf, uint16_t sbuf_len) { uint8_t test_sbuf[50] = { 0 }; uint8_t pdu[60] = { 0 }; diff --git a/test/bacnet/datalink/mock/src/bip6-mock.c b/test/bacnet/datalink/mock/src/bip6-mock.c index 02133ab2..92a51c79 100644 --- a/test/bacnet/datalink/mock/src/bip6-mock.c +++ b/test/bacnet/datalink/mock/src/bip6-mock.c @@ -96,7 +96,8 @@ bool bip6_set_broadcast_addr(const BACNET_IP6_ADDRESS *addr) return ztest_get_return_value(); } -int bip6_send_mpdu(const BACNET_IP6_ADDRESS *dest, const uint8_t *mtu, uint16_t mtu_len) +int bip6_send_mpdu( + const BACNET_IP6_ADDRESS *dest, const uint8_t *mtu, uint16_t mtu_len) { ztest_check_expected_value(dest); ztest_check_expected_data(mtu, mtu_len); diff --git a/test/bacnet/datalink/mstp/src/main.c b/test/bacnet/datalink/mstp/src/main.c index e1bb4314..db9398e2 100644 --- a/test/bacnet/datalink/mstp/src/main.c +++ b/test/bacnet/datalink/mstp/src/main.c @@ -1103,23 +1103,27 @@ static void testZeroConfigNodeFSM(void) station = 0; test_station = Nmin_poll_station; next_station = MSTP_Zero_Config_Station_Increment(station); - zassert_equal(next_station, test_station, "station=%u next_station=%u", - station, next_station); + zassert_equal( + next_station, test_station, "station=%u next_station=%u", station, + next_station); station = Nmin_poll_station; test_station = Nmin_poll_station + 1; next_station = MSTP_Zero_Config_Station_Increment(station); - zassert_equal(next_station, test_station, "station=%u next_station=%u", - station, next_station); + zassert_equal( + next_station, test_station, "station=%u next_station=%u", station, + next_station); station = Nmax_poll_station - 1; test_station = Nmax_poll_station; next_station = MSTP_Zero_Config_Station_Increment(station); - zassert_equal(next_station, test_station,"station=%u next_station=%u", - station, next_station); + zassert_equal( + next_station, test_station, "station=%u next_station=%u", station, + next_station); station = Nmax_poll_station; test_station = Nmin_poll_station; next_station = MSTP_Zero_Config_Station_Increment(station); - zassert_equal(next_station, test_station, "station=%u next_station=%u", - station, next_station); + zassert_equal( + next_station, test_station, "station=%u next_station=%u", station, + next_station); } /** diff --git a/test/bacnet/getevent/src/main.c b/test/bacnet/getevent/src/main.c index 8cf0b384..7ecfba99 100644 --- a/test/bacnet/getevent/src/main.c +++ b/test/bacnet/getevent/src/main.c @@ -67,14 +67,17 @@ static int getevent_ack_decode_apdu( int len = 0; int offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_COMPLEX_ACK) + if (apdu[0] != PDU_TYPE_COMPLEX_ACK) { return -1; + } *invoke_id = apdu[1]; - if (apdu[2] != SERVICE_CONFIRMED_GET_EVENT_INFORMATION) + if (apdu[2] != SERVICE_CONFIRMED_GET_EVENT_INFORMATION) { return -1; + } offset = 3; if (apdu_len > offset) { len = getevent_ack_decode_service_request( diff --git a/test/bacnet/iam/src/main.c b/test/bacnet/iam/src/main.c index 5f137d44..cc8b0288 100644 --- a/test/bacnet/iam/src/main.c +++ b/test/bacnet/iam/src/main.c @@ -29,13 +29,16 @@ static int iam_decode_apdu( int apdu_len = 0; /* total length of the apdu, return value */ /* valid data? */ - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) { return -1; - if (apdu[1] != SERVICE_UNCONFIRMED_I_AM) + } + if (apdu[1] != SERVICE_UNCONFIRMED_I_AM) { return -1; + } apdu_len = iam_decode_service_request( &apdu[2], pDevice_id, pMax_apdu, pSegmentation, pVendor_id); diff --git a/test/bacnet/include/bacport.h b/test/bacnet/include/bacport.h index acd89201..96a93f97 100644 --- a/test/bacnet/include/bacport.h +++ b/test/bacnet/include/bacport.h @@ -1,21 +1,21 @@ /************************************************************************** -* -* Copyright (c) 2022 Legrand North America, LLC. -* -* SPDX-License-Identifier: MIT -* -*********************************************************************/ + * + * Copyright (c) 2022 Legrand North America, LLC. + * + * SPDX-License-Identifier: MIT + * + *********************************************************************/ /* ztest mock file */ #ifndef BACPORT_H #define BACPORT_H -#define BACNET_OBJECT_TABLE(table_name, _type, _init, _count, \ - _index_to_instance, _valid_instance, _object_name, \ - _read_property, _write_property, _RPM_list, \ - _RR_info, _iterator, _value_list, _COV, \ - _COV_clear, _intrinsic_reporting) \ - while{}(0) +#define BACNET_OBJECT_TABLE( \ + table_name, _type, _init, _count, _index_to_instance, _valid_instance, \ + _object_name, _read_property, _write_property, _RPM_list, _RR_info, \ + _iterator, _value_list, _COV, _COV_clear, _intrinsic_reporting) \ + while { } \ + (0) #endif diff --git a/test/bacnet/ptransfer/src/main.c b/test/bacnet/ptransfer/src/main.c index 0c915184..a37ee6a0 100644 --- a/test/bacnet/ptransfer/src/main.c +++ b/test/bacnet/ptransfer/src/main.c @@ -30,16 +30,19 @@ static int ptransfer_decode_apdu( int len = 0; unsigned offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) { return -1; + } /* apdu[1] = encode_max_segs_max_apdu(0, MAX_APDU); */ /* invoke id - filled in by net layer */ *invoke_id = apdu[2]; - if (apdu[3] != SERVICE_CONFIRMED_PRIVATE_TRANSFER) + if (apdu[3] != SERVICE_CONFIRMED_PRIVATE_TRANSFER) { return -1; + } offset = 4; if (apdu_len > offset) { @@ -86,14 +89,17 @@ static int ptransfer_ack_decode_apdu( int len = 0; int offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_COMPLEX_ACK) + if (apdu[0] != PDU_TYPE_COMPLEX_ACK) { return -1; + } *invoke_id = apdu[1]; - if (apdu[2] != SERVICE_CONFIRMED_PRIVATE_TRANSFER) + if (apdu[2] != SERVICE_CONFIRMED_PRIVATE_TRANSFER) { return -1; + } offset = 3; if (apdu_len > offset) { len = ptransfer_decode_service_request( @@ -114,14 +120,17 @@ static int ptransfer_error_decode_apdu( int len = 0; int offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_ERROR) + if (apdu[0] != PDU_TYPE_ERROR) { return -1; + } *invoke_id = apdu[1]; - if (apdu[2] != SERVICE_CONFIRMED_PRIVATE_TRANSFER) + if (apdu[2] != SERVICE_CONFIRMED_PRIVATE_TRANSFER) { return -1; + } offset = 3; if (apdu_len > offset) { len = ptransfer_error_decode_service_request( diff --git a/test/bacnet/reject/src/main.c b/test/bacnet/reject/src/main.c index d2490e76..5ec684e0 100644 --- a/test/bacnet/reject/src/main.c +++ b/test/bacnet/reject/src/main.c @@ -28,12 +28,14 @@ static int reject_decode_apdu( { int len = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ if (apdu_len) { - if (apdu[0] != PDU_TYPE_REJECT) + if (apdu[0] != PDU_TYPE_REJECT) { return -1; + } if (apdu_len > 1) { len = reject_decode_service_request( &apdu[1], apdu_len - 1, invoke_id, reject_reason); diff --git a/test/bacnet/rpm/src/main.c b/test/bacnet/rpm/src/main.c index 18e880cd..ea712df9 100644 --- a/test/bacnet/rpm/src/main.c +++ b/test/bacnet/rpm/src/main.c @@ -28,20 +28,25 @@ static int rpm_ack_decode_apdu( { int offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_COMPLEX_ACK) + if (apdu[0] != PDU_TYPE_COMPLEX_ACK) { return -1; + } *invoke_id = apdu[1]; - if (apdu[2] != SERVICE_CONFIRMED_READ_PROP_MULTIPLE) + if (apdu[2] != SERVICE_CONFIRMED_READ_PROP_MULTIPLE) { return -1; + } offset = 3; if (apdu_len > offset) { - if (service_request) + if (service_request) { *service_request = &apdu[offset]; - if (service_request_len) + } + if (service_request_len) { *service_request_len = apdu_len - offset; + } } return offset; @@ -56,22 +61,27 @@ static int rpm_decode_apdu( { unsigned offset = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_CONFIRMED_SERVICE_REQUEST) { return -1; + } /* apdu[1] = encode_max_segs_max_apdu(0, MAX_APDU); */ *invoke_id = apdu[2]; /* invoke id - filled in by net layer */ - if (apdu[3] != SERVICE_CONFIRMED_READ_PROP_MULTIPLE) + if (apdu[3] != SERVICE_CONFIRMED_READ_PROP_MULTIPLE) { return -1; + } offset = 4; if (apdu_len > offset) { - if (service_request) + if (service_request) { *service_request = &apdu[offset]; - if (service_request_len) + } + if (service_request_len) { *service_request_len = apdu_len - offset; + } } return offset; diff --git a/test/bacnet/timesync/src/main.c b/test/bacnet/timesync/src/main.c index d5d2970a..eecab8ea 100644 --- a/test/bacnet/timesync/src/main.c +++ b/test/bacnet/timesync/src/main.c @@ -133,13 +133,16 @@ static int timesync_decode_apdu_service( { int len = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) { return -1; - if (apdu[1] != service) + } + if (apdu[1] != service) { return -1; + } /* optional limits - must be used as a pair */ if (apdu_len > 2) { len = timesync_decode_service_request( @@ -171,8 +174,8 @@ int timesync_decode_apdu( my_time); } -static void testTimeSyncData( - const BACNET_DATE *my_date, const BACNET_TIME *my_time) +static void +testTimeSyncData(const BACNET_DATE *my_date, const BACNET_TIME *my_time) { uint8_t apdu[480] = { 0 }; int len = 0; diff --git a/test/bacnet/whohas/src/main.c b/test/bacnet/whohas/src/main.c index 67cc5669..369aa4fc 100644 --- a/test/bacnet/whohas/src/main.c +++ b/test/bacnet/whohas/src/main.c @@ -22,13 +22,16 @@ int whohas_decode_apdu( { int len = 0; - if (!apdu) + if (!apdu) { return -1; + } /* optional checking - most likely was already done prior to this call */ - if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) + if (apdu[0] != PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST) { return -1; - if (apdu[1] != SERVICE_UNCONFIRMED_WHO_HAS) + } + if (apdu[1] != SERVICE_UNCONFIRMED_WHO_HAS) { return -1; + } /* optional limits - must be used as a pair */ if (apdu_size > 2) { len = whohas_decode_service_request(&apdu[2], apdu_size - 2, data); @@ -82,7 +85,7 @@ static void testWhoHasData(BACNET_WHO_HAS_DATA *data) /* test short APDU buffer */ while (--apdu_len) { test_len = bacnet_who_has_service_request_encode(apdu, apdu_len, data); - zassert_equal(test_len, 0 , NULL); + zassert_equal(test_len, 0, NULL); } /* decoder bounds checking */ apdu_len = bacnet_who_has_request_encode(apdu, data); @@ -93,7 +96,7 @@ static void testWhoHasData(BACNET_WHO_HAS_DATA *data) /* test short APDU buffer */ while (--apdu_len) { test_len = whohas_decode_service_request(apdu, apdu_len, data); - zassert_equal(test_len, BACNET_STATUS_ERROR , NULL); + zassert_equal(test_len, BACNET_STATUS_ERROR, NULL); } } diff --git a/test/bacnet/wpm/src/main.c b/test/bacnet/wpm/src/main.c index 7e21de5d..375783b2 100644 --- a/test/bacnet/wpm/src/main.c +++ b/test/bacnet/wpm/src/main.c @@ -17,8 +17,8 @@ /** * @brief Decode service header for WritePropertyMultiple */ -static int wpm_decode_apdu( - const uint8_t *apdu, unsigned apdu_len, uint8_t *invoke_id) +static int +wpm_decode_apdu(const uint8_t *apdu, unsigned apdu_len, uint8_t *invoke_id) { int len = 0; diff --git a/test/unit/bacnet/bacerror/src/fakes/bacdcode.c b/test/unit/bacnet/bacerror/src/fakes/bacdcode.c index 29a9ccbe..d8e279e1 100644 --- a/test/unit/bacnet/bacerror/src/fakes/bacdcode.c +++ b/test/unit/bacnet/bacerror/src/fakes/bacdcode.c @@ -86,7 +86,8 @@ DEFINE_FAKE_VALUE_FUNC(int, bacnet_signed_application_decode, uint8_t *, uint16_ DEFINE_FAKE_VALUE_FUNC(int, bacnet_enumerated_decode, uint8_t *, uint16_t, uint32_t, uint32_t *); DEFINE_FAKE_VALUE_FUNC(int, bacnet_enumerated_context_decode, uint8_t *, uint16_t, uint8_t, uint32_t *); #endif -DEFINE_FAKE_VALUE_FUNC(int, decode_enumerated, const uint8_t *, uint32_t, uint32_t *); +DEFINE_FAKE_VALUE_FUNC( + int, decode_enumerated, const uint8_t *, uint32_t, uint32_t *); #if 0 DEFINE_FAKE_VALUE_FUNC(int, decode_context_enumerated, uint8_t *, uint8_t, uint32_t *); DEFINE_FAKE_VALUE_FUNC(int, encode_bacnet_enumerated, uint8_t *, uint32_t); diff --git a/test/unit/bacnet/bacerror/src/main.c b/test/unit/bacnet/bacerror/src/main.c index 9c12f67b..2db26d8d 100644 --- a/test/unit/bacnet/bacerror/src/main.c +++ b/test/unit/bacnet/bacerror/src/main.c @@ -28,7 +28,7 @@ CONTEXTTYPE *const contexts = CONTAINER_OF( \ FUNCNAME##_fake.return_val_seq, CONTEXTTYPE, RESULTFIELD); \ size_t const seq_idx = (FUNCNAME##_fake.return_val_seq_idx < \ - FUNCNAME##_fake.return_val_seq_len) \ + FUNCNAME##_fake.return_val_seq_len) \ ? FUNCNAME##_fake.return_val_seq_idx++ \ : FUNCNAME##_fake.return_val_seq_idx - 1; \ CONTEXTTYPE *const CONTEXTPTRNAME = &contexts[seq_idx]; \ @@ -54,15 +54,16 @@ struct encode_application_enumerated_custom_fake_context { /* Written to client by custom fake */ const uint8_t *const encoded_enumerated; - int const encoded_enumerated_len; + const int encoded_enumerated_len; int result; }; -static int encode_application_enumerated_custom_fake( - uint8_t *apdu, uint32_t enumerated) +static int +encode_application_enumerated_custom_fake(uint8_t *apdu, uint32_t enumerated) { - RETURN_HANDLED_CONTEXT(encode_application_enumerated, + RETURN_HANDLED_CONTEXT( + encode_application_enumerated, struct encode_application_enumerated_custom_fake_context, result, /* return field name in _fake_context struct */ context, /* Name of context ptr variable used below */ @@ -70,7 +71,8 @@ static int encode_application_enumerated_custom_fake( if (context != NULL) { if (context->result == 0) { if (apdu != NULL) { - memcpy(apdu, context->encoded_enumerated, + memcpy( + apdu, context->encoded_enumerated, context->encoded_enumerated_len); } } @@ -86,8 +88,8 @@ struct decode_tag_number_and_value_custom_fake_context { uint8_t *const apdu_expected; /* Written to client by custom fake */ - uint8_t const tag_number; - uint32_t const value; + const uint8_t tag_number; + const uint32_t value; int result; }; @@ -95,17 +97,20 @@ struct decode_tag_number_and_value_custom_fake_context { static int decode_tag_number_and_value_custom_fake( const uint8_t *apdu, uint8_t *tag_number, uint32_t *value) { - RETURN_HANDLED_CONTEXT(decode_tag_number_and_value, + RETURN_HANDLED_CONTEXT( + decode_tag_number_and_value, struct decode_tag_number_and_value_custom_fake_context, result, /* return field name in _fake_context struct */ context, /* Name of context ptr variable used below */ { if (context != NULL) { if (context->result > 0) { - if (tag_number != NULL) + if (tag_number != NULL) { *tag_number = context->tag_number; - if (value != NULL) + } + if (value != NULL) { *value = context->value; + } } return context->result; @@ -119,7 +124,7 @@ struct decode_enumerated_custom_fake_context { uint8_t *const apdu_expected; /* Written to client by custom fake */ - uint32_t const value; + const uint32_t value; int result; }; @@ -127,15 +132,16 @@ struct decode_enumerated_custom_fake_context { static int decode_enumerated_custom_fake( const uint8_t *apdu, uint32_t len_value, uint32_t *value) { - RETURN_HANDLED_CONTEXT(decode_enumerated, - struct decode_enumerated_custom_fake_context, + RETURN_HANDLED_CONTEXT( + decode_enumerated, struct decode_enumerated_custom_fake_context, result, /* return field name in _fake_context struct */ context, /* Name of context ptr variable used below */ { if (context != NULL) { if (context->result > 0) { - if (value != NULL) + if (value != NULL) { *value = context->value; + } } return context->result; @@ -276,7 +282,8 @@ static void test_bacerror_encode_apdu(void) for (int i = 0; i < ARRAY_SIZE(test_cases); ++i) { const struct test_case *const tc = &test_cases[i]; - printk("Checking test_cases[%i]: %s\n", i, + printk( + "Checking test_cases[%i]: %s\n", i, (tc->description_oneliner != NULL) ? tc->description_oneliner : ""); /* @@ -296,7 +303,8 @@ static void test_bacerror_encode_apdu(void) */ encode_application_enumerated_fake.return_val = -E2BIG; /* for excessive calls */ - SET_RETURN_SEQ(encode_application_enumerated, + SET_RETURN_SEQ( + encode_application_enumerated, &tc->encode_application_enumerated_custom_fake_contexts[0].result, tc->encode_application_enumerated_custom_fake_contexts_len); encode_application_enumerated_fake.custom_fake = @@ -307,8 +315,9 @@ static void test_bacerror_encode_apdu(void) /* * Call code_under_test */ - int result = bacerror_encode_apdu(tc->apdu, tc->invoke_id, tc->service, - tc->error_class, tc->error_code); + int result = bacerror_encode_apdu( + tc->apdu, tc->invoke_id, tc->service, tc->error_class, + tc->error_code); /* * Verify expected behavior of code_under_test: @@ -332,15 +341,18 @@ static void test_bacerror_encode_apdu(void) ? 0 : tc->encode_application_enumerated_custom_fake_contexts_len - 1; - zassert_equal(encode_application_enumerated_fake.call_count, + zassert_equal( + encode_application_enumerated_fake.call_count, encode_application_enumerated_fake_call_count_expected, NULL); for (int j = 0; j < encode_application_enumerated_fake_call_count_expected; ++j) { - zassert_equal(encode_application_enumerated_fake.arg0_history[j], + zassert_equal( + encode_application_enumerated_fake.arg0_history[j], tc->encode_application_enumerated_custom_fake_contexts[j] .apdu_expected, NULL); - zassert_equal(encode_application_enumerated_fake.arg1_history[j], + zassert_equal( + encode_application_enumerated_fake.arg1_history[j], tc->encode_application_enumerated_custom_fake_contexts[j] .value_expected, NULL); @@ -469,7 +481,8 @@ static void test_bacerror_decode_error_class_and_code(void) .expected_call_history = (void *[]) { - bacnet_enumerated_application_decode, NULL, /* mark end of array */ + bacnet_enumerated_application_decode, + NULL, /* mark end of array */ }, .decode_tag_number_and_value_custom_fake_contexts_len = 2, @@ -983,7 +996,8 @@ static void test_bacerror_decode_error_class_and_code(void) for (int i = 0; i < ARRAY_SIZE(test_cases); ++i) { const struct test_case *const tc = &test_cases[i]; - printk("Checking test_cases[%i]: %s\n", i, + printk( + "Checking test_cases[%i]: %s\n", i, (tc->description_oneliner != NULL) ? tc->description_oneliner : ""); /* @@ -1003,14 +1017,16 @@ static void test_bacerror_decode_error_class_and_code(void) */ decode_tag_number_and_value_fake.return_val = -E2BIG; /* for excessive calls */ - SET_RETURN_SEQ(decode_tag_number_and_value, + SET_RETURN_SEQ( + decode_tag_number_and_value, &tc->decode_tag_number_and_value_custom_fake_contexts[0].result, tc->decode_tag_number_and_value_custom_fake_contexts_len); decode_tag_number_and_value_fake.custom_fake = decode_tag_number_and_value_custom_fake; decode_enumerated_fake.return_val = -E2BIG; /* for excessive calls */ - SET_RETURN_SEQ(decode_enumerated, + SET_RETURN_SEQ( + decode_enumerated, &tc->decode_enumerated_custom_fake_contexts[0].result, tc->decode_enumerated_custom_fake_contexts_len); decode_enumerated_fake.custom_fake = decode_enumerated_custom_fake; @@ -1064,11 +1080,13 @@ static void test_bacerror_decode_error_class_and_code(void) ? 0 : tc->decode_tag_number_and_value_custom_fake_contexts_len - 1; - zassert_equal(decode_tag_number_and_value_fake.call_count, + zassert_equal( + decode_tag_number_and_value_fake.call_count, decode_tag_number_and_value_fake_call_count_expected, NULL); for (int j = 0; j < decode_tag_number_and_value_fake_call_count_expected; ++j) { - zassert_equal(decode_tag_number_and_value_fake.arg0_history[j], + zassert_equal( + decode_tag_number_and_value_fake.arg0_history[j], tc->decode_tag_number_and_value_custom_fake_contexts[j] .apdu_expected, NULL); @@ -1083,13 +1101,16 @@ static void test_bacerror_decode_error_class_and_code(void) ? 0 : tc->decode_enumerated_custom_fake_contexts_len - 1; - zassert_equal(decode_enumerated_fake.call_count, + zassert_equal( + decode_enumerated_fake.call_count, decode_enumerated_fake_call_count_expected, NULL); for (int j = 0; j < decode_enumerated_fake_call_count_expected; ++j) { - zassert_equal(decode_enumerated_fake.arg0_history[j], + zassert_equal( + decode_enumerated_fake.arg0_history[j], tc->decode_enumerated_custom_fake_contexts[j].apdu_expected, NULL); - zassert_equal(decode_enumerated_fake.arg1_history[j], + zassert_equal( + decode_enumerated_fake.arg1_history[j], tc->decode_tag_number_and_value_custom_fake_contexts[j].value, NULL); zassert_not_null(decode_enumerated_fake.arg2_history[j], NULL); @@ -1131,8 +1152,8 @@ ZTEST_SUITE(bacnet_error, NULL, NULL, NULL, NULL, NULL); #else void test_main(void) { - ztest_test_suite(bacnet_bacerror, - ztest_unit_test(test_bacerror_encode_apdu), + ztest_test_suite( + bacnet_bacerror, ztest_unit_test(test_bacerror_encode_apdu), ztest_unit_test(test_bacerror_decode_error_class_and_code)); ztest_run_test_suite(bacnet_bacerror); } diff --git a/test/unit/bacnet/bacint/src/main.c b/test/unit/bacnet/bacint/src/main.c index 4ffa7832..d2fd3777 100644 --- a/test/unit/bacnet/bacint/src/main.c +++ b/test/unit/bacnet/bacint/src/main.c @@ -48,8 +48,8 @@ static void test_unsigned16(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >> 8); - test_apdu[3] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 8); + test_apdu[3] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_unsigned16(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_unsigned16(&apdu[2], &value), NULL); @@ -57,8 +57,8 @@ static void test_unsigned16(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >> 8); - test_apdu[3] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 8); + test_apdu[3] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_unsigned16(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_unsigned16(&apdu[2], &value), NULL); @@ -67,8 +67,8 @@ static void test_unsigned16(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_unsigned16(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_unsigned16(&apdu[3], &value), NULL); @@ -76,8 +76,8 @@ static void test_unsigned16(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_unsigned16(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_unsigned16(&apdu[3], &value), NULL); @@ -122,9 +122,9 @@ static void test_unsigned24(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>16); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 16); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_unsigned24(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_unsigned24(&apdu[2], &value), NULL); @@ -132,9 +132,9 @@ static void test_unsigned24(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>16); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 16); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_unsigned24(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_unsigned24(&apdu[2], &value), NULL); @@ -143,9 +143,9 @@ static void test_unsigned24(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_unsigned24(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_unsigned24(&apdu[3], &value), NULL); @@ -153,9 +153,9 @@ static void test_unsigned24(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_unsigned24(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_unsigned24(&apdu[3], &value), NULL); @@ -200,10 +200,10 @@ static void test_unsigned32(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>24); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 24); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_unsigned32(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_unsigned32(&apdu[2], &value), NULL); @@ -211,10 +211,10 @@ static void test_unsigned32(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>24); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 24); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_unsigned32(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_unsigned32(&apdu[2], &value), NULL); @@ -223,10 +223,10 @@ static void test_unsigned32(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>24); - test_apdu[4] = (uint8_t) (test_value >>16); - test_apdu[5] = (uint8_t) (test_value >> 8); - test_apdu[6] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 24); + test_apdu[4] = (uint8_t)(test_value >> 16); + test_apdu[5] = (uint8_t)(test_value >> 8); + test_apdu[6] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_unsigned32(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_unsigned32(&apdu[3], &value), NULL); @@ -234,10 +234,10 @@ static void test_unsigned32(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>24); - test_apdu[4] = (uint8_t) (test_value >>16); - test_apdu[5] = (uint8_t) (test_value >> 8); - test_apdu[6] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 24); + test_apdu[4] = (uint8_t)(test_value >> 16); + test_apdu[5] = (uint8_t)(test_value >> 8); + test_apdu[6] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_unsigned32(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_unsigned32(&apdu[3], &value), NULL); @@ -283,11 +283,11 @@ static void test_unsigned40(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>32); - test_apdu[3] = (uint8_t) (test_value >>24); - test_apdu[4] = (uint8_t) (test_value >>16); - test_apdu[5] = (uint8_t) (test_value >> 8); - test_apdu[6] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 32); + test_apdu[3] = (uint8_t)(test_value >> 24); + test_apdu[4] = (uint8_t)(test_value >> 16); + test_apdu[5] = (uint8_t)(test_value >> 8); + test_apdu[6] = (uint8_t)(test_value >> 0); zassert_equal(5, encode_unsigned40(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(5, decode_unsigned40(&apdu[2], &value), NULL); @@ -295,11 +295,11 @@ static void test_unsigned40(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>32); - test_apdu[3] = (uint8_t) (test_value >>24); - test_apdu[4] = (uint8_t) (test_value >>16); - test_apdu[5] = (uint8_t) (test_value >> 8); - test_apdu[6] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 32); + test_apdu[3] = (uint8_t)(test_value >> 24); + test_apdu[4] = (uint8_t)(test_value >> 16); + test_apdu[5] = (uint8_t)(test_value >> 8); + test_apdu[6] = (uint8_t)(test_value >> 0); zassert_equal(5, encode_unsigned40(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(5, decode_unsigned40(&apdu[2], &value), NULL); @@ -308,11 +308,11 @@ static void test_unsigned40(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>32); - test_apdu[4] = (uint8_t) (test_value >>24); - test_apdu[5] = (uint8_t) (test_value >>16); - test_apdu[6] = (uint8_t) (test_value >> 8); - test_apdu[7] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 32); + test_apdu[4] = (uint8_t)(test_value >> 24); + test_apdu[5] = (uint8_t)(test_value >> 16); + test_apdu[6] = (uint8_t)(test_value >> 8); + test_apdu[7] = (uint8_t)(test_value >> 0); zassert_equal(5, encode_unsigned40(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(5, decode_unsigned40(&apdu[3], &value), NULL); @@ -320,11 +320,11 @@ static void test_unsigned40(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>32); - test_apdu[4] = (uint8_t) (test_value >>24); - test_apdu[5] = (uint8_t) (test_value >>16); - test_apdu[6] = (uint8_t) (test_value >> 8); - test_apdu[7] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 32); + test_apdu[4] = (uint8_t)(test_value >> 24); + test_apdu[5] = (uint8_t)(test_value >> 16); + test_apdu[6] = (uint8_t)(test_value >> 8); + test_apdu[7] = (uint8_t)(test_value >> 0); zassert_equal(5, encode_unsigned40(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(5, decode_unsigned40(&apdu[3], &value), NULL); @@ -377,12 +377,12 @@ static void test_unsigned48(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>40); - test_apdu[3] = (uint8_t) (test_value >>32); - test_apdu[4] = (uint8_t) (test_value >>24); - test_apdu[5] = (uint8_t) (test_value >>16); - test_apdu[6] = (uint8_t) (test_value >> 8); - test_apdu[7] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 40); + test_apdu[3] = (uint8_t)(test_value >> 32); + test_apdu[4] = (uint8_t)(test_value >> 24); + test_apdu[5] = (uint8_t)(test_value >> 16); + test_apdu[6] = (uint8_t)(test_value >> 8); + test_apdu[7] = (uint8_t)(test_value >> 0); zassert_equal(6, encode_unsigned48(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(6, decode_unsigned48(&apdu[2], &value), NULL); @@ -390,12 +390,12 @@ static void test_unsigned48(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>40); - test_apdu[3] = (uint8_t) (test_value >>32); - test_apdu[4] = (uint8_t) (test_value >>24); - test_apdu[5] = (uint8_t) (test_value >>16); - test_apdu[6] = (uint8_t) (test_value >> 8); - test_apdu[7] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 40); + test_apdu[3] = (uint8_t)(test_value >> 32); + test_apdu[4] = (uint8_t)(test_value >> 24); + test_apdu[5] = (uint8_t)(test_value >> 16); + test_apdu[6] = (uint8_t)(test_value >> 8); + test_apdu[7] = (uint8_t)(test_value >> 0); zassert_equal(6, encode_unsigned48(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(6, decode_unsigned48(&apdu[2], &value), NULL); @@ -404,12 +404,12 @@ static void test_unsigned48(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>40); - test_apdu[4] = (uint8_t) (test_value >>32); - test_apdu[5] = (uint8_t) (test_value >>24); - test_apdu[6] = (uint8_t) (test_value >>16); - test_apdu[7] = (uint8_t) (test_value >> 8); - test_apdu[8] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 40); + test_apdu[4] = (uint8_t)(test_value >> 32); + test_apdu[5] = (uint8_t)(test_value >> 24); + test_apdu[6] = (uint8_t)(test_value >> 16); + test_apdu[7] = (uint8_t)(test_value >> 8); + test_apdu[8] = (uint8_t)(test_value >> 0); zassert_equal(6, encode_unsigned48(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(6, decode_unsigned48(&apdu[3], &value), NULL); @@ -417,12 +417,12 @@ static void test_unsigned48(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>40); - test_apdu[4] = (uint8_t) (test_value >>32); - test_apdu[5] = (uint8_t) (test_value >>24); - test_apdu[6] = (uint8_t) (test_value >>16); - test_apdu[7] = (uint8_t) (test_value >> 8); - test_apdu[8] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 40); + test_apdu[4] = (uint8_t)(test_value >> 32); + test_apdu[5] = (uint8_t)(test_value >> 24); + test_apdu[6] = (uint8_t)(test_value >> 16); + test_apdu[7] = (uint8_t)(test_value >> 8); + test_apdu[8] = (uint8_t)(test_value >> 0); zassert_equal(6, encode_unsigned48(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(6, decode_unsigned48(&apdu[3], &value), NULL); @@ -475,13 +475,13 @@ static void test_unsigned56(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>48); - test_apdu[3] = (uint8_t) (test_value >>40); - test_apdu[4] = (uint8_t) (test_value >>32); - test_apdu[5] = (uint8_t) (test_value >>24); - test_apdu[6] = (uint8_t) (test_value >>16); - test_apdu[7] = (uint8_t) (test_value >> 8); - test_apdu[8] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 48); + test_apdu[3] = (uint8_t)(test_value >> 40); + test_apdu[4] = (uint8_t)(test_value >> 32); + test_apdu[5] = (uint8_t)(test_value >> 24); + test_apdu[6] = (uint8_t)(test_value >> 16); + test_apdu[7] = (uint8_t)(test_value >> 8); + test_apdu[8] = (uint8_t)(test_value >> 0); zassert_equal(7, encode_unsigned56(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(7, decode_unsigned56(&apdu[2], &value), NULL); @@ -489,13 +489,13 @@ static void test_unsigned56(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>48); - test_apdu[3] = (uint8_t) (test_value >>40); - test_apdu[4] = (uint8_t) (test_value >>32); - test_apdu[5] = (uint8_t) (test_value >>24); - test_apdu[6] = (uint8_t) (test_value >>16); - test_apdu[7] = (uint8_t) (test_value >> 8); - test_apdu[8] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 48); + test_apdu[3] = (uint8_t)(test_value >> 40); + test_apdu[4] = (uint8_t)(test_value >> 32); + test_apdu[5] = (uint8_t)(test_value >> 24); + test_apdu[6] = (uint8_t)(test_value >> 16); + test_apdu[7] = (uint8_t)(test_value >> 8); + test_apdu[8] = (uint8_t)(test_value >> 0); zassert_equal(7, encode_unsigned56(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(7, decode_unsigned56(&apdu[2], &value), NULL); @@ -504,13 +504,13 @@ static void test_unsigned56(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>48); - test_apdu[4] = (uint8_t) (test_value >>40); - test_apdu[5] = (uint8_t) (test_value >>32); - test_apdu[6] = (uint8_t) (test_value >>24); - test_apdu[7] = (uint8_t) (test_value >>16); - test_apdu[8] = (uint8_t) (test_value >> 8); - test_apdu[9] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 48); + test_apdu[4] = (uint8_t)(test_value >> 40); + test_apdu[5] = (uint8_t)(test_value >> 32); + test_apdu[6] = (uint8_t)(test_value >> 24); + test_apdu[7] = (uint8_t)(test_value >> 16); + test_apdu[8] = (uint8_t)(test_value >> 8); + test_apdu[9] = (uint8_t)(test_value >> 0); zassert_equal(7, encode_unsigned56(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(7, decode_unsigned56(&apdu[3], &value), NULL); @@ -518,13 +518,13 @@ static void test_unsigned56(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>48); - test_apdu[4] = (uint8_t) (test_value >>40); - test_apdu[5] = (uint8_t) (test_value >>32); - test_apdu[6] = (uint8_t) (test_value >>24); - test_apdu[7] = (uint8_t) (test_value >>16); - test_apdu[8] = (uint8_t) (test_value >> 8); - test_apdu[9] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 48); + test_apdu[4] = (uint8_t)(test_value >> 40); + test_apdu[5] = (uint8_t)(test_value >> 32); + test_apdu[6] = (uint8_t)(test_value >> 24); + test_apdu[7] = (uint8_t)(test_value >> 16); + test_apdu[8] = (uint8_t)(test_value >> 8); + test_apdu[9] = (uint8_t)(test_value >> 0); zassert_equal(7, encode_unsigned56(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(7, decode_unsigned56(&apdu[3], &value), NULL); @@ -577,14 +577,14 @@ static void test_unsigned64(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>56); - test_apdu[3] = (uint8_t) (test_value >>48); - test_apdu[4] = (uint8_t) (test_value >>40); - test_apdu[5] = (uint8_t) (test_value >>32); - test_apdu[6] = (uint8_t) (test_value >>24); - test_apdu[7] = (uint8_t) (test_value >>16); - test_apdu[8] = (uint8_t) (test_value >> 8); - test_apdu[9] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 56); + test_apdu[3] = (uint8_t)(test_value >> 48); + test_apdu[4] = (uint8_t)(test_value >> 40); + test_apdu[5] = (uint8_t)(test_value >> 32); + test_apdu[6] = (uint8_t)(test_value >> 24); + test_apdu[7] = (uint8_t)(test_value >> 16); + test_apdu[8] = (uint8_t)(test_value >> 8); + test_apdu[9] = (uint8_t)(test_value >> 0); zassert_equal(8, encode_unsigned64(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(8, decode_unsigned64(&apdu[2], &value), NULL); @@ -592,14 +592,14 @@ static void test_unsigned64(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>56); - test_apdu[3] = (uint8_t) (test_value >>48); - test_apdu[4] = (uint8_t) (test_value >>40); - test_apdu[5] = (uint8_t) (test_value >>32); - test_apdu[6] = (uint8_t) (test_value >>24); - test_apdu[7] = (uint8_t) (test_value >>16); - test_apdu[8] = (uint8_t) (test_value >> 8); - test_apdu[9] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 56); + test_apdu[3] = (uint8_t)(test_value >> 48); + test_apdu[4] = (uint8_t)(test_value >> 40); + test_apdu[5] = (uint8_t)(test_value >> 32); + test_apdu[6] = (uint8_t)(test_value >> 24); + test_apdu[7] = (uint8_t)(test_value >> 16); + test_apdu[8] = (uint8_t)(test_value >> 8); + test_apdu[9] = (uint8_t)(test_value >> 0); zassert_equal(8, encode_unsigned64(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(8, decode_unsigned64(&apdu[2], &value), NULL); @@ -608,14 +608,14 @@ static void test_unsigned64(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>56); - test_apdu[4] = (uint8_t) (test_value >>48); - test_apdu[5] = (uint8_t) (test_value >>40); - test_apdu[6] = (uint8_t) (test_value >>32); - test_apdu[7] = (uint8_t) (test_value >>24); - test_apdu[8] = (uint8_t) (test_value >>16); - test_apdu[9] = (uint8_t) (test_value >> 8); - test_apdu[10] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 56); + test_apdu[4] = (uint8_t)(test_value >> 48); + test_apdu[5] = (uint8_t)(test_value >> 40); + test_apdu[6] = (uint8_t)(test_value >> 32); + test_apdu[7] = (uint8_t)(test_value >> 24); + test_apdu[8] = (uint8_t)(test_value >> 16); + test_apdu[9] = (uint8_t)(test_value >> 8); + test_apdu[10] = (uint8_t)(test_value >> 0); zassert_equal(8, encode_unsigned64(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(8, decode_unsigned64(&apdu[3], &value), NULL); @@ -623,14 +623,14 @@ static void test_unsigned64(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>56); - test_apdu[4] = (uint8_t) (test_value >>48); - test_apdu[5] = (uint8_t) (test_value >>40); - test_apdu[6] = (uint8_t) (test_value >>32); - test_apdu[7] = (uint8_t) (test_value >>24); - test_apdu[8] = (uint8_t) (test_value >>16); - test_apdu[9] = (uint8_t) (test_value >> 8); - test_apdu[10] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 56); + test_apdu[4] = (uint8_t)(test_value >> 48); + test_apdu[5] = (uint8_t)(test_value >> 40); + test_apdu[6] = (uint8_t)(test_value >> 32); + test_apdu[7] = (uint8_t)(test_value >> 24); + test_apdu[8] = (uint8_t)(test_value >> 16); + test_apdu[9] = (uint8_t)(test_value >> 8); + test_apdu[10] = (uint8_t)(test_value >> 0); zassert_equal(8, encode_unsigned64(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(8, decode_unsigned64(&apdu[3], &value), NULL); @@ -659,35 +659,35 @@ static void test_unsigned_length(void) zassert_equal(2, bacnet_unsigned_length(0xFFUL << 8), NULL); zassert_equal(2, bacnet_unsigned_length(0xFFFFUL), NULL); - zassert_equal(3, bacnet_unsigned_length(1UL <<16), NULL); - zassert_equal(3, bacnet_unsigned_length(0x7DUL <<16), NULL); - zassert_equal(3, bacnet_unsigned_length(0xFFUL <<16), NULL); + zassert_equal(3, bacnet_unsigned_length(1UL << 16), NULL); + zassert_equal(3, bacnet_unsigned_length(0x7DUL << 16), NULL); + zassert_equal(3, bacnet_unsigned_length(0xFFUL << 16), NULL); zassert_equal(3, bacnet_unsigned_length(0xFFFFFFUL), NULL); - zassert_equal(4, bacnet_unsigned_length(1UL <<24), NULL); - zassert_equal(4, bacnet_unsigned_length(0x7DUL <<24), NULL); - zassert_equal(4, bacnet_unsigned_length(0xFFUL <<24), NULL); + zassert_equal(4, bacnet_unsigned_length(1UL << 24), NULL); + zassert_equal(4, bacnet_unsigned_length(0x7DUL << 24), NULL); + zassert_equal(4, bacnet_unsigned_length(0xFFUL << 24), NULL); zassert_equal(4, bacnet_unsigned_length(0xFFFFFFFFUL), NULL); #ifdef UINT64_MAX - zassert_equal(5, bacnet_unsigned_length(1ULL <<32), NULL); - zassert_equal(5, bacnet_unsigned_length(0x7DULL <<32), NULL); - zassert_equal(5, bacnet_unsigned_length(0xFFULL <<32), NULL); + zassert_equal(5, bacnet_unsigned_length(1ULL << 32), NULL); + zassert_equal(5, bacnet_unsigned_length(0x7DULL << 32), NULL); + zassert_equal(5, bacnet_unsigned_length(0xFFULL << 32), NULL); zassert_equal(5, bacnet_unsigned_length(0xFFFFFFFFFFULL), NULL); - zassert_equal(6, bacnet_unsigned_length(1ULL <<40), NULL); - zassert_equal(6, bacnet_unsigned_length(0x7DULL <<40), NULL); - zassert_equal(6, bacnet_unsigned_length(0xFFULL <<40), NULL); + zassert_equal(6, bacnet_unsigned_length(1ULL << 40), NULL); + zassert_equal(6, bacnet_unsigned_length(0x7DULL << 40), NULL); + zassert_equal(6, bacnet_unsigned_length(0xFFULL << 40), NULL); zassert_equal(6, bacnet_unsigned_length(0xFFFFFFFFFFFFULL), NULL); - zassert_equal(7, bacnet_unsigned_length(1ULL <<48), NULL); - zassert_equal(7, bacnet_unsigned_length(0x7DULL <<48), NULL); - zassert_equal(7, bacnet_unsigned_length(0xFFULL <<48), NULL); + zassert_equal(7, bacnet_unsigned_length(1ULL << 48), NULL); + zassert_equal(7, bacnet_unsigned_length(0x7DULL << 48), NULL); + zassert_equal(7, bacnet_unsigned_length(0xFFULL << 48), NULL); zassert_equal(7, bacnet_unsigned_length(0xFFFFFFFFFFFFFFULL), NULL); - zassert_equal(8, bacnet_unsigned_length(1ULL <<56), NULL); - zassert_equal(8, bacnet_unsigned_length(0x7DULL <<56), NULL); - zassert_equal(8, bacnet_unsigned_length(0xFFULL <<56), NULL); + zassert_equal(8, bacnet_unsigned_length(1ULL << 56), NULL); + zassert_equal(8, bacnet_unsigned_length(0x7DULL << 56), NULL); + zassert_equal(8, bacnet_unsigned_length(0xFFULL << 56), NULL); zassert_equal(8, bacnet_unsigned_length(0xFFFFFFFFFFFFFFFFULL), NULL); #endif } @@ -731,7 +731,7 @@ static void test_signed8(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 0); zassert_equal(1, encode_signed8(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(1, decode_signed8(&apdu[2], &value), NULL); @@ -739,7 +739,7 @@ static void test_signed8(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 0); zassert_equal(1, encode_signed8(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(1, decode_signed8(&apdu[2], &value), NULL); @@ -748,7 +748,7 @@ static void test_signed8(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 0); zassert_equal(1, encode_signed8(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(1, decode_signed8(&apdu[3], &value), NULL); @@ -756,7 +756,7 @@ static void test_signed8(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 0); zassert_equal(1, encode_signed8(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(1, decode_signed8(&apdu[3], &value), NULL); @@ -809,8 +809,8 @@ static void test_signed16(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >> 8); - test_apdu[3] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 8); + test_apdu[3] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_signed16(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_signed16(&apdu[2], &value), NULL); @@ -818,8 +818,8 @@ static void test_signed16(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >> 8); - test_apdu[3] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 8); + test_apdu[3] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_signed16(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_signed16(&apdu[2], &value), NULL); @@ -828,8 +828,8 @@ static void test_signed16(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_signed16(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_signed16(&apdu[3], &value), NULL); @@ -837,8 +837,8 @@ static void test_signed16(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(2, encode_signed16(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(2, decode_signed16(&apdu[3], &value), NULL); @@ -887,9 +887,9 @@ static void test_signed24(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>16); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 16); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_signed24(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_signed24(&apdu[2], &value), NULL); @@ -897,9 +897,9 @@ static void test_signed24(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>16); - test_apdu[3] = (uint8_t) (test_value >> 8); - test_apdu[4] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 16); + test_apdu[3] = (uint8_t)(test_value >> 8); + test_apdu[4] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_signed24(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_signed24(&apdu[2], &value), NULL); @@ -908,9 +908,9 @@ static void test_signed24(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_signed24(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_signed24(&apdu[3], &value), NULL); @@ -918,9 +918,9 @@ static void test_signed24(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(3, encode_signed24(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(3, decode_signed24(&apdu[3], &value), NULL); @@ -969,10 +969,10 @@ static void test_signed32(void) /* Verify aligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>24); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 24); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_signed32(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_signed32(&apdu[2], &value), NULL); @@ -980,10 +980,10 @@ static void test_signed32(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[2] = (uint8_t) (test_value >>24); - test_apdu[3] = (uint8_t) (test_value >>16); - test_apdu[4] = (uint8_t) (test_value >> 8); - test_apdu[5] = (uint8_t) (test_value >> 0); + test_apdu[2] = (uint8_t)(test_value >> 24); + test_apdu[3] = (uint8_t)(test_value >> 16); + test_apdu[4] = (uint8_t)(test_value >> 8); + test_apdu[5] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_signed32(&apdu[2], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_signed32(&apdu[2], &value), NULL); @@ -992,10 +992,10 @@ static void test_signed32(void) /* Verify unaligned access with no extra bytes written */ memset(test_apdu, ~0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>24); - test_apdu[4] = (uint8_t) (test_value >>16); - test_apdu[5] = (uint8_t) (test_value >> 8); - test_apdu[6] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 24); + test_apdu[4] = (uint8_t)(test_value >> 16); + test_apdu[5] = (uint8_t)(test_value >> 8); + test_apdu[6] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_signed32(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_signed32(&apdu[3], &value), NULL); @@ -1003,10 +1003,10 @@ static void test_signed32(void) memset(test_apdu, 0U, sizeof(test_apdu)); memcpy(apdu, test_apdu, sizeof(test_apdu)); - test_apdu[3] = (uint8_t) (test_value >>24); - test_apdu[4] = (uint8_t) (test_value >>16); - test_apdu[5] = (uint8_t) (test_value >> 8); - test_apdu[6] = (uint8_t) (test_value >> 0); + test_apdu[3] = (uint8_t)(test_value >> 24); + test_apdu[4] = (uint8_t)(test_value >> 16); + test_apdu[5] = (uint8_t)(test_value >> 8); + test_apdu[6] = (uint8_t)(test_value >> 0); zassert_equal(4, encode_signed32(&apdu[3], test_value), NULL); zassert_mem_equal(test_apdu, apdu, sizeof(test_apdu), NULL); zassert_equal(4, decode_signed32(&apdu[3], &value), NULL); @@ -1051,27 +1051,19 @@ static void test_signed_length(void) #endif /* BACNET_USE_SIGNED */ } - #ifdef CONFIG_ZTEST_NEW_API ZTEST_SUITE(bacnet_bacint, NULL, NULL, NULL, NULL, NULL); #else void test_main(void) { - ztest_test_suite(bacnet_bacint, - ztest_unit_test(test_unsigned16), - ztest_unit_test(test_unsigned24), - ztest_unit_test(test_unsigned32), - ztest_unit_test(test_unsigned40), - ztest_unit_test(test_unsigned48), - ztest_unit_test(test_unsigned56), - ztest_unit_test(test_unsigned64), - ztest_unit_test(test_unsigned_length), - ztest_unit_test(test_signed8), - ztest_unit_test(test_signed16), - ztest_unit_test(test_signed24), - ztest_unit_test(test_signed32), - ztest_unit_test(test_signed_length) - ); + ztest_test_suite( + bacnet_bacint, ztest_unit_test(test_unsigned16), + ztest_unit_test(test_unsigned24), ztest_unit_test(test_unsigned32), + ztest_unit_test(test_unsigned40), ztest_unit_test(test_unsigned48), + ztest_unit_test(test_unsigned56), ztest_unit_test(test_unsigned64), + ztest_unit_test(test_unsigned_length), ztest_unit_test(test_signed8), + ztest_unit_test(test_signed16), ztest_unit_test(test_signed24), + ztest_unit_test(test_signed32), ztest_unit_test(test_signed_length)); ztest_run_test_suite(bacnet_bacint); } #endif diff --git a/test/unit/bacnet/bits/src/main.c b/test/unit/bacnet/bits/src/main.c index 3547843c..971e23b7 100644 --- a/test/unit/bacnet/bits/src/main.c +++ b/test/unit/bacnet/bits/src/main.c @@ -4,7 +4,6 @@ * SPDX-License-Identifier: Apache-2.0 */ - #include #undef BIT @@ -20,7 +19,6 @@ #include "bacnet/basic/sys/bits.h" - /* NOTE: These tests must be compatible with C90, so they do not * verify support for ULL. */ @@ -34,7 +32,7 @@ static void test_BIT(void) unsigned int bitpos = sizeof(unsigned int) * 8; do { - bitpos -= 1; + bitpos -= 1; zassert_true(BIT(bitpos) == (1U << bitpos), NULL); } while (bitpos > 0); } @@ -48,7 +46,7 @@ static void test__BV(void) unsigned int bitpos = sizeof(unsigned int) * 8; do { - bitpos -= 1; + bitpos -= 1; zassert_true(BIT(bitpos) == (1U << bitpos), NULL); } while (bitpos > 0); } @@ -63,8 +61,8 @@ static void test_BIT_SET(void) do { unsigned int a = 0U; - bitpos -= 1; - BIT_SET(a, bitpos); + bitpos -= 1; + BIT_SET(a, bitpos); zassert_true(a == (1U << bitpos), NULL); } while (bitpos > 0); } @@ -79,8 +77,8 @@ static void test_BIT_CLEAR(void) do { unsigned int a = ~0U; - bitpos -= 1; - BIT_CLEAR(a, bitpos); + bitpos -= 1; + BIT_CLEAR(a, bitpos); zassert_true(~(a) == (1U << bitpos), NULL); } while (bitpos > 0); } @@ -95,16 +93,16 @@ static void test_BIT_FLIP(void) do { unsigned int a = ~0U; - bitpos -= 1; - BIT_FLIP(a, bitpos); + bitpos -= 1; + BIT_FLIP(a, bitpos); zassert_true(a == ~(1U << bitpos), NULL); - BIT_FLIP(a, bitpos); + BIT_FLIP(a, bitpos); zassert_true(a == ~0U, NULL); - a = 0U; - BIT_FLIP(a, bitpos); + a = 0U; + BIT_FLIP(a, bitpos); zassert_true(a == (1U << bitpos), NULL); - BIT_FLIP(a, bitpos); + BIT_FLIP(a, bitpos); zassert_true(a == 0U, NULL); } while (bitpos > 0); @@ -120,11 +118,11 @@ static void test_BIT_CHECK(void) do { unsigned int a = ~0U; - bitpos -= 1; - zassert_true(BIT_CHECK(a, bitpos), NULL); + bitpos -= 1; + zassert_true(BIT_CHECK(a, bitpos), NULL); - a = 0U; - zassert_false(BIT_CHECK(a, bitpos), NULL); + a = 0U; + zassert_false(BIT_CHECK(a, bitpos), NULL); } while (bitpos > 0); } @@ -139,8 +137,8 @@ static void test_BITMASK_SET(void) do { unsigned int a = 0U; - bitpos -= 1; - BITMASK_SET(a, (1U << bitpos)); + bitpos -= 1; + BITMASK_SET(a, (1U << bitpos)); zassert_true(a == (1U << bitpos), NULL); } while (bitpos > 0); } @@ -155,8 +153,8 @@ static void test_BITMASK_CLEAR(void) do { unsigned int a = ~0U; - bitpos -= 1; - BITMASK_CLEAR(a, (1U << bitpos)); + bitpos -= 1; + BITMASK_CLEAR(a, (1U << bitpos)); zassert_true(~(a) == (1U << bitpos), NULL); } while (bitpos > 0); } @@ -171,16 +169,16 @@ static void test_BITMASK_FLIP(void) do { unsigned int a = ~0U; - bitpos -= 1; - BITMASK_FLIP(a, (1U << bitpos)); + bitpos -= 1; + BITMASK_FLIP(a, (1U << bitpos)); zassert_true(a == ~(1U << bitpos), NULL); - BITMASK_FLIP(a, (1U << bitpos)); + BITMASK_FLIP(a, (1U << bitpos)); zassert_true(a == ~0U, NULL); - a = 0U; - BITMASK_FLIP(a, (1U << bitpos)); + a = 0U; + BITMASK_FLIP(a, (1U << bitpos)); zassert_true(a == (1U << bitpos), NULL); - BITMASK_FLIP(a, (1U << bitpos)); + BITMASK_FLIP(a, (1U << bitpos)); zassert_true(a == 0U, NULL); } while (bitpos > 0); @@ -196,11 +194,11 @@ static void test_BITMASK_CHECK(void) do { unsigned int a = ~0U; - bitpos -= 1; - zassert_true(BITMASK_CHECK(a, (1U << bitpos)), NULL); + bitpos -= 1; + zassert_true(BITMASK_CHECK(a, (1U << bitpos)), NULL); - a = 0U; - zassert_false(BITMASK_CHECK(a, (1U << bitpos)), NULL); + a = 0U; + zassert_false(BITMASK_CHECK(a, (1U << bitpos)), NULL); } while (bitpos > 0); } @@ -210,18 +208,13 @@ ZTEST_SUITE(bacnet_bits, NULL, NULL, NULL, NULL, NULL); #else void test_main(void) { - ztest_test_suite(bacnet_bits, - ztest_unit_test(test_BIT), - ztest_unit_test(test__BV), - ztest_unit_test(test_BIT_SET), - ztest_unit_test(test_BIT_CLEAR), - ztest_unit_test(test_BIT_FLIP), - ztest_unit_test(test_BIT_CHECK), - ztest_unit_test(test_BITMASK_SET), - ztest_unit_test(test_BITMASK_CLEAR), - ztest_unit_test(test_BITMASK_FLIP), - ztest_unit_test(test_BITMASK_CHECK) - ); + ztest_test_suite( + bacnet_bits, ztest_unit_test(test_BIT), ztest_unit_test(test__BV), + ztest_unit_test(test_BIT_SET), ztest_unit_test(test_BIT_CLEAR), + ztest_unit_test(test_BIT_FLIP), ztest_unit_test(test_BIT_CHECK), + ztest_unit_test(test_BITMASK_SET), ztest_unit_test(test_BITMASK_CLEAR), + ztest_unit_test(test_BITMASK_FLIP), + ztest_unit_test(test_BITMASK_CHECK)); ztest_run_test_suite(bacnet_bits); } #endif