Documentation
¶
Index ¶
- Constants
- Variables
- func AddRemoteRoute(remoteHost string, localNetId [6]byte, routeName string, computerName string, ...) error
- func ParseUploadSymbolInfoDataTypes(data []byte) (datatypes map[string]SymbolUploadDataType, err error)
- func ParseUploadSymbolInfoSymbols(data []byte, datatypes map[string]SymbolUploadDataType) (symbols map[string]*Symbol, err error)
- func StringToNetID(source string) (result [6]byte)
- type AdsState
- type AmsAddress
- type CommandID
- type Connection
- func (conn *Connection) AddDeviceNotification(group uint32, offset uint32, length uint32, transmissionMode TransMode, ...) (handle uint32, err error)
- func (conn *Connection) AddSymbolNotification(symbolName string, maxDelay int, cycleTime int, transMode TransMode, ...) error
- func (conn *Connection) AddSymbolNotifications(configs []NotificationConfig, ch chan *Update) error
- func (conn *Connection) CheckSymbolVersion() (changed bool, err error)
- func (conn *Connection) Close()
- func (conn *Connection) Connect(local bool) error
- func (conn *Connection) DeleteDeviceNotification(handle uint32) error
- func (conn *Connection) DeviceNotification(ctx context.Context, in []byte) error
- func (conn *Connection) GetHandleByName(symbolName string) (handle uint32, err error)
- func (conn *Connection) GetSymbol(symbolName string) (*Symbol, error)
- func (conn *Connection) GetSymbolUploadInfo() (uploadInfo SymbolUploadInfo, err error)
- func (conn *Connection) GetSymbolVersion() (uint32, error)
- func (conn *Connection) GetUploadSymbolInfoDataTypes(length uint32) (data []byte, err error)
- func (conn *Connection) GetUploadSymbolInfoSymbols(length uint32) (data []byte, err error)
- func (conn *Connection) IsDisconnected() bool
- func (conn *Connection) Read(group uint32, offset uint32, length uint32) (data []byte, err error)
- func (conn *Connection) ReadDeviceInfo() (response DeviceInfo, err error)
- func (conn *Connection) ReadFromSymbol(symbolName string) (string, error)
- func (conn *Connection) ReadMultipleSymbols(names []string) (map[string]string, error)
- func (conn *Connection) ReadState() (response states, err error)
- func (conn *Connection) Reconnect() error
- func (conn *Connection) RefreshSymbols() error
- func (conn *Connection) SumAddDeviceNotification(requests []SumNotificationRequest) (handles []uint32, errors []ReturnCode, err error)
- func (conn *Connection) SumDeleteDeviceNotification(handles []uint32) ([]ReturnCode, error)
- func (conn *Connection) SumRead(requests []SumReadRequest) ([]SumReadResult, error)
- func (conn *Connection) Write(group uint32, offset uint32, data []byte) error
- func (conn *Connection) WriteRead(group uint32, offset uint32, readLength uint32, send []byte) (data []byte, err error)
- func (conn *Connection) WriteToSymbol(symbolName string, value string) error
- type DeviceInfo
- type Group
- type NotificationConfig
- type NotificationSample
- type NotificationStream
- type Offset
- type Port
- type ReturnCode
- type StampHeader
- type SumNotificationRequest
- type SumReadRequest
- type SumReadResult
- type Symbol
- type SymbolUploadDataType
- type SymbolUploadInfo
- type TransMode
- type Update
Constants ¶
const ReturnCodeErrorOffset = 0x0700
ReturnCodeErrorOffset General ADS errors begin at this offset
Variables ¶
var ErrDisconnected = fmt.Errorf("connection is disconnected")
ErrDisconnected is returned when attempting to send on a closed connection.
Functions ¶
func AddRemoteRoute ¶ added in v1.0.7
func AddRemoteRoute(remoteHost string, localNetId [6]byte, routeName string, computerName string, username string, password string) error
AddRemoteRoute registers a route on the remote PLC via the Beckhoff UDP protocol (port 48899). This tells the PLC how to reach this client's AmsNetId.
Parameters:
- remoteHost: IP or hostname of the PLC
- localNetId: the AMS NetID this client will use as source
- routeName: name for the route entry on the PLC
- computerName: the IP/hostname the PLC should use to connect back to this client
- username: PLC admin username (typically "Administrator")
- password: PLC admin password
func ParseUploadSymbolInfoDataTypes ¶
func ParseUploadSymbolInfoDataTypes(data []byte) (datatypes map[string]SymbolUploadDataType, err error)
func StringToNetID ¶ added in v1.0.7
StringToNetID converts a dotted notation NetID string (e.g. "192.168.1.1.1.1") to a 6-byte array.
Types ¶
type AdsState ¶
type AdsState uint16
const ( AdsStateInvalid AdsState = 0 AdsStateIdle AdsState = 1 AdsStateReset AdsState = 2 AdsStateInit AdsState = 3 AdsStateStart AdsState = 4 AdsStateRun AdsState = 5 AdsStateStop AdsState = 6 AdsStateSaveCfg AdsState = 7 AdsStateLoadCfg AdsState = 8 AdsStatePowerFailure AdsState = 9 AdsStatePowerGood AdsState = 10 AdsStateError AdsState = 11 AdsStateShutdown AdsState = 12 AdsStateSuspend AdsState = 13 AdsStateResume AdsState = 14 AdsStateConfig AdsState = 15 // System Is In Config Mode AdsStateReconfig AdsState = 16 // System Should Restart In Config Mode AdsStateMaxStates AdsState = 255 )
type AmsAddress ¶
AMSAddress netid and port of device
type Connection ¶
func NewConnection ¶
func NewConnection(ctx context.Context, ip string, port int, netid string, amsPort int, localNetID string, localPort int, requestTimeout time.Duration) (conn *Connection, err error)
NewConnection creates a new ADS connection. requestTimeout is the timeout for individual ADS requests. If requestTimeout is 0, a default of 5000ms is used.
func (*Connection) AddDeviceNotification ¶
func (*Connection) AddSymbolNotification ¶
func (*Connection) AddSymbolNotifications ¶ added in v1.0.7
func (conn *Connection) AddSymbolNotifications(configs []NotificationConfig, ch chan *Update) error
AddSymbolNotifications adds multiple symbol notifications in a single ADS round-trip using SumAddDeviceNotification.
func (*Connection) CheckSymbolVersion ¶ added in v1.0.7
func (conn *Connection) CheckSymbolVersion() (changed bool, err error)
CheckSymbolVersion compares the current PLC symbol version against the stored version. Returns true if the version has changed.
func (*Connection) Close ¶
func (conn *Connection) Close()
Close closes connection and waits for completion
func (*Connection) Connect ¶
func (conn *Connection) Connect(local bool) error
func (*Connection) DeleteDeviceNotification ¶
func (conn *Connection) DeleteDeviceNotification(handle uint32) error
DeleteDeviceNotification does stuff
func (*Connection) DeviceNotification ¶
func (conn *Connection) DeviceNotification(ctx context.Context, in []byte) error
DeviceNotification - ADS command id: 8
func (*Connection) GetHandleByName ¶
func (conn *Connection) GetHandleByName(symbolName string) (handle uint32, err error)
func (*Connection) GetSymbol ¶
func (conn *Connection) GetSymbol(symbolName string) (*Symbol, error)
func (*Connection) GetSymbolUploadInfo ¶
func (conn *Connection) GetSymbolUploadInfo() (uploadInfo SymbolUploadInfo, err error)
func (*Connection) GetSymbolVersion ¶ added in v1.0.7
func (conn *Connection) GetSymbolVersion() (uint32, error)
GetSymbolVersion reads the current symbol version from the PLC.
func (*Connection) GetUploadSymbolInfoDataTypes ¶
func (conn *Connection) GetUploadSymbolInfoDataTypes(length uint32) (data []byte, err error)
func (*Connection) GetUploadSymbolInfoSymbols ¶
func (conn *Connection) GetUploadSymbolInfoSymbols(length uint32) (data []byte, err error)
func (*Connection) IsDisconnected ¶ added in v1.0.7
func (conn *Connection) IsDisconnected() bool
IsDisconnected returns whether the connection is currently in a disconnected state.
func (*Connection) ReadDeviceInfo ¶
func (conn *Connection) ReadDeviceInfo() (response DeviceInfo, err error)
func (*Connection) ReadFromSymbol ¶
func (conn *Connection) ReadFromSymbol(symbolName string) (string, error)
func (*Connection) ReadMultipleSymbols ¶ added in v1.0.7
func (conn *Connection) ReadMultipleSymbols(names []string) (map[string]string, error)
ReadMultipleSymbols reads multiple symbols in a single ADS round-trip using SumRead. Returns a map of symbol name to parsed string value.
func (*Connection) ReadState ¶
func (conn *Connection) ReadState() (response states, err error)
func (*Connection) Reconnect ¶ added in v1.0.7
func (conn *Connection) Reconnect() error
Reconnect attempts to re-establish the TCP connection, reload symbols, and re-subscribe to previously registered notifications.
func (*Connection) RefreshSymbols ¶ added in v1.0.7
func (conn *Connection) RefreshSymbols() error
RefreshSymbols reloads the symbol table if the symbol version has changed. It releases old handles, reloads symbol/datatype tables, and re-acquires handles for active symbols.
func (*Connection) SumAddDeviceNotification ¶ added in v1.0.7
func (conn *Connection) SumAddDeviceNotification(requests []SumNotificationRequest) (handles []uint32, errors []ReturnCode, err error)
SumAddDeviceNotification adds multiple device notifications in a single ADS round-trip using GroupSumupAddDeviceNotification (0xF085). Falls back to individual AddDeviceNotification calls on older PLCs.
func (*Connection) SumDeleteDeviceNotification ¶ added in v1.0.7
func (conn *Connection) SumDeleteDeviceNotification(handles []uint32) ([]ReturnCode, error)
SumDeleteDeviceNotification deletes multiple device notifications in a single ADS round-trip using GroupSumupDeleteDeviceNotification (0xF086). Falls back to individual DeleteDeviceNotification calls on older PLCs.
func (*Connection) SumRead ¶ added in v1.0.7
func (conn *Connection) SumRead(requests []SumReadRequest) ([]SumReadResult, error)
SumRead performs a batch read using GroupSumupReadEx2 (0xF084). This reads multiple index group/offset/length combinations in a single ADS round-trip. If the sum command fails (e.g. on older PLCs), it falls back to individual reads.
func (*Connection) Write ¶
func (conn *Connection) Write(group uint32, offset uint32, data []byte) error
Write - ADS command id: 3
func (*Connection) WriteToSymbol ¶
func (conn *Connection) WriteToSymbol(symbolName string, value string) error
type DeviceInfo ¶
DeviceInfo connected device info
type Group ¶
type Group uint32
Group reserved index groups
const ( GroupSymbolTab Group = 0xf000 GroupSymbolName Group = 0xf001 GroupSymbolValue Group = 0xf002 GroupSymbolHandleByName Group = 0xF003 GroupSymbolValueByName Group = 0xF004 GroupSymbolValueByHandle Group = 0xF005 GroupSymbolReleaseHandle Group = 0xF006 GroupSymbolInfoByName Group = 0xF007 GroupSymbolVersion Group = 0xF008 GroupSymbolInfoByNameEx Group = 0xF009 GroupSymbolDownload Group = 0xF00A GroupSymbolUpload Group = 0xF00B GroupSymbolUploadInfo Group = 0xF00C GroupSymbolDownload2 Group = 0xF00D GroupSymbolDataTypeUpload Group = 0xF00E GroupSymbolUploadInfo2 Group = 0xF00F GroupSymbolNotification Group = 0xf010 // notification of named handle GroupSumupRead Group = 0xF080 GroupSumupWrite Group = 0xF081 GroupSumupReadWrite Group = 0xF082 GroupSumupReadEx Group = 0xF083 GroupSumupReadEx2 Group = 0xF084 GroupSumupAddDeviceNotification Group = 0xF085 GroupSumupDeleteDeviceNotification Group = 0xF086 GroupIoImageRwib Group = 0xF020 // read/write input byte(s) GroupIoImageRwix Group = 0xF021 // read/write input bit GroupIoImageRisize Group = 0xF025 // read input size (in byte) GroupIoImageRwob Group = 0xF030 // read/write output byte(s) GroupIoImageRwox Group = 0xF031 // read/write output bit GroupIoImageCleari Group = 0xF040 // write inputs to null GroupIoImageClearo Group = 0xF050 // write outputs to null GroupIoImageRwiob Group = 0xF060 // read input and write output byte(s) GroupDeviceData Group = 0xF100 // state, name, etc... )
type NotificationConfig ¶ added in v1.0.7
type NotificationConfig struct {
SymbolName string
MaxDelay int
CycleTime int
TransmissionMode TransMode
}
NotificationConfig holds configuration for a symbol notification, used for batch add and reconnect re-subscribe.
type NotificationSample ¶
type NotificationStream ¶
type Port ¶
type Port uint32
Port default twincat ports
const ( PortLogger Port = 100 PortR0Rtime Port = 200 PortR0Trace Port = (PortR0Rtime + 90) PortR0Io Port = 300 PortR0Sps Port = 400 PortR0Nc Port = 500 PortR0Isg Port = 550 PortR0Pcs Port = 600 PortR0Plc Port = 801 PortR0PlcRts1 Port = 801 PortR0PlcRts2 Port = 811 PortR0PlcRts3 Port = 821 PortR0PlcRts4 Port = 831 PortR0PlcTc3 Port = 851 )
type ReturnCode ¶
type ReturnCode uint32
ReturnCode ADS Return codes
const ( ReturnCodeNoErrors ReturnCode = 0x00 // Global error codes (0x01 - 0x1E) ReturnCodeGlobalInternalError ReturnCode = 0x01 ReturnCodeGlobalNoRtime ReturnCode = 0x02 ReturnCodeGlobalAllocLockedMemError ReturnCode = 0x03 ReturnCodeGlobalInsertMailboxError ReturnCode = 0x04 ReturnCodeGlobalWrongReceiveHmsg ReturnCode = 0x05 ReturnCodeGlobalTargetPortNotFound ReturnCode = 0x06 ReturnCodeGlobalTargetNotFound ReturnCode = 0x07 ReturnCodeGlobalUnknownCommandID ReturnCode = 0x08 ReturnCodeGlobalBadTaskID ReturnCode = 0x09 ReturnCodeGlobalNoIO ReturnCode = 0x0A ReturnCodeGlobalUnknownAdsCommand ReturnCode = 0x0B ReturnCodeGlobalWin32Error ReturnCode = 0x0C ReturnCodeGlobalPortNotConnected ReturnCode = 0x0D ReturnCodeGlobalInvalidAdsLength ReturnCode = 0x0E ReturnCodeGlobalInvalidAmsNetID ReturnCode = 0x0F ReturnCodeGlobalLowInstallLevel ReturnCode = 0x10 ReturnCodeGlobalNoDebugAvailable ReturnCode = 0x11 ReturnCodeGlobalPortDisabled ReturnCode = 0x12 ReturnCodeGlobalPortAlreadyConn ReturnCode = 0x13 ReturnCodeGlobalAdsSyncW32Error ReturnCode = 0x14 ReturnCodeGlobalAdsSyncTimeout ReturnCode = 0x15 ReturnCodeGlobalAdsSyncAmsError ReturnCode = 0x16 ReturnCodeGlobalAdsSyncNoIndexMap ReturnCode = 0x17 ReturnCodeGlobalInvalidAdsPort ReturnCode = 0x18 ReturnCodeGlobalNoMemory ReturnCode = 0x19 ReturnCodeGlobalTcpSendError ReturnCode = 0x1A ReturnCodeGlobalHostUnreachable ReturnCode = 0x1B ReturnCodeGlobalInvalidAmsFragment ReturnCode = 0x1C ReturnCodeGlobalTlsSendError ReturnCode = 0x1D ReturnCodeGlobalAccessDenied ReturnCode = 0x1E // Router error codes (0x500 - 0x50D) ReturnCodeRouterNoLockedMemory ReturnCode = 0x500 ReturnCodeRouterResizeMemory ReturnCode = 0x501 ReturnCodeRouterMailboxFull ReturnCode = 0x502 ReturnCodeRouterDebugBoxFull ReturnCode = 0x503 ReturnCodeRouterUnknownPortType ReturnCode = 0x504 ReturnCodeRouterNotInitialized ReturnCode = 0x505 ReturnCodeRouterPortAlreadyInUse ReturnCode = 0x506 ReturnCodeRouterNotRegistered ReturnCode = 0x507 ReturnCodeRouterNoMoreQueues ReturnCode = 0x508 ReturnCodeRouterInvalidPort ReturnCode = 0x509 ReturnCodeRouterNotActivated ReturnCode = 0x50A ReturnCodeRouterFragmentBoxFull ReturnCode = 0x50B ReturnCodeRouterFragmentTimeout ReturnCode = 0x50C ReturnCodeRouterToBeRemoved ReturnCode = 0x50D // General ADS error codes (0x700 - 0x739) ReturnCodeDeviceError ReturnCode = (0x00 + ReturnCodeErrorOffset) ReturnCodeDeviceServiceNotSupported ReturnCode = (0x01 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidGroup ReturnCode = (0x02 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidOffset ReturnCode = (0x03 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidAccess ReturnCode = (0x04 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidSize ReturnCode = (0x05 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidData ReturnCode = (0x06 + ReturnCodeErrorOffset) ReturnCodeDeviceNotReady ReturnCode = (0x07 + ReturnCodeErrorOffset) ReturnCodeDeviceBusy ReturnCode = (0x08 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidContext ReturnCode = (0x09 + ReturnCodeErrorOffset) ReturnCodeDeviceNoMemory ReturnCode = (0x0A + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidParam ReturnCode = (0x0B + ReturnCodeErrorOffset) ReturnCodeDeviceNotFound ReturnCode = (0x0C + ReturnCodeErrorOffset) ReturnCodeDeviceSyntax ReturnCode = (0x0D + ReturnCodeErrorOffset) ReturnCodeDeviceIncompatible ReturnCode = (0x0E + ReturnCodeErrorOffset) ReturnCodeDeviceExists ReturnCode = (0x0F + ReturnCodeErrorOffset) ReturnCodeDeviceSymbolNoFound ReturnCode = (0x10 + ReturnCodeErrorOffset) ReturnCodeDeviceSymbolVersionInvalid ReturnCode = (0x11 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidState ReturnCode = (0x12 + ReturnCodeErrorOffset) ReturnCodeDeviceTransModeNotSupported ReturnCode = (0x13 + ReturnCodeErrorOffset) ReturnCodeDeviceNotifyHandleInvalid ReturnCode = (0x14 + ReturnCodeErrorOffset) ReturnCodeDeviceClientUnknown ReturnCode = (0x15 + ReturnCodeErrorOffset) ReturnCodeDeviceNoMoreHandles ReturnCode = (0x16 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidWatchSize ReturnCode = (0x17 + ReturnCodeErrorOffset) ReturnCodeDeviceNotInitialized ReturnCode = (0x18 + ReturnCodeErrorOffset) ReturnCodeDeviceTimeout ReturnCode = (0x19 + ReturnCodeErrorOffset) ReturnCodeDeviceNoInterface ReturnCode = (0x1A + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidInterface ReturnCode = (0x1B + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidClsID ReturnCode = (0x1C + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidObjID ReturnCode = (0x1D + ReturnCodeErrorOffset) ReturnCodeDevicePending ReturnCode = (0x1E + ReturnCodeErrorOffset) ReturnCodeDeviceAborted ReturnCode = (0x1F + ReturnCodeErrorOffset) ReturnCodeDeviceWarning ReturnCode = (0x20 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidArrayIndex ReturnCode = (0x21 + ReturnCodeErrorOffset) ReturnCodeDeviceSymbolNotActive ReturnCode = (0x22 + ReturnCodeErrorOffset) ReturnCodeDeviceAccessDenied ReturnCode = (0x23 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseNotFound ReturnCode = (0x24 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseExpired ReturnCode = (0x25 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseExceeded ReturnCode = (0x26 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseInvalid ReturnCode = (0x27 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseSystemID ReturnCode = (0x28 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseNoTimeLimit ReturnCode = (0x29 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseFutureIssue ReturnCode = (0x2A + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseTimeToLong ReturnCode = (0x2B + ReturnCodeErrorOffset) ReturnCodeDeviceException ReturnCode = (0x2C + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseDuplicated ReturnCode = (0x2D + ReturnCodeErrorOffset) ReturnCodeDeviceSignatureInvalid ReturnCode = (0x2E + ReturnCodeErrorOffset) ReturnCodeDeviceCertificateInvalid ReturnCode = (0x2F + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseOemNotFound ReturnCode = (0x30 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseRestricted ReturnCode = (0x31 + ReturnCodeErrorOffset) ReturnCodeDeviceLicenseDemoDenied ReturnCode = (0x32 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidFuncID ReturnCode = (0x33 + ReturnCodeErrorOffset) ReturnCodeDeviceOutOfRange ReturnCode = (0x34 + ReturnCodeErrorOffset) ReturnCodeDeviceInvalidAlignment ReturnCode = (0x35 + ReturnCodeErrorOffset) ReturnCodeDeviceLicensePlatform ReturnCode = (0x36 + ReturnCodeErrorOffset) ReturnCodeDeviceForwardPL ReturnCode = (0x37 + ReturnCodeErrorOffset) ReturnCodeDeviceForwardDL ReturnCode = (0x38 + ReturnCodeErrorOffset) ReturnCodeDeviceForwardRT ReturnCode = (0x39 + ReturnCodeErrorOffset) // Client error codes (0x740 - 0x756) ReturnCodeClientError ReturnCode = (0x40 + ReturnCodeErrorOffset) ReturnCodeClientInvalidParameter ReturnCode = (0x41 + ReturnCodeErrorOffset) ReturnCodeClientListEmpty ReturnCode = (0x42 + ReturnCodeErrorOffset) ReturnCodeClientVarUsed ReturnCode = (0x43 + ReturnCodeErrorOffset) ReturnCodeClientDuplicateInvokeID ReturnCode = (0x44 + ReturnCodeErrorOffset) ReturnCodeClientSyncTimeout ReturnCode = (0x45 + ReturnCodeErrorOffset) ReturnCodeClientW32Error ReturnCode = (0x46 + ReturnCodeErrorOffset) ReturnCodeClientTimeoutInvalid ReturnCode = (0x47 + ReturnCodeErrorOffset) ReturnCodeClientPortNotOpen ReturnCode = (0x48 + ReturnCodeErrorOffset) ReturnCodeClientNoAmsAddress ReturnCode = (0x49 + ReturnCodeErrorOffset) ReturnCodeClientSyncInternal ReturnCode = (0x50 + ReturnCodeErrorOffset) ReturnCodeClientAddHash ReturnCode = (0x51 + ReturnCodeErrorOffset) ReturnCodeClientRemoveHash ReturnCode = (0x52 + ReturnCodeErrorOffset) ReturnCodeClientNoMoreSymbols ReturnCode = (0x53 + ReturnCodeErrorOffset) ReturnCodeClientSyncResponseInvalid ReturnCode = (0x54 + ReturnCodeErrorOffset) ReturnCodeClientSyncPortLocked ReturnCode = (0x55 + ReturnCodeErrorOffset) ReturnCodeClientRequestCancelled ReturnCode = (0x56 + ReturnCodeErrorOffset) // RTime error codes (0x1000 - 0x101A) ReturnCodeRTimeInternal ReturnCode = 0x1000 ReturnCodeRTimeBadTimerPeriods ReturnCode = 0x1001 ReturnCodeRTimeInvalidTaskPtr ReturnCode = 0x1002 ReturnCodeRTimeInvalidStackPtr ReturnCode = 0x1003 ReturnCodeRTimePrioExists ReturnCode = 0x1004 ReturnCodeRTimeNoMoreTcb ReturnCode = 0x1005 ReturnCodeRTimeNoMoreSemas ReturnCode = 0x1006 ReturnCodeRTimeNoMoreQueues ReturnCode = 0x1007 ReturnCodeRTimeExtIrqAlreadyDef ReturnCode = 0x100D ReturnCodeRTimeExtIrqNotDef ReturnCode = 0x100E ReturnCodeRTimeExtIrqInstallFailed ReturnCode = 0x100F ReturnCodeRTimeIrqlNotLessOrEqual ReturnCode = 0x1010 ReturnCodeRTimeVmxNotSupported ReturnCode = 0x1017 ReturnCodeRTimeVmxDisabled ReturnCode = 0x1018 ReturnCodeRTimeVmxControlsMissing ReturnCode = 0x1019 ReturnCodeRTimeVmxEnableFails ReturnCode = 0x101A // TCP/Winsock error codes ReturnCodeWsaeTimedOut ReturnCode = 0x274C ReturnCodeWsaeConnRefused ReturnCode = 0x274D ReturnCodeWsaeHostDown ReturnCode = 0x2751 )
func (ReturnCode) Error ¶ added in v1.0.7
func (rc ReturnCode) Error() string
Error implements the error interface for ReturnCode, allowing it to be used directly as an error.
func (ReturnCode) String ¶ added in v1.0.7
func (rc ReturnCode) String() string
String returns a human-readable description of the ADS return code. For unknown codes, it returns the hex value.
type StampHeader ¶
type SumNotificationRequest ¶ added in v1.0.7
type SumNotificationRequest struct {
Group uint32
Offset uint32
Length uint32
TransmissionMode TransMode
MaxDelay time.Duration
CycleTime time.Duration
}
SumNotificationRequest represents a single notification add request within a batch.
type SumReadRequest ¶ added in v1.0.7
SumReadRequest represents a single read request within a sum/batch read.
type SumReadResult ¶ added in v1.0.7
type SumReadResult struct {
Error ReturnCode
Data []byte
}
SumReadResult represents the result of a single read within a sum/batch read.
type Symbol ¶
type SymbolUploadDataType ¶
type SymbolUploadDataType struct {
DatatypeEntry datatypeEntry
Name string
DataType string
Comment string
Childs map[string]*SymbolUploadDataType
}
type SymbolUploadInfo ¶
type TransMode ¶
type TransMode uint32
TransMode transmission mode for notifications
const ( TransModeNoTransmission TransMode = 0 TransModeClientCycle TransMode = 1 TransModeClientOnChange TransMode = 2 TransModeServerCycle TransMode = 3 TransModeServerOnChange TransMode = 4 TransModeServerCycle2 TransMode = 5 TransModeServerOnChange2 TransMode = 6 TransModeClient1Request TransMode = 10 )