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;
}