Skip to content

Commit d06bfcf

Browse files
more ux for calibrations
1 parent 6327951 commit d06bfcf

File tree

8 files changed

+37
-9
lines changed

8 files changed

+37
-9
lines changed

core/pioreactor/web/static/asset-manifest.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"files": {
33
"main.css": "/static/static/css/main.9c7a48b7.css",
4-
"main.js": "/static/static/js/main.16c4b260.js",
4+
"main.js": "/static/static/js/main.52ca6c09.js",
55
"static/media/pioreactor_cloud.webp": "/static/static/media/pioreactor_cloud.b15b29e435797dc69d76.webp",
66
"static/media/roboto-all-500-normal.woff": "/static/static/media/roboto-all-500-normal.0ab669b7a0d19b178f57.woff",
77
"static/media/roboto-all-700-normal.woff": "/static/static/media/roboto-all-700-normal.a457fde362a540fcadff.woff",
@@ -30,10 +30,10 @@
3030
"static/media/roboto-greek-ext-700-normal.woff2": "/static/static/media/roboto-greek-ext-700-normal.bd9854c751441ccc1a70.woff2",
3131
"index.html": "/static/index.html",
3232
"main.9c7a48b7.css.map": "/static/static/css/main.9c7a48b7.css.map",
33-
"main.16c4b260.js.map": "/static/static/js/main.16c4b260.js.map"
33+
"main.52ca6c09.js.map": "/static/static/js/main.52ca6c09.js.map"
3434
},
3535
"entrypoints": [
3636
"static/css/main.9c7a48b7.css",
37-
"static/js/main.16c4b260.js"
37+
"static/js/main.52ca6c09.js"
3838
]
39-
}
39+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/static/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Pioreactor"/><link rel="apple-touch-icon" href="/static/logo192.png"/><link rel="manifest" href="/static/manifest.json"/><script defer="defer" src="/static/static/js/main.16c4b260.js"></script><link href="/static/static/css/main.9c7a48b7.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
1+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/static/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Pioreactor"/><link rel="apple-touch-icon" href="/static/logo192.png"/><link rel="manifest" href="/static/manifest.json"/><script defer="defer" src="/static/static/js/main.52ca6c09.js"></script><link href="/static/static/css/main.9c7a48b7.css" rel="stylesheet"></head><body><div id="root"></div></body></html>

core/pioreactor/web/static/static/js/main.16c4b260.js renamed to core/pioreactor/web/static/static/js/main.52ca6c09.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/pioreactor/web/static/static/js/main.16c4b260.js.LICENSE.txt renamed to core/pioreactor/web/static/static/js/main.52ca6c09.js.LICENSE.txt

File renamed without changes.

core/pioreactor/web/static/static/js/main.16c4b260.js.map renamed to core/pioreactor/web/static/static/js/main.52ca6c09.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src/SingleCalibrationPage.jsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,13 @@ function formatCurve(curveData) {
109109
if (curveData.type === "spline") {
110110
return formatSpline(curveData);
111111
}
112+
if (curveData.type === "akima") {
113+
const { knots } = curveData;
114+
if (!Array.isArray(knots)) {
115+
return "Invalid Akima data";
116+
}
117+
return `Akima interpolator (${knots.length} knots)`;
118+
}
112119
if (curveData.type === "poly") {
113120
if (!Array.isArray(curveData.coefficients)) {
114121
return "Invalid polynomial data";

frontend/src/__tests__/curve_utils.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
evaluatePolynomial,
33
evaluateSpline,
4+
evaluateAkima,
45
evaluateCurve,
56
generateCurveData,
67
} from "../curve_utils";
@@ -23,13 +24,26 @@ describe("curve_utils", () => {
2324
expect(evaluateSpline(1.5, splineData)).toBeCloseTo(0.5);
2425
});
2526

27+
test("evaluateAkima evaluates segment with local coordinates", () => {
28+
const akimaData = {
29+
knots: [0, 1, 2],
30+
coefficients: [
31+
[0, 1, 0, 0],
32+
[1, -1, 0, 0],
33+
],
34+
};
35+
expect(evaluateAkima(0.5, akimaData)).toBeCloseTo(0.5);
36+
expect(evaluateAkima(1.5, akimaData)).toBeCloseTo(0.5);
37+
});
38+
2639
test("evaluateCurve selects spline or polynomial", () => {
2740
const splineData = {
2841
type: "spline",
2942
knots: [0, 1],
3043
coefficients: [[1, 1, 0, 0]],
3144
};
3245
expect(evaluateCurve(0.25, splineData)).toBeCloseTo(1.25);
46+
expect(evaluateCurve(0.25, { ...splineData, type: "akima" })).toBeCloseTo(1.25);
3347
expect(evaluateCurve(2, { type: "poly", coefficients: [1, 0] })).toBeCloseTo(2);
3448
});
3549

frontend/src/curve_utils.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,20 @@ export function evaluateSpline(x, splineData) {
4848
return a + b * u + c * u * u + d * u * u * u;
4949
}
5050

51+
export function evaluateAkima(x, akimaData) {
52+
return evaluateSpline(x, akimaData);
53+
}
54+
5155
export function evaluateCurve(x, curveData) {
5256
if (!curveData || Array.isArray(curveData)) {
5357
return null;
5458
}
5559
if (curveData.type === "spline") {
5660
return evaluateSpline(x, curveData);
5761
}
62+
if (curveData.type === "akima") {
63+
return evaluateAkima(x, curveData);
64+
}
5865
if (curveData.type === "poly") {
5966
return evaluatePolynomial(x, curveData);
6067
}

0 commit comments

Comments
 (0)