EEZ Studio EEZChart Data Formats: Distinguish Numeric Arrays from Packed Float Blobs
Changing EEZChart's Format property does not pack a numeric array into binary samples. In the inspected Single chart path, an array is explicitly routed to the JavaScript-number format, even after a format string such as "float" or "double" has been evaluated.
The EEZChart reference documents arrays and packed blobs as supported representations. The SingleEEZChart implementation and WaveformFormat definitions are pinned to EEZ Studio v0.29.0 commit 3000161d09d40a5c1dc2477ddc30b38037b3a612.
The scope is the Dashboard widget's Single chart mode. EEZ DLOG and Instrument History Item modes use other paths and should not inherit this analysis without checking their loaders.
Data representation can override the format selection
SingleEEZChart first maps the supplied format string to a waveform-format constant. Float and double select packed floating-point formats; other recognized strings select their corresponding formats, and the fallback is JS_NUMBERS.
It then checks whether Chart data is an array. When that check succeeds, it replaces the selected format with JS_NUMBERS. The data and resulting format are passed onward to createGenericWaveform.
The practical consequence is that an ordinary numeric array represents sample values. It is not a byte sequence merely because the numbers happen to lie between zero and 255. Entering "float" does not reinterpret groups of four array elements as one packed sample in this branch.

Compare equivalent samples in two representations
A proposed fixture uses two samples, 1 and 2. One input is a numeric array containing those two values. The other is a blob containing their documented little-endian 32-bit floating-point encodings, with Format set to "float".
For that packed fixture, the bytes are 00 00 80 3F followed by 00 00 00 40. These are illustrative encoding values, not a captured acquisition. The blob contains eight bytes representing two samples; the ordinary array contains two numeric sample elements.
Now consider supplying those eight byte values as an ordinary array. The inspected branch selects JS_NUMBERS and treats the elements as numeric samples rather than reconstructing the two floats. A strange-looking trace can therefore come from the runtime representation, even when the format text looks correct.
Verify the runtime type at Chart data, the selected effective waveform format and the resulting sample count. A producer that advertises binary data but passes an array of octets needs an explicit conversion to the representation expected by the receiving path.
This example does not classify every typed-array or custom observable object. The implementation uses EEZ's array helper, so unfamiliar container types require checking that helper and the actual value conversion rather than assuming they follow the ordinary-array case.
Keep decoding separate from axis transformations
Sampling rate, scale and offset are passed separately into the waveform definition. They are not alternative ways to repair an incorrectly interpreted sample buffer.
For the first representation comparison, keep scale at 1 and offset at 0, and use the same valid sampling rate. Otherwise, a transformation can make different decoded inputs appear deceptively similar. Inspect sample count before judging the visual trace's time span.
The documentation describes sampling rate in samples per second and applies offset plus sample value times scale on the vertical axis. Once representation is verified, those settings can express the intended units and timing. They do not convert a byte-valued array into packed floats.
Make the producer-to-chart contract inspectable
State whether the producer emits numeric values, a packed binary blob or text, and specify the corresponding chart configuration. For a packed representation, include sample width and byte order in that contract. For an array, keep the distinction between sample elements and encoded bytes explicit.
No EEZ chart, decoder or hardware acquisition was run for this article. The source establishes the format-selection branch and the documentation establishes the packed representation. A small two-sample fixture can test their connection without relying on a complex waveform whose incorrect decoding might still resemble plausible noise.