uCANca uses flows to represent magnitudes.

We can say that a magnitude can be:

  1. A data that is manipulated by software.
  2. A physical magnitude with impact in software:
    1. Like a temperature, that translated through a sensor and an ADC port, is affecting a data in the software (the data in the software “follows” the magnitude).
    2. Like a motor speed, that can be the response to a command given by the software, translated by a PWM port and commanding the motor power stage to achieve this speed (we can say that the magnitude “follows” the data).
  3. A physical magnitude that is important to the system but does not affect the software.

This classification is aimed by one of the features of uCANca: automatic code generation. Somebody can think that the last type of magnitude is useless, but there are some aspects to take into account before discarding it from project:

  • uCANca helps you to document the development of the whole system.
  • uCANca has the ability to group flows in connectors, so a magnitude as “electric power” can have no impact on code but it is interesting to keep track of it in uCANca.
  • When developing safety critical or high available systems, redundancies are needed. Some new requirement need to be implemented, not as functionalities of the system, but as on board diagnostics or safety supervisors. Sometimes these new requirements must be able to keep track or manipulate these magnitudes, converting them to another category (2.1 or 2.2).