Der "Datenlayer" über
TCP in der/den Applikationen muss aus meiner Sicht natürlich selbst gestaltet werden.
z.B. Gesendeter Datenframe vom Client an Server <Cmd><Data><CRC> Rückmeldung vom Server <Cmd><DataSet><CRC>
Verstehe - der Server (der auf dem Arduino laufen soll) wäre also eine komplette Eigenentwicklung, und muss sich nicht auf ein bestimmtes Protokoll festlegen.
Ist die Kommunikation nur als Request/Response (Client sendet an Arduino und wartet - blockierend - auf Antwort) geplant, oder soll das Arduino Device selber die Initiative ergreifen und unabhängig von einem vorhergehenden Request Daten an den Client senden können?
Falls nein (es wird also nur Request/Response benötigt) könnte man HTTP als Protokoll verwenden, oder ist das aufgrund beschränkter Systemresourcen nicht gewünscht? Denn mit einem so bewährten Protokoll wären ja einige Probleme gegenüber Eigenkreationen gelöst, unter anderem was die Ausgereiftheit und die Verfügbarkeit von Clientbibliotheken, auch auf anderen Plattformen, betrifft. Man könnte sofort mit der eigentlichen Daten/Anwendungssxhicht loslegen, und bestehende Infrastruktur nutzen. Konkret zum Beispiel den
Indy HTTP Client.
Update: ein HTTP Server für Arduino ist zum Beispiel
Webduino, er beherrscht einige sehr interessante Features:
* HTTP Methods: GET, HEAD, POST, PUT, DELETE, PATCH
* Web Forms
* JSON/RESTful interface
* HTTP Basic Authentication
Neben der primären Nutzung über die Delphi / Android Clients hätte man damit auch die Möglichkeit, ein einfaches webbasiertes Administrationsinterface zu erstellen.