Changeset - 62dc1b3644a0
[Not reviewed]
default
0 2 0
drewp@bigasterisk.com - 8 months ago 2024-05-21 23:11:28
drewp@bigasterisk.com
collector client uses rdf types, not strings
2 files changed with 25 insertions and 9 deletions:
0 comments (0 inline, 0 general)
web/calibrate/Light9Calibrate.ts
Show inline comments
 
@@ -7,6 +7,8 @@ import { SyncedGraph } from "../SyncedGr
 
import { FindSafeExposure } from "./FindSafeExposure";
 
import { Light9Camera } from "./Light9Camera";
 
import { XyPlot } from "./XyPlot";
 
import { NamedNode } from "n3";
 
import { showRoot } from "../show_specific";
 
export { RdfdbSyncedGraph } from "../RdfdbSyncedGraph";
 
export { Light9Camera } from "./Light9Camera";
 
export { XyPlot } from "./XyPlot";
 
@@ -32,12 +34,16 @@ export class Light9Calibrate extends Lit
 
  collector: CollectorClient = new CollectorClient("calibrate");
 
  @query("light9-camera", true) cam?: Light9Camera;
 
  @query("xy-plot", true) plot?: XyPlot;
 
  @state() device: string;
 
  @state() device?: NamedNode;
 
  @state() calibrationSession?: NamedNode;
 
  constructor() {
 
    super();
 
    this.device = "http://light9.bigasterisk.com/theater/vet/device/parR3";
 
    getTopGraph().then((g) => {
 
      this.graph = g;
 
      const U = this.graph.U();
 
      this.calibrationSession = U(showRoot + "/calibration/session1");
 
      this.device = U("dev:parR3");
 
      this.graph.patchObject(this.calibrationSession, U("rdf:type"), U(":CalibrationSession"), this.calibrationSession);
 
    });
 
  }
 

	
 
@@ -46,7 +52,8 @@ export class Light9Calibrate extends Lit
 
      <h1>Calibrate</h1>
 
      <light9-camera></light9-camera>
 

	
 
      <p>Device to calibrate: [ ${this.device} ]</p>
 
      <p>Calibration session; [ ${this.calibrationSession?.value} ]</p>
 
      <p>Device to calibrate: [ ${this.device?.value} ]</p>
 

	
 
      <ol>
 
        <li><button @click=${this.setToFull}>Set to full</button></li>
 
@@ -68,12 +75,14 @@ export class Light9Calibrate extends Lit
 
      btn.disabled = false;
 
    }
 
  }
 

	
 
  async setToFull(ev: MouseEvent) {
 
    const U = this.graph.U();
 
    await this.withButtonSpinner(ev, async () => {
 
      this.collector.updateSettings([
 
        /// device,attr,value
 
        [this.device, "http://light9.bigasterisk.com/color", "#ffffff"],
 
        [this.device, "http://light9.bigasterisk.com/white", 1],
 
        [this.device!, U(":color"), this.graph.Literal("#ffffff")],
 
        [this.device!, U(":white"), this.graph.LiteralRoundedFloat(1)],
 
      ]);
 
    });
 
  }
 
@@ -84,17 +93,21 @@ export class Light9Calibrate extends Lit
 
      const expo = await algo.run();
 
    });
 
  }
 

	
 
  async setToZero(ev: MouseEvent) {
 
    const U = this.graph.U();
 
    await this.withButtonSpinner(ev, async () => {
 
      this.collector.updateSettings([
 
        [this.device, "http://light9.bigasterisk.com/color", "#000000"],
 
        [this.device, "http://light9.bigasterisk.com/white", 0],
 
        [this.device!, U(":color"), this.graph.Literal("#000000")],
 
        [this.device!, U(":white"), this.graph.LiteralRoundedFloat(0)],
 
      ]);
 
    });
 
  }
 

	
 
  async markTare(ev: MouseEvent) {
 
    await this.withButtonSpinner(ev, async () => {});
 
  }
 

	
 
  async calibrateLoop(ev: MouseEvent) {
 
    await this.withButtonSpinner(ev, async () => {});
 
  }
web/collector/CollectorClient.ts
Show inline comments
 
type Settings = Array<[string,string,string|number]>;
 
import { Literal, NamedNode } from "n3";
 

	
 
type Settings = Array<[NamedNode,NamedNode,Literal]>;
 

	
 
export class CollectorClient {
 
  private settings: Settings;
 
@@ -13,13 +15,14 @@ export class CollectorClient {
 
    }, 1000);
 
  }
 
  private async put() {
 
    // todo: WS
 
    await fetch("/service/collector/attrs", {
 
      method: "PUT",
 
      body: JSON.stringify({
 
        client: this.clientName,
 
        clientSession: "unused",
 
        sendTime: Date.now() / 1000,
 
        settings: this.settings,
 
        settings: this.settings.map(([d,da,v]) => [d.value,da.value,v.value])
 
      }),
 
    });
 
  }
0 comments (0 inline, 0 general)