kepserverex

package module
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

README

go-kepserverex

A KEPServerEX API client enabling Go programs to interact with KEPServerEX in a simple and uniform way

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(v bool) *bool

Bool is a helper routine that allocates a new bool value to store v and returns a pointer to it.

func CheckResponse

func CheckResponse(r *http.Response) error

CheckResponse checks the API response for errors, and returns them if present.

func Int

func Int(v int) *int

Int is a helper routine that allocates a new int value to store v and returns a pointer to it.

func String

func String(v string) *string

String is a helper routine that allocates a new string value to store v and returns a pointer to it.

Types

type ArrayBlockSize

type ArrayBlockSize int

ArrayBlockSize represents an array block size.

const (
	ArrayBlockSize_30   ArrayBlockSize = 30
	ArrayBlockSize_60   ArrayBlockSize = 60
	ArrayBlockSize_120  ArrayBlockSize = 120
	ArrayBlockSize_240  ArrayBlockSize = 240
	ArrayBlockSize_480  ArrayBlockSize = 480
	ArrayBlockSize_960  ArrayBlockSize = 960
	ArrayBlockSize_1920 ArrayBlockSize = 1920
	ArrayBlockSize_3840 ArrayBlockSize = 3840
)

List of available array block sizes.

type BautRate

type BautRate int

BautRate represents a baut rate.

const (
	BautRate_300    BautRate = 300
	BautRate_600    BautRate = 600
	BautRate_1200   BautRate = 1200
	BautRate_2400   BautRate = 2400
	BautRate_4800   BautRate = 4800
	BautRate_9600   BautRate = 9600
	BautRate_14400  BautRate = 14400
	BautRate_19200  BautRate = 19200
	BautRate_28800  BautRate = 28800
	BautRate_38400  BautRate = 38400
	BautRate_56000  BautRate = 56000
	BautRate_57600  BautRate = 57600
	BautRate_115200 BautRate = 115200
	BautRate_128000 BautRate = 128000
	BautRate_256000 BautRate = 256000
)

List of available baut rates.

type ByteOrder

type ByteOrder int

ByteOrder represents a byte order.

const (
	BigEndian ByteOrder = iota
	LittleEndian
)

List of available byte orders.

type Channel

type Channel struct {
	Name                string              `json:"common.ALLTYPES_NAME"`
	Description         string              `json:"common.ALLTYPES_DESCRIPTION"`
	UniqueID            int64               `json:"servermain.CHANNEL_UNIQUE_ID"`
	ProjectID           int64               `json:"PROJECT_ID"`
	Driver              string              `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	DiagnosticsCapture  bool                `json:"servermain.CHANNEL_DIAGNOSTICS_CAPTURE"`
	NetworkAdapter      string              `json:"servermain.CHANNEL_ETHERNET_COMMUNICATIONS_NETWORK_ADAPTER_STRING"`
	OptimizationMethod  OptimizationMethod  `json:"servermain.CHANNEL_WRITE_OPTIMIZATIONS_METHOD"`
	DutyCycle           int                 `json:"servermain.CHANNEL_WRITE_OPTIMIZATIONS_DUTY_CYCLE"`
	FloatingPointValues FloatingPointValues `json:"servermain.CHANNEL_NON_NORMALIZED_FLOATING_POINT_HANDLING"`
}

Channel represents a KEPServerEX channel.

type ChannelOptions

type ChannelOptions struct {
	Name                string              `json:"common.ALLTYPES_NAME,omitempty"`
	Description         string              `json:"common.ALLTYPES_DESCRIPTION,omitempty"`
	Driver              string              `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER,omitempty"`
	DiagnosticsCapture  bool                `json:"servermain.CHANNEL_DIAGNOSTICS_CAPTURE,omitempty"`
	NetworkAdapter      string              `json:"servermain.CHANNEL_SERIAL_COMMUNICATIONS_NETWORK_ADAPTER_STRING,omitempty"`
	OptimizationMethod  OptimizationMethod  `json:"servermain.CHANNEL_WRITE_OPTIMIZATIONS_METHOD,omitempty"`
	DutyCycle           int                 `json:"servermain.CHANNEL_WRITE_OPTIMIZATIONS_DUTY_CYCLE,omitempty"`
	FloatingPointValues FloatingPointValues `json:"servermain.CHANNEL_NON_NORMALIZED_FLOATING_POINT_HANDLING,omitempty"`
}

ChannelOptions represents all channel options.

type ChannelService

type ChannelService struct {
	// contains filtered or unexported fields
}

ChannelService handles communication with the channel related methods of the KEPServerEX API.

func (*ChannelService) CreateChannel

func (s *ChannelService) CreateChannel(options *ChannelOptions) error

CreateChannel creates a new channel.

func (*ChannelService) DeleteChannel

func (s *ChannelService) DeleteChannel(name string) error

DeleteChannel deletes a channel.

func (*ChannelService) GetChannel

func (s *ChannelService) GetChannel(name string) (*Channel, error)

GetChannel gets a channel.

func (*ChannelService) ListChannels

func (s *ChannelService) ListChannels() ([]*Channel, error)

ListChannels gets a list of channels.

func (*ChannelService) UpdateChannel

func (s *ChannelService) UpdateChannel(name string, options *ChannelOptions) error

UpdateChannel updates an existing channel.

type Client

type Client struct {

	// Services used for talking to different parts of the KEPServerEX API.
	Channels  *ChannelService
	Devices   *DeviceService
	TagGroups *TagGroupService
	Tags      *TagService
	// contains filtered or unexported fields
}

A Client manages communication with the KEPServerEX API.

func NewClient

func NewClient(httpClient *http.Client, host, username, password string) (*Client, error)

NewClient returns a new KEPServerEX API client. If a nil httpClient is provided, http.DefaultClient will be used. To use API methods which require authentication, provide a valid username and password.

func (*Client) BaseURL

func (c *Client) BaseURL() *url.URL

BaseURL return a copy of the baseURL.

func (*Client) Do

func (c *Client) Do(req *http.Request, v interface{}) error

Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed to by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response body will be written to v, without attempting to first decode it.

func (*Client) NewRequest

func (c *Client) NewRequest(method, path string, opt interface{}) (*http.Request, error)

NewRequest creates an API request. A relative URL path can be provided in path, in which case it is resolved relative to the base URL of the Client. Relative URL paths should always be specified without a preceding slash. If specified, the value pointed to by opt is JSON encoded and included as the request body.

func (*Client) SetBaseURL

func (c *Client) SetBaseURL(urlStr string) error

SetBaseURL sets the base URL for API requests to a custom endpoint.

type ClientAccess

type ClientAccess int

ClientAccess represents a client access type.

const (
	ClientAccess_ReadOnly ClientAccess = iota
	ClientAccess_ReadWrite
)

List of available client access types.

type ConnectionPriority

type ConnectionPriority int

ConnectionPriority represents a connection priority.

const (
	ConnectionPriority_Lowest  ConnectionPriority = 0
	ConnectionPriority_Low     ConnectionPriority = 64
	ConnectionPriority_Medium  ConnectionPriority = 128
	ConnectionPriority_High    ConnectionPriority = 192
	ConnectionPriority_Highest ConnectionPriority = 255
)

List of available connection priorities.

type ControlLogixEthernetDevice

