---
# System prepended metadata

title: National Taiwan University Racing Team Software Development Log
tags: [NTURT, development_log]

---

# National Taiwan University Racing Team Software Development Log
###### tags: `development_log` `NTURT`
##### Group: electrical system group
##### Person in charge: 羅紀翔
##### Authors: 羅紀翔 高仕懷
##### Subsystem: RP1
##### Subsystem number: RP3
##### Software name: state_controller
##### Repository: [github](https://github.com/NTURacingTeam/nturt_state_controller.git)
##### Started designing date: 2022/4/21
##### Current version: 1.0
##### Last modified date: 2022/9/20

---

## Engineering goal:

Implement ready to drive (rtd) feature required in fsae rule, and shutdown/reboot control.

## Program structure:

### wiringPi

Since `wiringPi` cutrrentlly only exist on rpi, it is implemented to use preprocessor the check if `__arm__` is defined to avoid running into compilation error.

### ROS timer

The shutdown/reboot control is implemented by ros timmer to call a callback function after a period of time the button is not pressed.

## Included libraries:

- wiringPi

## Testing environment:

- ros noetic

##### Testing hardware:

- asus tuf gaming a15 FA506II-0031A 4800H
- raspberry pi 3B+

##### Operating system:

- ubuntu 20.04
- raspbian 32-bit
- docker virtual environment from [NTURacingTeam/docker](https://github.com/NTURacingTeam/docker) with image `ros_matlab`, `ros_rpi` based on ubuntu20.04

##### Compiler(intepreter) version:

- gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)

---

## Testing result of 1.0:

### Ready to drive (rtd)

Worked successfully to check the can signal from dash board and front box, brake actuated and only play rtd sound once after multiple button pressed.

### Shutdown/ reboot control

Worked successfully to shutdown/reboot after corresponding presses.

## Todos in 1.0:

