"Initial_commit"
This commit is contained in:
131
types.ts
Normal file
131
types.ts
Normal file
@@ -0,0 +1,131 @@
|
||||
|
||||
export interface BMSBasicInfo {
|
||||
packVoltage: number; // Volts
|
||||
current: number; // Amps
|
||||
remainingCapacity: number; // Ah
|
||||
fullCapacity: number; // Ah
|
||||
cycleCount: number;
|
||||
productionDate: string;
|
||||
balanceStatus: number; // Bitfield
|
||||
protectionStatus: ProtectionStatus;
|
||||
version: number;
|
||||
rsoc: number; // %
|
||||
mosfetStatus: {
|
||||
charge: boolean;
|
||||
discharge: boolean;
|
||||
};
|
||||
ntcCount: number;
|
||||
ntcTemps: number[]; // Celsius
|
||||
}
|
||||
|
||||
export interface BMSCellInfo {
|
||||
voltages: number[]; // Volts
|
||||
}
|
||||
|
||||
// C# JbdDevice.cs의 레지스터 목록과 1:1 매칭되도록 확장
|
||||
export interface BMSConfig {
|
||||
// --- Basic Protection ---
|
||||
cellOvp: number; // 0x24 (mV)
|
||||
cellOvpRel: number; // 0x25 (mV)
|
||||
cellUvp: number; // 0x26 (mV)
|
||||
cellUvpRel: number; // 0x27 (mV)
|
||||
packOvp: number; // 0x20 (10mV)
|
||||
packOvpRel: number; // 0x21 (10mV)
|
||||
packUvp: number; // 0x22 (10mV)
|
||||
packUvpRel: number; // 0x23 (10mV)
|
||||
|
||||
// Temperatures (Basic)
|
||||
chgOt: number; // 0x18
|
||||
chgOtRel: number; // 0x19
|
||||
chgUt: number; // 0x1A
|
||||
chgUtRel: number; // 0x1B
|
||||
dsgOt: number; // 0x1C
|
||||
dsgOtRel: number; // 0x1D
|
||||
dsgUt: number; // 0x1E (C# mapping check needed, using std logic)
|
||||
dsgUtRel: number; // 0x1F
|
||||
|
||||
// Over Current
|
||||
chgOc: number; // 0x?? Depends on mapping, typically extended
|
||||
dsgOc: number;
|
||||
|
||||
// --- Delays (2 bytes split) ---
|
||||
// Format: [Delay1 (s/ms), Delay2 (s/ms)]
|
||||
cellVDelays: { cuvp: number; covp: number }; // 0x3D
|
||||
packVDelays: { puvp: number; povp: number }; // 0x3C
|
||||
chgTDelays: { chgut: number; chgot: number }; // 0x3A
|
||||
dsgTDelays: { dsgut: number; dsgot: number }; // 0x3B
|
||||
chgOcDelays: { delay: number; release: number }; // 0x3E
|
||||
dsgOcDelays: { delay: number; release: number }; // 0x3F
|
||||
|
||||
// --- High Protection ---
|
||||
covpHigh: number; // 0x36
|
||||
cuvpHigh: number; // 0x37
|
||||
|
||||
// --- Function Config (Bitfield 0x2D) ---
|
||||
funcConfig: number; // Raw uint16 value
|
||||
|
||||
// --- NTC Config (Bitfield 0x2E) ---
|
||||
ntcConfig: number; // Raw uint16 value
|
||||
|
||||
// --- Balance ---
|
||||
balStart: number; // 0x2A (mV)
|
||||
balWindow: number; // 0x2B (mV)
|
||||
|
||||
// --- Capacity & Misc ---
|
||||
designCapacity: number; // 0x10 (10mAh)
|
||||
cycleCapacity: number; // 0x11 (10mAh)
|
||||
dsgRate: number; // 0x14 (%)
|
||||
cap100: number; // 0x12
|
||||
cap80: number; // 0x32
|
||||
cap60: number; // 0x33
|
||||
cap40: number; // 0x34
|
||||
cap20: number; // 0x35
|
||||
cap0: number; // 0x13
|
||||
fetCtrl: number; // 0x30 (s)
|
||||
ledTimer: number; // 0x31 (s)
|
||||
|
||||
// --- Hardware / Misc ---
|
||||
shuntRes: number; // 0x2C (mOhm)
|
||||
cellCnt: number; // 0x2F
|
||||
cycleCnt: number; // 0x17
|
||||
serialNum: number; // 0x16
|
||||
|
||||
// --- Strings ---
|
||||
mfgName: string; // 0xA0
|
||||
deviceName: string; // 0xA1
|
||||
barcode: string; // 0xA2
|
||||
|
||||
// --- Date ---
|
||||
mfgDate: number; // 0x15 (Raw uint16 encoded)
|
||||
}
|
||||
|
||||
export interface ProtectionStatus {
|
||||
covp: boolean; // Cell Over Voltage Protection
|
||||
cuvp: boolean; // Cell Under Voltage Protection
|
||||
povp: boolean; // Pack Over Voltage Protection
|
||||
puvp: boolean; // Pack Under Voltage Protection
|
||||
chgot: boolean; // Charge Over Temp
|
||||
chgut: boolean; // Charge Under Temp
|
||||
dsgot: boolean; // Discharge Over Temp
|
||||
dsgut: boolean; // Discharge Under Temp
|
||||
chgoc: boolean; // Charge Over Current
|
||||
dsgoc: boolean; // Discharge Over Current
|
||||
sc: boolean; // Short Circuit
|
||||
afe: boolean; // AFE Error
|
||||
}
|
||||
|
||||
export enum ConnectionState {
|
||||
DISCONNECTED = 'DISCONNECTED',
|
||||
CONNECTING = 'CONNECTING',
|
||||
CONNECTED = 'CONNECTED',
|
||||
ERROR = 'ERROR',
|
||||
}
|
||||
|
||||
export interface SerialOptions {
|
||||
baudRate: number;
|
||||
dataBits: number;
|
||||
stopBits: number;
|
||||
parity: ParityType;
|
||||
}
|
||||
|
||||
export type ParityType = 'none' | 'even' | 'odd';
|
||||
Reference in New Issue
Block a user