bacnet

package module
v0.0.0-...-25d832f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2021 License: GPL-2.0 Imports: 5 Imported by: 0

README

Bacnet

Go Reference

bacnet is a minimal Bacnet over IP implementation in pure go with zero dependencies.

Status

This library is still experimental. No API compatibility promise is made.

Features

  • Who Is
  • Read Property
  • Write Property

Example

The main directory contains a small example that scan the network for bacnet devices, list all objects in this device then try to query the current value and unit from them. To run it do:

go run ./main eth0

(Replace eth0 by the interface name you want to scan)

License

This library is heavily based on the gobacnet library from @alextran which is itself based on the BACnet-Stack library originally written by Steve Karg and therefore is released under the same license as his project. This includes the exception which allows for this library to be linked by proprietary code without that code becoming GPL. This exception was taken from the original BACnet stack.

The exception is as follows:

    "As a special exception, if other files instantiate
     templates or use macros or inline functions from
     this file, or you compile this file and link it
     with other works to produce a work based on this file,
     this file does not by itself cause the resulting work
     to be covered by the GNU General Public License.
     However the source code for this file must still be
     made available in accordance with section (3) of the
     GNU General Public License."

Documentation

Overview

Package bacnet provides various types to represent Bacnet related concepts

Index

Constants

View Source
const (
	MaxInstance = 0x3FFFFF
)

Variables

This section is empty.

Functions

func UDPFromAddress

func UDPFromAddress(addr Address) net.UDPAddr

Types

type Address

type Address struct {
	// mac_len = 0 is a broadcast address
	// note: MAC for IP addresses uses 4 bytes for addr, 2 bytes for port
	Mac []byte
	// the following are used if the device is behind a router
	// net = 0 indicates local
	Net uint16 // BACnet network number
	Adr []byte // hwaddr (MAC) address
}

Address is the bacnet address of an device.

func AddressFromUDP

func AddressFromUDP(udp net.UDPAddr) *Address

type Device

type Device struct {
	ID           ObjectID
	MaxApdu      uint32
	Segmentation SegmentationSupport
	Vendor       uint32
	Addr         Address
}

Device represent a bacnet device. Note: A bacnet device is different from a bacnet object. A device "contains" several object. Only the device has a bacnet address

type ErrorClass

type ErrorClass uint16

ErrorClass is the type of error send by an object after a request

const (
	DeviceError        ErrorClass = 0x00
	ObjectError        ErrorClass = 0x01
	PropertyError      ErrorClass = 0x02
	ResourcesError     ErrorClass = 0x03
	SecurityError      ErrorClass = 0x04
	ServicesError      ErrorClass = 0x05
	VTError            ErrorClass = 0x06
	CommunicationError ErrorClass = 0x07
)

func (ErrorClass) String

func (i ErrorClass) String() string

type ErrorCode

type ErrorCode uint32

ErrorCode identifies precisely the error