type ControlLogixEthernetDevice struct {
	Name                                 string                    `json:"common.ALLTYPES_NAME"`
	Description                          string                    `json:"common.ALLTYPES_DESCRIPTION"`
	UniqueID                             int64                     `json:"servermain.DEVICE_UNIQUE_ID"`
	ProjectID                            int64                     `json:"PROJECT_ID"`
	ChannelAssignment                    string                    `json:"servermain.DEVICE_CHANNEL_ASSIGNMENT"`
	Driver                               string                    `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	Model                                ControlLogixEthernetModel `json:"servermain.DEVICE_MODEL"`
	IDFormat                             IDFormat                  `json:"servermain.DEVICE_ID_FORMAT"`
	IDString                             string                    `json:"servermain.DEVICE_ID_STRING"`
	IDHexadecimal                        int                       `json:"servermain.DEVICE_ID_HEXADECIMAL"`
	IDDecimal                            int                       `json:"servermain.DEVICE_ID_DECIMAL"`
	IDOctal                              int                       `json:"servermain.DEVICE_ID_OCTAL"`
	DataCollection                       bool                      `json:"servermain.DEVICE_DATA_COLLECTION"`
	Simulated                            bool                      `json:"servermain.DEVICE_SIMULATED"`
	ScanMode                             ScanMode                  `json:"servermain.DEVICE_SCAN_MODE"`
	ScanRate                             int                       `json:"servermain.DEVICE_SCAN_MODE_RATE_MS"`
	InitialUpdatesFromCache              bool                      `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE"`
	ConnectionTimeout                    int                       `json:"servermain.DEVICE_CONNECTION_TIMEOUT_SECONDS"`
	RequestTimeout                       int                       `json:"servermain.DEVICE_REQUEST_TIMEOUT_MILLISECONDS"`
	AttemptsBeforeTimeout                int                       `json:"servermain.DEVICE_RETRY_ATTEMPTS"`
	InterRequestDelay                    int                       `json:"servermain.DEVICE_INTER_REQUEST_DELAY_MILLISECONDS"`
	DemoteOnFailure                      bool                      `json:"servermain.DEVICE_AUTO_DEMOTION_ENABLE_ON_COMMUNICATIONS_FAILURES"`
	TimeoutToDemote                      int                       `json:"servermain.DEVICE_AUTO_DEMOTION_DEMOTE_AFTER_SUCCESSIVE_TIMEOUTS"`
	DemotionPeriod                       int                       `json:"servermain.DEVICE_AUTO_DEMOTION_PERIOD_MS"`
	DiscardRequestsWhenDemoted           bool                      `json:"servermain.DEVICE_AUTO_DEMOTION_DISCARD_WRITES"`
	OnDeviceStartup                      OnDeviceStartup           `json:"servermain.DEVICE_TAG_GENERATION_ON_STARTUP"`
	OnDuplicateTag                       OnDuplicateTag            `json:"servermain.DEVICE_TAG_GENERATION_DUPLICATE_HANDLING"`
	ParentGroup                          string                    `json:"servermain.DEVICE_TAG_GENERATION_GROUP"`
	AllowAutomaticallyGeneratedSubgroups bool                      `json:"servermain.DEVICE_TAG_GENERATION_ALLOW_SUB_GROUPS"`
	TCPIPPort                            int                       `json:"controllogix_ethernet.DEVICE_PORT_NUMBER"`
	ConnectionSize                       int                       `json:"controllogix_ethernet.DEVICE_CONNECTION_SIZE_BYTES"`
	InactivityWatchdog                   InactivityWatchdog        `json:"controllogix_ethernet.DEVICE_INACTIVITY_WATCHDOG_SECONDS"`
	ArrayBlockSize                       ArrayBlockSize            `json:"controllogix_ethernet.DEVICE_ARRAY_BLOCK_SIZE_ELEMENTS"`
	ProtocolMode                         ProtocolMode              `json:"controllogix_ethernet.DEVICE_PROTOCOL_MODE"`
	SynchronizeAfterOnlineEdits          bool                      `json:"controllogix_ethernet.DEVICE_ONLINE_EDITS"`
	SynchronizeAfterOfflineEdits         bool                      `json:"controllogix_ethernet.DEVICE_OFFLINE_EDITS"`
	TerminateStringDataAtLEN             bool                      `json:"controllogix_ethernet.DEVICE_AUTOMATICALLY_READ_STRING_LENGTH"`
	DefaultDataType                      DataType                  `json:"controllogix_ethernet.DEVICE_DEFAULT_DATA_TYPE"`
	PerformanceStatistics                bool                      `json:"controllogix_ethernet.DEVICE_ENABLE_PERFORMANCE_STATISTICS"`
	DatabaseImportMethod                 ImportMethod              `json:"controllogix_ethernet.DEVICE_DATABASE_IMPORT_METHOD"`
	TagImportFile                        string                    `json:"controllogix_ethernet.DEVICE_TAG_IMPORT_FILE"`
	TagDescriptions                      bool                      `json:"controllogix_ethernet.DEVICE_DISPLAY_DESCRIPTIONS"`
	LimitNameLength                      bool                      `json:"controllogix_ethernet.DEVICE_LIMIT_TAG_NAMES"`
	TagHierarchy                         TagHierarchy              `json:"controllogix_ethernet.DEVICE_TAG_HIERARCHY"`
	ImposeArrayLimit                     bool                      `json:"controllogix_ethernet.DEVICE_IMPOSE_ARRAY_ELEMENT_COUNT_LIMIT"`
	ArrayCountUpperLimit                 int                       `json:"controllogix_ethernet.DEVICE_ARRAY_ELEMENT_COUNT_LIMIT"`
	RemoteTCPIPPort                      int                       `json:"controllogix_ethernet.DEVICE_CL_ENET_PORT_NUMBER"`
	RequestSize                          RequestSize               `json:"controllogix_ethernet.DEVICE_REQUEST_SIZE"`
	AllowFunctionFileBlockWrites         bool                      `json:"controllogix_ethernet.DEVICE_PERFORM_BLOCK_WRITES"`
	Slot                                 struct {
		Module      []int `json:"controllogix_ethernet.DEVICE_SLOT_CONFIGURATION_MODULE"`
		InputWords  []int `json:"controllogix_ethernet.DEVICE_SLOT_CONFIGURATION_INPUT_WORDS"`
		OutputWords []int `json:"controllogix_ethernet.DEVICE_SLOT_CONFIGURATION_OUTPUT_WORDS"`
	} `json:"controllogix_ethernet.DEVICE_SLOT_CONFIGURATION"`
}

ControlLogixEthernetDevice represents an ControlLogix Ethernet device.

type ControlLogixEthernetDeviceOptions

type ControlLogixEthernetDeviceOptions struct {
	Name                                 string                    `json:"common.ALLTYPES_NAME,omitempty"`
	Description                          string                    `json:"common.ALLTYPES_DESCRIPTION,omitempty"`
	Driver                               string                    `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	Model                                ControlLogixEthernetModel `json:"servermain.DEVICE_MODEL"`
	IDFormat                             IDFormat                  `json:"servermain.DEVICE_ID_FORMAT,omitempty"`
	IDString                             string                    `json:"servermain.DEVICE_ID_STRING,omitempty"`
	IDHexadecimal                        int                       `json:"servermain.DEVICE_ID_HEXADECIMAL,omitempty"`
	IDDecimal                            int                       `json:"servermain.DEVICE_ID_DECIMAL,omitempty"`
	IDOctal                              int                       `json:"servermain.DEVICE_ID_OCTAL,omitempty"`
	DataCollection                       *bool                     `json:"servermain.DEVICE_DATA_COLLECTION,omitempty"`
	Simulated                            *bool                     `json:"servermain.DEVICE_SIMULATED,omitempty"`
	ScanMode                             *ScanMode                 `json:"servermain.DEVICE_SCAN_MODE,omitempty"`
	ScanRate                             *int                      `json:"servermain.DEVICE_SCAN_MODE_RATE_MS,omitempty"`
	InitialUpdatesFromCache              *bool                     `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE,omitempty"`
	ConnectionTimeout                    *int                      `json:"servermain.DEVICE_CONNECTION_TIMEOUT_SECONDS,omitempty"`
	RequestTimeout                       *int                      `json:"servermain.DEVICE_REQUEST_TIMEOUT_MILLISECONDS,omitempty"`
	AttemptsBeforeTimeout                *int                      `json:"servermain.DEVICE_RETRY_ATTEMPTS,omitempty"`
	InterRequestDelay                    *int                      `json:"servermain.DEVICE_INTER_REQUEST_DELAY_MILLISECONDS,omitempty"`
	DemoteOnFailure                      *bool                     `json:"servermain.DEVICE_AUTO_DEMOTION_ENABLE_ON_COMMUNICATIONS_FAILURES,omitempty"`
	TimeoutToDemote                      *int                      `json:"servermain.DEVICE_AUTO_DEMOTION_DEMOTE_AFTER_SUCCESSIVE_TIMEOUTS,omitempty"`
	DemotionPeriod                       *int                      `json:"servermain.DEVICE_AUTO_DEMOTION_PERIOD_MS,omitempty"`
	DiscardRequestsWhenDemoted           *bool                     `json:"servermain.DEVICE_AUTO_DEMOTION_DISCARD_WRITES,omitempty"`
	OnDeviceStartup                      *OnDeviceStartup          `json:"servermain.DEVICE_TAG_GENERATION_ON_STARTUP,omitempty"`
	OnDuplicateTag                       *OnDuplicateTag           `json:"servermain.DEVICE_TAG_GENERATION_DUPLICATE_HANDLING,omitempty"`
	ParentGroup                          *string                   `json:"servermain.DEVICE_TAG_GENERATION_GROUP,omitempty"`
	AllowAutomaticallyGeneratedSubgroups *bool                     `json:"servermain.DEVICE_TAG_GENERATION_ALLOW_SUB_GROUPS,omitempty"`
	TCPIPPort                            *int                      `json:"controllogix_ethernet.DEVICE_PORT_NUMBER,omitempty"`
	ConnectionSize                       *int                      `json:"controllogix_ethernet.DEVICE_CONNECTION_SIZE_BYTES,omitempty"`
	InactivityWatchdog                   *InactivityWatchdog       `json:"controllogix_ethernet.DEVICE_INACTIVITY_WATCHDOG_SECONDS,omitempty"`
	ArrayBlockSize                       *ArrayBlockSize           `json:"controllogix_ethernet.DEVICE_ARRAY_BLOCK_SIZE_ELEMENTS,omitempty"`
	ProtocolMode                         *ProtocolMode             `json:"controllogix_ethernet.DEVICE_PROTOCOL_MODE,omitempty"`
	SynchronizeAfterOnlineEdits          *bool                     `json:"controllogix_ethernet.DEVICE_ONLINE_EDITS,omitempty"`
	SynchronizeAfterOfflineEdits         *bool                     `json:"controllogix_ethernet.DEVICE_OFFLINE_EDITS,omitempty"`
	TerminateStringDataAtLEN             *bool                     `json:"controllogix_ethernet.DEVICE_AUTOMATICALLY_READ_STRING_LENGTH,omitempty"`
	DefaultDataType                      *DataType                 `json:"controllogix_ethernet.DEVICE_DEFAULT_DATA_TYPE,omitempty"`
	PerformanceStatistics                *bool                     `json:"controllogix_ethernet.DEVICE_ENABLE_PERFORMANCE_STATISTICS,omitempty"`
	DatabaseImportMethod                 *ImportMethod             `json:"controllogix_ethernet.DEVICE_DATABASE_IMPORT_METHOD,omitempty"`
	TagImportFile                        *string                   `json:"controllogix_ethernet.DEVICE_TAG_IMPORT_FILE,omitempty"`
	TagDescriptions                      *bool                     `json:"controllogix_ethernet.DEVICE_DISPLAY_DESCRIPTIONS,omitempty"`
	LimitNameLength                      *bool                     `json:"controllogix_ethernet.DEVICE_LIMIT_TAG_NAMES,omitempty"`
	TagHierarchy                         *TagHierarchy             `json:"controllogix_ethernet.DEVICE_TAG_HIERARCHY,omitempty"`
	ImposeArrayLimit                     *bool                     `json:"controllogix_ethernet.DEVICE_IMPOSE_ARRAY_ELEMENT_COUNT_LIMIT,omitempty"`
	ArrayCountUpperLimit                 *int                      `json:"controllogix_ethernet.DEVICE_ARRAY_ELEMENT_COUNT_LIMIT,omitempty"`
	RemoteTCPIPPort                      *int                      `json:"controllogix_ethernet.DEVICE_CL_ENET_PORT_NUMBER,omitempty"`
	RequestSize                          *RequestSize              `json:"controllogix_ethernet.DEVICE_REQUEST_SIZE,omitempty"`
	AllowFunctionFileBlockWrites         *bool                     `json:"controllogix_ethernet.DEVICE_PERFORM_BLOCK_WRITES,omitempty"`
}

