Welcome to the ThingWorx Edge C SDK and SCM Edge Extension for the C SDK Help Center
What's New in This Help Center?
ThingWorx Edge C SDK Release Notes
ThingWorx SCM Edge Extension for the ThingWorx Edge C SDK Release Notes
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
Documentation Copyright
Software Copyright
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
ThingWorx Edge SDKs Support Matrix
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 and SCM Edge Extension for the C SDK Help Center
Multipart Message Too Large