modelUartTemperatureSensor

Serial temperature sensor: answers AT+TEMP with the measured value, and accepts a setpoint through SET

Extends from Internal.Devices.PartialUartDevice (Base of the external serial devices: electrical link, decoding, two transmission modes, quantities exchanged with the model).

Information

Device derived from Internal.Devices.PartialUartDevice by overriding parameters only — no logic coded again. It answers three commands, all ending with a line feed:

  • AT+TEMP → TEMP=<value>, where the value is the one present on the valueIn[1] connector when the question arrives. Connect a ramp, a thermal model, or any quantity of the model to it.
  • AT+ID → a fixed identification string, like any real AT module.
  • SET <number> → OK, and the received number comes out on valueOut[1].

This last command is what makes the device an actuator as much as a sensor: the microcontroller reads the measurement through the serial link and sends a setpoint back through the same link, which lets a control loop be closed inside the model, without any extra wire. See Examples.Uart.Regulation.

responseDelay is 5 ms: a real device does not answer instantly, so the embedded program must wait for its reply rather than assume it has already arrived.

Parameters

TypeNameDefaultDescription
Electrical › Supply
BooleanuseSupplyPin (from PartialSupplyPin)falseShow the VCC supply pin: the peripheral is supplied by the circuit (its high levels follow VCC, its consumption IQ is drawn from VCC) - unchecked: ideal internal supply VOH, nothing to wire
Modelica.Units.SI.VoltageVOH (from PartialSupplyPin)Interfaces.VOHLogic high voltage: ideal internal supply, high level of the outputs and of the pull-ups - with the VCC pin, the voltage of VCC is used instead
Modelica.Units.SI.CurrentIQ (from PartialSupplyPin)1e-3Current drawn from VCC by the peripheral (quiescent consumption, outputs excluded)
BooleanuseGroundPin (from PartialSupplyPin)trueShow the GND pin - unchecked: the peripheral is referenced to the simulation ground (0 V), nothing to wire
Electrical › Levels
Modelica.Units.SI.VoltageVOL (from PartialUartPins)Interfaces.VOLLogic low voltage
Modelica.Units.SI.VoltageVIH (from PartialUartPins)Interfaces.VIHThreshold above which an input reads high
Modelica.Units.SI.VoltageVIL (from PartialUartPins)Interfaces.VILThreshold below which an input reads low
Electrical › Impedances
Modelica.Units.SI.ResistanceROut (from PartialUartPins)Interfaces.ROutOutput series resistance
Modelica.Units.SI.ResistanceRPullUp (from PartialUartPins)1e6Pull-up of the RX input to the supply
Electrical › Pins
BooleanuseTxPin (from PartialUartPins)trueShow the TX pin - unchecked for a device that never transmits (its output stage then stays unconnected)
Behaviour
Interfaces.UartBehaviourbehaviour (from PartialUartDevice)Interfaces.UartBehaviour.TableOrigin of the behaviour: command table or Python script
StringscriptPath (from PartialUartDevice)""Script .py describing the behaviour of the device (Script mode)
Serial link
Integerbaudrate (from PartialUartDevice)1200Link speed, in baud
IntegerdataBits (from PartialUartDevice)8Number of data bits of a frame (5 to 8, as machine.UART bits=)
Interfaces.UartParityparity (from PartialUartDevice)Interfaces.UartParity.NoneParity of a frame (as machine.UART parity=: None, 0 = even, 1 = odd)
IntegerstopBits (from PartialUartDevice)1Number of stop bits (1 or 2, as machine.UART stop=)
Stringterminator (from PartialUartDevice)"\n"Character marking the end of a received command (only the first character is kept)
Simulation
Modelica.Units.SI.TimetickPeriod (from PartialUartDevice)0.1Period of the minimal sync point: a safety net, the actual pace comes from the engine's deadlines
Table › Request / response
BooleanrespondEnabled (from PartialUartDevice)trueReply to the recognised commands
StringcommandTable (from PartialUartDevice)""Table "CMD=>REPLY|CMD=>REPLY"; "|" and "=>" are reserved. {vN} inserts valueIn[N] into the reply, {oN} captures a number of the command into valueOut[N]
Modelica.Units.SI.TimeresponseDelay (from PartialUartDevice)0.002Delay between the recognition of a command and the start of the reply
BooleanechoEnabled (from PartialUartDevice)falseSend back every received byte unchanged
Table › Periodic transmission
BooleanperiodicEnabled (from PartialUartDevice)falseTransmit spontaneously, without being asked
Modelica.Units.SI.Timeperiod (from PartialUartDevice)1Period of the spontaneous transmission (in Script mode: call period of on_tick)
StringperiodicTemplate (from PartialUartDevice)""Template of the periodically transmitted frame ({vN} inserts valueIn[N])
Inputs / outputs › Inputs ({vN}, inserted into transmitted frames)
BooleanuseValueInput (from PartialUartDevice)falseTake the quantities from the valueIn connector rather than from a constant
IntegernIn (from PartialUartDevice)1Number of quantities received from the model
RealfixedValue (from PartialUartDevice)0Value used when valueIn is not connected
Inputs / outputs › Outputs ({oN}, captured from received frames)
BooleanuseValueOutput (from PartialUartDevice)trueShow the valueOut connector - unchecked for a device that returns nothing to the model
IntegernOut (from PartialUartDevice)1Number of quantities returned to the model - leave the connector unconnected if unused
RealvalueOutStart (from PartialUartDevice)0Value of valueOut before any capture

Connectors

TypeNameDefaultDescription
Modelica.Electrical.Analog.Interfaces.NegativePinGND (from PartialSupplyPin)Common reference (ground), to be connected to the microcontroller's one - shown when useGroundPin is checked
Modelica.Electrical.Analog.Interfaces.PositivePinVCC (from PartialSupplyPin)Supply of the peripheral (e.g. 3V3(OUT) of a Raspberry Pi Pico) - shown when useSupplyPin is checked
Modelica.Electrical.Analog.Interfaces.PositivePinTX (from PartialUartPins)Transmission of the device - to be connected to the receive pin of the microcontroller - shown when useTxPin is checked
Modelica.Electrical.Analog.Interfaces.PositivePinRX (from PartialUartPins)Reception of the device - to be connected to the transmit pin of the microcontroller
Modelica.Blocks.Interfaces.RealInput[nIn]valueIn (from PartialUartDevice)Quantities supplied by the model, inserted into the transmitted frames by {v1}..{vN}
Modelica.Blocks.Interfaces.RealOutput[nOut]valueOut (from PartialUartDevice)Quantities extracted from the received frames by {o1}..{oN} - the device then becomes an actuator

Components

TypeNameDefaultDescription
BooleantxActive (from PartialUartDevice)A frame is being transmitted
BooleanrxBusy (from PartialUartDevice)A frame is being received
StringlastRx (from PartialUartDevice)Last complete line received
StringlastTx (from PartialUartDevice)Last payload transmitted