ControlLogixEthernetDeviceOptions represents all ControlLogix Ethernet device options.

type ControlLogixEthernetModel

type ControlLogixEthernetModel int

ControlLogixEthernetModel represents a ControlLogix Ethernet model.

const (
	ControlLogix_5500 ControlLogixEthernetModel = iota
	CompactLogix_5300
	FlexLogix_5400
	SoftLogix_5800
	DH_Gateway_PLC_5
	DH_Gateway_SLC_5_04
	ControlNetGateway_PLC_5C
	EIP_Gateway_MicroLogix
	EIP_Gateway_SLC_Fixed
	EIP_Gateway_SLC_Modular
	EIP_Gateway_PLC_5
	Serial_Gateway_ControlLogix
	Serial_Gateway_CompactLogix
	Serial_Gateway_FlexLogix
	Serial_Gateway_SoftLogix
	ENI_ControlLogix_5500
	ENI_CompactLogix_5300
	ENI_FlexLogix_5400
	ENI_SoftLogix_5800
	ENI_SLC_500_Fixed_IO
	ENI_SLC_500_Modular_IO
	ENI_PLC_5
	MicroLogix_1100
	MicroLogix_1400
)

List of available ControlLogix Ethernet models.

type DataBits

type DataBits int

DataBits represents a data bit size.

const (
	DataBits_5 DataBits = 5
	DataBits_6 DataBits = 6
	DataBits_7 DataBits = 7
	DataBits_8 DataBits = 8
)

List of available data bit sizes.

type DataType

type DataType int

DataType represents a data type.

const (
	DataType_Default DataType = iota - 1
	DataType_String
	DataType_Boolean
	DataType_Char
	DataType_Byte
	DataType_Short
	DataType_Word
	DataType_Long
	DataType_DWord
	DataType_Float
	DataType_Double
	DataType_BCD
	DataType_LBCD
	DataType_Date
	DataType_LLong
	DataType_Qword
	DataType_StringArray
	DataType_BooleanArray
	DataType_CharArray
	DataType_ByteArray
	DataType_ShortArray
	DataType_WordArray
	DataType_LongArray
	DataType_DWordArray
	DataType_FloatArray
	DataType_DoubleArray
	DataType_BCDArray
	DataType_LBCDArray
	DataType_DateArray
	DataType_LLongArray
	DataType_QwordArray
)

List of available data types.

type DeadbandType

type DeadbandType int

DeadbandType represents a deadband type.

const (
	DeadbandType_None DeadbandType = iota
	DeadbandType_Percent
	DeadbandType_Absolute
)

List of available deadband types.

type Device

type Device struct {
	Name              string `json:"common.ALLTYPES_NAME"`
	Description       string `json:"common.ALLTYPES_DESCRIPTION"`
	UniqueID          int64  `json:"servermain.DEVICE_UNIQUE_ID"`
	ProjectID         int64  `json:"PROJECT_ID"`
	ChannelAssignment string `json:"servermain.DEVICE_CHANNEL_ASSIGNMENT"`
	Driver            string `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
}

Device represents a KEPServerEX device.

type DeviceService

type DeviceService struct {
	// contains filtered or unexported fields
}

DeviceService handles communication with the device related methods of the KEPServerEX API.

func (*DeviceService) CreateControlLogixEthernetDevice

func (s *DeviceService) CreateControlLogixEthernetDevice(channel string, options *ControlLogixEthernetDeviceOptions) error

CreateControlLogixEthernetDevice creates a new ControlLogix Ethernet device.

func (*DeviceService) CreateOPCUAClientDevice

func (s *DeviceService) CreateOPCUAClientDevice(channel string, options *OPCUAClientDeviceOptions) error

CreateOPCUAClientDevice creates a new OPC UA client device.

func (*DeviceService) CreateSiemensS5AS511Device

func (s *DeviceService) CreateSiemensS5AS511Device(channel string, options *SiemensS5AS511DeviceOptions) error

CreateSiemensS5AS511Device creates a new Siemens S5 (AS511) device.

func (*DeviceService) CreateSiemensTCPIPEthernetDevice

func (s *DeviceService) CreateSiemensTCPIPEthernetDevice(channel string, options *SiemensTCPIPEthernetDeviceOptions) error

CreateSiemensTCPIPEthernetDevice creates a new Siemens TCP/IP Ethernet device.

func (*DeviceService) DeleteDevice

func (s *DeviceService) DeleteDevice(channel, name string) error

DeleteDevice deletes a device.

func (*DeviceService) GetControlLogixEthernetDevice

func (s *DeviceService) GetControlLogixEthernetDevice(channel, name string) (*ControlLogixEthernetDevice, error)

GetControlLogixEthernetDevice gets a ControlLogix Ethernet device.

func (*DeviceService) GetOPCUAClientDevice

func (s *DeviceService) GetOPCUAClientDevice(channel, name string) (*OPCUAClientDevice, error)

GetOPCUAClientDevice gets an OPC UA client device.

func (*DeviceService) GetSiemensS5AS511Device

func (s *DeviceService) GetSiemensS5AS511Device(channel, name string) (*SiemensS5AS511Device, error)

GetSiemensS5AS511Device gets an Siemens S5 (AS511) device.

func (*DeviceService) GetSiemensTCPIPEthernetDevice

func (s *DeviceService) GetSiemensTCPIPEthernetDevice(channel, name string) (*SiemensTCPIPEthernetDevice, error)

GetSiemensTCPIPEthernetDevice gets an Siemens TCP/IP Ethernet device.

func (*DeviceService) ListDevices

func (s *DeviceService) ListDevices(channel string) ([]*Device, error)

ListDevices gets a list of devices.

func (*DeviceService) UpdateControlLogixEthernetDevice

func (s *DeviceService) UpdateControlLogixEthernetDevice(channel string, options *ControlLogixEthernetDevice) error

UpdateControlLogixEthernetDevice updates an existing ControlLogix Ethernet device.

func (*DeviceService) UpdateOPCUAClientDevice

func (s *DeviceService) UpdateOPCUAClientDevice(channel, name string, options *OPCUAClientDeviceOptions) error

UpdateOPCUAClientDevice updates an existing OPC UA client device.

func (*DeviceService) UpdateSiemensS5AS511Device

func (s *DeviceService) UpdateSiemensS5AS511Device(channel, name string, options *SiemensS5AS511DeviceOptions) error

UpdateSiemensS5AS511Device updates an existing Siemens S5 (AS511) device.

func (*DeviceService) UpdateSiemensTCPIPEthernetDevice

func (s *DeviceService) UpdateSiemensTCPIPEthernetDevice(channel, name string, options *SiemensTCPIPEthernetDeviceOptions) error

UpdateSiemensTCPIPEthernetDevice updates an existing Siemens TCP/IP Ethernet device.

type ErrorResponse

type ErrorResponse struct {
	Code     int
	Response *http.Response
	Message  string
}

An ErrorResponse reports errors caused by an API request.

func (*ErrorResponse) Error

func (e *ErrorResponse) Error() string

type FloatingPointValues

type FloatingPointValues int

FloatingPointValues represents a floating point option.

const (
	ReplaceWithZero FloatingPointValues = iota
	Unmodified
)

List of available floating point options.

type FlowControl

type FlowControl int

FlowControl represents a flow control option.

const (
	FlowControl_None FlowControl = iota
	FlowControl_DTR
	FlowControl_RTS
	FlowControl_RTSDTR
	FlowControl_RTSAlways
	FlowControl_RTSManual
)

List of available flow control options.

type IDFormat

type IDFormat int

IDFormat represents an ID format.

const (
	IDFormat_Octal IDFormat = iota
	IDFormat_Decimal
	IDFormat_Hex
)

List of available ID formats.

type ImportMethod

type ImportMethod int

ImportMethod represents a database import method.

const (
	CreateFromDevice ImportMethod = iota
	CreateFromImportFile
)

List of available database import methods.

type InactivityWatchdog

type InactivityWatchdog int

InactivityWatchdog represents an inactivity watchdog timeout

const (
	InactivityWatchdog_8   InactivityWatchdog = 8
	InactivityWatchdog_16  InactivityWatchdog = 16
	InactivityWatchdog_32  InactivityWatchdog = 32
	InactivityWatchdog_64  InactivityWatchdog = 64
	InactivityWatchdog_128 InactivityWatchdog = 128
)

List of available inactivity watchdog seconds.

type LinkType

type LinkType int

LinkType represents a link type.

const (
	LinkType_PG LinkType = iota + 1
	LinkType_OP
	LinkType_PC
)

List of available link types.

type MaxPDUSize

type MaxPDUSize int

MaxPDUSize represents a maximum PDU size mode.

const (
	MaxPDUSize_240 MaxPDUSize = 240
	MaxPDUSize_480 MaxPDUSize = 480
	MaxPDUSize_960 MaxPDUSize = 960
)

List of available maximum PDU sizes.

type MessageMode

type MessageMode int

MessageMode represents a message mode.

const (
	MessageMode_None MessageMode = iota + 1
	MessageMode_Sign
	MessageMode_SignAndEncrypt
)

List of available message modes.

type NetworkMode

type NetworkMode int

NetworkMode represents a network mode.

const (
	NetworkMode_LoadBalanced NetworkMode = iota
	NetworkMode_Priority
)

List of available network modes.

type OPCUAClientDevice

type OPCUAClientDevice struct {
	Name                       string             `json:"common.ALLTYPES_NAME"`
	Description                string             `json:"common.ALLTYPES_DESCRIPTION"`
	UniqueID                   int64              `json:"servermain.DEVICE_UNIQUE_ID"`
	ProjectID                  int64              `json:"PROJECT_ID"`
	ChannelAssignment          string             `json:"servermain.DEVICE_CHANNEL_ASSIGNMENT"`
	Driver                     string             `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	Model                      OPCUAClientModel   `json:"servermain.DEVICE_MODEL"`
	DataCollection             bool               `json:"servermain.DEVICE_DATA_COLLECTION"`
	Simulated                  bool               `json:"servermain.DEVICE_SIMULATED"`
	ScanMode                   ScanMode           `json:"servermain.DEVICE_SCAN_MODE"`
	ScanRate                   int                `json:"servermain.DEVICE_SCAN_MODE_RATE_MS"`
	InitialUpdatesFromCache    bool               `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE"`
	PublishingInterval         int                `json:"opcuaclient.DEVICE_SUBSCRIPTION_PUBLISHING_INTERVAL_MILLISECONDS"`
	MaxNotificationsPerPublish int                `json:"opcuaclient.DEVICE_SUBSCRIPTION_MAX_NOTIFICATIONS_PER_PUBLISH"`
	UpdateMode                 UpdateMode         `json:"opcuaclient.DEVICE_SUBSCRIPTION_UPDATE_MODE"`
	RegisteredReadWrite        bool               `json:"opcuaclient.DEVICE_SUBSCRIPTION_REGISTERED_READWRITE"`
	MaxItemsPerRead            int                `json:"opcuaclient.DEVICE_MAX_ITEMS_PER_READ"`
	MaxItemsPerWrite           int                `json:"opcuaclient.DEVICE_MAX_ITEMS_PER_WRITE"`
	ReadTimeout                int                `json:"opcuaclient.DEVICE_READ_TIMEOUT_MS"`
	WriteTimeout               int                `json:"opcuaclient.DEVICE_WRITE_TIMEOUT_MS"`
	ReadAfterWrite             bool               `json:"opcuaclient.DEVICE_READ_AFTER_WRITE"`
	LifetimeCount              int                `json:"opcuaclient.DEVICE_CONNECTION_LIFETIME_COUNT"`
	KeepAliveCount             int                `json:"opcuaclient.DEVICE_CONNECTION_MAX_KEEP_ALIVE"`
	ConnectionPriority         ConnectionPriority `json:"opcuaclient.DEVICE_CONNECTION_PRIORITY"`
	SampleInterval             int                `json:"opcuaclient.DEVICE_MONITORED_ITEMS_SAMPLE_INTERVAL_MILLISECONDS"`
	QueueSize                  int                `json:"opcuaclient.DEVICE_MONITORED_ITEMS_QUEUE_SIZE"`
	DiscardOldest              bool               `json:"opcuaclient.DEVICE_MONITORED_ITEMS_DISCARD_OLDEST"`
	DeadbandType               DeadbandType       `json:"opcuaclient.DEVICE_MONITORED_ITEMS_DEADBAND_TYPE"`
	DeadbandValue              int                `json:"opcuaclient.DEVICE_MONITORED_ITEMS_DEADBAND_VALUE"`
	SelectImportItems          []int              `json:"opcuaclient.DEVICE_MONITORED_ITEMS_SELECT_IMPORT"`
}

