Skip to content

Commit

Permalink
Fix white balance slider
Browse files Browse the repository at this point in the history
  • Loading branch information
Juniormunk committed Oct 20, 2024
1 parent 0ef1c30 commit 30cfcea
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 13 deletions.
4 changes: 2 additions & 2 deletions photon-client/src/components/dashboard/tabs/InputTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,13 @@ const interactiveCols = computed(() =>
@input="(args) => useCameraSettingsStore().changeCurrentPipelineSetting({ cameraAutoWhiteBalance: args }, false)"
/>
<pv-slider
v-model="useCameraSettingsStore().currentPipelineSettings.whiteBalanceTemp"
v-model="useCameraSettingsStore().currentPipelineSettings.cameraWhiteBalanceTemp"
v-if="!useCameraSettingsStore().currentPipelineSettings.cameraAutoWhiteBalance"
label="White Balance Temperature"
:min="useCameraSettingsStore().minWhiteBalanceTemp"
:max="useCameraSettingsStore().maxWhiteBalanceTemp"
:slider-cols="interactiveCols"
@input="(args) => useCameraSettingsStore().changeCurrentPipelineSetting({ whiteBalanceTemp: args }, false)"
@input="(args) => useCameraSettingsStore().changeCurrentPipelineSetting({ cameraWhiteBalanceTemp: args }, false)"
/>

<pv-select
Expand Down
4 changes: 3 additions & 1 deletion photon-client/src/stores/settings/CameraSettingsStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,9 @@ export const useCameraSettingsStore = defineStore("cameraSettings", {
pipelineNicknames: d.pipelineNicknames,
currentPipelineIndex: d.currentPipelineIndex,
pipelineSettings: d.currentPipelineSettings,
cameraQuirks: d.cameraQuirks
cameraQuirks: d.cameraQuirks,
minWhiteBalanceTemp: d.minWhiteBalanceTemp,
maxWhiteBalanceTemp: d.maxWhiteBalanceTemp
}));
this.cameras = configuredCameras.length > 0 ? configuredCameras : [PlaceholderCameraSettings];
},
Expand Down
4 changes: 2 additions & 2 deletions photon-client/src/types/PipelineTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export interface PipelineSettings {
contourIntersection: number;

cameraAutoWhiteBalance: boolean;
whiteBalanceTemp: number;
cameraWhiteBalanceTemp: number;
}
export type ConfigurablePipelineSettings = Partial<
Omit<
Expand Down Expand Up @@ -142,7 +142,7 @@ export const DefaultPipelineSettings: Omit<
hsvSaturation: { first: 50, second: 255 },
contourIntersection: 1,
cameraAutoWhiteBalance: false,
whiteBalanceTemp: 4000,
cameraWhiteBalanceTemp: 4000,
};

export interface ReflectivePipelineSettings extends PipelineSettings {
Expand Down
11 changes: 7 additions & 4 deletions photon-client/src/types/SettingTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,15 +289,18 @@ export const PlaceholderCameraSettings: CameraSettings = {
quirks: {
AWBGain: false,
AdjustableFocus: false,
ArduOV9281: false,
ArduOV2311: false,
ArduOV9782: false,
ArduOV9281Controls: false,
ArduOV2311Controls: false,
ArduOV9782Controls: false,
ArduCamCamera: false,
CompletelyBroken: false,
FPSCap100: false,
Gain: false,
PiCam: false,
StickyFPS: false
StickyFPS: false,
InnoOV9281Controls: false,
LifeCamControls: false,
PsEyeControls: false
}
},
isCSICamera: false,
Expand Down
2 changes: 2 additions & 0 deletions photon-client/src/types/WebsocketDataTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ export interface WebsocketCameraSettingsUpdate {
cameraQuirks: QuirkyCamera;
minExposureRaw: number;
maxExposureRaw: number;
minWhiteBalanceTemp: number;
maxWhiteBalanceTemp: number;
}
export interface WebsocketNTUpdate {
connected: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ public class QuirkyCamera {
// PS3Eye
new QuirkyCamera(
0x1415, 0x2000, CameraQuirk.Gain, CameraQuirk.FPSCap100, CameraQuirk.PsEyeControls),
// OBS hack
new QuirkyCamera(-1, -1, CameraQuirk.CompletelyBroken),
// Logitech C925-e
new QuirkyCamera(0x85B, 0x46D, CameraQuirk.AdjustableFocus),
// Generic arducam. Since OV2311 can't be differentiated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public class CVPipelineSettings implements Cloneable {
public boolean outputShouldShow = true;

public boolean cameraAutoWhiteBalance = false;
public double whiteBalanceTemp = 4000;
public double cameraWhiteBalanceTemp = 4000;

@Override
public boolean equals(Object o) {
Expand All @@ -74,6 +74,7 @@ public boolean equals(Object o) {
&& Double.compare(that.cameraGain, cameraGain) == 0
&& Double.compare(that.cameraRedGain, cameraRedGain) == 0
&& Double.compare(that.cameraBlueGain, cameraBlueGain) == 0
&& Double.compare(that.cameraWhiteBalanceTemp, cameraWhiteBalanceTemp) == 0
&& cameraVideoModeIndex == that.cameraVideoModeIndex
&& ledMode == that.ledMode
&& pipelineType == that.pipelineType
Expand All @@ -98,6 +99,7 @@ public int hashCode() {
cameraGain,
cameraRedGain,
cameraBlueGain,
cameraWhiteBalanceTemp,
cameraVideoModeIndex,
streamingFrameDivisor,
ledMode,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ boolean setPipeline(int index) {
pipelineSettings.cameraBlueGain = -1;

// All other cameras (than picams) should support AWB temp
visionSource.getSettables().setWhiteBalanceTemp(pipelineSettings.whiteBalanceTemp);
visionSource.getSettables().setWhiteBalanceTemp(pipelineSettings.cameraWhiteBalanceTemp);
visionSource.getSettables().setAutoWhiteBalance(pipelineSettings.cameraAutoWhiteBalance);
}

Expand Down

0 comments on commit 30cfcea

Please sign in to comment.