WaveSimSVGs Module
Functions to make SVGs of waveforms from FastSimulation data
Types and nested modules
Functions and values
| Function or value | Description |
Full Usage:
binaryWavePoints clkCycleWidth startCycle index transition
Parameters:
float
startCycle : int
index : int
transition : BinaryTransition
Returns: XYPos array
|
|
Full Usage:
displayBigIntOnWave wsModel width waveValues transitions gapCache
Parameters:
WaveSimModel
width : int
waveValues : bigint array
transitions : NonBinaryTransition array
gapCache : GapStore
Returns: ReactElement list
|
Should be refactored together with
|
Full Usage:
displayUInt32OnWave wsModel width waveValues transitions gapCache
Parameters:
WaveSimModel
width : int
waveValues : uint32 array
transitions : NonBinaryTransition array
gapCache : GapStore
Returns: ReactElement list
|
Should be refactored together with
|
|
The waveform to put on screen for one wave: the view the controls ask for where its data is here, and otherwise the one it is already showing. Called from the view, for every wave, on every render. Three outcomes, in the order they are tried: the waveform asked for has already been made, so it is reused; it has not, and the data is here, so it is made and kept; the data is not here, so what is on screen stays there. Only the last is a judgement, and it is the one the user asked for - a viewer that empties itself while it waits looks broken, one that shows the last view for a moment does not. None only before anything has ever been drawn for this wave, which is the moment a wave is added to the selection. An empty row is right there: there is nothing older to show.
|
|
The value the cursor is on, read from the waveform that is DRAWN beside it. Not from the cache and not by clock cycle. The cursor is a column of the picture, so the value next to it is the sample that column was drawn from - which while the picture is a window behind the controls is not the cycle the numbers above it say. Reading by cycle instead answered nothing at all there, and a column of "?" beside perfectly good waveforms is a worse lie than a value that matches what is on screen. None where nothing is drawn for this wave, or the cursor is off the end of what is: an empty row has no value, and neither has a column that is not there. Goes through `drawnFor` rather than reading the memo, so that it does not matter whether the value column or the waveform column is built first: whichever gets there does the drawing and the other finds it done. Reading the memo instead was a render behind on any render that changed the picture.
|
Full Usage:
highZoom clkCycleWidth
Parameters:
float
Returns: bool
|
|
Full Usage:
makeCoords clkCycleWidth clkCycle transition
Parameters:
float
clkCycle : int
transition : Transition
Returns: XYPos * XYPos * XYPos * XYPos
|
|
Full Usage:
makeXCoords clkCycleWidth clkCycle transition
Parameters:
float
clkCycle : int
transition : Transition
Returns: float * float
|
|
|
|
Full Usage:
nonBinaryWavePoints clkCycleWidth startCycle index transition
Parameters:
float
startCycle : int
index : int
transition : NonBinaryTransition
Returns: XYPos array * XYPos array
|
|
Full Usage:
xShift clkCycleWidth
Parameters:
float
Returns: float
|