OPCUAClientDevice represents an OPC UA client device.

type OPCUAClientDeviceOptions

type OPCUAClientDeviceOptions struct {
	Name                       string              `json:"common.ALLTYPES_NAME,omitempty"`
	Description                string              `json:"common.ALLTYPES_DESCRIPTION,omitempty"`
	UniqueID                   int64               `json:"servermain.DEVICE_UNIQUE_ID,omitempty"`
	Model                      OPCUAClientModel    `json:"servermain.DEVICE_MODEL,omitempty"`
	DataCollection             *bool               `json:"servermain.DEVICE_DATA_COLLECTION,omitempty"`
	Simulated                  *bool               `json:"servermain.DEVICE_SIMULATED,omitempty"`
	ScanMode                   *ScanMode           `json:"servermain.DEVICE_SCAN_MODE,omitempty"`
	ScanRate                   *int                `json:"servermain.DEVICE_SCAN_MODE_RATE_MS,omitempty"`
	InitialUpdatesFromCache    *bool               `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE,omitempty"`
	PublishingInterval         *int                `json:"opcuaclient.DEVICE_SUBSCRIPTION_PUBLISHING_INTERVAL_MILLISECONDS,omitempty"`
	MaxNotificationsPerPublish *int                `json:"opcuaclient.DEVICE_SUBSCRIPTION_MAX_NOTIFICATIONS_PER_PUBLISH,omitempty"`
	UpdateMode                 *UpdateMode         `json:"opcuaclient.DEVICE_SUBSCRIPTION_UPDATE_MODE,omitempty"`
	RegisteredReadWrite        *bool               `json:"opcuaclient.DEVICE_SUBSCRIPTION_REGISTERED_READWRITE,omitempty"`
	MaxItemsPerRead            *int                `json:"opcuaclient.DEVICE_MAX_ITEMS_PER_READ,omitempty"`
	MaxItemsPerWrite           *int                `json:"opcuaclient.DEVICE_MAX_ITEMS_PER_WRITE,omitempty"`
	ReadTimeout                *int                `json:"opcuaclient.DEVICE_READ_TIMEOUT_MS,omitempty"`
	WriteTimeout               *int                `json:"opcuaclient.DEVICE_WRITE_TIMEOUT_MS,omitempty"`
	ReadAfterWrite             *bool               `json:"opcuaclient.DEVICE_READ_AFTER_WRITE,omitempty"`
	LifetimeCount              *int                `json:"opcuaclient.DEVICE_CONNECTION_LIFETIME_COUNT,omitempty"`
	KeepAliveCount             *int                `json:"opcuaclient.DEVICE_CONNECTION_MAX_KEEP_ALIVE,omitempty"`
	ConnectionPriority         *ConnectionPriority `json:"opcuaclient.DEVICE_CONNECTION_PRIORITY,omitempty"`
	SampleInterval             *int                `json:"opcuaclient.DEVICE_MONITORED_ITEMS_SAMPLE_INTERVAL_MILLISECONDS,omitempty"`
	QueueSize                  *int                `json:"opcuaclient.DEVICE_MONITORED_ITEMS_QUEUE_SIZE,omitempty"`
	DiscardOldest              *bool               `json:"opcuaclient.DEVICE_MONITORED_ITEMS_DISCARD_OLDEST,omitempty"`
	DeadbandType               *DeadbandType       `json:"opcuaclient.DEVICE_MONITORED_ITEMS_DEADBAND_TYPE,omitempty"`
	DeadbandValue              *int                `json:"opcuaclient.DEVICE_MONITORED_ITEMS_DEADBAND_VALUE,omitempty"`
	SelectImportItems          []int               `json:"opcuaclient.DEVICE_MONITORED_ITEMS_SELECT_IMPORT,omitempty"`
}

OPCUAClientDeviceOptions represents all OPC UA client device options.

type OPCUAClientModel

type OPCUAClientModel int

OPCUAClientModel represents an OPC UA Client model.

const (
	OPCUA OPCUAClientModel = iota
)

List of available OPC UA Client models.

type OnDeviceStartup

type OnDeviceStartup int

OnDeviceStartup represents a on device startup mode.

const (
	DoNotGenerateOnStartup OnDeviceStartup = iota
	AlwaysGenerateOnStartup
	GenerateOnFirstStartup
)

List of available on device startup modes.

type OnDuplicateTag

type OnDuplicateTag int

OnDuplicateTag represents a on duplicate tag mode.

const (
	DeleteOnCreate OnDuplicateTag = iota
	OverwriteAsNecessary
	DoNotOverwrite
	DoNotOverwriteLogError
)

List of available on duplicate tag modes.

type OptimizationMethod

type OptimizationMethod int

OptimizationMethod represents an optimization method.

const (
	WriteAllValuesForAllTags OptimizationMethod = iota
	WriteOnlyLatestValueForNonBooleanTags
	WriteOnlyLatestValueForAllTags
)

List of available optimization methods.

type Parity

type Parity int

Parity represents a parity option.

const (
	Parity_None Parity = 78
	Parity_Odd  Parity = 79
	Parity_Even Parity = 69
)

List of available parity options.

type PhysicalMedium

type PhysicalMedium int

PhysicalMedium represents a physical medium.

const (
	PhysicalMedium_None PhysicalMedium = iota
	PhysicalMedium_COMPort
	PhysicalMedium_Modem
	PhysicalMedium_EthernetEncap
)

List of available physical mediums.

type Protocol

type Protocol int

Protocol represents a protocol.

const (
	UDP Protocol = iota
	TCPIP
)

List of available protocols.

type ProtocolMode

type ProtocolMode int

ProtocolMode represents a protocol mode.

const (
	Symbolic ProtocolMode = iota
	LogicalNonBlocking
	LogicalBlocking
)

List of available protocol modes.

type ReadProcessing

type ReadProcessing int

ReadProcessing represents a read processing option.

const (
	ReadProcessing_Ignore ReadProcessing = iota
	ReadProcessing_Fail
)

List of available read processing options.

type RequestSize

type RequestSize int

RequestSize represents a request size.

const (
	RequestSize_32  RequestSize = 32
	RequestSize_64  RequestSize = 64
	RequestSize_128 RequestSize = 128
	RequestSize_232 RequestSize = 232
)

List of available request sizes.

type ScaledDataType

type ScaledDataType int

ScaledDataType represents a scaled data type.

const (
	ScaledDataType_Char ScaledDataType = iota + 2
	ScaledDataType_Byte
	ScaledDataType_Short
	ScaledDataType_Word
	ScaledDataType_Long
	ScaledDataType_DWord
	ScaledDataType_Float
	ScaledDataType_Double
)

List of available scaled data types.

type ScalingType

type ScalingType int

ScalingType represents a scaling type.

