Fix SB persist

This commit is contained in:
2025-06-19 16:05:54 +02:00
parent 390edd29b8
commit 2047c84d8d
5 changed files with 59 additions and 57 deletions
+28 -14
View File
@@ -502,26 +502,36 @@ int receiveData(const char* buf) {
switch(mode) {
// SB Entry
case 0: {
if (!document.HasMember("cargo") || !document.HasMember("CGTarget") || !document.HasMember("plannedZFW") || !document.HasMember("plannedGW")) return -1;
unsigned int cargo = document["cargo"].GetInt();
double CGTarget = document["CGTarget"].GetDouble();
if (UserData->isCargo) {
targetFPayloadData->CGTarget = CGTarget;
targetFPayloadData->sbPlanned.ZFW = document["plannedZFW"].GetDouble();
targetFPayloadData->sbPlanned.GW = document["plannedGW"].GetDouble();
if(document.HasMember("CGTarget"))
targetFPayloadData->CGTarget = document["CGTarget"].GetDouble();
if (document.HasMember("plannedZFW"))
targetFPayloadData->sbPlanned.ZFW = document["plannedZFW"].GetDouble();
if (document.HasMember("plannedGW"))
targetFPayloadData->sbPlanned.GW = document["plannedGW"].GetDouble();
if (document.HasMember("cargo"))
targetFPayloadData->sbPlanned.cargo = document["cargo"].GetInt();
distribute(targetFPayloadData, liveFuelData, cargo, UserData->isImperial, UserData->isER);
distribute(targetFPayloadData, liveFuelData, targetFPayloadData->sbPlanned.cargo, UserData->isImperial, UserData->isER);
}
else {
if (!document.HasMember("numPax")) return -1;
unsigned short numPax = document["numPax"].GetInt();
if (document.HasMember("CGTarget"))
targetPaxPayloadData->CGTarget = document["CGTarget"].GetDouble();
targetPaxPayloadData->CGTarget = CGTarget;
targetPaxPayloadData->sbPlanned.ZFW = document["plannedZFW"].GetDouble();
targetPaxPayloadData->sbPlanned.GW = document["plannedGW"].GetDouble();
if (document.HasMember("plannedZFW"))
targetPaxPayloadData->sbPlanned.ZFW = document["plannedZFW"].GetDouble();
if (document.HasMember("plannedGW"))
targetPaxPayloadData->sbPlanned.GW = document["plannedGW"].GetDouble();
distribute(targetPaxPayloadData, liveFuelData, numPax, cargo, UserData->isImperial, UserData->isER);
if (document.HasMember("numPax"))
targetPaxPayloadData->sbPlanned.pax = document["numPax"].GetInt();
if (document.HasMember("cargo"))
targetPaxPayloadData->sbPlanned.cargo = document["cargo"].GetInt();
distribute(targetPaxPayloadData, liveFuelData, targetPaxPayloadData->sbPlanned.pax, targetPaxPayloadData->sbPlanned.cargo, UserData->isImperial,
UserData->isER);
}
break;
}
@@ -809,6 +819,10 @@ void sendData () {
// SB Planned
sbPlanned.AddMember("ZFW", UserData->isCargo ? targetFPayloadData->sbPlanned.ZFW: targetPaxPayloadData->sbPlanned.ZFW, allocator);
sbPlanned.AddMember("GW", UserData->isCargo ? targetFPayloadData->sbPlanned.GW : targetPaxPayloadData->sbPlanned.GW, allocator);
sbPlanned.AddMember("cargo", UserData->isCargo ? targetFPayloadData->sbPlanned.cargo : targetPaxPayloadData->sbPlanned.cargo, allocator);
if (!UserData->isCargo) {
sbPlanned.AddMember("pax", targetPaxPayloadData->sbPlanned.pax, allocator);
}
// Construct document
document.AddMember("livePayload", livePayload.Move(), allocator);
+3
View File
@@ -190,6 +190,8 @@ typedef struct {
struct sbPlanned {
double ZFW;
double GW;
unsigned short pax;
unsigned int cargo;
} sbPlanned;
} paxPayloadData_t;
typedef struct {
@@ -250,6 +252,7 @@ typedef struct {
struct sbPlanned {
double ZFW;
double GW;
unsigned int cargo;
} sbPlanned;
} fPayloadData_t;
typedef struct {