-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9218c86
commit d67c956
Showing
4 changed files
with
159 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
Car Damage Packet | ||
|
||
This packet details car damage parameters for all the cars in the race. | ||
|
||
Frequency: 2 per second | ||
Size: 948 bytes | ||
Version: 1 | ||
|
||
struct CarDamageData | ||
{ | ||
float m_tyresWear[4]; // Tyre wear (percentage) | ||
uint8 m_tyresDamage[4]; // Tyre damage (percentage) | ||
uint8 m_brakesDamage[4]; // Brakes damage (percentage) | ||
uint8 m_frontLeftWingDamage; // Front left wing damage (percentage) | ||
uint8 m_frontRightWingDamage; // Front right wing damage (percentage) | ||
uint8 m_rearWingDamage; // Rear wing damage (percentage) | ||
uint8 m_floorDamage; // Floor damage (percentage) | ||
uint8 m_diffuserDamage; // Diffuser damage (percentage) | ||
uint8 m_sidepodDamage; // Sidepod damage (percentage) | ||
uint8 m_drsFault; // Indicator for DRS fault, 0 = OK, 1 = fault | ||
uint8 m_ersFault; // Indicator for ERS fault, 0 = OK, 1 = fault | ||
uint8 m_gearBoxDamage; // Gear box damage (percentage) | ||
uint8 m_engineDamage; // Engine damage (percentage) | ||
uint8 m_engineMGUHWear; // Engine wear MGU-H (percentage) | ||
uint8 m_engineESWear; // Engine wear ES (percentage) | ||
uint8 m_engineCEWear; // Engine wear CE (percentage) | ||
uint8 m_engineICEWear; // Engine wear ICE (percentage) | ||
uint8 m_engineMGUKWear; // Engine wear MGU-K (percentage) | ||
uint8 m_engineTCWear; // Engine wear TC (percentage) | ||
uint8 m_engineBlown; // Engine blown, 0 = OK, 1 = fault | ||
uint8 m_engineSeized; // Engine seized, 0 = OK, 1 = fault | ||
} | ||
|
||
struct PacketCarDamageData | ||
{ | ||
PacketHeader m_header; // Header | ||
|
||
CarDamageData m_carDamageData[22]; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
import {Parser} from 'binary-parser'; | ||
import {PacketCarDamageData} from 'CarDamage/types'; | ||
import {PacketHeaderParser} from '../../PacketHeader/parser'; | ||
|
||
import {F1Parser} from '../../f1.parser'; | ||
|
||
export class CarDamageDataParser extends F1Parser { | ||
constructor() { | ||
super(); | ||
this.array('m_tyresWear', {length: 4, type: new Parser().floatle('')}) | ||
.array('m_tyresDamage', {length: 4, type: new Parser().uint8('')}) | ||
.array('m_brakesDamage', {length: 4, type: new Parser().uint8('')}) | ||
.uint8('m_frontLeftWingDamage') | ||
.uint8('m_frontRightWingDamage') | ||
.uint8('m_rearWingDamage') | ||
.uint8('m_floorDamage') | ||
.uint8('m_diffuserDamage') | ||
.uint8('m_sidepodDamage') | ||
.uint8('m_drsFault') | ||
.uint8('m_ersFault') | ||
.uint8('m_gearBoxDamage') | ||
.uint8('m_engineDamage') | ||
.uint8('m_engineMGUHWear') | ||
.uint8('m_engineESWear') | ||
.uint8('m_engineCEWear') | ||
.uint8('m_engineICEWear') | ||
.uint8('m_engineMGUKWear') | ||
.uint8('m_engineTCWear') | ||
.uint8('m_engineBlown') | ||
.uint8('m_engineSeized'); | ||
} | ||
} | ||
|
||
export class PacketCarDamageDataParser extends F1Parser { | ||
data: PacketCarDamageData; | ||
|
||
constructor(buffer: Buffer, bigintEnabled: boolean) { | ||
super(); | ||
this.endianess('little') | ||
.nest('m_header', { | ||
type: new PacketHeaderParser(bigintEnabled), | ||
}) | ||
.array('m_carDamageData', { | ||
length: 22, | ||
type: new CarDamageDataParser(), | ||
}); | ||
|
||
this.data = this.fromBuffer(buffer) as PacketCarDamageData; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
import {PacketHeader} from '../../PacketHeader/types'; | ||
|
||
/* | ||
struct CarDamageData | ||
{ | ||
float m_tyresWear[4]; // Tyre wear (percentage) | ||
uint8 m_tyresDamage[4]; // Tyre damage (percentage) | ||
uint8 m_brakesDamage[4]; // Brakes damage (percentage) | ||
uint8 m_frontLeftWingDamage; // Front left wing damage (percentage) | ||
uint8 m_frontRightWingDamage; // Front right wing damage (percentage) | ||
uint8 m_rearWingDamage; // Rear wing damage (percentage) | ||
uint8 m_floorDamage; // Floor damage (percentage) | ||
uint8 m_diffuserDamage; // Diffuser damage (percentage) | ||
uint8 m_sidepodDamage; // Sidepod damage (percentage) | ||
uint8 m_drsFault; // Indicator for DRS fault, 0 = OK, 1 = fault | ||
+ uint8 m_ersFault; // Indicator for ERS fault, 0 = OK, 1 = fault | ||
uint8 m_gearBoxDamage; // Gear box damage (percentage) | ||
uint8 m_engineDamage; // Engine damage (percentage) | ||
uint8 m_engineMGUHWear; // Engine wear MGU-H (percentage) | ||
uint8 m_engineESWear; // Engine wear ES (percentage) | ||
uint8 m_engineCEWear; // Engine wear CE (percentage) | ||
uint8 m_engineICEWear; // Engine wear ICE (percentage) | ||
uint8 m_engineMGUKWear; // Engine wear MGU-K (percentage) | ||
uint8 m_engineTCWear; // Engine wear TC (percentage) | ||
+ uint8 m_engineBlown; // Engine blown, 0 = OK, 1 = fault | ||
+ uint8 m_engineSeized; // Engine seized, 0 = OK, 1 = fault | ||
} | ||
*/ | ||
export interface CarDamageData { | ||
m_tyresWear: number[]; | ||
m_tyresDamage: number[]; | ||
m_brakesDamage: number[]; | ||
m_frontLeftWingDamage: number; | ||
m_frontRightWingDamage: number; | ||
m_rearWingDamage: number; | ||
m_floorDamage: number; | ||
m_diffuserDamage: number; | ||
m_sidepodDamage: number; | ||
m_drsFault: number; | ||
m_ersFault: number; | ||
m_gearBoxDamage: number; | ||
m_engineDamage: number; | ||
m_engineMGUHWear: number; | ||
m_engineESWear: number; | ||
m_engineCEWear: number; | ||
m_engineICEWear: number; | ||
m_engineMGUKWear: number; | ||
m_engineTCWear: number; | ||
m_engineBlown: number; | ||
m_engineSeized: number; | ||
} | ||
|
||
/* | ||
struct PacketCarDamageData | ||
{ | ||
PacketHeader m_header; // Header | ||
CarDamageData m_carDamageData[22]; | ||
}; | ||
*/ | ||
export interface PacketCarDamageData { | ||
m_header: PacketHeader; | ||
m_carDamageData: CarDamageData[]; | ||
} |