const (
	ScalingType_None ScalingType = iota
	ScalingType_Linear
	ScalingType_SquareRoot
)

List of available scaling types.

type ScanMode

type ScanMode int

ScanMode represents a scan mode.

const (
	RespectClientSpecifiedScanRate ScanMode = iota
	RequestDataNoFasterThenScanRate
	RequestAllDataAtScanRate
	DoNotScanDemandPollOnly
	RespectTagSpecifiedScanRate
)

List of available scan modes.

type SecurityPolicy

type SecurityPolicy int

SecurityPolicy represents a security policy.

const (
	SecurityPolicy_None           SecurityPolicy = 0
	SecurityPolicy_Basic256SHA256 SecurityPolicy = 3
)

List of available security policies.

type SiemensS5AS511Device

type SiemensS5AS511Device struct {
	Name                       string              `json:"common.ALLTYPES_NAME"`
	Description                string              `json:"common.ALLTYPES_DESCRIPTION"`
	UniqueID                   int64               `json:"servermain.DEVICE_UNIQUE_ID"`
	ProjectID                  int64               `json:"PROJECT_ID"`
	ChannelAssignment          string              `json:"servermain.DEVICE_CHANNEL_ASSIGNMENT"`
	Driver                     string              `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	Model                      SiemensS5AS511Model `json:"servermain.DEVICE_MODEL"`
	IDFormat                   IDFormat            `json:"servermain.DEVICE_ID_FORMAT"`
	IDString                   string              `json:"servermain.DEVICE_ID_STRING"`
	IDHexadecimal              int                 `json:"servermain.DEVICE_ID_HEXADECIMAL"`
	IDDecimal                  int                 `json:"servermain.DEVICE_ID_DECIMAL"`
	IDOctal                    int                 `json:"servermain.DEVICE_ID_OCTAL"`
	DataCollection             bool                `json:"servermain.DEVICE_DATA_COLLECTION"`
	Simulated                  bool                `json:"servermain.DEVICE_SIMULATED"`
	ScanMode                   ScanMode            `json:"servermain.DEVICE_SCAN_MODE"`
	ScanRate                   int                 `json:"servermain.DEVICE_SCAN_MODE_RATE_MS"`
	InitialUpdatesFromCache    bool                `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE"`
	IPAddress                  string              `json:"servermain.DEVICE_ETHERNET_COMMUNICATIONS_IP"`
	Port                       int                 `json:"servermain.DEVICE_ETHERNET_COMMUNICATIONS_PORT"`
	Protocol                   Protocol            `json:"servermain.DEVICE_ETHERNET_COMMUNICATIONS_PROTOCOL"`
	ConnectionTimeout          int                 `json:"servermain.DEVICE_CONNECTION_TIMEOUT_SECONDS"`
	RequestTimeout             int                 `json:"servermain.DEVICE_REQUEST_TIMEOUT_MILLISECONDS"`
	AttemptsBeforeTimeout      int                 `json:"servermain.DEVICE_RETRY_ATTEMPTS"`
	DemoteOnFailure            bool                `json:"servermain.DEVICE_AUTO_DEMOTION_ENABLE_ON_COMMUNICATIONS_FAILURES"`
	TimeoutToDemote            int                 `json:"servermain.DEVICE_AUTO_DEMOTION_DEMOTE_AFTER_SUCCESSIVE_TIMEOUTS"`
	DemotionPeriod             int                 `json:"servermain.DEVICE_AUTO_DEMOTION_PERIOD_MS"`
	DiscardRequestsWhenDemoted bool                `json:"servermain.DEVICE_AUTO_DEMOTION_DISCARD_WRITES"`
}

SiemensS5AS511Device represents a Siemens S5 (AS511) device.

type SiemensS5AS511DeviceOptions

type SiemensS5AS511DeviceOptions struct {
	Name                       string              `json:"common.ALLTYPES_NAME,omitempty"`
	Description                string              `json:"common.ALLTYPES_DESCRIPTION,omitempty"`
	UniqueID                   int64               `json:"servermain.DEVICE_UNIQUE_ID,omitempty"`
	Driver                     string              `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	Model                      SiemensS5AS511Model `json:"servermain.DEVICE_MODEL,omitempty"`
	IDFormat                   IDFormat            `json:"servermain.DEVICE_ID_FORMAT,omitempty"`
	IDString                   string              `json:"servermain.DEVICE_ID_STRING,omitempty"`
	IDHexadecimal              int                 `json:"servermain.DEVICE_ID_HEXADECIMAL,omitempty"`
	IDDecimal                  int                 `json:"servermain.DEVICE_ID_DECIMAL,omitempty"`
	IDOctal                    int                 `json:"servermain.DEVICE_ID_OCTAL,omitempty"`
	DataCollection             *bool               `json:"servermain.DEVICE_DATA_COLLECTION,omitempty"`
	Simulated                  *bool               `json:"servermain.DEVICE_SIMULATED,omitempty"`
	ScanMode                   *ScanMode           `json:"servermain.DEVICE_SCAN_MODE,omitempty"`
	ScanRate                   *int                `json:"servermain.DEVICE_SCAN_MODE_RATE_MS,omitempty"`
	InitialUpdatesFromCache    *bool               `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE,omitempty"`
	IPAddress                  *string             `json:"servermain.DEVICE_ETHERNET_COMMUNICATIONS_IP,omitempty"`
	Port                       *int                `json:"servermain.DEVICE_ETHERNET_COMMUNICATIONS_PORT,omitempty"`
	Protocol                   *Protocol           `json:"servermain.DEVICE_ETHERNET_COMMUNICATIONS_PROTOCOL,omitempty"`
	ConnectionTimeout          *int                `json:"servermain.DEVICE_CONNECTION_TIMEOUT_SECONDS,omitempty"`
	RequestTimeout             *int                `json:"servermain.DEVICE_REQUEST_TIMEOUT_MILLISECONDS,omitempty"`
	AttemptsBeforeTimeout      *int                `json:"servermain.DEVICE_RETRY_ATTEMPTS,omitempty"`
	DemoteOnFailure            *bool               `json:"servermain.DEVICE_AUTO_DEMOTION_ENABLE_ON_COMMUNICATIONS_FAILURES,omitempty"`
	TimeoutToDemote            *int                `json:"servermain.DEVICE_AUTO_DEMOTION_DEMOTE_AFTER_SUCCESSIVE_TIMEOUTS,omitempty"`
	DemotionPeriod             *int                `json:"servermain.DEVICE_AUTO_DEMOTION_PERIOD_MS,omitempty"`
	DiscardRequestsWhenDemoted *bool               `json:"servermain.DEVICE_AUTO_DEMOTION_DISCARD_WRITES,omitempty"`
}

SiemensS5AS511DeviceOptions represents all Siemens S5 (AS511) device options.

type SiemensS5AS511Model

type SiemensS5AS511Model int

SiemensS5AS511Model represents a Siemens S5 (AS511) model.

const (
	S5_AS511_90U SiemensS5AS511Model = iota
	S5_AS511_95U
	S5_AS511_100U100
	S5_AS511_100U101
	S5_AS511_100U103
	S5_AS511_101U
	S5_AS511_115U941
	S5_AS511_115U942
	S5_AS511_115U943
	S5_AS511_115U944
	S5_AS511_115U945
	S5_AS511_135U921
	S5_AS511_135U922
	S5_AS511_135U928
	S5_AS511_155U946
	S5_AS511_155U947
)

List of available Siemens S5 (AS511) models.

type SiemensTCPIPEthernetDevice

type SiemensTCPIPEthernetDevice struct {
	Name                                 string                    `json:"common.ALLTYPES_NAME"`
	Description                          string                    `json:"common.ALLTYPES_DESCRIPTION"`
	UniqueID                             int64                     `json:"servermain.DEVICE_UNIQUE_ID"`
	ProjectID                            int64                     `json:"PROJECT_ID"`
	ChannelAssignment                    string                    `json:"servermain.DEVICE_CHANNEL_ASSIGNMENT"`
	Driver                               string                    `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	Model                                SiemensTCPIPEthernetModel `json:"servermain.DEVICE_MODEL"`
	IDFormat                             IDFormat                  `json:"servermain.DEVICE_ID_FORMAT"`
	IDString                             string                    `json:"servermain.DEVICE_ID_STRING"`
	IDHexadecimal                        int                       `json:"servermain.DEVICE_ID_HEXADECIMAL"`
	IDDecimal                            int                       `json:"servermain.DEVICE_ID_DECIMAL"`
	IDOctal                              int                       `json:"servermain.DEVICE_ID_OCTAL"`
	DataCollection                       bool                      `json:"servermain.DEVICE_DATA_COLLECTION"`
	Simulated                            bool                      `json:"servermain.DEVICE_SIMULATED"`
	ScanMode                             ScanMode                  `json:"servermain.DEVICE_SCAN_MODE"`
	ScanRate                             int                       `json:"servermain.DEVICE_SCAN_MODE_RATE_MS"`
	InitialUpdatesFromCache              bool                      `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE"`
	ConnectionTimeout                    int                       `json:"servermain.DEVICE_CONNECTION_TIMEOUT_SECONDS"`
	RequestTimeout                       int                       `json:"servermain.DEVICE_REQUEST_TIMEOUT_MILLISECONDS"`
	AttemptsBeforeTimeout                int                       `json:"servermain.DEVICE_RETRY_ATTEMPTS"`
	InterRequestDelay                    int                       `json:"servermain.DEVICE_INTER_REQUEST_DELAY_MILLISECONDS"`
	DemoteOnFailure                      bool                      `json:"servermain.DEVICE_AUTO_DEMOTION_ENABLE_ON_COMMUNICATIONS_FAILURES"`
	TimeoutToDemote                      int                       `json:"servermain.DEVICE_AUTO_DEMOTION_DEMOTE_AFTER_SUCCESSIVE_TIMEOUTS"`
	DemotionPeriod                       int                       `json:"servermain.DEVICE_AUTO_DEMOTION_PERIOD_MS"`
	DiscardRequestsWhenDemoted           bool                      `json:"servermain.DEVICE_AUTO_DEMOTION_DISCARD_WRITES"`
	OnDeviceStartup                      OnDeviceStartup           `json:"servermain.DEVICE_TAG_GENERATION_ON_STARTUP"`
	OnDuplicateTag                       OnDuplicateTag            `json:"servermain.DEVICE_TAG_GENERATION_DUPLICATE_HANDLING"`
	ParentGroup                          string                    `json:"servermain.DEVICE_TAG_GENERATION_GROUP"`
	AllowAutomaticallyGeneratedSubgroups bool                      `json:"servermain.DEVICE_TAG_GENERATION_ALLOW_SUB_GROUPS"`
	PortNumber                           int                       `json:"siemens_tcpip_ethernet.DEVICE_COMMUNICATIONS_PORT_NUMBER"`
	MPIID                                int                       `json:"siemens_tcpip_ethernet.DEVICE_COMMUNICATIONS_MPI_ID"`
	MaxPDUSize                           MaxPDUSize                `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_MAX_PDU"`
	LocalTSAP                            int                       `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_200_LOCAL_TSAP"`
	RemoteTSAP                           int                       `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_200_REMOTE_TSAP"`
	LinkType                             LinkType                  `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_300_400_1200_1500_LINK_TYPE"`
	CPURack                              int                       `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_CPU_RACK"`
	CPUSlot                              int                       `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_CPU_SLOT"`
	ByteOrder                            ByteOrder                 `json:"siemens_tcpip_ethernet.DEVICE_ADDRESSING_BYTE_ORDER"`
	TagImportType                        int                       `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_TYPE"`
	CodePage                             int64                     `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_CODE_PAGE"`
	Step7Project                         string                    `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_STEP_7_PROJECT_FILE"`
	ProgramPath                          string                    `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_PROGRAM_PATH"`
	TIAPortalExporterFile                string                    `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_TIA_EXPORT_FILE"`
}

