Software developpement » History » Version 5

« Previous - Version 5/10 (diff) - Next » - Current version
BASTIDE, Paul, 03/23/2016 10:49 AM


Software developpement

The software we are proposing is a variation of the software proposed in the [[Sputnik strikes back:| Sputnik strikes back]] project, software desgin.
As them, we are going to retriev on a sensor data, tranform it in a more appropriate format so as to send it by the RF transmitter.

General principle

We are developping for an RTOS, a real time operating system. As presented in the generalities //LINK HERE, this kind of software runs on a task driven event basis. That is to say we are creating tasks inside infinite loop (so that they keep running) and a scheduler will be operating the shift between the tasks.

In order for the tasks to release or take the processing power they need, the system rune a priority basis : tasks with higher priority, when they need to process, interrupts tsks with lower priorities ta take control. These high priorities tasks need to release the control in order for the lower priority tasks to be able to run. This is done by what we call a "context switch" functionality present in the scheduler, and notably in the "OS_Delay()" function that enables the tasks to wait and release the prcessing power to another task.

In order to set the timing between the tasks, we will implementflags, which will serve to determine when some functionalities will be accessed in the tasks. These flags have to be set by other tasks to manage the workflow between tasks.

Software definition

Tasks definition

We are going to define the following tasks and function :

  • task_sensor_phys(): this task is the main one, is used to send to the RF transmitter the bits.
  • sensor_get_update() : task used to retrieve from the ADC the voltage value and fill the buffer with the temperature
  • init_ADC(): used in sensor_update to initialize the ADC registers
  • bin_vomt(): used to convert the results from the ADC to a temperature
  • celcius_coding() : used to convert the temperarture over a 7-bits word.

We created the following buffer to conserve the data

  • bitCharBuf : contains the 7-bits word we are planning to send

We are using the following flags :

  • rts_flag : Ready To Send flag, allow the main task to know when data is ready to be sent.
  • cod_flag : Flag used to tell the update function that all the data has been sent and it can now retrieve the data

h3. Sequence of events