const (
	Other                              ErrorCode = 0x00
	DeviceBusy                         ErrorCode = 0x03
	ConfigurationInProgress            ErrorCode = 0x02
	OperationalProblem                 ErrorCode = 0x19
	DynamicCreationNotSupported        ErrorCode = 0x04
	NoObjectsOfSpecifiedType           ErrorCode = 0x11
	ObjectDeletionNotPermitted         ErrorCode = 0x17
	ObjectIdentifierAlreadyExists      ErrorCode = 0x18
	ReadAccessDenied                   ErrorCode = 0x1B
	UnknownObject                      ErrorCode = 0x1F
	UnsupportedObjectType              ErrorCode = 0x24
	CharacterSetNotSupported           ErrorCode = 0x29
	DatatypeNotSupported               ErrorCode = 0x2F
	InconsistentSelectionCriterion     ErrorCode = 0x08
	InvalidArrayIndex                  ErrorCode = 0x2A
	InvalidDataType                    ErrorCode = 0x09
	NotCovProperty                     ErrorCode = 0x2C
	OptionalFunctionalityNotSupported  ErrorCode = 0x2D
	PropertyIsNotAnArray               ErrorCode = 0x32
	UnknownProperty                    ErrorCode = 0x20
	ValueOutOfRange                    ErrorCode = 0x25
	WriteAccessDenied                  ErrorCode = 0x28
	NoSpaceForObject                   ErrorCode = 0x12
	NoSpaceToAddListElement            ErrorCode = 0x13
	NoSpaceToWriteProperty             ErrorCode = 0x14
	AuthenticationFailed               ErrorCode = 0x01
	IncompatibleSecurityLevels         ErrorCode = 0x06
	InvalidOperatorName                ErrorCode = 0x0C
	KeyGenerationError                 ErrorCode = 0x0F
	PasswordFailure                    ErrorCode = 0x1A
	SecurityNotSupported               ErrorCode = 0x1C
	Timeout                            ErrorCode = 0x1E
	CovSubscriptionFailed              ErrorCode = 0x2B
	DuplicateName                      ErrorCode = 0x30
	DuplicateObjectID                  ErrorCode = 0x31
	FileAccessDenied                   ErrorCode = 0x05
	InconsistentParameters             ErrorCode = 0x07
	InvalidConfigurationData           ErrorCode = 0x2E
	InvalidFileAccessMethod            ErrorCode = 0x0A
	InvalidFileStartPosition           ErrorCode = 0x0B
	InvalidParameterDataType           ErrorCode = 0x0D
	InvalidTimeStamp                   ErrorCode = 0x0E
	MissingRequiredParameter           ErrorCode = 0x10
	PropertyIsNotAList                 ErrorCode = 0x16
	ServiceRequestDenied               ErrorCode = 0x1D
	UnknownVtClass                     ErrorCode = 0x22
	UnknownVtSession                   ErrorCode = 0x23
	NoVtSessionsAvailable              ErrorCode = 0x15
	VtSessionAlreadyClosed             ErrorCode = 0x26
	VtSessionTerminationFailure        ErrorCode = 0x27
	AbortBufferOverflow                ErrorCode = 0x33
	AbortInvalidApduInThisState        ErrorCode = 0x34
	AbortPreemptedByHigherPriorityTask ErrorCode = 0x35
	AbortSegmentationNotSupported      ErrorCode = 0x36
	AbortProprietary                   ErrorCode = 0x37
	AbortOther                         ErrorCode = 0x38
	InvalidTag                         ErrorCode = 0x39
	NetworkDown                        ErrorCode = 0x3A
	RejectBufferOverflow               ErrorCode = 0x3B
	RejectInconsistentParameters       ErrorCode = 0x3C
	RejectInvalidParameterDataType     ErrorCode = 0x3D
	RejectInvalidTag                   ErrorCode = 0x3E
	RejectMissingRequiredParameter     ErrorCode = 0x3F
	RejectParameterOutOfRange          ErrorCode = 0x40
	RejectTooManyArguments             ErrorCode = 0x41
	RejectUndefinedEnumeration         ErrorCode = 0x42
	RejectUnrecognizedService          ErrorCode = 0x43
	RejectProprietary                  ErrorCode = 0x44
	RejectOther                        ErrorCode = 0x45
	UnknownDevice                      ErrorCode = 0x46
	UnknownRoute                       ErrorCode = 0x47
	ValueNotInitialized                ErrorCode = 0x48
	InvalidEventState                  ErrorCode = 0x49
	NoAlarmConfigured                  ErrorCode = 0x4A
	LogBufferFull                      ErrorCode = 0x4B
	LoggedValuePurged                  ErrorCode = 0x4C
	NoPropertySpecified                ErrorCode = 0x4D
	NotConfiguredForTriggeredLogging   ErrorCode = 0x4E
	UnknownSubscription                ErrorCode = 0x4F
	ParameterOutOfRange                ErrorCode = 0x50
	ListElementNotFound                ErrorCode = 0x51
	Busy                               ErrorCode = 0x52
	CommunicationDisabled              ErrorCode = 0x53
	Success                            ErrorCode = 0x54
	AccessDenied                       ErrorCode = 0x55
	BadDestinationAddress              ErrorCode = 0x56
	BadDestinationDeviceID             ErrorCode = 0x57
	BadSignature                       ErrorCode = 0x58
	BadSourceAddress                   ErrorCode = 0x59
	BadTimestamp                       ErrorCode = 0x5A
	CannotUseKey                       ErrorCode = 0x5B
	CannotVerifyMessageID              ErrorCode = 0x5C
	CorrectKeyRevision                 ErrorCode = 0x5D
	DestinationDeviceIDRequired        ErrorCode = 0x5E
	DuplicateMessage                   ErrorCode = 0x5F
	EncryptionNotConfigured            ErrorCode = 0x60
	EncryptionRequired                 ErrorCode = 0x61
	IncorrectKey                       ErrorCode = 0x62
	InvalidKeyData                     ErrorCode = 0x63
	KeyUpdateInProgress                ErrorCode = 0x64
	MalformedMessage                   ErrorCode = 0x65
	NotKeyServer                       ErrorCode = 0x66
	SecurityNotConfigured              ErrorCode = 0x67
	SourceSecurityRequired             ErrorCode = 0x68
	TooManyKeys                        ErrorCode = 0x69
	UnknownAuthenticationType          ErrorCode = 0x6A
	UnknownKey                         ErrorCode = 0x6B
	UnknownKeyRevision                 ErrorCode = 0x6C
	UnknownSourceMessage               ErrorCode = 0x6D
	NotRouterToDnet                    ErrorCode = 0x6E
	RouterBusy                         ErrorCode = 0x6F
	UnknownNetworkMessage              ErrorCode = 0x70
	MessageTooLong                     ErrorCode = 0x71
	SecurityErrorCode                  ErrorCode = 0x72
	AddressingError                    ErrorCode = 0x73
	WriteBdtFailed                     ErrorCode = 0x74
	ReadBdtFailed                      ErrorCode = 0x75
	RegisterForeignDeviceFailed        ErrorCode = 0x76
	ReadFdtFailed                      ErrorCode = 0x77
	DeleteFdtEntryFailed               ErrorCode = 0x78
	DistributeBroadcastFailed          ErrorCode = 0x79
	UnknownFileSize                    ErrorCode = 0x7A
	AbortApduTooLong                   ErrorCode = 0x7B
	AbortApplicationExceededReplyTime  ErrorCode = 0x7C
	AbortOutOfResources                ErrorCode = 0x7D
	AbortTsmTimeout                    ErrorCode = 0x7E
	AbortWindowSizeOutOfRange          ErrorCode = 0x7F
	FileFull                           ErrorCode = 0x80
	InconsistentConfiguration          ErrorCode = 0x81
	InconsistentObjectType             ErrorCode = 0x82
	InternalError                      ErrorCode = 0x83
	NotConfigured                      ErrorCode = 0x84
	OutOfMemory                        ErrorCode = 0x85
	ValueTooLong                       ErrorCode = 0x86
	AbortInsufficientSecurity          ErrorCode = 0x87
	AbortSecurityError                 ErrorCode = 0x88
)

func (ErrorCode) String

func (i ErrorCode) String() string

type ObjectID

type ObjectID struct {
	Type     ObjectType
	Instance ObjectInstance
}

ObjectID represent the type of a bacnet object and it's instance number

func ObjectIDFromUint32

func ObjectIDFromUint32(v uint32) ObjectID

func (ObjectID) Encode

func (o ObjectID) Encode() (uint32, error)

Encode turns the object ID into a uint32 for encoding. Returns an error if the ObjectID is invalid

type ObjectInstance

type ObjectInstance uint32

ObjectInstance is a unique identifier of an bacnet object

type ObjectType

type ObjectType uint16

ObjectType is the category of an object