SiemensTCPIPEthernetDevice represents a Siemens TCP/IP Ethernet device.

type SiemensTCPIPEthernetDeviceOptions

type SiemensTCPIPEthernetDeviceOptions struct {
	Name                                 string                    `json:"common.ALLTYPES_NAME,omitempty"`
	Description                          string                    `json:"common.ALLTYPES_DESCRIPTION,omitempty"`
	UniqueID                             int64                     `json:"servermain.DEVICE_UNIQUE_ID,omitempty"`
	Driver                               string                    `json:"servermain.MULTIPLE_TYPES_DEVICE_DRIVER"`
	Model                                SiemensTCPIPEthernetModel `json:"servermain.DEVICE_MODEL,omitempty"`
	IDFormat                             IDFormat                  `json:"servermain.DEVICE_ID_FORMAT,omitempty"`
	IDString                             string                    `json:"servermain.DEVICE_ID_STRING,omitempty"`
	IDHexadecimal                        int                       `json:"servermain.DEVICE_ID_HEXADECIMAL,omitempty"`
	IDDecimal                            int                       `json:"servermain.DEVICE_ID_DECIMAL,omitempty"`
	IDOctal                              int                       `json:"servermain.DEVICE_ID_OCTAL,omitempty"`
	DataCollection                       *bool                     `json:"servermain.DEVICE_DATA_COLLECTION,omitempty"`
	Simulated                            *bool                     `json:"servermain.DEVICE_SIMULATED,omitempty"`
	ScanMode                             *ScanMode                 `json:"servermain.DEVICE_SCAN_MODE,omitempty"`
	ScanRate                             *int                      `json:"servermain.DEVICE_SCAN_MODE_RATE_MS,omitempty"`
	InitialUpdatesFromCache              *bool                     `json:"servermain.DEVICE_SCAN_MODE_PROVIDE_INITIAL_UPDATES_FROM_CACHE,omitempty"`
	ConnectionTimeout                    *int                      `json:"servermain.DEVICE_CONNECTION_TIMEOUT_SECONDS,omitempty"`
	RequestTimeout                       *int                      `json:"servermain.DEVICE_REQUEST_TIMEOUT_MILLISECONDS,omitempty"`
	AttemptsBeforeTimeout                *int                      `json:"servermain.DEVICE_RETRY_ATTEMPTS,omitempty"`
	InterRequestDelay                    *int                      `json:"servermain.DEVICE_INTER_REQUEST_DELAY_MILLISECONDS,omitempty"`
	DemoteOnFailure                      *bool                     `json:"servermain.DEVICE_AUTO_DEMOTION_ENABLE_ON_COMMUNICATIONS_FAILURES,omitempty"`
	TimeoutToDemote                      *int                      `json:"servermain.DEVICE_AUTO_DEMOTION_DEMOTE_AFTER_SUCCESSIVE_TIMEOUTS,omitempty"`
	DemotionPeriod                       *int                      `json:"servermain.DEVICE_AUTO_DEMOTION_PERIOD_MS,omitempty"`
	DiscardRequestsWhenDemoted           *bool                     `json:"servermain.DEVICE_AUTO_DEMOTION_DISCARD_WRITES,omitempty"`
	OnDeviceStartup                      *OnDeviceStartup          `json:"servermain.DEVICE_TAG_GENERATION_ON_STARTUP,omitempty"`
	OnDuplicateTag                       *OnDuplicateTag           `json:"servermain.DEVICE_TAG_GENERATION_DUPLICATE_HANDLING,omitempty"`
	ParentGroup                          *string                   `json:"servermain.DEVICE_TAG_GENERATION_GROUP,omitempty"`
	AllowAutomaticallyGeneratedSubgroups *bool                     `json:"servermain.DEVICE_TAG_GENERATION_ALLOW_SUB_GROUPS,omitempty"`
	PortNumber                           *int                      `json:"siemens_tcpip_ethernet.DEVICE_COMMUNICATIONS_PORT_NUMBER,omitempty"`
	MPIID                                *int                      `json:"siemens_tcpip_ethernet.DEVICE_COMMUNICATIONS_MPI_ID,omitempty"`
	MaxPDUSize                           *MaxPDUSize               `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_MAX_PDU,omitempty"`
	LocalTSAP                            *int                      `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_200_LOCAL_TSAP,omitempty"`
	RemoteTSAP                           *int                      `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_200_REMOTE_TSAP,omitempty"`
	LinkType                             *LinkType                 `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_300_400_1200_1500_LINK_TYPE,omitempty"`
	CPURack                              *int                      `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_CPU_RACK,omitempty"`
	CPUSlot                              *int                      `json:"siemens_tcpip_ethernet.DEVICE_S7_COMMUNICATIONS_CPU_SLOT,omitempty"`
	ByteOrder                            *ByteOrder                `json:"siemens_tcpip_ethernet.DEVICE_ADDRESSING_BYTE_ORDER,omitempty"`
	TagImportType                        *int                      `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_TYPE,omitempty"`
	CodePage                             *int64                    `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_CODE_PAGE,omitempty"`
	Step7Project                         *string                   `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_STEP_7_PROJECT_FILE,omitempty"`
	ProgramPath                          *string                   `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_PROGRAM_PATH,omitempty"`
	TIAPortalExporterFile                *string                   `json:"siemens_tcpip_ethernet.DEVICE_TAG_IMPORT_TIA_EXPORT_FILE,omitempty"`
}

SiemensTCPIPEthernetDeviceOptions represents all Siemens TCP/IP Ethernet device options.

type SiemensTCPIPEthernetModel

type SiemensTCPIPEthernetModel int

SiemensTCPIPEthernetModel represents a Siemens TCP/IP Ethernet model.

const (
	S7_200 SiemensTCPIPEthernetModel = iota
	S7_300
	S7_400
	S7_1200
	S7_1500
	Netlink_S7_300
	Netlink_S7_400
)

List of available Siemens TCP/IP Ethernet models.

type StopBits

type StopBits int

StopBits represents a stop bit size.

const (
	StopBits_1 StopBits = 1
	StopBits_2 StopBits = 2
)

List of available stop bit sizes.

type Tag

type Tag struct {
	Name           string         `json:"common.ALLTYPES_NAME"`
	Description    string         `json:"common.ALLTYPES_DESCRIPTION"`
	ProjectID      int64          `json:"PROJECT_ID"`
	Address        string         `json:"servermain.TAG_ADDRESS"`
	DataType       DataType       `json:"servermain.TAG_DATA_TYPE"`
	ClientAccess   ClientAccess   `json:"servermain.TAG_READ_WRITE_ACCESS"`
	ScanRate       int            `json:"servermain.TAG_SCAN_RATE_MILLISECONDS"`
	Autogenerated  bool           `json:"servermain.TAG_AUTOGENERATED"`
	ScalingType    ScalingType    `json:"servermain.TAG_SCALING_TYPE"`
	RawLow         int            `json:"servermain.TAG_SCALING_RAW_LOW"`
	RawHigh        int            `json:"servermain.TAG_SCALING_RAW_HIGH"`
	ScaledDataType ScaledDataType `json:"servermain.TAG_SCALING_SCALED_DATA_TYPE"`
	ScaledLow      int            `json:"servermain.TAG_SCALING_SCALED_LOW"`
	ScaledHigh     int            `json:"servermain.TAG_SCALING_SCALED_HIGH"`
	ClampLow       bool           `json:"servermain.TAG_SCALING_CLAMP_LOW"`
	ClampHigh      bool           `json:"servermain.TAG_SCALING_CLAMP_HIGH"`
	NegateValue    bool           `json:"servermain.TAG_SCALING_NEGATE_VALUE"`
	Units          string         `json:"servermain.TAG_SCALING_UNITS"`
}

Tag represents a tag.

type TagGroup

