Software Design Patterns for Efficient Automotive Monitoring Systems: An Event Data Recorder Use-Case
摘要
Besides collecting data over real-time communication systems, such as Controller Area Network (CAN bus), an automotive monitoring service must support processing, filtering, dissemination, and visualization. This work examines software design patterns useful for the efficient design of automotive monitoring services, in particular Event Data Recorder and Driver Assist (EDR/DA) systems that involve real-time monitoring and control. The patterns defined in this study include inter-process communication, shared repository, remote access, asynchronous signaling, event handling and ordering, mixed criticality, security, and safety. Selecting and integrating the most appropriate patterns is fundamental to the efficient design of an EDR/DA. As an example, we consider one-to-one inter-process communication, and compare power and performance characteristics when implementing this pattern using either classical producer-consumer algorithms, or concurrent queues on a multicore Odroid XU3 system.