Создание команд Thingworx REST API в среде C

В настоящее время я пытаюсь сделать операторы PUT на сервере Thingworx для изменения свойств. Кто-нибудь знает, как это сделать в среде C, особенно для Arduino UNO.


person Trap Chavez    schedule 16.04.2018    source источник
comment
Что вы пробовали? Вопрос о SO должен показать некоторые усилия, которые вы приложили для решения этой проблемы самостоятельно. Ссылка, код, который показывает, что вы не вампир-помощник.   -  person Stargateur    schedule 16.04.2018
comment
Я хотел бы знать, можно ли сделать тот же вызов с помощью C SDK. Глупо использовать REST API отдельно от C SDK.   -  person Austen Stone    schedule 12.06.2019


Ответы (2)


Вы можете использовать библиотеку Ethernet/Ethernet 2, чтобы выполнять вызовы RESTful API от Arduino к сервер Thingworx через экраны Ethernet или Wi-Fi.

Вот пример реализации (ethernet) для справки:

#include <Ethernet2.h>
#include <EthernetClient.h>
#include <EthernetUdp2.h>
#include <util.h>

IPAddress _ip(192, 168, 1, 12); // Client (Arduino) IP address
byte _mac[] = {0x90, 0xA2, 0xDA, 0x11, 0x3C, 0x69}; // Arduino mac address
char _server[] = "192.168.1.10"; // Server IP address
int _port = 9200; // Server port number
EthernetClient _client;

void setup() {    
  Ethernet.begin(_mac, _ip);
  delay(1000);
  Serial.print("Local IP: ");
  Serial.println(Ethernet.localIP());

  if (_client.connect(_server, _port)) {
    Serial.println("SUCCESS: Connected to the server!");
  } else {
    Serial.println("ERROR: Connection failed to the server!");
    return;
  }
  delay(1000);
}

void loop() {       
  // JSON formatted data package including sample UID and newValue 
  String payload = "{\"uid\": " + String(uid) + ", " +
                   "\"data\": " + String(newValue) + "}";

  String url = "/my-api/updatedata"; // API url hosted on the server

  // Finally, make an API call: PUT request
  _client.print("PUT " + url + " HTTP/1.1 \r\n" +
    "Content-Type: application/json \r\n" +
    "Content-Length: " + payload.length() + " \r\n" +
    "\r\n" + payload);

  delay(500); // Give the network some time

  // Read all the lines of the reply from server and 
  // print them to Serial to validate your API call
  while (_client.available()) {
    String reply = _client.readStringUntil('\r');
    Serial.print(reply);
  }
  Serial.println();
}
person kahveci    schedule 01.05.2018

Thingworx предоставляет «C Edge SDK» для связи с платформой Thingworx. SDK предоставляет служебные функции (twApi_WriteProperty) для чтения/записи свойств связанной вещи.

Ссылка на документацию SDK ниже:

Конкретная ссылка на обновление свойства:

person Unni Kris    schedule 21.05.2018
comment
совсем бесполезно. Вторая ссылка просто указывает на функции C SDK Edge, которые никоим образом не будут использоваться при выполнении вызовов REST, связанных с TWX. - person sup; 04.10.2019