diff --git a/OpenEphys.Onix1/ConfigureUclaMiniscopeV4.cs b/OpenEphys.Onix1/ConfigureUclaMiniscopeV4.cs index 74497aa..0415da4 100644 --- a/OpenEphys.Onix1/ConfigureUclaMiniscopeV4.cs +++ b/OpenEphys.Onix1/ConfigureUclaMiniscopeV4.cs @@ -135,7 +135,7 @@ override protected bool CheckLinkState(DeviceContext device) try { var ds90ub9x = device.Context.GetPassthroughDeviceContext(DeviceAddress << 8, typeof(DS90UB9x)); - ConfigureUclaMiniscopeV4Camera.ConfigureMiniscope(ds90ub9x); + ConfigureUclaMiniscopeV4Camera.ConfigureCameraSystem(ds90ub9x); } catch (oni.ONIException ex) { diff --git a/OpenEphys.Onix1/ConfigureUclaMiniscopeV4Camera.cs b/OpenEphys.Onix1/ConfigureUclaMiniscopeV4Camera.cs index 5be19dd..d2df8b8 100644 --- a/OpenEphys.Onix1/ConfigureUclaMiniscopeV4Camera.cs +++ b/OpenEphys.Onix1/ConfigureUclaMiniscopeV4Camera.cs @@ -140,7 +140,7 @@ public override IObservable Process(IObservable source device.WriteRegister(DS90UB9x.ENABLE, enable ? 1u : 0); // configure deserializer, chip states, and camera PLL - ConfigureMiniscope(device); + ConfigureCameraSystem(device); // configuration properties var atMega = new I2CRegisterContext(device, UclaMiniscopeV4.AtMegaAddress); @@ -167,7 +167,7 @@ public override IObservable Process(IObservable source }); } - internal static void ConfigureMiniscope(DeviceContext device) + internal static void ConfigureCameraSystem(DeviceContext device) { // configure deserializer device.WriteRegister(DS90UB9x.TRIGGEROFF, 0); diff --git a/OpenEphys.Onix1/UclaMiniscopeV4CameraData.cs b/OpenEphys.Onix1/UclaMiniscopeV4CameraData.cs index 0de8081..3cb9803 100644 --- a/OpenEphys.Onix1/UclaMiniscopeV4CameraData.cs +++ b/OpenEphys.Onix1/UclaMiniscopeV4CameraData.cs @@ -40,7 +40,6 @@ public unsafe override IObservable Generate() var imageBuffer = new short[UclaMiniscopeV4.SensorRows * UclaMiniscopeV4.SensorColumns]; var hubClockBuffer = new ulong[UclaMiniscopeV4.SensorRows]; var clockBuffer = new ulong[UclaMiniscopeV4.SensorRows]; - var awaitingFrameStart = true; var frameObserver = Observer.Create( frame => @@ -48,10 +47,9 @@ public unsafe override IObservable Generate() var payload = (UclaMiniscopeV4ImagerPayload*)frame.Data.ToPointer(); // Wait for first row - if (awaitingFrameStart && (payload->ImageRow[0] & 0x8000) == 0) - return; + if (sampleIndex == 0 && (payload->ImageRow[0] & 0x8000) == 0) + return; - awaitingFrameStart = false; Marshal.Copy(new IntPtr(payload->ImageRow), imageBuffer, sampleIndex * UclaMiniscopeV4.SensorColumns, UclaMiniscopeV4.SensorColumns); hubClockBuffer[sampleIndex] = payload->HubClock; clockBuffer[sampleIndex] = frame.Clock; @@ -63,7 +61,6 @@ public unsafe override IObservable Generate() hubClockBuffer = new ulong[UclaMiniscopeV4.SensorRows]; clockBuffer = new ulong[UclaMiniscopeV4.SensorRows]; sampleIndex = 0; - awaitingFrameStart = true; } }, observer.OnError,