One of the first ideas we had in mind, when we decided to create TwizyLine, was to create an algorithm which was capable of controlling the system, to automatize the procedures and send instructions to the different elements of TwizyLine. That algorithm is the back-end software.
The back-end software is stored in our server. It is programmed in Python language. Once it is running in the server, the software creates an arquitecture of parallel processes to be able to attend to all the necessities of the TwizyLine system at the same time.
So, the back-end software is the brain of our system. It must fulfill two main functionalities to be able to control the whole system, which are:
Communications are managed using the MQTT protocol. MQTT (Message Queuing Telemetry Transport) is network protocol design to exchange messages between a large set of devices connected to internet. This kind of protocol is widely used in IoT (Internet of Things) projects, due to his high efficiency, providing to the network a low-load and simplicity to established the communication between two devices. Using this IoT software, we thought it was a great idea to make a step forward to reach the Smart Cities of the future, where IoT is one of its cornerstones to connect to internet everything in the city..
Messages exchanged between the different elements are defined. We have created our own table of messages, each one with a different function. The back-end software is already programmed to use a different set of messages depending which is communicating with. For example, for a car the set of message is focus on controlling the sensor or sending orders to stop or drive autonomously. On the other hand, the set of messages to control the parking are defined to manage the barriers or the turnstile to control the income or outcome of vehicles from the parking. There are around 50 messages defined, some of them are shown in the table below
TwizyLine has its own database, which is also stored in the server. We have design the whole database table arquitecture, in order to stores the most relevant information of our system. In the database, it is stored data of: the users, the cars, the parking and information useful for administrator to make a proper fleet and parking management. The back-end software is using this database continuously, to introduce new data, to update old data or to remove no necessary information.