const (
	AnalogInput           ObjectType = 0x00
	AnalogOutput          ObjectType = 0x01
	AnalogValue           ObjectType = 0x02
	BinaryInput           ObjectType = 0x03
	BinaryOutput          ObjectType = 0x04
	BinaryValue           ObjectType = 0x05
	Calendar              ObjectType = 0x06
	Command               ObjectType = 0x07
	BacnetDevice          ObjectType = 0x08
	EventEnrollment       ObjectType = 0x09
	File                  ObjectType = 0x0A
	Group                 ObjectType = 0x0B
	Loop                  ObjectType = 0x0C
	MultiStateInput       ObjectType = 0x0D
	MultiStateOutput      ObjectType = 0x0E
	NotificationClass     ObjectType = 0x0F
	Program               ObjectType = 0x10
	Schedule              ObjectType = 0x11
	Averaging             ObjectType = 0x12
	MultiStateValue       ObjectType = 0x13
	Trendlog              ObjectType = 0x14
	LifeSafetyPoint       ObjectType = 0x15
	LifeSafetyZone        ObjectType = 0x16
	Accumulator           ObjectType = 0x17
	PulseConverter        ObjectType = 0x18
	EventLog              ObjectType = 0x19
	GlobalGroup           ObjectType = 0x1A
	TrendLogMultiple      ObjectType = 0x1B
	LoadControl           ObjectType = 0x1C
	StructuredView        ObjectType = 0x1D
	AccessDoor            ObjectType = 0x1E
	Timer                 ObjectType = 0x1F
	AccessCredential      ObjectType = 0x20 // Addendum 2008-j
	AccessPoint           ObjectType = 0x21
	AccessRights          ObjectType = 0x22
	AccessUser            ObjectType = 0x23
	AccessZone            ObjectType = 0x24
	CredentialDataInput   ObjectType = 0x25 // Authentication-factor-input
	NetworkSecurity       ObjectType = 0x26 // Addendum 2008-g
	BitstringValue        ObjectType = 0x27 // Addendum 2008-w
	CharacterstringValue  ObjectType = 0x28 // Addendum 2008-w
	DatePatternValue      ObjectType = 0x29 // Addendum 2008-w
	DateValue             ObjectType = 0x2a // Addendum 2008-w
	DatetimePatternValue  ObjectType = 0x2b // Addendum 2008-w
	DatetimeValue         ObjectType = 0x2c // Addendum 2008-w
	IntegerValue          ObjectType = 0x2d // Addendum 2008-w
	LargeAnalogValue      ObjectType = 0x2e // Addendum 2008-w
	OctetstringValue      ObjectType = 0x2f // Addendum 2008-w
	PositiveIntegerValue  ObjectType = 0x30 // Addendum 2008-w
	TimePatternValue      ObjectType = 0x31 // Addendum 2008-w
	TimeValue             ObjectType = 0x32 // Addendum 2008-w
	NotificationForwarder ObjectType = 0x33 // Addendum 2010-af
	AlertEnrollment       ObjectType = 0x34 // Addendum 2010-af
	Channel               ObjectType = 0x35 // Addendum 2010-aa
	LightingOutput        ObjectType = 0x36 // Addendum 2010-i
	BinaryLightingOutput  ObjectType = 0x37 // Addendum 135-2012az
	NetworkPort           ObjectType = 0x38 // Addendum 135-2012az
	ProprietaryMin        ObjectType = 0x80
	Proprietarymax        ObjectType = 0x3ff
)

func (ObjectType) String

func (i ObjectType) String() string

type PriorityList

type PriorityList uint8
const (
	ManualLifeSafety1          PriorityList = 1
	ManualLifeSafety2          PriorityList = 2
	Available3                 PriorityList = 3
	Available4                 PriorityList = 4
	CriticalEquipementControl5 PriorityList = 5
	MinimumOnOff6              PriorityList = 6
	Available7                 PriorityList = 7
	ManualOperator8            PriorityList = 8
	Available9                 PriorityList = 9
	Available10                PriorityList = 10
	Available11                PriorityList = 11
	Available12                PriorityList = 12
	Available13                PriorityList = 13
	Available14                PriorityList = 14
	Available15                PriorityList = 15
	Available16                PriorityList = 16
)

func (PriorityList) String

func (i PriorityList) String() string

type PropertyIdentifier

type PropertyIdentifier struct {
	Type PropertyType
	//Not null if it's an array property and we want only one index of
	//this array
	ArrayIndex *uint32
}

PropertyIdentifier is used to control a ReadProperty request

type PropertyType

type PropertyType uint32

PropertyType is the type of an object property