type TagGroup struct {
	Name          string `json:"common.ALLTYPES_NAME"`
	Description   string `json:"common.ALLTYPES_DESCRIPTION"`
	LocalTagCount int    `json:"servermain.TAGGROUP_LOCAL_TAG_COUNT"`
	TotalTagCount int    `json:"servermain.TAGGROUP_TOTAL_TAG_COUNT"`
	AutoGenerated bool   `json:"servermain.TAGGROUP_AUTOGENERATED"`
}

TagGroup represents a tag group.

type TagGroupOptions

type TagGroupOptions struct {
	Name          string `json:"common.ALLTYPES_NAME"`
	Description   string `json:"common.ALLTYPES_DESCRIPTION"`
	AutoGenerated bool   `json:"servermain.TAGGROUP_AUTOGENERATED"`
}

TagGroupOptions represents all tag group options.

type TagGroupService

type TagGroupService struct {
	// contains filtered or unexported fields
}

TagGroupService handles communication with the tag group related methods of the KEPServerEX API.

func (*TagGroupService) CreatetagGroup

func (s *TagGroupService) CreatetagGroup(channel, device string, options *TagGroupOptions) error

CreateTagGroup creates a new tag group.

func (*TagGroupService) DeleteTagGroup

func (s *TagGroupService) DeleteTagGroup(channel, device, name string) error

DeleteTagGroup deletes a tag group.

func (*TagGroupService) GetTagGroup

func (s *TagGroupService) GetTagGroup(channel, device, name string) (*TagGroup, error)

GetTagGroup gets a specific tag group.

func (*TagGroupService) ListTagGroups

func (s *TagGroupService) ListTagGroups(channel, device string) ([]*TagGroup, error)

ListTagGroups gets a list of tag groups.

func (*TagGroupService) UpdateTagGroup

func (s *TagGroupService) UpdateTagGroup(channel, device, name string, options *TagGroupOptions) error

UpdateTagGroup updates an existing tag group.

type TagHierarchy

type TagHierarchy int

TagHierarchy represents a tag hierarchy.

const (
	Condensed TagHierarchy = iota
	Expanded
)

List of available tag hierarchies.

type TagOptions

type TagOptions struct {
	Name           *string         `json:"common.ALLTYPES_NAME,omitempty"`
	Description    *string         `json:"common.ALLTYPES_DESCRIPTION,omitempty"`
	Address        *string         `json:"servermain.TAG_ADDRESS,omitempty"`
	DataType       *DataType       `json:"servermain.TAG_DATA_TYPE,omitempty"`
	ClientAccess   *ClientAccess   `json:"servermain.TAG_READ_WRITE_ACCESS,omitempty"`
	ScanRate       *int            `json:"servermain.TAG_SCAN_RATE_MILLISECONDS,omitempty"`
	Autogenerated  *bool           `json:"servermain.TAG_AUTOGENERATED,omitempty"`
	ScalingType    *ScalingType    `json:"servermain.TAG_SCALING_TYPE,omitempty"`
	RawLow         *int            `json:"servermain.TAG_SCALING_RAW_LOW,omitempty"`
	RawHigh        *int            `json:"servermain.TAG_SCALING_RAW_HIGH,omitempty"`
	ScaledDataType *ScaledDataType `json:"servermain.TAG_SCALING_SCALED_DATA_TYPE,omitempty"`
	ScaledLow      *int            `json:"servermain.TAG_SCALING_SCALED_LOW,omitempty"`
	ScaledHigh     *int            `json:"servermain.TAG_SCALING_SCALED_HIGH,omitempty"`
	ClampLow       *bool           `json:"servermain.TAG_SCALING_CLAMP_LOW,omitempty"`
	ClampHigh      *bool           `json:"servermain.TAG_SCALING_CLAMP_HIGH,omitempty"`
	NegateValue    *bool           `json:"servermain.TAG_SCALING_NEGATE_VALUE,omitempty"`
	Units          *string         `json:"servermain.TAG_SCALING_UNITS,omitempty"`
}

TagOptions represents all tag options.

type TagService

type TagService struct {
	// contains filtered or unexported fields
}

TagService handles communication with the tag related methods of the KEPServerEX API.

func (*TagService) CreateTag

func (s *TagService) CreateTag(channel, device, group string, options *TagOptions) error

CreateTag creates a new tag.

func (*TagService) DeleteTag

func (s *TagService) DeleteTag(channel, device, group, name string) error

DeleteTag deletes a tag.

func (*TagService) GetTag

func (s *TagService) GetTag(channel, device, group, name string) (*Tag, error)

GetTag gets a specific tag.

func (*TagService) ListTags

func (s *TagService) ListTags(channel, device, group string) ([]*Tag, error)

ListTags gets a list of tags.

func (*TagService) UpdateTag

func (s *TagService) UpdateTag(channel, device, group, name string, options *TagOptions) error

UpdateTag updates an existing tag.

type UpdateMode

type UpdateMode int

UpdateMode represents an update mode.

const (
	UpdateMode_Exception UpdateMode = iota
	UpdateMode_Poll
)

List of available update modes.

type VirtualNetwork

type VirtualNetwork int

VirtualNetwork represents a virtual network.

