This part of Arduino Ciao is defined Ciao Core: it's a powerful software that receives commands via serial communication from the MCU and interacts with several modules (called connectors) for communicating with network protocols, third-party services and platforms.
Ciao Library is documented and explained here.
Getting StartedCiao is totally modular and configurable. It provides several "connectors" to interact with local resources (filesystem, console, memory) and to communicate with most common protocols (MQTT, XMPP, HTTP, SMTP, etc..) and applications (Jabber,Twitter, Facebook, etc.).
The CPU/MPU side of Ciao is composed by the Ciao Core and several Connectors. Till now we developed only a few of them but the core component has been designed and developed to support as much connector as you can possibly imagine.
CoreCiao has a core multi-threaded module developed to interact with MCU and to act as a router with all enabled connectors. It communicates with MCU via the serial shared with the MPU/CPU. They communicate with no limits on the number of enabled and registered connectors.
In this kind of boards like Yún, Industrial 101 etc.. Ciao Core is started and handled by the microcontroller.
Otherwise with the Tian, Ciao Core is installed as a service, like the Yun-like model it restarts every time the microcontroller is resetted (pressing the reset button or uploading a new sketch). Anyway this behaviour is totally transparent.
ConnectorsA Connector is a standalone module that on one hand communicates with Ciao Core to send/receive data to/from the microcontroller, and on the other connects to external services and/or applications trought specific protocols. Connectors are the tools of Ciao to connect to the World. Main Connectors, like RestServer, Shell, MQTT are pre-installed with Ciao, other connectors and Third party connectors are available in the Connectors Repository, and installable via opkg, see the installation section for more information.
List of ConnectorsFollowing a list of connectors already developed or under development. Please check each connector to learn how to use and how to setup.
at the time of this writing the external available connector are:
- WebSocket (in progress)
- Twitter (in progress)
Develop new connectorsAs stated above Ciao Core has been designed to be modular, in this way anyone can develop one (or more) Connector for its own needs.
Connectors can be developed in any programming language, compatible with TCP protocol and JSON strings, available on LininoOS. Further information on how to develop new connectors and to interact with Ciao Core via TCP are provided at the following page.