Welcome to the ThingWorx Edge C SDK, SCM Edge Extension, and Remote Session Edge Extension for the C SDK Help Center
Release Notes
Release Notes for ThingWorx Edge C SDK
ThingWorx Edge C SDK 3.1.1
What’s New in ThingWorx Edge C SDK 3.1.1
Fixed Issues in ThingWorx Edge C SDK 3.1.1
ThingWorx Edge C SDK 3.1.0
What’s New in ThingWorx Edge C SDK 3.1.0
Fixed Issues in ThingWorx Edge C SDK 3.1.0
Known Issues in ThingWorx Edge C SDK 3.1.0
ThingWorx Edge C SDK 3.0.0
What’s New in ThingWorx Edge C SDK 3.0.0
Fixed Issues in ThingWorx Edge C SDK 3.0.0
Release Notes for ThingWorx Remote Session Edge Extension
ThingWorx RSEE 1.0.2
What’s New in ThingWorx RSEE 1.0.2
Known Issues in ThingWorx RSEE 1.0.2
Release Notes for Previous Releases: ThingWorx Edge C SDK
Release Notes for Previous Releases: ThingWorx SCM Edge Extension for the ThingWorx Edge C SDK
Quick Start for the C SDK
ThingWorx Edge C SDK
ThingWorx Edge C SDK
Before You Begin
How to Configure Components of the C SDK
Handling Offline Messages
How to Set Up an Application
Initializing the API Singleton
Creating a Data Collection Task
Connecting to the ThingWorx Platform and Initiating Defined Tasks
Binding Your Entities
Creating a Bind Event Handler (Optional)
Defining Properties
Defining Property Callback Functions
Property Access Callbacks
ThingWorx Base Types (C SDK Details)
Tips for Choosing an API for Properties
Defining Service Callback Functions
Registering Properties and Services
Defining Events
Registering Events
Initiating Interactions with a ThingWorx Platform
Read a Property
Write a Property
Push Properties
Execute a Service
Trigger an Event
Initializing the File Manager (Optional)
Create a File Transfer Event Handler (Optional)
Initializing the Tunnel Manager (Optional)
Create a Tunnel Event Handler (Optional)
Implementing a Synchronized State Handler
How to Set Up Security
Using SSL/TLS for Security
Setting Up Secure Connections
Proxy Server Authentication
Cipher Suites
Troubleshooting Connection Errors (C SDK v.1.4.0 and earlier)
Debugging with GDB and OpenSSL on ARM Platforms
How to Take Advantage of the C SDK Utilities
Using Linked Lists, Maps, and Dictionaries
How to Build an Edge Application with CMake
Configuring Options for a CMake Build
Building for Linux Platforms with CMake
Installing and Navigating the Directories of the C SDK
Building for Windows Platforms with CMake
Using CMake with the C SDK Examples
Best Practices
Minimizing Code Footprint
Best Practices for Transferring Large Files
Running the C SDK on Windows-based Operating Systems
C SDK Data Structures and Types
Basic Data Structures
twPrimitive Structure
twInfoTable
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
Troubleshooting an Error Pushing/Persisting Properties and Property Lists
Subscribed (Managed) Property Errors
File Transfer Errors
Tunneling Errors
TLS Errors
Callback Function Return Codes
Using Edge Extensions with the ThingWorx Edge C SDK
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
SteamSensor Example
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
Surviving a Reboot of the SCM Client
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 Remote Session Edge Extension for the ThingWorx Edge C SDK
Setting Up the Thingworx Platform for RSEE
Install the Remote Access Extension (RAE)
Remote Access Using the Remote Session Edge Extension (RSEE)
How to Model a Remote Session Capable Edge Thing in ThingWorx
Security and Permissions
Setting up Remote Sessions to RSEE Capable Edge Things for Non-Admin Users
Building RSEE and Running the Example Agent
Configuring the Example Agent
Running the Example Agent
Configuring a Remote Access Endpoint
Enable Remote Session Logs from RSEE
Incorporating RSEE Into the C SDK Agent
ThingWorx Edge SDKs: Tutorial
AlwaysOn SDKs: Connecting Your Devices to ThingWorx Platform
What is the ThingWorx AlwaysOn Protocol?
The Connection Process
Invoking Services
Property Subscriptions
Creating and Pushing Property Changes
ThingWorx Concepts
Primitives and Infotables
Getting to Know Infotables
File Transfers
How to
Create an Application Key for an Edge Device
Transfer Files Using the Copy Service
Troubleshooting Edge SDK Applications
Information to Provide When Reporting an Issue
Taxonomy of Errors
WebSocket Disconnects
Multipart Messages Time Out
Multipart Message Too Large
Welcome to the ThingWorx Edge C SDK, SCM Edge Extension, and Remote Session Edge Extension for the C SDK Help Center
Multipart Message Too Large
purpose
InitializeTheAPISingleton
CreateYourTasksOptional-45377AF3
bindEntities
propertyAccessCallbacks
baseTypes
BaseTypesTable
DefineServiceCallbackFunctions-45374F83
readProperty
writeProperty
pushProperties
triggerEvent
initializeFileManager
InitializeTheTunnelManagerOptional-45387E3F