⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bac_mstp.h

📁 modbus 源代码,RS485 通信,实现PC与RTU通信
💻 H
📖 第 1 页 / 共 3 页
字号:
/*******************************************************************************

                                   dllmstp.c

********************************************************************************

   Written by:   Bennie de Wet

   nSoft Developement.

********************************************************************************

 Version

  0.00aA  12 Aug 04 BDW  Cleaning up
  0.00aB  14 Aug 04 BDW  Patching in data handeling
  0.00aC  29 Aug 04 BDW  Cleaning up, adding more properties
  0.00aJ  11 Oct 04 BDW  Merging for first Douglas release

*******************************************************************************/

#define DRV_VERSION_STRING "V1.00aA"
#define APP_VERSION_STRING "V1.00aA"

#define BACNET_NODE_ID               11

#define MSTP_SLAVE_NODE             'Y'
#define MSTP_MASTER_NODE            'N'


#define MX_APDU_SIZE                2   // value for max_apdu of 206
#define MX_APDU_LENGTH              206 // Actual maax length of a APDU packet

#define MIN_TERMINAL_CHARS          5   // Define the min number of ascii char that will constitute
                                         // a terminal mode message. TYpical message will be ":#11]"

#define MSTP_MAX_CYCLE_TIME         10  // The maximum cycle time we can allow for proper MSTP operation.
                                         // This value is largely determined by TSlot

#define FT_TOKEN                    00
#define FT_POLL_FOR_MASTER          01
#define FT_REPLY_TO_POLL_FOR_MASTER 02
#define FT_TEST_REQUEST             03
#define FT_TEST_RESPONSE            04
#define FT_DATA_EXPECTING_REPLY     05
#define FT_DATA_NOT_EXPECTING_REPLY 06
#define FT_REPLY_POSTPONED          07


// Receive frame states
#define MSTP_ST_IDLE                      110
#define MSTP_ST_DATA_CRC                  120
#define MSTP_ST_DATA                      130
#define MSTP_ST_HEADER_CRC                140
#define MSTP_ST_HEADER                    150
#define MSTP_ST_PREAMBLE                  160

// Master/Slave NODE states
#define MSTP_ST_INITIALIZE                170
#define MSTP_ST_NO_TOKEN                  180
#define MSTP_ST_ANSWER_DATA_REQUEST       190
#define MSTP_ST_PASS_TOKEN                200
#define MSTP_ST_WAIT_FOR_REPLY            210
#define MSTP_ST_POLL_FOR_MASTER           220
#define MSTP_ST_DONE_WITH_TOKEN           230
#define MSTP_ST_USE_TOKEN                 240
#define MSTP_ST_SEND_FRAME                250
#define MSTP_ST_SEND_PDU                  260

#define N_MAX_INFO_FRAMES     1
#define N_MAX_MASTER         127
#define N_POLL               50
#define N_RETRY_TOKEN         1
#define N_MIN_OCTETS          4

#define T_FRAME_ABORT      100        // ( 60 bit times ) but not larger than 100 ms
#define T_NO_TOKEN         500        // in milliseconds
#define T_REPLY_DELAY      250
#define T_REPLY_TIMEOUT    255        // in milliseconds
#define T_TURNAROUND        4         // Min of 40 bit times ( For 9600 Baud this is 4 ms)
#define T_USAGE_TIMEOUT    50         // Minimum timeout value = 20 ms , can use up to 100 ms
#define T_USAGE_DELAY      15
#define T_SLOT             10

#define MX_PROPERTIES_LIST   2
#define MX_OBJECTS           2

#define MX_INFO_FRAMES 10
#define MX_MASTER      127

#define MX_MAC_LENGTH      1
#define MX_BUFFER          SIO_TX_BUFFER_SIZE

#define FST_VENDOR_ID                     37

#define BACNET_NETWORK_VERSION             1
#define BACNET_DEFAULT_NETWORK_NUMBER      5


#define  PARSE_OK             0
#define  PARSE_ERROR          1
#define  INVOKE_ID_ERROR      2
#define  OBJECT_ID_ERROR      3
#define  UNKNOWN_ERROR_PDU    4
#define  PARSE_NOT_FOR_US     5
#define  PARSE_I_AM           6
#define  PARSE_NO_ACTION      7
#define  UNKNOWN_PROPERTY     8


