?? bac_mstp.h
字號:
#define ERROR_CODE_OBJECT_DELETION_NOT_PERMITTED 23
#define ERROR_CODE_OBJECT_IDENTIFIER_ALREADY_EXISTS 24
#define ERROR_CODE_OPERATIONALPROBLEM 25
#define ERROR_CODE_PASSWORD_FAILURE 26
#define ERROR_CODE_PROPERTY_IS_NOT_A_LIST 22
#define ERROR_CODE_READACCESSDENIED 27
#define ERROR_CODE_SECURITY_NOT_SUPPORTED 28
#define ERROR_CODE_SERVICEREQUESTDENIED 29
#define ERROR_CODE_TIMEOUT 30
#define ERROR_CODE_UNKNOWNOBJECT 31
#define ERROR_CODE_UNKNOWNPROPERTY 32
#define ERROR_CODE_UNKNOWNVTCLASS 34
#define ERROR_CODE_UNKNOWNVTSESSION 35
#define ERROR_CODE_UNSUPPORTEDOBJECTTYPE 36
#define ERROR_CODE_VALUE_OUT_OF_RANGE 37
#define ERROR_CODE_VTSESSIONALREADYCLOSED 38
#define ERROR_CODE_VTSESSIONTERMINATIONFAILURE 39
#define ERROR_CODE_WRITEACCESSDENIED 40
#define REJECT_REASON_OTHER 0
#define REJECT_REASON_BUFFER_OVERFLOW 1
#define REJECT_REASON_INCONSISTENT_PARAM 2
#define REJECT_REASON_INVALID_PARAM_DATA_TYPE 3
#define REJECT_REASON_INVALID_TAG 4
#define REJECT_REASON_MISSING_REQUIRED_PARAM 5
#define REJECT_REASON_PARAMETER_OUT_OF_RANGE 6
#define REJECT_REASON_TOO_MAY_ARGUMENTS 7
#define REJECT_REASON_UNDEFINED_ENUMERATION 8
#define REJECT_REASON_UNRECOGNIZED_SERVICE 9
#define ABORT_REASON_OTHER 0
#define ABORT_REASON_BUFFER_OVERFLOW 1
#define ABORT_REASON_INVALID_APDU_IN_THIS_STATE 2
#define ABORT_REASON_PREEMPTEDBY_HIGHER_PRIORITY_TASK 3
#define ABORT_REASON_SEGMENTATION_NOT_SUPPORTED 4
#define MX_TBN_RETRIES 3
/* address control flags */
#define AC_NET_PRES 0x0001
#define AC_ADR_PRES 0x0001 /* used to be 0x0002. Changed from Bacnet P135 _BDWET */
/* PDU control */
#define PC_APDU 0x0001
#define PC_NPDU 0x0002
#define PC_EXP_REPLY 0x0004
#define SH_CONTROL_SOURCE 3
#define SH_CONTROL_DEST 5
#define TRANE_VENDOR_ID 2
#define TRANE_PRIVATE_SERVICE_NUMBER 130
#define MSGTYPE_EVENT_MESSAGE 69
#define MSGTYPE_EVENT_ACKNOWLEDGE 65
// Digital Inputs
#define BAC_EVENT_NORMAL_TO_ALARM 0
#define BAC_EVENT_ALARM_TO_NORMAL 3
// Analog Inputs
#define BAC_EVENT_NORMAL_TO_LOW_ALARM 6
#define BAC_EVENT_NORMAL_TO_HIGH_ALARM 7
#define BAC_EVENT_LOW_ALARM_TO_NORMAL 8
#define BAC_EVENT_HIGH_ALARM_TO_NORMAL 9
typedef struct
{
UINT16 control ;
UINT16 net ;
BYTE addr[MX_MAC_LENGTH] ;
UINT16 addr_len ;
BYTE mac[MX_MAC_LENGTH] ;
} ADR_TYP ;
typedef struct
{
UINT16 control ; /* PDU control flags */
UINT16 nl_function ;
UINT16 dll_function ;
UINT16 length ; /* pdu buffer length */
ADR_TYP source ;
ADR_TYP dest ;
BYTE dll_buffer[8] ;
BYTE buffer[MX_BUFFER] ;
} PDU_TYP ;
typedef struct
{
UINT16 handle ;
} PORT_TYP ;
typedef struct
{
UINT init_flag ;
// For BAC_MSTP
//UINT16 msg_rx_src ;
//UINT16 msg_rx_dst ;
UINT mstp_rx_frame_state ;
UINT master_node_state ;
UINT next_master_node_state ;
UINT slave_node_state ;
UINT silence_timer ;
UINT reply_timer ;
UINT index ;
UINT data_available ;
UINT16 data_crc ;
UINT16 receive_invalid_frame ;
UINT16 receive_valid_frame ;
UINT16 receive_error ;
UINT16 event_count ;
UINT16 retry_count ;
UINT16 frame_count ;
UINT16 token_count ;
UINT16 sole_master ;
BYTE NS ;
BYTE PS ;
BYTE TS ;
UINT mstp_tx_frame ;
UINT16 mstp_tx_address ;
BYTE header_crc ;
BYTE frame_type ;
BYTE dest_address ;
BYTE src_address ;
UINT16 data_length ;
UINT32 startup_timer ;
BYTE app_msg_ready ;
PDU_TYP *pdu_ready ;
} BACNET_DRV_CONN_TYP ;
typedef struct
{
PORT_TYP *port_ptr ;
BACNET_DRV_CONN_TYP *drv_conn_ptr ;
BYTE in_buffer[MX_BUFFER] ;
UINT16 ux_iptr ;
BYTE apdu_instance_id ;
UINT16 source_mac ;
UINT16 dest_mac ;
UINT16 source_net ;
BYTE source_addr[MX_MAC_LENGTH] ;
UINT16 ux_source_addr ;
UINT16 dest_net ;
BYTE dest_addr[MX_MAC_LENGTH] ;
UINT16 ux_dest_addr ;
UINT16 control ;
UINT16 max_master ;
UINT16 max_info_frames ;
UINT kernel_action ;
} CONN_TYP ;
typedef struct
{
UINT16 system_station_address ;
} BRIDGE_TYP ;
typedef struct
{
UINT16 value ;
UINT16 index ;
BYTE index_used ;
} BAC_PROP_TYP ;
//typedef struct
//{
// UINT16 type ;
// UINT32 instance;
// UINT16 ux_properties ; // nr of properties stored in property list
// BAC_PROP_TYP property_list [ MX_PROPERTIES_LIST ] ;
//} BAC_OBJ_LIST_TYP ;
typedef struct
{
//FLOAT relinguest_default ;
UINT16 write_priority ;
//BAC_PRI_ARRAY_TYP *priority_array ;
//BAC_ALARM_TYP alarm ; // For drv_bd it is better to keep this one pre-allocated
//CHAR notification_node_name[MX_DEVICE_NAME] ; // Where alarm notifications gets send to
//CHAR da_pri_array_buffer_name[MX_BUFFER_NAME] ; // Pri array buffer to allow user access
//CHAR da_pri_in_use_buffer_name[MX_BUFFER_NAME] ; // Relinquish Array to allow user access
//UINT16 da_pri_array_offset;
//UINT16 da_pri_in_use_offset;
//DAH_TYP dah_pri_array ;
//DAH_TYP dah_pri_in_use ;
UINT16 block_service_choice ;
UINT32 service ;
UINT32 array_index ;
//BAC_OBJ_LIST_TYP object_list[MX_OBJECTS] ;
//UINT16 ux_objects ;
BYTE *data_for_write ;
UINT16 data_for_write_length ;
//UINT32 active_text ;
//UINT32 inactive_text ;
//UINT32 md_offset ; // Used by Who-Has/I-Have to respond properly when mapdesc index specified
UINT16 max_apdu_size ; // Used by Who-Has/I-Have to respond properly when mapdesc index specified
BYTE function ;
UINT32 object_instance ;
UINT16 object_type ;
BAC_PROP_TYP property ;
} BAC_DRV_BD_TYP ;
UINT16 FrameType ( BACNET_DRV_CONN_TYP *drv_conn, CONN_TYP *conn ) ;
VOID mstp_transmit_state_machine ( BACNET_DRV_CONN_TYP *drv_conn, CONN_TYP *conn ) ;
VOID mstp_receive_frame_state_machine ( BRIDGE_TYP *bcb, BACNET_DRV_CONN_TYP *drv_conn, CONN_TYP *conn ) ;
VOID mstp_master_node_state_machine ( BRIDGE_TYP *bcb, BACNET_DRV_CONN_TYP *drv_conn, CONN_TYP *conn ) ;
VOID mstp_slave_node_state_machine ( BRIDGE_TYP *bcb, BACNET_DRV_CONN_TYP *drv_conn, CONN_TYP *conn ) ;
VOID mstp_driver ( VOID ) ;
VOID build_and_submit_I_AM ( BRIDGE_TYP *bcb, CONN_TYP *conn ) ;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -