76 lines
1.5 KiB
TypeScript
76 lines
1.5 KiB
TypeScript
export interface AMSMessage {
|
|
type: 'error' | 'status' | 'slaveStatus' | 'slaveLog' | 'shuntCurrentLog' | 'shuntVoltage1Log' | 'shuntVoltage2Log';
|
|
}
|
|
|
|
export interface AMSError extends AMSMessage {
|
|
type: 'error';
|
|
|
|
kind: number;
|
|
arg: number;
|
|
}
|
|
|
|
export enum AMSState {
|
|
TS_INACTIVE = 0,
|
|
TS_ACTIVE = 1,
|
|
TS_PRECHARGE = 2,
|
|
TS_DISCHARGE = 3,
|
|
TS_ERROR = 4
|
|
}
|
|
|
|
export interface AMSStatus extends AMSMessage {
|
|
type: 'status';
|
|
|
|
state: AMSState;
|
|
sdcClosed: boolean;
|
|
soc: number;
|
|
minCellVolt: number;
|
|
maxCellTemp: number;
|
|
imdOK: boolean;
|
|
// TODO: IMD state & R_iso
|
|
}
|
|
|
|
export interface SlaveStatus extends AMSMessage {
|
|
type: 'slaveStatus';
|
|
|
|
slaveId: number;
|
|
error: boolean;
|
|
minCellVolt: number;
|
|
maxCellVolt: number;
|
|
maxTemp: number;
|
|
soc: number;
|
|
}
|
|
|
|
export interface SlaveLog extends AMSMessage {
|
|
type: 'slaveLog';
|
|
|
|
slaveId: number;
|
|
|
|
logType: 'voltage' | 'lastCell' | 'temperature';
|
|
}
|
|
|
|
export interface SlaveLogVoltage extends SlaveLog {
|
|
logType: 'voltage';
|
|
|
|
startIndex: number;
|
|
voltages: [number, number, number, number];
|
|
}
|
|
|
|
export interface SlaveLogLastCell extends SlaveLog {
|
|
logType: 'lastCell';
|
|
|
|
voltage: number;
|
|
failed_temp_sensors: number;
|
|
}
|
|
|
|
export interface SlaveLogTemperature extends SlaveLog {
|
|
logType: 'temperature';
|
|
|
|
startIndex: number;
|
|
temperatures: [number, number, number, number, number, number, number, number];
|
|
}
|
|
|
|
export interface ShuntLog extends AMSMessage {
|
|
type: 'shuntCurrentLog' | 'shuntVoltage1Log' | 'shuntVoltage2Log';
|
|
|
|
value: number;
|
|
} |