Politecnico di Torino (logo)

Envoy: a simplified approach for the integration of hardware devices into software applications

Cristian Menaldo

Envoy: a simplified approach for the integration of hardware devices into software applications.

Rel. Massimo Violante, Teodoro Piccinni. Politecnico di Torino, Corso di laurea magistrale in Mechatronic Engineering (Ingegneria Meccatronica), 2021

PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (2MB) | Preview

The context of this thesis is the development of the Envoy middleware software, a solution minded to simplify the integration of hardware peripherals for the automation of cash handling. This thesis has been developed within the innovation department of ARCA Technologies S.r.l., the producer of these devices. The company, based in Bollengo (TO), is the Italian branch of a wider company based in Mebane, North Carolina, USA. This project has successfully integrated, into the Envoy platform, the most successful cash automation device sold by ARCA, the CM18. Envoy is a middleware software, written in C++, that exposes an API (Application Programming Interface) that simplifies the integration of this kind of hardware devices into software applications. The software houses that choose Envoy to integrate cash handling devices, won’t care about the kind of protocol (hexadecimal, string, …) a machine uses, because Envoy parses the protocols and manages the low level communication. On this basis, Envoy receives JSON (JavaScript Object Notation) requests over a RESTful protocol, translates them into the device protocol and returns the replies to the application in the same simple and clean JSON format. In order to be able to integrate this machine, it has been necessary to study how it works, with all its components, the path that is followed by the banknotes inside of it, but most importantly its protocol, so that it has been possible to build the parser of the commands. Before starting to develop the code, an extensive study has been carried out, about all the tools needed in a software development flow. This flow has been based on the Agile and DevOps methodologies and has gone through three phases: development, testing and release. The development phase has taken advantage of tools like Jira, used for planning the work; Jenkins, which is a tool for CI/CD (Continuous Integration and Continuous Delivery) of software products; and Git, a VCS (Version Control System) that facilitates the collaboration between programmers and allows to keep track of the software product history. The tool that has been used in the code testing phase is a tool to implement unit testing, the Boost.Test library, which is part of the Boost C++ framework. After this phase of study, the code for the integration of the machine into Envoy has been developed, using the tools mentioned previously and implementing the commands to open and close the communication with the machine, the ones to retrieve the status of the cassettes and the status of the various components, the commands to set and read the date and the time, the command to deposit the banknotes and lastly, the one to only count them. Finally, as conclusion of the project, a collaboration with the customer support team has been done, in order to understand how the issues with the customers are addressed, once the software has been delivered.

Relators: Massimo Violante, Teodoro Piccinni
Academic year: 2021/22
Publication type: Electronic
Number of Pages: 85
Corso di laurea: Corso di laurea magistrale in Mechatronic Engineering (Ingegneria Meccatronica)
Classe di laurea: New organization > Master science > LM-25 - AUTOMATION ENGINEERING
Aziende collaboratrici: ARCA Technologies srl
URI: http://webthesis.biblio.polito.it/id/eprint/21024
Modify record (reserved for operators) Modify record (reserved for operators)