const (
	VirtualNetwork_None VirtualNetwork = iota
	VirtualNetwork_1
	VirtualNetwork_2
	VirtualNetwork_3
	VirtualNetwork_4
	VirtualNetwork_5
	VirtualNetwork_6
	VirtualNetwork_7
	VirtualNetwork_8
	VirtualNetwork_9
	VirtualNetwork_10
	VirtualNetwork_11
	VirtualNetwork_12
	VirtualNetwork_13
	VirtualNetwork_14
	VirtualNetwork_15
	VirtualNetwork_16
	VirtualNetwork_17
	VirtualNetwork_18
	VirtualNetwork_19
	VirtualNetwork_20
	VirtualNetwork_21
	VirtualNetwork_22
	VirtualNetwork_23
	VirtualNetwork_24
	VirtualNetwork_25
	VirtualNetwork_26
	VirtualNetwork_27
	VirtualNetwork_28
	VirtualNetwork_29
	VirtualNetwork_30
	VirtualNetwork_31
	VirtualNetwork_32
	VirtualNetwork_33
	VirtualNetwork_34
	VirtualNetwork_35
	VirtualNetwork_36
	VirtualNetwork_37
	VirtualNetwork_38
	VirtualNetwork_39
	VirtualNetwork_40
	VirtualNetwork_41
	VirtualNetwork_42
	VirtualNetwork_43
	VirtualNetwork_44
	VirtualNetwork_45
	VirtualNetwork_46
	VirtualNetwork_47
	VirtualNetwork_48
	VirtualNetwork_49
	VirtualNetwork_50
	VirtualNetwork_51
	VirtualNetwork_52
	VirtualNetwork_53
	VirtualNetwork_54
	VirtualNetwork_55
	VirtualNetwork_56
	VirtualNetwork_57
	VirtualNetwork_58
	VirtualNetwork_59
	VirtualNetwork_60
	VirtualNetwork_61
	VirtualNetwork_62
	VirtualNetwork_63
	VirtualNetwork_64
	VirtualNetwork_65
	VirtualNetwork_66
	VirtualNetwork_67
	VirtualNetwork_68
	VirtualNetwork_69
	VirtualNetwork_70
	VirtualNetwork_71
	VirtualNetwork_72
	VirtualNetwork_73
	VirtualNetwork_74
	VirtualNetwork_75
	VirtualNetwork_76
	VirtualNetwork_77
	VirtualNetwork_78
	VirtualNetwork_79
	VirtualNetwork_80
	VirtualNetwork_81
	VirtualNetwork_82
	VirtualNetwork_83
	VirtualNetwork_84
	VirtualNetwork_85
	VirtualNetwork_86
	VirtualNetwork_87
	VirtualNetwork_88
	VirtualNetwork_89
	VirtualNetwork_90
	VirtualNetwork_91
	VirtualNetwork_92
	VirtualNetwork_93
	VirtualNetwork_94
	VirtualNetwork_95
	VirtualNetwork_96
	VirtualNetwork_97
	VirtualNetwork_98
	VirtualNetwork_99
	VirtualNetwork_100
	VirtualNetwork_101
	VirtualNetwork_102
	VirtualNetwork_103
	VirtualNetwork_104
	VirtualNetwork_105
	VirtualNetwork_106
	VirtualNetwork_107
	VirtualNetwork_108
	VirtualNetwork_109
	VirtualNetwork_110
	VirtualNetwork_111
	VirtualNetwork_112
	VirtualNetwork_113
	VirtualNetwork_114
	VirtualNetwork_115
	VirtualNetwork_116
	VirtualNetwork_117
	VirtualNetwork_118
	VirtualNetwork_119
	VirtualNetwork_120
	VirtualNetwork_121
	VirtualNetwork_122
	VirtualNetwork_123
	VirtualNetwork_124
	VirtualNetwork_125
	VirtualNetwork_126
	VirtualNetwork_127
	VirtualNetwork_128
	VirtualNetwork_129
	VirtualNetwork_130
	VirtualNetwork_131
	VirtualNetwork_132
	VirtualNetwork_133
	VirtualNetwork_134
	VirtualNetwork_135
	VirtualNetwork_136
	VirtualNetwork_137
	VirtualNetwork_138
	VirtualNetwork_139
	VirtualNetwork_140
	VirtualNetwork_141
	VirtualNetwork_142
	VirtualNetwork_143
	VirtualNetwork_144
	VirtualNetwork_145
	VirtualNetwork_146
	VirtualNetwork_147
	VirtualNetwork_148
	VirtualNetwork_149
	VirtualNetwork_150
	VirtualNetwork_151
	VirtualNetwork_152
	VirtualNetwork_153
	VirtualNetwork_154
	VirtualNetwork_155
	VirtualNetwork_156
	VirtualNetwork_157
	VirtualNetwork_158
	VirtualNetwork_159
	VirtualNetwork_160
	VirtualNetwork_161
	VirtualNetwork_162
	VirtualNetwork_163
	VirtualNetwork_164
	VirtualNetwork_165
	VirtualNetwork_166
	VirtualNetwork_167
	VirtualNetwork_168
	VirtualNetwork_169
	VirtualNetwork_170
	VirtualNetwork_171
	VirtualNetwork_172
	VirtualNetwork_173
	VirtualNetwork_174
	VirtualNetwork_175
	VirtualNetwork_176
	VirtualNetwork_177
	VirtualNetwork_178
	VirtualNetwork_179
	VirtualNetwork_180
	VirtualNetwork_181
	VirtualNetwork_182
	VirtualNetwork_183
	VirtualNetwork_184
	VirtualNetwork_185
	VirtualNetwork_186
	VirtualNetwork_187
	VirtualNetwork_188
	VirtualNetwork_189
	VirtualNetwork_190
	VirtualNetwork_191
	VirtualNetwork_192
	VirtualNetwork_193
	VirtualNetwork_194
	VirtualNetwork_195
	VirtualNetwork_196
	VirtualNetwork_197
	VirtualNetwork_198
	VirtualNetwork_199
	VirtualNetwork_200
	VirtualNetwork_201
	VirtualNetwork_202
	VirtualNetwork_203
	VirtualNetwork_204
	VirtualNetwork_205
	VirtualNetwork_206
	VirtualNetwork_207
	VirtualNetwork_208
	VirtualNetwork_209
	VirtualNetwork_210
	VirtualNetwork_211
	VirtualNetwork_212
	VirtualNetwork_213
	VirtualNetwork_214
	VirtualNetwork_215
	VirtualNetwork_216
	VirtualNetwork_217
	VirtualNetwork_218
	VirtualNetwork_219
	VirtualNetwork_220
	VirtualNetwork_221
	VirtualNetwork_222
	VirtualNetwork_223
	VirtualNetwork_224
	VirtualNetwork_225
	VirtualNetwork_226
	VirtualNetwork_227
	VirtualNetwork_228
	VirtualNetwork_229
	VirtualNetwork_230
	VirtualNetwork_231
	VirtualNetwork_232
	VirtualNetwork_233
	VirtualNetwork_234
	VirtualNetwork_235
	VirtualNetwork_236
	VirtualNetwork_237
	VirtualNetwork_238
	VirtualNetwork_239
	VirtualNetwork_240
	VirtualNetwork_241
	VirtualNetwork_242
	VirtualNetwork_243
	VirtualNetwork_244
	VirtualNetwork_245
	VirtualNetwork_246
	VirtualNetwork_247
	VirtualNetwork_248
	VirtualNetwork_249
	VirtualNetwork_250
	VirtualNetwork_251
	VirtualNetwork_252
	VirtualNetwork_253
	VirtualNetwork_254
	VirtualNetwork_255
	VirtualNetwork_256
	VirtualNetwork_257
	VirtualNetwork_258
	VirtualNetwork_259
	VirtualNetwork_260
	VirtualNetwork_261
	VirtualNetwork_262
	VirtualNetwork_263
	VirtualNetwork_264
	VirtualNetwork_265
	VirtualNetwork_266
	VirtualNetwork_267
	VirtualNetwork_268
	VirtualNetwork_269
	VirtualNetwork_270
	VirtualNetwork_271
	VirtualNetwork_272
	VirtualNetwork_273
	VirtualNetwork_274
	VirtualNetwork_275
	VirtualNetwork_276
	VirtualNetwork_277
	VirtualNetwork_278
	VirtualNetwork_279
	VirtualNetwork_280
	VirtualNetwork_281
	VirtualNetwork_282
	VirtualNetwork_283
	VirtualNetwork_284
	VirtualNetwork_285
	VirtualNetwork_286
	VirtualNetwork_287
	VirtualNetwork_288
	VirtualNetwork_289
	VirtualNetwork_290
	VirtualNetwork_291
	VirtualNetwork_292
	VirtualNetwork_293
	VirtualNetwork_294
	VirtualNetwork_295
	VirtualNetwork_296
	VirtualNetwork_297
	VirtualNetwork_298
	VirtualNetwork_299
	VirtualNetwork_300
	VirtualNetwork_301
	VirtualNetwork_302
	VirtualNetwork_303
	VirtualNetwork_304
	VirtualNetwork_305
	VirtualNetwork_306
	VirtualNetwork_307
	VirtualNetwork_308
	VirtualNetwork_309
	VirtualNetwork_310
	VirtualNetwork_311
	VirtualNetwork_312
	VirtualNetwork_313
	VirtualNetwork_314
	VirtualNetwork_315
	VirtualNetwork_316
	VirtualNetwork_317
	VirtualNetwork_318
	VirtualNetwork_319
	VirtualNetwork_320
	VirtualNetwork_321
	VirtualNetwork_322
	VirtualNetwork_323
	VirtualNetwork_324
	VirtualNetwork_325
	VirtualNetwork_326
	VirtualNetwork_327
	VirtualNetwork_328
	VirtualNetwork_329
	VirtualNetwork_330
	VirtualNetwork_331
	VirtualNetwork_332
	VirtualNetwork_333
	VirtualNetwork_334
	VirtualNetwork_335
	VirtualNetwork_336
	VirtualNetwork_337
	VirtualNetwork_338
	VirtualNetwork_339
	VirtualNetwork_340
	VirtualNetwork_341
	VirtualNetwork_342
	VirtualNetwork_343
	VirtualNetwork_344
	VirtualNetwork_345
	VirtualNetwork_346
	VirtualNetwork_347
	VirtualNetwork_348
	VirtualNetwork_349
	VirtualNetwork_350
	VirtualNetwork_351
	VirtualNetwork_352
	VirtualNetwork_353
	VirtualNetwork_354
	VirtualNetwork_355
	VirtualNetwork_356
	VirtualNetwork_357
	VirtualNetwork_358
	VirtualNetwork_359
	VirtualNetwork_360
	VirtualNetwork_361
	VirtualNetwork_362
	VirtualNetwork_363
	VirtualNetwork_364
	VirtualNetwork_365
	VirtualNetwork_366
	VirtualNetwork_367
	VirtualNetwork_368
	VirtualNetwork_369
	VirtualNetwork_370
	VirtualNetwork_371
	VirtualNetwork_372
	VirtualNetwork_373
	VirtualNetwork_374
	VirtualNetwork_375
	VirtualNetwork_376
	VirtualNetwork_377
	VirtualNetwork_378
	VirtualNetwork_379
	VirtualNetwork_380
	VirtualNetwork_381
	VirtualNetwork_382
	VirtualNetwork_383
	VirtualNetwork_384
	VirtualNetwork_385
	VirtualNetwork_386
	VirtualNetwork_387
	VirtualNetwork_388
	VirtualNetwork_389
	VirtualNetwork_390
	VirtualNetwork_391
	VirtualNetwork_392
	VirtualNetwork_393
	VirtualNetwork_394
	VirtualNetwork_395
	VirtualNetwork_396
	VirtualNetwork_397
	VirtualNetwork_398
	VirtualNetwork_399
	VirtualNetwork_400
	VirtualNetwork_401
	VirtualNetwork_402
	VirtualNetwork_403
	VirtualNetwork_404
	VirtualNetwork_405
	VirtualNetwork_406
	VirtualNetwork_407
	VirtualNetwork_408
	VirtualNetwork_409
	VirtualNetwork_410
	VirtualNetwork_411
	VirtualNetwork_412
	VirtualNetwork_413
	VirtualNetwork_414
	VirtualNetwork_415
	VirtualNetwork_416
	VirtualNetwork_417
	VirtualNetwork_418
	VirtualNetwork_419
	VirtualNetwork_420
	VirtualNetwork_421
	VirtualNetwork_422
	VirtualNetwork_423
	VirtualNetwork_424
	VirtualNetwork_425
	VirtualNetwork_426
	VirtualNetwork_427
	VirtualNetwork_428
	VirtualNetwork_429
	VirtualNetwork_430
	VirtualNetwork_431
	VirtualNetwork_432
	VirtualNetwork_433
	VirtualNetwork_434
	VirtualNetwork_435
	VirtualNetwork_436
	VirtualNetwork_437
	VirtualNetwork_438
	VirtualNetwork_439
	VirtualNetwork_440
	VirtualNetwork_441
	VirtualNetwork_442
	VirtualNetwork_443
	VirtualNetwork_444
	VirtualNetwork_445
	VirtualNetwork_446
	VirtualNetwork_447
	VirtualNetwork_448
	VirtualNetwork_449
	VirtualNetwork_450
	VirtualNetwork_451
	VirtualNetwork_452
	VirtualNetwork_453
	VirtualNetwork_454
	VirtualNetwork_455
	VirtualNetwork_456
	VirtualNetwork_457
	VirtualNetwork_458
	VirtualNetwork_459
	VirtualNetwork_460
	VirtualNetwork_461
	VirtualNetwork_462
	VirtualNetwork_463
	VirtualNetwork_464
	VirtualNetwork_465
	VirtualNetwork_466
	VirtualNetwork_467
	VirtualNetwork_468
	VirtualNetwork_469
	VirtualNetwork_470
	VirtualNetwork_471
	VirtualNetwork_472
	VirtualNetwork_473
	VirtualNetwork_474
	VirtualNetwork_475
	VirtualNetwork_476
	VirtualNetwork_477
	VirtualNetwork_478
	VirtualNetwork_479
	VirtualNetwork_480
	VirtualNetwork_481
	VirtualNetwork_482
	VirtualNetwork_483
	VirtualNetwork_484
	VirtualNetwork_485
	VirtualNetwork_486
	VirtualNetwork_487
	VirtualNetwork_488
	VirtualNetwork_489
	VirtualNetwork_490
	VirtualNetwork_491
	VirtualNetwork_492
	VirtualNetwork_493
	VirtualNetwork_494
	VirtualNetwork_495
	VirtualNetwork_496
	VirtualNetwork_497
	VirtualNetwork_498
	VirtualNetwork_499
	VirtualNetwork_500
)

List of available virtual networks.

Jump to

Keyboard shortcuts

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