fixed frontend and added timeseries
This commit is contained in:
1 parent
3c998d2f5c
commit
bbc9783961
4 files changed
+61
-10
No files matched your search
@@ -26,9 +26,13 @@ export function Extruder2ControlPage() {
|
||||
backPower,
|
||||
middleTemperature,
|
||||
middlePower,
|
||||
screwRpm,
|
||||
pressure,
|
||||
|
||||
motorCurrent,
|
||||
motorFrequency,
|
||||
motorScrewRpm,
|
||||
motorVoltage,
|
||||
|
||||
setExtruderMode,
|
||||
setBackHeatingTemperature,
|
||||
setFrontHeatingTemperature,
|
||||
@@ -170,7 +174,7 @@ export function Extruder2ControlPage() {
|
||||
label="Rpm"
|
||||
unit="rpm"
|
||||
renderValue={(value) => roundToDecimals(value, 0)}
|
||||
timeseries={screwRpm}
|
||||
timeseries={motorScrewRpm}
|
||||
/>
|
||||
|
||||
{state?.pressure_state?.wiring_error && (
|
||||
|
||||
@@ -22,11 +22,18 @@ import { useMemo } from "react";
|
||||
export const modeSchema = z.enum(["Standby", "Heat", "Extrude"]);
|
||||
export type Mode = z.infer<typeof modeSchema>;
|
||||
|
||||
export const liveMotorStatusDataSchema = z.object({
|
||||
screw_rpm: z.number(),
|
||||
frequency: z.number(),
|
||||
voltage: z.number(),
|
||||
current: z.number(),
|
||||
});
|
||||
export type MotorStatus = z.infer<typeof liveMotorStatusDataSchema>;
|
||||
/**
|
||||
* Consolidated live values event schema (60FPS data)
|
||||
*/
|
||||
export const liveValuesEventDataSchema = z.object({
|
||||
screw_rpm: z.number(),
|
||||
motor_status: liveMotorStatusDataSchema,
|
||||
pressure: z.number(),
|
||||
nozzle_temperature: z.number(),
|
||||
front_temperature: z.number(),
|
||||
@@ -174,7 +181,11 @@ export type Extruder2NamespaceStore = {
|
||||
defaultState: StateEvent | null;
|
||||
|
||||
// Time series data for live values
|
||||
screwRpm: TimeSeries;
|
||||
motorFrequency: TimeSeries;
|
||||
motorVoltage: TimeSeries;
|
||||
motorCurrent: TimeSeries;
|
||||
motorScrewRpm: TimeSeries;
|
||||
|
||||
pressure: TimeSeries;
|
||||
nozzleTemperature: TimeSeries;
|
||||
frontTemperature: TimeSeries;
|
||||
@@ -234,6 +245,18 @@ const { initialTimeSeries: backPower, insert: addBackPower } = createTimeSeries(
|
||||
ONE_HOUR,
|
||||
);
|
||||
|
||||
const { initialTimeSeries: motorCurrent, insert: addMotorCurrent } =
|
||||
createTimeSeries(TWENTY_MILLISECOND, ONE_SECOND, FIVE_SECOND, ONE_HOUR);
|
||||
|
||||
const { initialTimeSeries: motorVoltage, insert: addMotorVoltage } =
|
||||
createTimeSeries(TWENTY_MILLISECOND, ONE_SECOND, FIVE_SECOND, ONE_HOUR);
|
||||
|
||||
const { initialTimeSeries: motorFrequency, insert: addMotorFrequency } =
|
||||
createTimeSeries(TWENTY_MILLISECOND, ONE_SECOND, FIVE_SECOND, ONE_HOUR);
|
||||
|
||||
const { initialTimeSeries: motorScrewRpm, insert: addMotorScrewRpm } =
|
||||
createTimeSeries(TWENTY_MILLISECOND, ONE_SECOND, FIVE_SECOND, ONE_HOUR);
|
||||
|
||||
export function extruder2MessageHandler(
|
||||
store: StoreApi<Extruder2NamespaceStore>,
|
||||
throttledUpdater: ThrottledStoreUpdater<Extruder2NamespaceStore>,
|
||||
@@ -264,8 +287,20 @@ export function extruder2MessageHandler(
|
||||
const timestamp = event.ts;
|
||||
updateStore((state) => ({
|
||||
...state,
|
||||
screwRpm: addScrewRpm(state.screwRpm, {
|
||||
value: liveValuesEvent.data.screw_rpm,
|
||||
motorScrewRpm: addMotorScrewRpm(state.motorScrewRpm, {
|
||||
value: liveValuesEvent.data.motor_status.screw_rpm,
|
||||
timestamp,
|
||||
}),
|
||||
motorCurrent: addMotorCurrent(state.motorCurrent, {
|
||||
value: liveValuesEvent.data.motor_status.current,
|
||||
timestamp,
|
||||
}),
|
||||
motorVoltage: addMotorVoltage(state.motorVoltage, {
|
||||
value: liveValuesEvent.data.motor_status.voltage,
|
||||
timestamp,
|
||||
}),
|
||||
motorFrequency: addMotorFrequency(state.motorFrequency, {
|
||||
value: liveValuesEvent.data.motor_status.frequency,
|
||||
timestamp,
|
||||
}),
|
||||
pressure: addPressure(state.pressure, {
|
||||
@@ -321,7 +356,12 @@ export const createExtruder2NamespaceStore =
|
||||
return {
|
||||
state: null,
|
||||
defaultState: null,
|
||||
screwRpm,
|
||||
|
||||
motorCurrent,
|
||||
motorFrequency,
|
||||
motorScrewRpm,
|
||||
motorVoltage,
|
||||
|
||||
pressure,
|
||||
nozzleTemperature,
|
||||
frontTemperature,
|
||||
|
||||
@@ -41,7 +41,10 @@ export function useExtruder2() {
|
||||
const {
|
||||
state,
|
||||
defaultState,
|
||||
screwRpm,
|
||||
motorCurrent,
|
||||
motorFrequency,
|
||||
motorScrewRpm,
|
||||
motorVoltage,
|
||||
pressure,
|
||||
|
||||
nozzleTemperature,
|
||||
@@ -364,7 +367,11 @@ export function useExtruder2() {
|
||||
defaultState: defaultState?.data,
|
||||
|
||||
// Individual live values (TimeSeries)
|
||||
screwRpm,
|
||||
motorCurrent,
|
||||
motorFrequency,
|
||||
motorScrewRpm,
|
||||
motorVoltage,
|
||||
|
||||
pressure,
|
||||
nozzleTemperature,
|
||||
frontTemperature,
|
||||
|
||||
@@ -13,7 +13,7 @@ use uom::si::{
|
||||
};
|
||||
|
||||
/// Specifies all System environment Variables
|
||||
/// Register addresses are calculated as follows: Register-value 40002 -> address: 40002-40001 -> address:0x1
|
||||
/// Register addresses are calculated as follows: Register-value 40002 -> address: 40002-40001 -> actual address in request:0x1
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
enum MitsubishiCS80Register {
|
||||
/// Register 40002
|
||||
|
||||
Reference in new issue
Block a user