//
// Bacnet Units
//

/* Area             */
#define  CD_SQUARE_METERS                               255  /* Should be zero but then description_to_id() does not work */
#define  CD_SQUARE_CENTIMETERS                          116
#define  CD_SQUARE_FEET                                   1
#define  CD_SQUARE_INCHES                               115
/* Currency         */
#define  CD_CURRENCY1                                   105
#define  CD_CURRENCY2                                   106
#define  CD_CURRENCY3                                   107
#define  CD_CURRENCY4                                   108
#define  CD_CURRENCY5                                   109
#define  CD_CURRENCY6                                   110
#define  CD_CURRENCY7                                   111
#define  CD_CURRENCY8                                   112
#define  CD_CURRENCY9                                   113
#define  CD_CURRENCY10                                  114
/* Electrical       */
#define  CD_UNITS_MILLIAMPERES                            2
#define  CD_UNITS_AMPERES                                 3
#define  CD_UNITS_OHMS                                    4
#define  CD_UNITS_KILOHMS                               122
#define  CD_UNITS_MEGOHMS                               123
#define  CD_UNITS_VOLTS                                   5
#define  CD_UNITS_MILLIVOLTS                            124
#define  CD_UNITS_KILOVOLTS                               6
#define  CD_UNITS_MEGAVOLTS                               7
#define  CD_UNITS_VOLT_AMPERES                            8
#define  CD_UNITS_KILOVOLT_AMPERES                        9
#define  CD_UNITS_MEGAVOLT_AMPERES                       10
#define  CD_UNITS_VOLT_AMPERES_REACTIVE                  11
#define  CD_UNITS_KILOVOLT_AMPERES_REACTIVE              12
#define  CD_UNITS_MEGAVOLT_AMPERES_REACTIVE              13
#define  CD_UNITS_DEGREES_PHASE                          14
#define  CD_UNITS_POWER_FACTOR                           15
/* Energy           */
#define  CD_UNITS_JOULES                                 16
#define  CD_UNITS_KILOJOULES                             17
#define  CD_UNITS_KILOJOULES_PER_KILOGRAM               125
#define  CD_UNITS_MEGAJOULES                            126
#define  CD_UNITS_WATT_HOURS                             18
#define  CD_UNITS_KILOWATT_HOURS                         19
#define  CD_UNITS_BTUS                                   20
#define  CD_UNITS_THERMS                                 21
#define  CD_UNITS_TON_HOURS                              22
/* Entralpy         */
#define  CD_UNITS_JOULES_PER_KILOGRAM_DRY_AIR            23
#define  CD_UNITS_BTUS_PER_POUND_DRY_AIR                 24
#define  CD_UNITS_BTUS_PER_POUND                        117
/* Entropy          */
#define  CD_UNITS_JOULES_PER_DEGREE_KELVIN              127
#define  CD_UNITS_JOULES_PER_KILOGRAM_DEGREE_KELVIN     128
/* Frequency        */
#define  CD_UNITS_CYCLES_PER_HOUR                        25
#define  CD_UNITS_CYCLES_PER_MINUTE                      26
#define  CD_UNITS_HERTZ                                  27
#define  CD_UNITS_KILOHERTZ                             129
#define  CD_UNITS_MEGAHERTZ                             130
#define  CD_UNITS_PER_HOUR                              131
/* Humidity         */
#define  CD_UNITS_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR    28
#define  CD_UNITS_PERCENT_RH                             29
/* Length           */
#define  CD_UNITS_MILLIMETERS                            30
#define  CD_UNITS_CENTIMETERS                           118
#define  CD_UNITS_METERS                                 31
#define  CD_UNITS_INCHES                                 32
#define  CD_UNITS_FEET                                   33
/* Light            */
#define  CD_UNITS_WATTS_PER_SQUARE_FOOT                  34
#define  CD_UNITS_WATTS_PER_SQUARE_METER                 35
#define  CD_UNITS_LUMENS                                 36
#define  CD_UNITS_LUXES                                  37
#define  CD_UNITS_FOOT_CANDLES                           38
/* Mass             */
#define  CD_UNITS_KILOGRAMS                              39
#define  CD_UNITS_POUNDS_MASS                            40
#define  CD_UNITS_TONS                                   41
/* Mass Flow        */
#define  CD_UNITS_KILOGRAMS_PER_SECOND                   42
#define  CD_UNITS_KILOGRAMS_PER_MINUTE                   43
#define  CD_UNITS_KILOGRAMS_PER_HOUR                     44
#define  CD_UNITS_POUNDS_MASS_PER_SECOND                119
#define  CD_UNITS_POUNDS_MASS_PER_MINUTE                 45
#define  CD_UNITS_POUNDS_MASS_PER_HOUR                   46
/* Power            */
#define  CD_UNITS_MILLIWATTS                            132
#define  CD_UNITS_WATTS                                  47
#define  CD_UNITS_KILOWATTS                              48
#define  CD_UNITS_MEGAWATTS                              49
#define  CD_UNITS_BTUS_PER_HOUR                          50
#define  CD_UNITS_HORSEPOWER                             51
#define  CD_UNITS_TONS_REFRIGERATION                     52
/* Pressure         */
#define  CD_UNITS_PASCALS                                53
#define  CD_UNITS_HECTOPASCALS                          133
#define  CD_UNITS_KILOPASCALS                            54
#define  CD_UNITS_MILLIBARS                             134
#define  CD_UNITS_BARS                                   55
#define  CD_UNITS_POUNDS_FORCE_PER_SQUARE_INCH           56
#define  CD_UNITS_CENTIMETERS_OF_WATER                   57
#define  CD_UNITS_INCHES_OF_WATER                        58
#define  CD_UNITS_MILLIMETERS_OF_MERCURY                 59
#define  CD_UNITS_CENTIMETERS_OF_MERCURY                 60
#define  CD_UNITS_INCHES_OF_MERCURY                      61
/* Temperature      */
#define  CD_UNITS_DEGREES_C                              62
#define  CD_UNITS_DEGREES_K                              63
#define  CD_UNITS_DEGREES_F                              64
#define  CD_UNITS_DEGREES_DAYS_CELSIUS                   65
#define  CD_UNITS_DEGREES_DAYS_FAHRENHEIT                66
#define  CD_UNITS_DELTA_DEGREES_FAHRENHEIT              120
#define  CD_UNITS_DELTA_DEGREES_KELVIN                  121
/* Time             */
#define  CD_UNITS_YEARS                                  67
#define  CD_UNITS_MONTHS                                 68
#define  CD_UNITS_WEEKS                                  69
#define  CD_UNITS_DAYS                                   70
#define  CD_UNITS_HOURS                                  71
#define  CD_UNITS_MINUTES                                72
#define  CD_UNITS_SECONDS                                73
/* Velocity         */
#define  CD_UNITS_METERS_PER_SECOND                      74
#define  CD_UNITS_KILOMETERS_PER_HOUR                    75
#define  CD_UNITS_FEET_PER_SECOND                        76
#define  CD_UNITS_FEET_PER_MINUTE                        77
#define  CD_UNITS_MILES_PER_HOUR                         78
/* Volume           */
#define  CD_UNITS_CUBIC_FEET                             79
#define  CD_UNITS_CUBIC_METERS                           80
#define  CD_UNITS_IMPERIAL_GALLONS                       81
#define  CD_UNITS_LITERS                                 82
#define  CD_UNITS_US_GALLONS                             83
/* Volumetric Flow  */
#define  CD_UNITS_CUBIC_FEET_PER_SECOND                 142
#define  CD_UNITS_CUBIC_FEET_PER_MINUTE                  84
#define  CD_UNITS_CUBIC_METERS_PER_SECONDS               85
#define  CD_UNITS_CUBIC_METERS_PER_HOUR                 135
#define  CD_UNITS_IMPERIAL_GALLONS_PER_MINUTE            86
#define  CD_UNITS_LITERS_PER_SECOND                      87
#define  CD_UNITS_LITERS_PER_MINUTE                      88
#define  CD_UNITS_LITERS_PER_HOUR                       136
#define  CD_UNITS_US_GALLONS_PER_MINUTE                  89
/* Others           */
#define  CD_UNITS_DEGREES_ANGULAR                        90
#define  CD_UNITS_DEGREES_CELSIUS_PER_HOUR               91

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -