-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the Bug
The x-axis is labelled as Time [us] but the scale bar is labelled as ms.
To Reproduce
This pertains to the following codebase: issue-502-2 (64d302e) into main (7fb9332)
This happens for both estim and ostim waveform editors:
The only thing I need to do to recreate this is make a shorter waveform and reset zoom such that the x-axis goes from (10^3) to not:
Then I just shorten pulse period:
Bonsai Version
2.9.0
OpenEphys.Onix1 Version
0.7.0
Attach your workflow
<?xml version="1.0" encoding="utf-8"?>
<WorkflowBuilder Version="2.9.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:onix1="clr-namespace:OpenEphys.Onix1;assembly=OpenEphys.Onix1"
xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core"
xmlns:io="clr-namespace:Bonsai.IO;assembly=Bonsai.System"
xmlns:dsp="clr-namespace:Bonsai.Dsp;assembly=Bonsai.Dsp"
xmlns:p1="clr-namespace:Bonsai.Ephys.Design;assembly=Bonsai.Ephys.Design"
xmlns="https://bonsai-rx.org/2018/workflow">
<Workflow>
<Nodes>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:CreateContext">
<onix1:Driver>riffa</onix1:Driver>
<onix1:Index>0</onix1:Index>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:ConfigureBreakoutBoard">
<onix1:Name>BreakoutBoard</onix1:Name>
<onix1:Heartbeat>
<onix1:DeviceName>BreakoutBoard/PersistentHeartbeat</onix1:DeviceName>
<onix1:DeviceAddress>0</onix1:DeviceAddress>
<onix1:BeatsPerSecond>100</onix1:BeatsPerSecond>
</onix1:Heartbeat>
<onix1:AnalogIO>
<onix1:DeviceName>BreakoutBoard/AnalogIO</onix1:DeviceName>
<onix1:DeviceAddress>6</onix1:DeviceAddress>
<onix1:Enable>false</onix1:Enable>
<onix1:InputRange0>TenVolts</onix1:InputRange0>
<onix1:InputRange1>TenVolts</onix1:InputRange1>
<onix1:InputRange2>TenVolts</onix1:InputRange2>
<onix1:InputRange3>TenVolts</onix1:InputRange3>
<onix1:InputRange4>TenVolts</onix1:InputRange4>
<onix1:InputRange5>TenVolts</onix1:InputRange5>
<onix1:InputRange6>TenVolts</onix1:InputRange6>
<onix1:InputRange7>TenVolts</onix1:InputRange7>
<onix1:InputRange8>TenVolts</onix1:InputRange8>
<onix1:InputRange9>TenVolts</onix1:InputRange9>
<onix1:InputRange10>TenVolts</onix1:InputRange10>
<onix1:InputRange11>TenVolts</onix1:InputRange11>
<onix1:Direction0>Input</onix1:Direction0>
<onix1:Direction1>Input</onix1:Direction1>
<onix1:Direction2>Input</onix1:Direction2>
<onix1:Direction3>Input</onix1:Direction3>
<onix1:Direction4>Input</onix1:Direction4>
<onix1:Direction5>Input</onix1:Direction5>
<onix1:Direction6>Input</onix1:Direction6>
<onix1:Direction7>Input</onix1:Direction7>
<onix1:Direction8>Input</onix1:Direction8>
<onix1:Direction9>Input</onix1:Direction9>
<onix1:Direction10>Input</onix1:Direction10>
<onix1:Direction11>Input</onix1:Direction11>
</onix1:AnalogIO>
<onix1:DigitalIO>
<onix1:DeviceName>BreakoutBoard/DigitalIO</onix1:DeviceName>
<onix1:DeviceAddress>7</onix1:DeviceAddress>
<onix1:Enable>true</onix1:Enable>
<onix1:DeadTime>0</onix1:DeadTime>
<onix1:SampleRate xsi:nil="true" />
</onix1:DigitalIO>
<onix1:ClockOutput>
<onix1:DeviceName>BreakoutBoard/OutputClock</onix1:DeviceName>
<onix1:DeviceAddress>5</onix1:DeviceAddress>
<onix1:ClockGate>false</onix1:ClockGate>
<onix1:Frequency>1000000</onix1:Frequency>
<onix1:DutyCycle>50</onix1:DutyCycle>
<onix1:Delay>0</onix1:Delay>
</onix1:ClockOutput>
<onix1:HarpInput>
<onix1:DeviceName>BreakoutBoard/HarpSyncInput</onix1:DeviceName>
<onix1:DeviceAddress>12</onix1:DeviceAddress>
<onix1:Enable>false</onix1:Enable>
<onix1:Source>Breakout</onix1:Source>
</onix1:HarpInput>
<onix1:MemoryMonitor>
<onix1:DeviceName>BreakoutBoard/MemoryMonitor</onix1:DeviceName>
<onix1:DeviceAddress>10</onix1:DeviceAddress>
<onix1:Enable>false</onix1:Enable>
<onix1:SamplesPerSecond>10</onix1:SamplesPerSecond>
</onix1:MemoryMonitor>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:ConfigureHeadstage64">
<onix1:Name>Headstage64</onix1:Name>
<onix1:Rhd2164>
<onix1:DeviceName>Headstage64/Rhd2164</onix1:DeviceName>
<onix1:DeviceAddress>256</onix1:DeviceAddress>
<onix1:Enable>true</onix1:Enable>
<onix1:DspCutoff>Off</onix1:DspCutoff>
<onix1:AnalogLowCutoff>Low100mHz</onix1:AnalogLowCutoff>
<onix1:AnalogHighCutoff>High10000Hz</onix1:AnalogHighCutoff>
</onix1:Rhd2164>
<onix1:Bno055>
<onix1:DeviceName>Headstage64/Bno055</onix1:DeviceName>
<onix1:DeviceAddress>257</onix1:DeviceAddress>
<onix1:Enable>true</onix1:Enable>
</onix1:Bno055>
<onix1:TS4231>
<onix1:DeviceName>Headstage64/TS4231V1</onix1:DeviceName>
<onix1:DeviceAddress>258</onix1:DeviceAddress>
<onix1:Enable>true</onix1:Enable>
</onix1:TS4231>
<onix1:ElectricalStimulator>
<onix1:DeviceName>Headstage64/Headstage64ElectricalStimulator</onix1:DeviceName>
<onix1:DeviceAddress>259</onix1:DeviceAddress>
<onix1:Enable>true</onix1:Enable>
<onix1:Arm>true</onix1:Arm>
<onix1:PhaseOneCurrent>200</onix1:PhaseOneCurrent>
<onix1:InterPhaseCurrent>0</onix1:InterPhaseCurrent>
<onix1:PhaseTwoCurrent>-200</onix1:PhaseTwoCurrent>
<onix1:PhaseOneDuration>100</onix1:PhaseOneDuration>
<onix1:InterPhaseInterval>0</onix1:InterPhaseInterval>
<onix1:PhaseTwoDuration>100</onix1:PhaseTwoDuration>
<onix1:InterPulseInterval>10000</onix1:InterPulseInterval>
<onix1:InterBurstInterval>0</onix1:InterBurstInterval>
<onix1:BurstPulseCount>10</onix1:BurstPulseCount>
<onix1:TrainBurstCount>1</onix1:TrainBurstCount>
</onix1:ElectricalStimulator>
<onix1:OpticalStimulator>
<onix1:DeviceName>Headstage64/Headstage64OpticalStimulator</onix1:DeviceName>
<onix1:DeviceAddress>260</onix1:DeviceAddress>
<onix1:Enable>true</onix1:Enable>
<onix1:EnableIndicationLed>false</onix1:EnableIndicationLed>
<onix1:Arm>true</onix1:Arm>
<onix1:MaxCurrent>30</onix1:MaxCurrent>
<onix1:ChannelOneCurrent>0</onix1:ChannelOneCurrent>
<onix1:ChannelTwoCurrent>100</onix1:ChannelTwoCurrent>
<onix1:PulseDuration>10</onix1:PulseDuration>
<onix1:PulsesPerSecond>10</onix1:PulsesPerSecond>
<onix1:PulsesPerBurst>10</onix1:PulsesPerBurst>
<onix1:InterBurstInterval>0</onix1:InterBurstInterval>
<onix1:BurstsPerTrain>1</onix1:BurstsPerTrain>
</onix1:OpticalStimulator>
<onix1:Heartbeat>
<onix1:DeviceName>Headstage64/PersistentHeartbeat</onix1:DeviceName>
<onix1:DeviceAddress>261</onix1:DeviceAddress>
<onix1:BeatsPerSecond>10</onix1:BeatsPerSecond>
</onix1:Heartbeat>
<onix1:Port>PortA</onix1:Port>
<onix1:PortVoltage>
<onix1:Requested xsi:nil="true" />
</onix1:PortVoltage>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:StartAcquisition">
<onix1:ReadSize>4096</onix1:ReadSize>
<onix1:WriteSize>2048</onix1:WriteSize>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="rx:Timestamp" />
</Expression>
<Expression xsi:type="io:CsvWriter">
<io:FileName>start-time_.csv</io:FileName>
<io:Append>false</io:Append>
<io:Overwrite>false</io:Overwrite>
<io:Suffix>FileCount</io:Suffix>
<io:IncludeHeader>true</io:IncludeHeader>
<io:Selector>Timestamp,Value.AcquisitionClockHz,Value.BlockReadSize,Value.BlockWriteSize</io:Selector>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:PortStatus">
<onix1:DeviceName>Headstage64/Headstage64PortController</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="rx:Timestamp" />
</Expression>
<Expression xsi:type="io:CsvWriter">
<io:FileName>port-status_.csv</io:FileName>
<io:Append>false</io:Append>
<io:Overwrite>false</io:Overwrite>
<io:Suffix>FileCount</io:Suffix>
<io:IncludeHeader>true</io:IncludeHeader>
<io:Selector>Timestamp,Value.Clock,Value.StatusCode</io:Selector>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:Rhd2164Data">
<onix1:DeviceName>Headstage64/Rhd2164</onix1:DeviceName>
<onix1:BufferSize>30</onix1:BufferSize>
</Combinator>
</Expression>
<Expression xsi:type="MemberSelector">
<Selector>Clock</Selector>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="dsp:MatrixWriter">
<dsp:Path>rhd2164-clock_.raw</dsp:Path>
<dsp:Suffix>FileCount</dsp:Suffix>
<dsp:Overwrite>false</dsp:Overwrite>
<dsp:Layout>ColumnMajor</dsp:Layout>
</Combinator>
</Expression>
<Expression xsi:type="MemberSelector">
<Selector>AmplifierData</Selector>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="dsp:MatrixWriter">
<dsp:Path>rhd2164-ephys_.raw</dsp:Path>
<dsp:Suffix>FileCount</dsp:Suffix>
<dsp:Overwrite>false</dsp:Overwrite>
<dsp:Layout>ColumnMajor</dsp:Layout>
</Combinator>
</Expression>
<Expression xsi:type="MemberSelector">
<Selector>AuxData</Selector>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="dsp:MatrixWriter">
<dsp:Path>rhd2164-aux_.raw</dsp:Path>
<dsp:Suffix>FileCount</dsp:Suffix>
<dsp:Overwrite>false</dsp:Overwrite>
<dsp:Layout>ColumnMajor</dsp:Layout>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="rx:Zip" />
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="dsp:Concat">
<dsp:Axis>0</dsp:Axis>
</Combinator>
</Expression>
<Expression xsi:type="p1:WaveformVisualizerBuilder">
<p1:SampleRate>30000</p1:SampleRate>
<p1:MaxSamplesPerChannel>1920</p1:MaxSamplesPerChannel>
<p1:ChannelHeight xsi:nil="true" />
<p1:Timebase xsi:nil="true" />
<p1:ColorGrouping xsi:nil="true" />
<p1:RangeAmplitude xsi:nil="true" />
<p1:RangeOffset xsi:nil="true" />
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:TS4231V1PositionData">
<onix1:DeviceName>Headstage64/TS4231V1</onix1:DeviceName>
<onix1:P>
<onix1:X>0</onix1:X>
<onix1:Y>0</onix1:Y>
<onix1:Z>0</onix1:Z>
</onix1:P>
<onix1:Q>
<onix1:X>1</onix1:X>
<onix1:Y>0</onix1:Y>
<onix1:Z>0</onix1:Z>
</onix1:Q>
</Combinator>
</Expression>
<Expression xsi:type="io:CsvWriter">
<io:FileName>uncalibrated_ts4231_.csv</io:FileName>
<io:Append>false</io:Append>
<io:Overwrite>false</io:Overwrite>
<io:Suffix>FileCount</io:Suffix>
<io:IncludeHeader>true</io:IncludeHeader>
<io:Selector>Clock,Position</io:Selector>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:TS4231V1SpatialTransform">
<onix1:SpatialTransform>
<onix1:A>
<onix1:M11>NaN</onix1:M11>
<onix1:M12>NaN</onix1:M12>
<onix1:M13>NaN</onix1:M13>
<onix1:M14>1</onix1:M14>
<onix1:M21>NaN</onix1:M21>
<onix1:M22>NaN</onix1:M22>
<onix1:M23>NaN</onix1:M23>
<onix1:M24>1</onix1:M24>
<onix1:M31>NaN</onix1:M31>
<onix1:M32>NaN</onix1:M32>
<onix1:M33>NaN</onix1:M33>
<onix1:M34>1</onix1:M34>
<onix1:M41>NaN</onix1:M41>
<onix1:M42>NaN</onix1:M42>
<onix1:M43>NaN</onix1:M43>
<onix1:M44>1</onix1:M44>
<onix1:Translation>
<onix1:X>NaN</onix1:X>
<onix1:Y>NaN</onix1:Y>
<onix1:Z>NaN</onix1:Z>
</onix1:Translation>
</onix1:A>
<onix1:B>
<onix1:M11>NaN</onix1:M11>
<onix1:M12>NaN</onix1:M12>
<onix1:M13>NaN</onix1:M13>
<onix1:M14>1</onix1:M14>
<onix1:M21>NaN</onix1:M21>
<onix1:M22>NaN</onix1:M22>
<onix1:M23>NaN</onix1:M23>
<onix1:M24>1</onix1:M24>
<onix1:M31>NaN</onix1:M31>
<onix1:M32>NaN</onix1:M32>
<onix1:M33>NaN</onix1:M33>
<onix1:M34>1</onix1:M34>
<onix1:M41>NaN</onix1:M41>
<onix1:M42>NaN</onix1:M42>
<onix1:M43>NaN</onix1:M43>
<onix1:M44>1</onix1:M44>
<onix1:Translation>
<onix1:X>NaN</onix1:X>
<onix1:Y>NaN</onix1:Y>
<onix1:Z>NaN</onix1:Z>
</onix1:Translation>
</onix1:B>
</onix1:SpatialTransform>
</Combinator>
</Expression>
<Expression xsi:type="io:CsvWriter">
<io:FileName>calibrated-ts4231_.csv</io:FileName>
<io:Append>false</io:Append>
<io:Overwrite>false</io:Overwrite>
<io:Suffix>FileCount</io:Suffix>
<io:IncludeHeader>true</io:IncludeHeader>
<io:Selector>Clock,Position</io:Selector>
</Expression>
<Expression xsi:type="MemberSelector">
<Selector>Position</Selector>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:Bno055Data">
<onix1:DeviceName>Headstage64/Bno055</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="io:CsvWriter">
<io:FileName>bno055_.csv</io:FileName>
<io:Append>false</io:Append>
<io:Overwrite>false</io:Overwrite>
<io:Suffix>FileCount</io:Suffix>
<io:IncludeHeader>true</io:IncludeHeader>
<io:Selector>Clock,EulerAngle,Quaternion,Acceleration,Gravity,Temperature</io:Selector>
</Expression>
<Expression xsi:type="MemberSelector">
<Selector>Quaternion</Selector>
</Expression>
<Expression xsi:type="Disable">
<Builder xsi:type="IncludeWorkflow" Path="OpenEphys.Commutator:AutoCommutator.bonsai">
<PortName>COM4</PortName>
<Enable>true</Enable>
<EnableLed>true</EnableLed>
</Builder>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:DigitalInput">
<onix1:DeviceName>BreakoutBoard/DigitalIO</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="MemberSelector">
<Selector>Buttons</Selector>
</Expression>
<Expression xsi:type="HasFlag">
<Operand xsi:type="WorkflowProperty" TypeArguments="onix1:BreakoutButtonState">
<Value>Triangle</Value>
</Operand>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="rx:DistinctUntilChanged" />
</Expression>
<Expression xsi:type="rx:Condition">
<Workflow>
<Nodes>
<Expression xsi:type="WorkflowInput">
<Name>Source1</Name>
</Expression>
<Expression xsi:type="WorkflowOutput" />
</Nodes>
<Edges>
<Edge From="0" To="1" Label="Source1" />
</Edges>
</Workflow>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="DoubleProperty">
<Value>0</Value>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:Headstage64ElectricalStimulatorTrigger">
<onix1:DeviceName>Headstage64/Headstage64ElectricalStimulator</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="HasFlag">
<Operand xsi:type="WorkflowProperty" TypeArguments="onix1:BreakoutButtonState">
<Value>Circle</Value>
</Operand>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="rx:DistinctUntilChanged" />
</Expression>
<Expression xsi:type="rx:Condition">
<Workflow>
<Nodes>
<Expression xsi:type="WorkflowInput">
<Name>Source1</Name>
</Expression>
<Expression xsi:type="WorkflowOutput" />
</Nodes>
<Edges>
<Edge From="0" To="1" Label="Source1" />
</Edges>
</Workflow>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="DoubleProperty">
<Value>0</Value>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:Headstage64OpticalStimulatorTrigger">
<onix1:DeviceName>Headstage64/Headstage64OpticalStimulator</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="HasFlag">
<Operand xsi:type="WorkflowProperty" TypeArguments="onix1:BreakoutButtonState">
<Value>X</Value>
</Operand>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="rx:DistinctUntilChanged" />
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:Headstage64GpoTrigger">
<onix1:DeviceName>Headstage64/Headstage64PortController</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:Headstage64OpticalStimulatorData">
<onix1:DeviceName>Headstage64/Headstage64OpticalStimulator</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="io:CsvWriter">
<io:FileName>ostim_.csv</io:FileName>
<io:Append>false</io:Append>
<io:Overwrite>false</io:Overwrite>
<io:Suffix>FileCount</io:Suffix>
<io:IncludeHeader>true</io:IncludeHeader>
<io:Selector />
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:Headstage64ElectricalStimulatorData">
<onix1:DeviceName>Headstage64/Headstage64ElectricalStimulator</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="io:CsvWriter">
<io:FileName>estim_.csv</io:FileName>
<io:Append>false</io:Append>
<io:Overwrite>false</io:Overwrite>
<io:Suffix>FileCount</io:Suffix>
<io:IncludeHeader>true</io:IncludeHeader>
<io:Selector />
</Expression>
<Expression xsi:type="Combinator">
<Combinator xsi:type="onix1:MemoryMonitorData">
<onix1:DeviceName>BreakoutBoard/MemoryMonitor</onix1:DeviceName>
</Combinator>
</Expression>
<Expression xsi:type="MemberSelector">
<Selector>PercentUsed</Selector>
</Expression>
</Nodes>
<Edges>
<Edge From="0" To="1" Label="Source1" />
<Edge From="1" To="2" Label="Source1" />
<Edge From="2" To="3" Label="Source1" />
<Edge From="2" To="4" Label="Source1" />
<Edge From="4" To="5" Label="Source1" />
<Edge From="6" To="7" Label="Source1" />
<Edge From="7" To="8" Label="Source1" />
<Edge From="9" To="10" Label="Source1" />
<Edge From="9" To="12" Label="Source1" />
<Edge From="9" To="14" Label="Source1" />
<Edge From="10" To="11" Label="Source1" />
<Edge From="12" To="13" Label="Source1" />
<Edge From="13" To="16" Label="Source1" />
<Edge From="14" To="15" Label="Source1" />
<Edge From="15" To="16" Label="Source2" />
<Edge From="16" To="17" Label="Source1" />
<Edge From="17" To="18" Label="Source1" />
<Edge From="19" To="20" Label="Source1" />
<Edge From="20" To="21" Label="Source1" />
<Edge From="21" To="22" Label="Source1" />
<Edge From="22" To="23" Label="Source1" />
<Edge From="24" To="25" Label="Source1" />
<Edge From="25" To="26" Label="Source1" />
<Edge From="26" To="27" Label="Source1" />
<Edge From="28" To="29" Label="Source1" />
<Edge From="29" To="30" Label="Source1" />
<Edge From="29" To="35" Label="Source1" />
<Edge From="29" To="40" Label="Source1" />
<Edge From="30" To="31" Label="Source1" />
<Edge From="31" To="32" Label="Source1" />
<Edge From="32" To="33" Label="Source1" />
<Edge From="33" To="34" Label="Source1" />
<Edge From="35" To="36" Label="Source1" />
<Edge From="36" To="37" Label="Source1" />
<Edge From="37" To="38" Label="Source1" />
<Edge From="38" To="39" Label="Source1" />
<Edge From="40" To="41" Label="Source1" />
<Edge From="41" To="42" Label="Source1" />
<Edge From="43" To="44" Label="Source1" />
<Edge From="45" To="46" Label="Source1" />
<Edge From="47" To="48" Label="Source1" />
</Edges>
</Workflow>
</WorkflowBuilder>Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working