const (
	AckedTransitions                 PropertyType = 0x00
	AckRequired                      PropertyType = 0x01
	Action                           PropertyType = 0x02
	ActionText                       PropertyType = 0x03
	ActiveText                       PropertyType = 0x04
	ActiveVtSessions                 PropertyType = 0x05
	AlarmValue                       PropertyType = 0x06
	AlarmValues                      PropertyType = 0x07
	All                              PropertyType = 0x08
	AllWritesSuccessful              PropertyType = 0x09
	ApduSegmentTimeout               PropertyType = 0x0A
	ApduTimeout                      PropertyType = 0x0B
	ApplicationSoftwareVersion       PropertyType = 0x0C
	Archive                          PropertyType = 0x0D
	Bias                             PropertyType = 0x0E
	ChangeOfStateCount               PropertyType = 0x0F
	ChangeOfStateTime                PropertyType = 0x10
	NotificationClassProp            PropertyType = 0x11
	ControlledVariableReference      PropertyType = 0x13
	ControlledVariableUnits          PropertyType = 0x14
	ControlledVariableValue          PropertyType = 0x15
	CovIncrement                     PropertyType = 0x16
	DateList                         PropertyType = 0x17
	DaylightSavingsStatus            PropertyType = 0x18
	Deadband                         PropertyType = 0x19
	DerivativeAnt                    PropertyType = 0x1A
	DerivativeAntUnits               PropertyType = 0x1B
	Description                      PropertyType = 0x1C
	DescriptionOfHalt                PropertyType = 0x1D
	DeviceAddressBinding             PropertyType = 0x1E
	DeviceType                       PropertyType = 0x1F
	EffectivePeriod                  PropertyType = 0x20
	ElapsedActiveTime                PropertyType = 0x21
	ErrorLimit                       PropertyType = 0x22
	EventEnable                      PropertyType = 0x23
	EventState                       PropertyType = 0x24
	EventType                        PropertyType = 0x25
	ExceptionSchedule                PropertyType = 0x26
	FaultValues                      PropertyType = 0x27
	FeedbackValue                    PropertyType = 0x28
	FileAccessMethod                 PropertyType = 0x29
	FileSize                         PropertyType = 0x2A
	FileType                         PropertyType = 0x2B
	FirmwareRevision                 PropertyType = 0x2C
	HighLimit                        PropertyType = 0x2D
	InactiveText                     PropertyType = 0x2E
	InProcess                        PropertyType = 0x2F
	InstanceOf                       PropertyType = 0x30
	IntegralAnt                      PropertyType = 0x31
	IntegralAntUnits                 PropertyType = 0x32
	IssueConfirmedNotifications      PropertyType = 0x33
	LimitEnable                      PropertyType = 0x34
	ListOfGroupMembers               PropertyType = 0x35
	ListOfObjectPropertyReferences   PropertyType = 0x36
	ListOfSessionKeys                PropertyType = 0x37
	LocalDate                        PropertyType = 0x38
	LocalTime                        PropertyType = 0x39
	Location                         PropertyType = 0x3A
	LowLimit                         PropertyType = 0x3B
	ManipulatedVariableReference     PropertyType = 0x3C
	MaximumOutput                    PropertyType = 0x3D
	MaxApduLengthAccepted            PropertyType = 0x3E
	MaxInfoFrames                    PropertyType = 0x3F
	MaxMaster                        PropertyType = 0x40
	MaxPresValue                     PropertyType = 0x41
	MinimumOffTime                   PropertyType = 0x42
	MinimumOnTime                    PropertyType = 0x43
	MinimumOutput                    PropertyType = 0x44
	MinPresValue                     PropertyType = 0x45
	ModelName                        PropertyType = 0x46
	ModificationDate                 PropertyType = 0x47
	NotifyType                       PropertyType = 0x48
	NumberOfApduRetries              PropertyType = 0x49
	NumberOfStates                   PropertyType = 0x4A
	ObjectIdentifier                 PropertyType = 0x4B
	ObjectList                       PropertyType = 0x4C
	ObjectName                       PropertyType = 0x4D
	ObjectPropertyReference          PropertyType = 0x4E
	ObjectTypeProp                   PropertyType = 0x4F
	Optional                         PropertyType = 0x50
	OutOfService                     PropertyType = 0x51
	OutputUnits                      PropertyType = 0x52
	EventParameters                  PropertyType = 0x53
	Polarity                         PropertyType = 0x54
	PresentValue                     PropertyType = 0x55
	Priority                         PropertyType = 0x56
	PriorityArray                    PropertyType = 0x57
	PriorityForWriting               PropertyType = 0x58
	ProcessIdentifier                PropertyType = 0x59
	ProgramChange                    PropertyType = 0x5A
	ProgramLocation                  PropertyType = 0x5B
	ProgramState                     PropertyType = 0x5C
	ProportionalAnt                  PropertyType = 0x5D
	ProportionalAntUnits             PropertyType = 0x5E
	ProtocolConformanceClass         PropertyType = 0x5F // Deleted In Version 1 revision 2
	ProtocolObjectTypesSupported     PropertyType = 0x60
	ProtocolServicesSupported        PropertyType = 0x61
	ProtocolVersion                  PropertyType = 0x62
	ReadOnly                         PropertyType = 0x63
	ReasonForHalt                    PropertyType = 0x64
	Recipient                        PropertyType = 0x65
	RecipientList                    PropertyType = 0x66
	Reliability                      PropertyType = 0x67
	RelinquishDefault                PropertyType = 0x68
	Required                         PropertyType = 0x69
	Resolution                       PropertyType = 0x6A
	SegmentationSupported            PropertyType = 0x6B
	Setpoint                         PropertyType = 0x6C
	SetpointReference                PropertyType = 0x6D
	StateText                        PropertyType = 0x6E
	StatusFlags                      PropertyType = 0x6F
	SystemStatus                     PropertyType = 0x70
	TimeDelay                        PropertyType = 0x71
	TimeOfActiveTimeReset            PropertyType = 0x72
	TimeOfStateCountReset            PropertyType = 0x73
	TimeSynchronizationRecipients    PropertyType = 0x74
	Units                            PropertyType = 0x75
	UpdateInterval                   PropertyType = 0x76
	UtcOffset                        PropertyType = 0x77
	VendorIdentifier                 PropertyType = 0x78
	VendorName                       PropertyType = 0x79
	VtClassesSupported               PropertyType = 0x7A
	WeeklySchedule                   PropertyType = 0x7B
	AttemptedSamples                 PropertyType = 0x7C
	AverageValue                     PropertyType = 0x7D
	BufferSize                       PropertyType = 0x7E
	ClientCovIncrement               PropertyType = 0x7F
	CovResubscriptionInterval        PropertyType = 0x80
	CurrentNotifyTime                PropertyType = 0x81
	EventTimeStamps                  PropertyType = 0x82
	LogBuffer                        PropertyType = 0x83
	LogDeviceObjectProperty          PropertyType = 0x84
	Enable                           PropertyType = 0x85
	LogInterval                      PropertyType = 0x86
	MaximumValue                     PropertyType = 0x87
	MinimumValue                     PropertyType = 0x88
	NotificationThreshold            PropertyType = 0x89
	PreviousNotifyTime               PropertyType = 0x8A
	ProtocolRevision                 PropertyType = 0x8B
	RecordsSinceNotification         PropertyType = 0x8C
	RecordCount                      PropertyType = 0x8D
	StartTime                        PropertyType = 0x8E
	StopTime                         PropertyType = 0x8F
	StopWhenFull                     PropertyType = 0x90
	TotalRecordCount                 PropertyType = 0x91
	ValidSamples                     PropertyType = 0x92
	WindowInterval                   PropertyType = 0x93
	WindowSamples                    PropertyType = 0x94
	MaximumValueTimestamp            PropertyType = 0x95
	MinimumValueTimestamp            PropertyType = 0x96
	VarianceValue                    PropertyType = 0x97
	ActiveCovSubscriptions           PropertyType = 0x98
	BackupFailureTimeout             PropertyType = 0x99
	ConfigurationFiles               PropertyType = 0x9A
	DatabaseRevision                 PropertyType = 0x9B
	DirectReading                    PropertyType = 0x9C
	LastRestoreTime                  PropertyType = 0x9D
	MaintenanceRequired              PropertyType = 0x9E
	MemberOf                         PropertyType = 0x9F
	Mode                             PropertyType = 0xA0
	OperationExpected                PropertyType = 0xA1
	Setting                          PropertyType = 0xA2
	Silenced                         PropertyType = 0xA3
	TrackingValue                    PropertyType = 0xA4
	ZoneMembers                      PropertyType = 0xA5
	LifeSafetyAlarmValues            PropertyType = 0xA6
	MaxSegmentsAccepted              PropertyType = 0xA7
	ProfileName                      PropertyType = 0xA8
	AutoSlaveDiscovery               PropertyType = 0xA9
	ManualSlaveAddressBinding        PropertyType = 0xAA
	SlaveAddressBinding              PropertyType = 0xAB
	SlaveProxyEnable                 PropertyType = 0xAC
	LastNotifyRecord                 PropertyType = 0xAD
	ScheduleDefault                  PropertyType = 0xAE
	AcceptedModes                    PropertyType = 0xAF
	AdjustValue                      PropertyType = 0xB0
	Count                            PropertyType = 0xB1
	CountBeforeChange                PropertyType = 0xB2
	CountChangeTime                  PropertyType = 0xB3
	CovPeriod                        PropertyType = 0xB4
	InputReference                   PropertyType = 0xB5
	LimitMonitoringInterval          PropertyType = 0xB6
	LoggingObject                    PropertyType = 0xB7
	LoggingRecord                    PropertyType = 0xB8
	Prescale                         PropertyType = 0xB9
	PulseRate                        PropertyType = 0xBA
	Scale                            PropertyType = 0xBB
	ScaleFactor                      PropertyType = 0xBC
	UpdateTime                       PropertyType = 0xBD
	ValueBeforeChange                PropertyType = 0xBE
	ValueSet                         PropertyType = 0xBF
	ValueChangeTime                  PropertyType = 0xC0
	AlignIntervals                   PropertyType = 0xC1
	IntervalOffset                   PropertyType = 0xC3
	LastRestartReason                PropertyType = 0xC4
	LoggingType                      PropertyType = 0xC5
	RestartNotificationRecipients    PropertyType = 0xCA
	TimeOfDeviceRestart              PropertyType = 0xCB
	TimeSynchronizationInterval      PropertyType = 0xCC
	Trigger                          PropertyType = 0xCD
	UTCTimeSynchronizationRecipients PropertyType = 0xCE
	NodeSubtype                      PropertyType = 0xCF
	NodeType                         PropertyType = 0xD0
	StructuredObjectList             PropertyType = 0xD1
	SubordinateAnnotations           PropertyType = 0xD2
	SubordinateList                  PropertyType = 0xD3
	ActualShedLevel                  PropertyType = 0xD4
	DutyWindow                       PropertyType = 0xD5
	ExpectedShedLevel                PropertyType = 0xD6
	FullDutyBaseline                 PropertyType = 0xD7
	RequestedShedLevel               PropertyType = 0xDA
	ShedDuration                     PropertyType = 0xDB
	ShedLevelDescriptions            PropertyType = 0xDC
	ShedLevels                       PropertyType = 0xDD
	StateDescription                 PropertyType = 0xDE
	DoorAlarmState                   PropertyType = 0xE2
	DoorExtendedPulseTime            PropertyType = 0xE3
	DoorMembers                      PropertyType = 0xE4
	DoorOpenTooLongTime              PropertyType = 0xE5
	DoorPulseTime                    PropertyType = 0xE6
	DoorStatus                       PropertyType = 0xE7
	DoorUnlockDelayTime              PropertyType = 0xE8
	LockStatus                       PropertyType = 0xE9
	MaskedAlarmValues                PropertyType = 0xEA
	SecuredStatus                    PropertyType = 0xEB
	AbsenteeLimit                    PropertyType = 0xF4
	AccessAlarmEvents                PropertyType = 0xF5
	AccessDoors                      PropertyType = 0xF6
	AccessEvent                      PropertyType = 0xF7
	AccessEventAuthenticationFactor  PropertyType = 0xF8
	AccessEventCredential            PropertyType = 0xF9
	AccessEventTime                  PropertyType = 0xFA
	AccessTransactionEvents          PropertyType = 0xFB
	Accompaniment                    PropertyType = 0xFC
	AccompanimentTime                PropertyType = 0xFD
	ActivationTime                   PropertyType = 0xFE
	ActiveAuthenticationPolicy       PropertyType = 0xFF
	AssignedAccessRights             PropertyType = 0x100
	AuthenticationFactors            PropertyType = 0x101
	AuthenticationPolicyList         PropertyType = 0x102
	AuthenticationPolicyNames        PropertyType = 0x103
	AuthenticationStatus             PropertyType = 0x104
	AuthorizationMode                PropertyType = 0x105
	BelongsTo                        PropertyType = 0x106
	CredentialDisable                PropertyType = 0x107
	CredentialStatus                 PropertyType = 0x108
	Credentials                      PropertyType = 0x109
	CredentialsInZone                PropertyType = 0x10A
	DaysRemaining                    PropertyType = 0x10B
	EntryPoints                      PropertyType = 0x10C
	ExitPoints                       PropertyType = 0x10D
	ExpiryTime                       PropertyType = 0x10E
	ExtendedTimeEnable               PropertyType = 0x10F
	FailedAttemptEvents              PropertyType = 0x110
	FailedAttempts                   PropertyType = 0x111
	FailedAttemptsTime               PropertyType = 0x112
	LastAccessEvent                  PropertyType = 0x113
	LastAccessPoint                  PropertyType = 0x114
	LastCredentialAdded              PropertyType = 0x115
	LastCredentialAddedTime          PropertyType = 0x116
	LastCredentialRemoved            PropertyType = 0x117
	LastCredentialRemovedTime        PropertyType = 0x118
	LastUseTime                      PropertyType = 0x119
	Lockout                          PropertyType = 0x11A
	LockoutRelinquishTime            PropertyType = 0x11B
	MasterExemption                  PropertyType = 0x11C
	MaxFailedAttempts                PropertyType = 0x11D
	Members                          PropertyType = 0x11E
	MusterPoint                      PropertyType = 0x11F
	NegativeAccessRules              PropertyType = 0x120
	NumberOfAuthenticationPolicies   PropertyType = 0x121
	OccupancyCount                   PropertyType = 0x122
	OccupancyCountAdjust             PropertyType = 0x123
	OccupancyCountEnable             PropertyType = 0x124
	OccupancyExemption               PropertyType = 0x125
	OccupancyLowerLimit              PropertyType = 0x126
	OccupancyLowerLimitEnforced      PropertyType = 0x127
	OccupancyState                   PropertyType = 0x128
	OccupancyUpperLimit              PropertyType = 0x129
	OccupancyUpperLimitEnforced      PropertyType = 0x12A
	PassbackExemption                PropertyType = 0x12B
	PassbackMode                     PropertyType = 0x12C
	PassbackTimeout                  PropertyType = 0x12D
	PositiveAccessRules              PropertyType = 0x12E
	ReasonForDisable                 PropertyType = 0x12F
	SupportedFormats                 PropertyType = 0x130
	SupportedFormatClasses           PropertyType = 0x131
	ThreatAuthority                  PropertyType = 0x132
	ThreatLevel                      PropertyType = 0x133
	TraceFlag                        PropertyType = 0x134
	TransactionNotificationClass     PropertyType = 0x135
	UserExternalIdentifier           PropertyType = 0x136
	UserInformationReference         PropertyType = 0x137
	UserName                         PropertyType = 0x13D
	UserType                         PropertyType = 0x13E
	UsesRemaining                    PropertyType = 0x13F
	ZoneFrom                         PropertyType = 0x140
	ZoneTo                           PropertyType = 0x141
	AccessEventTag                   PropertyType = 0x142
	GlobalIdentifier                 PropertyType = 0x143
	VerificationTime                 PropertyType = 0x146
	BaseDeviceSecurityPolicy         PropertyType = 0x147
	DistributionKeyRevision          PropertyType = 0x148
	DoNotHide                        PropertyType = 0x149
	KeySets                          PropertyType = 0x14A
	LastKeyServer                    PropertyType = 0x14B
	NetworkAccessSecurityPolicies    PropertyType = 0x14C
	PacketReorderTime                PropertyType = 0x14D
	SecurityPduTimeout               PropertyType = 0x14E
	SecurityTimeWindow               PropertyType = 0x14F
	SupportedSecurityAlgorithm       PropertyType = 0x150
	UpdateKeySetTimeout              PropertyType = 0x151
	BackupAndRestoreState            PropertyType = 0x152
	BackupPreparationTime            PropertyType = 0x153
	RestoreCompletionTime            PropertyType = 0x154
	RestorePreparationTime           PropertyType = 0x155
	BitMask                          PropertyType = 0x156
	BitText                          PropertyType = 0x157
	IsUTC                            PropertyType = 0x158
	GroupMembers                     PropertyType = 0x159
	GroupMemberNames                 PropertyType = 0x15A
	MemberStatusFlags                PropertyType = 0x15B
	RequestedUpdateInterval          PropertyType = 0x15C
	CovuPeriod                       PropertyType = 0x15D
	CovuRecipients                   PropertyType = 0x15E
	EventMessageTexts                PropertyType = 0x15F
	EventMessageTextsConfig          PropertyType = 0x160
	EventDetectionEnable             PropertyType = 0x161
	EventAlgorithmInhibit            PropertyType = 0x162
	EventAlgorithmInhibitRef         PropertyType = 0x163
	TimeDelayNormal                  PropertyType = 0x164
	ReliabilityEvaluationInhibit     PropertyType = 0x165
	FaultParameters                  PropertyType = 0x166
	FaultType                        PropertyType = 0x167
	LocalForwardingOnly              PropertyType = 0x168
	ProcessIdentifierFilter          PropertyType = 0x169
	SubscribedRecipients             PropertyType = 0x16A
	PortFilter                       PropertyType = 0x16B
	AuthorizationExemptions          PropertyType = 0x16C
	AllowGroupDelayInhibit           PropertyType = 0x16D
	ChannelNumber                    PropertyType = 0x16E
	ControlGroups                    PropertyType = 0x16F
	ExecutionDelay                   PropertyType = 0x170
	LastPriority                     PropertyType = 0x171
	WriteStatus                      PropertyType = 0x172
	PropertyList                     PropertyType = 0x173
	SerialNumber                     PropertyType = 0x174
	BlinkWarnEnable                  PropertyType = 0x175
	DefaultFadeTime                  PropertyType = 0x176
	DefaultRampRate                  PropertyType = 0x177
	DefaultStepIncrement             PropertyType = 0x178
	EgressTime                       PropertyType = 0x179
	InProgress                       PropertyType = 0x17A
	InstantaneousPower               PropertyType = 0x17B
	LightingCommand                  PropertyType = 0x17C
	LightingCommandDefaultPriority   PropertyType = 0x17D
	MaxActualValue                   PropertyType = 0x17E
	MinActualValue                   PropertyType = 0x17F
	Power                            PropertyType = 0x180
	Transition                       PropertyType = 0x181
	EgressActive                     PropertyType = 0x182
)

