Wireless Sensor Network (WSN) software development challenges developers in two main ways: through system programming, which requires expertise in hardware and network management; and application programming, which requires domain-specific knowledge. However, domain programmers often lack WSN programming expertise. Likewise, system-specific programmers may find it difficult to understand domain-specific requirements. As a result, domain programmers often refrain from using WSN technology in domain-specific applications. Therefore, we propose a Finite State Machine (FSM)-based approach with an affiliated framework to decouple application functionality from WSN details. Instead of the traditional flat FSM, we use statecharts formalism because of its relaxed definition of system states. In this paper, we compare the statecharts paradigm against two basic WSN sensor node programming frameworks. The result exhibits that statecharts are an advanced paradigm in WSN application development. It motivated us to develop a statecharts framework. In our framework, we choose not to use the typical solution which converts statecharts to programming code. Instead of that, we implement a statecharts middleware associated with action libraries to interpret and actuate raw statecharts on an operating system. This approach allows domain programmers to concentrate on WSN application behavior, and system-specific programmers to focus on developing WSN services. We also introduce our statecharts middleware and present a living example with performance evaluation.
This is an open access article distributed under the Creative Commons Attribution License
which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited