Welcome to ThingWorx Edge SDKs and WebSocket-based Edge MicroServer (WS EMS) Help Center
Release Notes
ThingWorx Edge C SDK Release Notes
ThingWorx SCM Edge Extension for the ThingWorx Edge C SDK Release Notes
ThingWorx WebSocket-based Edge MicroServer (WS EMS) Release Notes
ThingWorx Edge .NET SDK Release Notes
ThingWorx Edge Java SDK Release Notes
ThingWorx Edge Android SDK Release Notes
ThingWorx Edge ADO Service Release Notes
ThingWorx IoS SDK Release Notes
Tutorial for the Edge SDKs
AlwaysOn SDKs: Connecting Your Devices to ThingWorx
What is the ThingWorx AlwaysOn Protocol?
The Connection Process
Primitives and Infotables
Getting to Know Infotables
Invoking Services
Property Subscriptions
Creating and Pushing Property Changes
ThingWorx WebSocket-based Edge MicroServer (WS EMS) and Lua Script Resource (LSR)
Features of the ThingWorx WS EMS
WS EMS and ThingWorx Platform
The Connection Sequence
Deployment
Configuration Overview
Components to Install
Downloading and Installing ThingWorx WS EMS
ThingWorx WS EMS and LSR Distribution Contents
Libraries for WS EMS on Linux
Creating an Application Key for WS EMS
Configuring the WS EMS
Configuring Secure Connections (SSL/TLS and FIPS Mode)
Setting Up Security for the WS EMS
Migrating from the WS EMS/LSR Built-in Certificates
Using a Custom Certificate and Private Key
Authenticating and Binding
Enabling Encryption
Running the ThingWorx WS EMS
Verifying Your Connection
Additional Configuration of WS EMS
Viewing All Configuration Options
ThingWorx Base Types
Configuring the Logger Group
Configuring the HTTP Server Group
Configuring the WebSocket Connection
Configuring Duty Cycle Modulation
Configuring a Proxy Server
Storing Messages Received While WS EMS Is Offline
Configuring Automatic Binding for WS EMS
Auto-bound Gateways
Configuring File Transfers
Configuring Edge Settings for Tunneling
Configuring Tunneling on the ThingWorx Platform Side
Required Setting for the Tunneling Subsystem
Configuring the WS EMS to Listen on IP Other Than localhost
Example Configurations
Gateway Mode with Self-Identifying Remote Things Example
Gateway Mode with Explicitly-Defined Remote Things Example
Non-Gateway Mode with Self-Identifying Remote Things Example
Using ThingWorx Asset Advisor with WS EMS and LSR
Features of ThingWorx Asset Advisor to Use with WS EMS and LSR
Prerequisites to Setting Up a WS EMS Thing for Asset Advisor
Administrator Tasks for Using Remote Access, File Transfers, and SCM in Asset Advisor
Setting Up a WS EMS or LSR Thing for the Remote Access and Control Application
Setting Up to Use ThingWorx Software Content Management (SCM) with WS EMS Devices
Lua Scripts and Software Content Management (SCM)
REST Web Services and WS EMS
Updating, Deleting, and Executing with REST Web Services
Reading and Writing Properties Using the REST Web Services
Transferring Files through the REST Web Services
REST Web Services Supported by WS EMS
AddEdgeThing
GetConfiguration
GetEdgeThings
GetLogData
GetMicroserverVersion
HasEdgeThing
RemoveEdgeThing
ReplaceConfiguration
Restart
StartFileLogging
StopFileLogging
TestPort
UpdateConfiguration
Running REST API Calls with Postman on WS EMS and LSR
Getting Started with the Lua Script Resource
Installing the Lua Script Resource Distribution
ThingWorx WS EMS and LSR Distribution Contents
Configuring a Lua Script Resource
Configuring the Connnection from the LSR to the WS EMS
Configuring the HTTP Server for the LSR (SSL/TLS Certificate)
Configuring the Logger for the LSR
Configuring Edge Things
Configuring the scanRateResolution
Running the Lua Script Resource
Configuring a Template for the Lua Script Resource
Including a Data Shape
Configuring the Module Statement
Configuring Data Shapes
Defining Properties
Defining Services
Implementing Services Using the Lua Script Engine
Configuring Tasks
Examples of Configuring Secure Communications between the WS EMS and an LSR
No Security — for Testing ONLY
Medium Security
High Security
Troubleshooting the WS EMS
Running on a Windows-based Operating System
Troubleshooting the Lua Script Resource
Remote Things
About Remote Things
Remote Thing Configuration at the Device
Configuring Properties for Remote Things
Configuring Services for Remote Things
ThingWorx Edge C SDK
Introducing the ThingWorx Edge C SDK
Installing and Navigating the Directories of the C SDK
Getting Started
Configuring Components of the C SDK
Handling Offline Messages
Minimizing Code Footprint
Steps for Setting Up Applications
Defining Properties
Defining Events
Define Property Callback Functions
Define Service Callback Functions
Create Your Tasks (Optional)
Creating a Bind Event Handler (Optional)
Create a File Transfer Event Handler (Optional)
Create a Tunnel Event Handler (Optional)
Implementing a Synchronized State Handler
Running the C SDK
Initializing the API Singleton
Registering Properties and Services
Registering Events
Binding Your Entities
Initializing the File Manager (Optional)
Initializing the Tunnel Manager (Optional)
Creating a Bind Event Handler (Optional)
Using the Utilities of the C SDK
Using Linked Lists, Maps, and Dictionaries
Connecting to the Server and Initiating Defined Tasks
Running the C SDK on Windows-based Operating Systems
Using SSL/TLS for Security
Setting Up Secure Connections
Proxy Server Authentication
FIPS Mode
Support for Cipher Suites
Debugging with GDB and OpenSSL on ARM Platforms
Troubleshooting Connection Errors (C SDK v.1.4.0 and earlier)
Interacting with ThingWorx
Basic Data Structures
twPrimitive Structure
ThingWorx Base Types
twInfoTable
Server-Initiated Interaction
Property Access Callbacks
Service Callbacks
SDK Application-Initiated Interaction
Read a Property
Write a Property
Push Properties
Execute a Service
Trigger an Event
Building a ThingWorx Edge C SDK Application
Using CMake with ThingWorx C SDK Examples
Building Applications with CMake
Configuring Options for a CMake Build
How to Build for Linux Platforms with CMake
How to Build for Windows Platforms with CMake
How to Build with FIPS Mode Enabled
Porting to Another Platform
Supporting New Platforms
Requirements for Platforms
Defining the Chosen OS
SSL/TLS Support
Logging Functions
Memory Management Functions
Date/Time Functions
Synchronization Functions
Socket Functions
Tasker Functions
File System Functions
Native Threads
Error Codes
General Errors
Websocket Errors
Messaging Errors
Primitive and InfoTable Errors
List Errors
API Errors
Tasker Errors
Logger Errors
Utils Errors
System Socket Errors
Message Code Errors
Subscribed (Managed) Property Errors
File Transfer Errors
Tunneling Errors
TLS Errors
Callback Function Return Codes
ThingWorx Edge SDK Extensions for the C SDK
Creating a Directory of Registered Shapes and Templates
Loading Shape Libraries
Tasks for EdgeThingShape and EdgeThingTemplate Constructors
Macros for the Edge Extensions
Macros That Take Actions
Macros to Create twPrimitives from C Primitives
Macros to Create Data Shapes and Single Columns
Macros to Create InfoTables for Data Shapes
Declaring Edge Things
Defining Aspects for Properties (Edge Extensions)
Services
Events
Best Practices for Developing Edge Extensions
Examples of Using Edge Extensions with the C SDK
Simple Thing Extension
Warehouse Shape Library
Advanced Use of Edge Extensions
Modifying Property Values at Runtime
Property Change Listeners
Applying EdgeThingShapes at Runtime
Inter-Shape Communication
Calling ThingWorx Platform Functions
Polling Updates for EdgeThingShapes
ThingWorx SCM Edge Extension for the ThingWorx Edge C SDK
SCM Edge Extension Capabilities
SCM Packages
SCM State Transitions
Whitelist for SCM Packages
Setting Up SCM
Digitally Signing Packages
SCM Edge Extension Examples
SCM Client Example
SCM as a Linux Daemon Example
SCM as Windows Service Example
ThingWorx Edge .NET SDK
Introducing the ThingWorx Edge .NET SDK
Installing and Navigating the Directories of the ThingWorx Edge .NET SDK
Steam Sensor Example for the .NET SDK
How the .NET SDK Interacts with ThingWorx Platform
Create a Remote Thing on ThingWorx Platform
Create Your Application with the .NET SDK
Additional .NET SDK Example
ThingWorx Edge .NET SDK Reference
.NET SDK: ClientConfigurator Class
.NET SDK ClientConfigurator: Client/Server Certificate Validation
Validating Server Certificates at the Edge (.NET SDK)
Specifying the Properties for Validation of Client Certificates (.NET SDK)
Using Supported Ciphers with the .NET SDK
Specifying Fields for X.509 Validation (.NET SDK)
Using FIPS Mode with the .NET SDK
Security in Development Environments
.NET SDK ClientConfigurator: Offline Message Store
.NET SDK ClientConfigurator: Proxy Settings
.NET SDK: VirtualThing Class
.NET SDK: PropertyDefinition Class
.NET SDK: Property Value Modifications
Sending Property Value Changes from ThingWorx to Edge Devices
.NET SDK: ServiceDefinition Class
.NET SDK: EventDefinition Class
Triggering an Event with the .NET SDK
.NET SDK VirtualThing Class: Overrides
.NET SDK: ConnectedThingClient Class
Duty Cycle Modulation in the .NET SDK
Base Types Supported by the .NET SDK
.NET SDK: DataShapeDefinition Class
Transferring Files with the .NET SDK
.NET SDK: TunnelManager Class
Using Logging with the ThingWorx Edge .NET SDK
Best Practices for Developing Multi-threaded Client Applications
Troubleshooting .NET SDK Applications
ThingWorx Edge ADO Service
Installing the ADO Service
Configuring the ADO Service
How to Perform a Basic Configuration
How to Configure the Settings for an SQL Database Connection
How to Configure a Secure Connection to a ThingWorx Platform from the ADO Service
How to Configure a Proxy Server
How to Configure Duty Cycle Modulation
How to Configure Settings for Windows Service
Starting the ADO Service
Reference for Configuration Parameters
ThingWorx Edge Java SDK
Introducing the ThingWorx Edge Java SDK
Installing and Navigating the Java SDK Directories
Setting Up to Run Sample Applications
Running the SimpleThingClient Application
Setting Up ThingWorx Platform to Communicate with a Client
Developing Your First Client Application
Using ThingWorx Platform and the Edge Java SDK
Connecting an Application to ThingWorx Platform
Reading a Property
Writing a Property
Invoking a Service
Firing Events
Running the SimpleClient Application
Working with Things
Services
Properties
The State of Things
Synchronization Framework
Application Details
ClientConfigurator Component
ConnectedThingClient Component
VirtualThing Component
Binding to ThingWorx Platform
Defining Properties
Using Aspects
Using Annotations
Using Methods
Creating and Pushing Property Changes
Remote Services
Adding a Service Definition
Defining Events
Creating an Event Definition
Using Annotations to Define Events
Triggering an Event
Base Types and Primitives
Infotables
Data Shapes
ValueCollections
Example Using the INFOTABLE Base Type
Persisting Nested InfoTable Configurations
Logging
Configuring Logging with logback.xml
Steam Sensor Example
ThingWorx Edge Java SDK and File Transfers
Tunneling
Troubleshooting Connections
Security for Edge Java SDK Applications
Setting Up SSL/TLS Certifcates
ThingWorx Edge Android SDK
About the ThingWorx Edge Android SDK
Differences between the Android SDK and the Java SDK
Installing and Navigating the Directories of the SDK
Using the Sample Applications
Setting Up to Run Sample Applications
Building and Running the Steam Sensor Example
Building an Example Project from the Command Line
Tips for Using the Sample Applications
Running the File Browser Example
Using the File Browser Application
Using the Android Shell Example
Using the XML Type in Android
Best Practices for Developing Multi-threaded Client Applications
ThingWorx Edge iOS SDK
Troubleshooting
Information to Provide When Reporting an Issue
Taxonomy of Errors
WebSocket Disconnects
Multipart Messages Time Out
Legacy Support
ThingWorx XMPP Edge MicroServer (EMS) Software
Edge Software Component Installation
Edge System Requirements
.NET Edge Thing Component Software Installation
EMS and Lua Edge Thing Installation
Edge Thing Configuration at the Device
Edge Database Thing
Edge Enhanced Thing
Basic Configuration
Configuring Property Push from the Edge
Defining and Implementing Custom Services at the Edge
Task Definitions at the Edge
Edge Thing
Server Side Configuration of Edge Things
Edge Database Thing
Edge Enhanced Thing
Edge Thing, OPC-DA
Edge Thing Properties
Edge Thing Services
.NET Reference Information
.NET Edge Things
Configuring an ADO Edge Thing
Connecting to an OSISoft PI or AF Server using OLEDB
Typical Lua Configuration File When Using an ADO Edge Thing
Configure the OPC DA Edge Thing
Typical OPC DA configuration file for EMS
Starting Up the MicroServer and Edge Process
Edge Process Windows Service Settings
Edge Configuration Examples
Troubleshooting
About ThingWorx Online Help
About Searching from the Help Center
About Home and Topic Pages
Welcome to ThingWorx Edge SDKs and WebSocket-based Edge MicroServer (WS EMS) Help Center
About Home and Topic Pages
d1e44328a1310
d1e89297a1310