func (PropertyType) String

func (i PropertyType) String() string

type PropertyValue

type PropertyValue struct {
	Type  byte
	Value uint32
}

type SegmentationSupport

type SegmentationSupport byte
const (
	SegmentationSupportBoth     SegmentationSupport = 0x00
	SegmentationSupportTransmit SegmentationSupport = 0x01
	SegmentationSupportReceive  SegmentationSupport = 0x02
	SegmentationSupportNone     SegmentationSupport = 0x03
)

func (SegmentationSupport) String

func (i SegmentationSupport) String() string

type Unit

type Unit uint16
const (
	SquareMeters                    Unit = 0x00
	SquareFeet                      Unit = 0x01
	Milliamperes                    Unit = 0x02
	Amperes                         Unit = 0x03
	Ohms                            Unit = 0x04
	Volts                           Unit = 0x05
	Kilovolts                       Unit = 0x06
	Megavolts                       Unit = 0x07
	VoltAmperes                     Unit = 0x08
	KilovoltAmperes                 Unit = 0x09
	MegavoltAmperes                 Unit = 0x0A
	VoltAmperesReactive             Unit = 0x0B
	KilovoltAmperesReactive         Unit = 0x0C
	MegavoltAmperesReactive         Unit = 0x0D
	DegreesPhase                    Unit = 0x0E
	PowerFactor                     Unit = 0x0F
	Joules                          Unit = 0x10
	Kilojoules                      Unit = 0x11
	WattHours                       Unit = 0x12
	KilowattHours                   Unit = 0x13
	Btus                            Unit = 0x14
	Therms                          Unit = 0x15
	TonHours                        Unit = 0x16
	JoulesPerKilogramDryAir         Unit = 0x17
	BtusPerPoundDryAir              Unit = 0x18
	CyclesPerHour                   Unit = 0x19
	CyclesPerMinute                 Unit = 0x1A
	Hertz                           Unit = 0x1B
	GramsOfWaterPerKilogramDryAir   Unit = 0x1C
	PercentRelativeHumidity         Unit = 0x1D
	Millimeters                     Unit = 0x1E
	Meters                          Unit = 0x1F
	Inches                          Unit = 0x20
	Feet                            Unit = 0x21
	WattsPerSquareFoot              Unit = 0x22
	WattsPerSquareMeter             Unit = 0x23
	Lumens                          Unit = 0x24
	Luxes                           Unit = 0x25
	FootCandles                     Unit = 0x26
	Kilograms                       Unit = 0x27
	PoundsMass                      Unit = 0x28
	Tons                            Unit = 0x29
	KilogramsPerSecond              Unit = 0x2A
	KilogramsPerMinute              Unit = 0x2B
	KilogramsPerHour                Unit = 0x2C
	PoundsMassPerMinute             Unit = 0x2D
	PoundsMassPerHour               Unit = 0x2E
	Watts                           Unit = 0x2F
	Kilowatts                       Unit = 0x30
	Megawatts                       Unit = 0x31
	BtusPerHour                     Unit = 0x32
	Horsepower                      Unit = 0x33
	TonsRefrigeration               Unit = 0x34
	Pascals                         Unit = 0x35
	Kilopascals                     Unit = 0x36
	Bars                            Unit = 0x37
	PoundsForcePerSquareInch        Unit = 0x38
	CentimetersOfWater              Unit = 0x39
	InchesOfWater                   Unit = 0x3A
	MillimetersOfMercury            Unit = 0x3B
	CentimetersOfMercury            Unit = 0x3C
	InchesOfMercury                 Unit = 0x3D
	DegreesCelsius                  Unit = 0x3E
	DegreesKelvin                   Unit = 0x3F
	DegreesFahrenheit               Unit = 0x40
	DegreeDaysCelsius               Unit = 0x41
	DegreeDaysFahrenheit            Unit = 0x42
	Years                           Unit = 0x43
	Months                          Unit = 0x44
	Weeks                           Unit = 0x45
	Days                            Unit = 0x46
	Hours                           Unit = 0x47
	Minutes                         Unit = 0x48
	Seconds                         Unit = 0x49
	MetersPerSecond                 Unit = 0x4A
	KilometersPerHour               Unit = 0x4B
	FeetPerSecond                   Unit = 0x4C
	FeetPerMinute                   Unit = 0x4D
	MilesPerHour                    Unit = 0x4E
	CubicFeet                       Unit = 0x4F
	CubicMeters                     Unit = 0x50
	ImperialGallons                 Unit = 0x51
	Liters                          Unit = 0x52
	UsGallons                       Unit = 0x53
	CubicFeetPerMinute              Unit = 0x54
	CubicMetersPerSecond            Unit = 0x55
	ImperialGallonsPerMinute        Unit = 0x56
	LitersPerSecond                 Unit = 0x57
	LitersPerMinute                 Unit = 0x58
	USGallonsPerMinute              Unit = 0x59
	DegreesAngular                  Unit = 0x5A
	DegreesCelsiusPerHour           Unit = 0x5B
	DegreesCelsiusPerMinute         Unit = 0x5C
	DegreesFahrenheitPerHour        Unit = 0x5D
	DegreesFahrenheitPerMinute      Unit = 0x5E
	NoUnits                         Unit = 0x5F
	PartsPerMillion                 Unit = 0x60
	PartsPerBillion                 Unit = 0x61
	Percent                         Unit = 0x62
	PercentPerSecond                Unit = 0x63
	PerMinute                       Unit = 0x64
	PerSecond                       Unit = 0x65
	PsiPerDegreeFahrenheit          Unit = 0x66
	Radians                         Unit = 0x67
	RevolutionsPerMinute            Unit = 0x68
	SquareInches                    Unit = 0x73
	SquareCentimeters               Unit = 0x74
	BtusPerPound                    Unit = 0x75
	Centimeters                     Unit = 0x76
	PoundsMassPerSecond             Unit = 0x77
	DeltaDegreesFahrenheit          Unit = 0x78
	DeltaDegreesKelvin              Unit = 0x79
	Kilohms                         Unit = 0x7A
	Megohms                         Unit = 0x7B
	Millivolts                      Unit = 0x7C
	KilojoulesPerKilogram           Unit = 0x7D
	Megajoules                      Unit = 0x7E
	JoulesPerDegreeKelvin           Unit = 0x7F
	JoulesPerKilogramDegreeKelvin   Unit = 0x80
	Kilohertz                       Unit = 0x81
	Megahertz                       Unit = 0x82
	PerHour                         Unit = 0x83
	Milliwatts                      Unit = 0x84
	Hectopascals                    Unit = 0x85
	Millibars                       Unit = 0x86
	CubicMetersPerHour              Unit = 0x87
	LitersPerHour                   Unit = 0x88
	KwHoursPerSquareMeter           Unit = 0x89
	KwHoursPerSquareFoot            Unit = 0x8A
	MegajoulesPerSquareMeter        Unit = 0x8B
	MegajoulesPerSquareFoot         Unit = 0x8C
	WattsPerSquareMeterDegreeKelvin Unit = 0x8D
	CubicFeetPerSecond              Unit = 0x8E
	PercentObscurationPerFoot       Unit = 0x8F
	PercentObscurationPerMeter      Unit = 0x90
	Milliohms                       Unit = 0x91
	MegawattHours                   Unit = 0x92
	KiloBtus                        Unit = 0x93
	MegaBtus                        Unit = 0x94
	KilojoulesPerKilogramDryAir     Unit = 0x95
	MegajoulesPerKilogramDryAir     Unit = 0x96
	KilojoulesPerDegreeKelvin       Unit = 0x97
	MegajoulesPerDegreeKelvin       Unit = 0x98
	Newton                          Unit = 0x99
	GramsPerSecond                  Unit = 0x9A
	GramsPerMinute                  Unit = 0x9B
	TonsPerHour                     Unit = 0x9C
	KiloBtusPerHour                 Unit = 0x9D
	HundredthsSeconds               Unit = 0x9E
	Milliseconds                    Unit = 0x9F
	NewtonMeters                    Unit = 0xA0
	MillimetersPerSecond            Unit = 0xA1
	MillimetersPerMinute            Unit = 0xA2
	MetersPerMinute                 Unit = 0xA3
	MetersPerHour                   Unit = 0xA4
	CubicMetersPerMinute            Unit = 0xA5
	MetersPerSecondPerSecond        Unit = 0xA6
	AmperesPerMeter                 Unit = 0xA7
	AmperesPerSquareMeter           Unit = 0xA8
	AmpereSquareMeters              Unit = 0xA9
	Farads                          Unit = 0xAA
	Henrys                          Unit = 0xAB
	OhmMeters                       Unit = 0xAC
	Siemens                         Unit = 0xAD // 1 mho equals 1 siemens
	SiemensPerMeter                 Unit = 0xAE
	Teslas                          Unit = 0xAF
	VoltsPerDegreeKelvin            Unit = 0xB0
	VoltsPerMeter                   Unit = 0xB1
	Webers                          Unit = 0xB2
	Candelas                        Unit = 0xB3
	CandelasPerSquareMeter          Unit = 0xB4
	DegreesKelvinPerHour            Unit = 0xB5
	DegreesKelvinPerMinute          Unit = 0xB6
	JouleSeconds                    Unit = 0xB7
	RadiansPerSecond                Unit = 0xB8
	SquareMetersPerNewton           Unit = 0xB9
	KilogramsPerCubicMeter          Unit = 0xBA
	NewtonSeconds                   Unit = 0xBB
	NewtonsPerMeter                 Unit = 0xBC
	WattsPerMeterPerDegreeKelvin    Unit = 0xBD
	Microsiemens                    Unit = 0xBE
	CubicFeetPerHour                Unit = 0xBF
	USGallonsPerHour                Unit = 0xC0
	Kilometers                      Unit = 0xC1
	Micrometers                     Unit = 0xC2
	Grams                           Unit = 0xC3
	Milligrams                      Unit = 0xC4
	Milliliters                     Unit = 0xC5
	MillilitersPerSecond            Unit = 0xC6
	Decibels                        Unit = 0xC7
	DecibelsMillivolt               Unit = 0xC8
	DecibelsVolt                    Unit = 0xC9
	Millisiemens                    Unit = 0xCA
	WattHoursReactive               Unit = 0xCB
	KilowattHoursReactive           Unit = 0xCC
	MegawattHoursReactive           Unit = 0xCD
	MillimetersOfWater              Unit = 0xCE
	PerMille                        Unit = 0xCF
	GramsPerGram                    Unit = 0xD0
	KilogramsPerKilogram            Unit = 0xD1
	GramsPerKilogram                Unit = 0xD2
	MilligramsPerGram               Unit = 0xD3
	MilligramsPerKilogram           Unit = 0xD4
	GramsPerMilliliter              Unit = 0xD5
	GramsPerLiter                   Unit = 0xD6
	MilligramsPerLiter              Unit = 0xD7
	MicrogramsPerLiter              Unit = 0xD8
	GramsPerCubicMeter              Unit = 0xD9
	MilligramsPerCubicMeter         Unit = 0xDA
	MicrogramsPerCubicMeter         Unit = 0xDB
	NanogramsPerCubicMeter          Unit = 0xDC
	GramsPerCubicCentimeter         Unit = 0xDD
	Becquerels                      Unit = 0xDE
	Megabecquerels                  Unit = 0xE0
	Gray                            Unit = 0xE1
	Milligray                       Unit = 0xE2
	Microgray                       Unit = 0xE3
	Sieverts                        Unit = 0xE4
	Millisieverts                   Unit = 0xE5
	Microsieverts                   Unit = 0xE6
	MicrosievertsPerHour            Unit = 0xE7
	DecibelsA                       Unit = 0xE8
	NephelometricTurbidityUnit      Unit = 0xE9
	Ph                              Unit = 0xEA
	GramsPerSquareMeter             Unit = 0xEB
	MinutesPerDegreeKelvin          Unit = 0xEC
)

func (Unit) String

func (i Unit) String() string

Directories

Path Synopsis
Package bacip implements a Bacnet/IP client
Package bacip implements a Bacnet/IP client
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL