

Panel Fault Scanning
Android
Jetpack Compose
RS232 Serial Comms
MVVM
Service
Project Description
Note: Some screenshots have been modified with dummy data as these apps contain sensitive information
The idea for this project spawned from an idea submitted for a tech challenge event in which a solution is created with the potential of benefiting a company. The app is aimed at empowering field engineers with enhanced mobility and reduced equipment bulk. By adapting the tool for mobile devices, I sought to provide engineers with unparalleled flexibility and accessibility, enabling them to carry out critical operations with ease and efficiency in various field scenarios.
To facilitate the low-level communication required for interfacing with the fire panel, the custom made USB Service created in a separate project (Remote+) was utilised.
The application simplifies the process of debugging faults on a fire alarm system by offering a streamlined and user-friendly solution that eliminates the need for bulky equipment. With its easy to use interface and diagnostic capabilities, it allows engineers to identify and address issues swiftly, minimizing downtime and mitigating the need for product support calls.
In essence, the application not only simplifies the debugging process but also plays a l role in enhancing the reliability of fire alarm systems. Its integration into existing workflows ensures a more efficient and effective fault diagnosis and resolution methods, ultimately enhancing overall system reliability and customer satisfaction.
Project Solution
For this project, I made the deliberate choice to pursue Native Android development using Jetpack Compose alongside the MVVM design pattern. The decision to snub a multiplatform approach, such as Flutter, stemmed from the inherent limitations posed by iOS devices lack of support for the RS232 connection crucial to this application's functionality.
To facilitate the low-level communication required for interfacing with the fire panel, the custom made USB Service created in a separate project (Remote+) was utilised.
The connection process involves the use of an OTG cable to connect the device to a USB RS232 converter, establishing a physical link with the fire panel. This intricate setup ensures seamless communication between the application and the target device, enabling efficient data exchange and control.
In opting for Jetpack Compose for UI construction, I aimed to capitalize on its cutting-edge features and flexibility. Furthermore, the decision to utilize Kotlin over Java was motivated by its advantages in terms of code safety, maintainability, and the functional programming capabilities it offers. These features proved invaluable, particularly when working with low-level byte manipulation and ensuring the reliability of the application's core functionality.