author | Edouard Tisserant <edouard@beremiz.fr> |
Fri, 30 Aug 2024 11:50:23 +0200 | |
changeset 4008 | f30573e98600 |
parent 2020 | 6dddf3070806 |
permissions | -rw-r--r-- |
2020
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
1 |
/************************************************************************** |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
2 |
* |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
3 |
* Copyright (C) 2006 Steve Karg <skarg@users.sourceforge.net> |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
4 |
* Copyright (C) 2011 Krzysztof Malorny <malornykrzysztof@gmail.com> |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
5 |
* Copyright (C) 2017 Mario de Sousa <msousa@fe.up.pt> |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
6 |
* |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
7 |
* Permission is hereby granted, free of charge, to any person obtaining |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
8 |
* a copy of this software and associated documentation files (the |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
9 |
* "Software"), to deal in the Software without restriction, including |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
10 |
* without limitation the rights to use, copy, modify, merge, publish, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
11 |
* distribute, sublicense, and/or sell copies of the Software, and to |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
12 |
* permit persons to whom the Software is furnished to do so, subject to |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
13 |
* the following conditions: |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
14 |
* |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
15 |
* The above copyright notice and this permission notice shall be included |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
16 |
* in all copies or substantial portions of the Software. |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
17 |
* |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
18 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
19 |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
20 |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
21 |
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
22 |
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
23 |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
24 |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
25 |
* |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
26 |
*********************************************************************/ |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
27 |
#ifndef AO_H |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
28 |
#define AO_H |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
29 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
30 |
#include <stdbool.h> |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
31 |
#include <stdint.h> |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
32 |
#include "bacdef.h" |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
33 |
#include "bacerror.h" |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
34 |
#include "wp.h" |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
35 |
#include "rp.h" |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
36 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
37 |
#ifdef __cplusplus |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
38 |
extern "C" { |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
39 |
#endif /* __cplusplus */ |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
40 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
41 |
typedef struct Analog_Output_descr { |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
42 |
/* pointer to IEC 61131-3 located variable that is mapped onto this BACnet object */ |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
43 |
float *Located_Var_ptr; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
44 |
uint32_t Object_Identifier; /* called object 'Instance' in the source code! */ |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
45 |
char *Object_Name; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
46 |
char *Description; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
47 |
uint16_t Units; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
48 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
49 |
/* stores the current value */ |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
50 |
/* one entry per priority value */ |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
51 |
float Present_Value[BACNET_MAX_PRIORITY]; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
52 |
unsigned Event_State:3; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
53 |
bool Out_Of_Service; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
54 |
} ANALOG_OUTPUT_DESCR; |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
55 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
56 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
57 |
void Analog_Output_Property_Lists( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
58 |
const int **pRequired, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
59 |
const int **pOptional, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
60 |
const int **pProprietary); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
61 |
bool Analog_Output_Valid_Instance( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
62 |
uint32_t object_instance); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
63 |
unsigned Analog_Output_Count( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
64 |
void); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
65 |
uint32_t Analog_Output_Index_To_Instance( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
66 |
unsigned index); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
67 |
unsigned Analog_Output_Instance_To_Index( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
68 |
uint32_t object_instance); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
69 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
70 |
bool Analog_Output_Object_Name( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
71 |
uint32_t object_instance, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
72 |
BACNET_CHARACTER_STRING * object_name); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
73 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
74 |
int Analog_Output_Read_Property( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
75 |
BACNET_READ_PROPERTY_DATA * rpdata); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
76 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
77 |
bool Analog_Output_Write_Property( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
78 |
BACNET_WRITE_PROPERTY_DATA * wp_data); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
79 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
80 |
bool Analog_Output_Present_Value_Set( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
81 |
uint32_t object_instance, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
82 |
float value, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
83 |
uint8_t priority); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
84 |
float Analog_Output_Present_Value( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
85 |
uint32_t object_instance); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
86 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
87 |
char *Analog_Output_Description( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
88 |
uint32_t instance); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
89 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
90 |
uint16_t Analog_Output_Units( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
91 |
uint32_t instance); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
92 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
93 |
bool Analog_Output_Out_Of_Service( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
94 |
uint32_t instance); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
95 |
void Analog_Output_Out_Of_Service_Set( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
96 |
uint32_t instance, |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
97 |
bool oos_flag); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
98 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
99 |
void Analog_Output_Init( |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
100 |
void); |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
101 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
102 |
|
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
103 |
#ifdef __cplusplus |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
104 |
} |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
105 |
#endif /* __cplusplus */ |
6dddf3070806
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant
parents:
diff
changeset
|
106 |
#endif |