Transmitting Messages

The Transmit panel lets you send frames onto the bus — either a single shot or repeated at a fixed cycle time. You’ll find it alongside the Trace window. (You must be connected in a bus mode that allows sending, i.e. Normal, not Listen Only.)

The Transmit panel with two entries: one cyclic at 10 ms and enabled, one single-shot sent with its Send button

Creating a transmit message

Click Add in the transmit toolbar to open the entry dialog (titled Add Entry). Fill in:

FieldWhat it does
Database Msg:Pick a message from your loaded database, or (custom) to define one by hand
Name:A label for the entry
CAN ID (hex):The arbitration ID, e.g. 100
DLC:Number of data bytes (0–8 for CAN, up to 64 for CAN FD)
Data:The payload as hex bytes, e.g. 00 11 22 33
Cycle Time:Period in ms; set to 0 for Single shot
Enabled (cyclic send)Tick to transmit periodically at the cycle time
Extended (29-bit) IDTick for extended identifiers
CAN FD / Bitrate SwitchFor CAN FD frames

If you choose a database message, CANoli shows a Signal Values section: enter a value per signal and CANoli encodes them into the Data bytes for you.

Click OK to add the entry, or Apply to add it and keep the dialog open for the next one.

Periodic vs. one-shot

There are two ways to send a frame:

  • One-shot — fire the frame once. Leave the cycle time at 0 (the dialog shows Single shot), or simply click the Send button on the row whenever you want to fire it.
  • Periodic (cyclic) — tick Enabled and set a Cycle (ms). CANoli retransmits the frame on that interval until you disable it.

Sending

In the transmit table, each row has:

ColumnMeaning
NameThe entry name
CAN IDArbitration ID in hex
DLCData length
DataPayload bytes
Cycle (ms)Period for cyclic sends
EnabledCheckbox to turn cyclic transmission on/off
SendButton to fire a single shot now

Tick the Enabled checkbox to start cyclic transmission; untick it to stop. Click Send for a one-shot. (When cyclic sending is already on for a row, its Send button dims, since the frame is already going out.)

Editing data quickly

You can edit a row in place without reopening the dialog:

  • Double-click the Data cell to type new hex bytes.
  • Double-click the Cycle (ms) cell to change the period.
  • Click the chevron at the left of a row to expand an inline signal editor, where you set per-signal values and click Apply to encode them (or Close to collapse the editor).

Transmitting patterns

For a database message, each signal can hold a fixed value or follow a time-varying pattern (a waveform) instead. This is the easy way to sweep a signal — ramp engine speed up and down, toggle a flag, drive a sensor reading in a loop — without hand-editing bytes. Patterns play while the entry is sending cyclically: on every cycle CANoli recomputes each signal’s value from its pattern, re-encodes the frame, and transmits the fresh data.

In the dialog’s Signal Values section (or the inline signal editor), every signal has a type dropdown next to it. The default is Fixed — a single constant value. Pick a shape to turn that signal into a pattern:

PatternShape over one period
FixedA constant value (no variation)
SineA smooth sine wave between the min and max
SquareThe max for the first half of the period, the min for the second
SawtoothA linear ramp from min up to max, then a jump back to min
TriangleA linear rise from min to max and back down to min
CustomAny shape you draw as a table of time/value points

For the standard shapes (Sine, Square, Sawtooth, Triangle) you set three fields:

  • min — the lowest engineering value the signal reaches.
  • max — the highest engineering value the signal reaches.
  • period — how long one full cycle takes, in milliseconds.

Custom waveforms

Choose Custom and click the Waveform… button to open the waveform editor. There you build the shape from a table of (Time (ms), Value) points: click Add Row to add points and Remove Row to delete the selected ones. CANoli draws a straight line between consecutive points and repeats the whole table as one period, so the last point’s time sets the cycle length. A live preview above the table shows exactly the shape you’ll transmit, with a marker on each point you’ve defined. Points must be in strictly increasing time order, and a custom waveform needs at least two points; OK stays blocked until the table is valid.

Tip: A pattern only animates while the entry is transmitting cyclically. Tick Enabled on the row (or set a non-zero cycle time) so CANoli keeps re-sending the frame and stepping the pattern forward.

Saving transmit lists

Use Save and Load in the toolbar to store a set of transmit entries and reload it later. Use Remove to delete the selected entry.

Next: Logging & Replay.