6271632944
* Add and remove compiler warning compile options
Add some new compiler warnings. Some of those does not build clean so
ignore them for now. This also helps if some user use those options so
we ignore those for them also.
Also remove following ignores as they do not produce any warnings:
- Wno-attributes
- Wno-long-long
- Wno-implicit-fallthrough
* Fix -Wmissing-declarations compiler warnings
Fix new -Wmissing-declarations compiler warnings. I tried to look which
should be in headers and which should be static. Might be that some
statics should be in header as it is not easy to choose if something
should be exported or not.
* Fix -Wmissing-field-initializers compiler warnings
If we use { { 0 } } compiler thinks we might have mean that we only
meant initialize first member of struct or have forgotton to add second
one. We could do { { 0 }, 0 } but we can just do { 0 } which tells
compiler that hey just intialize this whole thing to zero.
* tests: Fix couple -Wfloat-conversion warnings
Add f prefix to floating point numbers to get some double to float
warnings away.
* ci: Make warnings as errors with cmake main build
To keep repo more clean from warnings use Werror flag when building main
project.
Windows should need -DCMAKE_C_FLAGS="/WX" but we have not ignore errors
for that yet so let's not yet take it in use.
* ci: Build also tests in matrix build
Enable also tests to be builded in our main matrix build. This way tests
will be builded also with clang and in future also with MSVC. We also
keep build very clean now as all warnings as catched.
With this we can also take out -Werror from compile_options as we add
that in CI. It is not good practice to keep that option always on. It
makes development lot harder. See example this blog post [1].
[1]: https://embeddedartistry.com/blog/2017/05/22/werror-is-not-your-friend/
* getevent: Deprecate getevent_encode_apdu()
Steve suggested that we should deprecate getevent_encode_apdu() [1].
Suggested-by: Steve Karg
[1]: https://github.com/bacnet-stack/bacnet-stack/pull/718#discussion_r1715821735
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
211 lines
5.9 KiB
C
211 lines
5.9 KiB
C
/**
|
|
* @file
|
|
* @author Steve Karg <skarg@users.sourceforge.net>
|
|
* @date 2006
|
|
* @brief A basic BACnet Binary Input Object implementation.
|
|
* Binary Input objects are input objects with a present-value that
|
|
* uses an enumerated two state active/inactive data type.
|
|
* @copyright SPDX-License-Identifier: MIT
|
|
*/
|
|
#ifndef BACNET_BASIC_OBJECT_BINARY_INPUT_H
|
|
#define BACNET_BASIC_OBJECT_BINARY_INPUT_H
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
/* BACnet Stack defines - first */
|
|
#include "bacnet/bacdef.h"
|
|
/* BACnet Stack API */
|
|
#include "bacnet/cov.h"
|
|
#include "bacnet/rp.h"
|
|
#include "bacnet/wp.h"
|
|
|
|
#if (INTRINSIC_REPORTING)
|
|
#include "bacnet/basic/object/nc.h"
|
|
#include "bacnet/getevent.h"
|
|
#include "bacnet/alarm_ack.h"
|
|
#include "bacnet/get_alarm_sum.h"
|
|
#endif
|
|
|
|
/**
|
|
* @brief Callback for gateway write present value request
|
|
* @param object_instance - object-instance number of the object
|
|
* @param old_value - binary preset-value prior to write
|
|
* @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,
|
|
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
|
|
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,
|
|
char *new_name);
|
|
|
|
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
|
|
char *Binary_Input_Description(
|
|
uint32_t instance);
|
|
BACNET_STACK_EXPORT
|
|
bool Binary_Input_Description_Set(
|
|
uint32_t instance,
|
|
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
|
|
char *Binary_Input_Inactive_Text(
|
|
uint32_t instance);
|
|
BACNET_STACK_EXPORT
|
|
bool Binary_Input_Inactive_Text_Set(
|
|
uint32_t instance,
|
|
char *new_name);
|
|
|
|
BACNET_STACK_EXPORT
|
|
char *Binary_Input_Active_Text(
|
|
uint32_t instance);
|
|
BACNET_STACK_EXPORT
|
|
bool Binary_Input_Active_Text_Set(
|
|
uint32_t instance,
|
|
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
|
|
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
|
|
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
|
|
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);
|
|
|
|
#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
|
|
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_Summary(
|
|
unsigned index,
|
|
BACNET_GET_ALARM_SUMMARY_DATA * getalarm_data);
|
|
|
|
BACNET_STACK_EXPORT
|
|
bool Binary_Input_Alarm_Value_Set(
|
|
uint32_t object_instance, BACNET_BINARY_PV value);
|
|
|
|
BACNET_STACK_EXPORT
|
|
void Binary_Input_Intrinsic_Reporting(
|
|
uint32_t object_instance);
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
#endif
|