implemented array support on client and server

This commit is contained in:
Martino Ferrari
2026-03-03 21:58:32 +01:00
parent a941563749
commit d3077e78ec
8 changed files with 208 additions and 83 deletions

View File

@@ -272,7 +272,9 @@ void DebugService::PatchRegistry() {
DebugSignalInfo *DebugService::RegisterSignal(void *memoryAddress,
TypeDescriptor type,
const char8 *name) {
const char8 *name,
uint8 numberOfDimensions,
uint32 numberOfElements) {
printf("<debug> registering: %s\n", name);
mutex.FastLock();
DebugSignalInfo *res = NULL_PTR(DebugSignalInfo *);
@@ -290,6 +292,8 @@ DebugSignalInfo *DebugService::RegisterSignal(void *memoryAddress,
res->memoryAddress = memoryAddress;
res->type = type;
res->name = name;
res->numberOfDimensions = numberOfDimensions;
res->numberOfElements = numberOfElements;
res->isTracing = false;
res->isForcing = false;
res->internalID = sigIdx;
@@ -1167,9 +1171,9 @@ void DebugService::Discover(BasicTCPSocket *client) {
DebugSignalInfo *sig = signals[aliases[i].signalIndex];
const char8 *typeName =
TypeDescriptor::GetTypeNameFromTypeDescriptor(sig->type);
line.Printf(" {\"name\": \"%s\", \"id\": %d, \"type\": \"%s\"",
line.Printf(" {\"name\": \"%s\", \"id\": %d, \"type\": \"%s\", \"dimensions\": %u, \"elements\": %u",
aliases[i].name.Buffer(), sig->internalID,
typeName ? typeName : "Unknown");
typeName ? typeName : "Unknown", sig->numberOfDimensions, sig->numberOfElements);
EnrichWithConfig(aliases[i].name.Buffer(), line);
line += "}";
s = line.Size();
@@ -1195,10 +1199,16 @@ void DebugService::Discover(BasicTCPSocket *client) {
const char8 *typeName = TypeDescriptor::GetTypeNameFromTypeDescriptor(
monitoredSignals[i].dataSource->GetSignalType(
monitoredSignals[i].signalIdx));
line.Printf(" {\"name\": \"%s\", \"id\": %u, \"type\": \"%s\"",
uint8 dims = 0;
uint32 elems = 1;
(void)monitoredSignals[i].dataSource->GetSignalNumberOfDimensions(monitoredSignals[i].signalIdx, dims);
(void)monitoredSignals[i].dataSource->GetSignalNumberOfElements(monitoredSignals[i].signalIdx, elems);
line.Printf(" {\"name\": \"%s\", \"id\": %u, \"type\": \"%s\", \"dimensions\": %u, \"elements\": %u",
monitoredSignals[i].path.Buffer(),
monitoredSignals[i].internalID,
typeName ? typeName : "Unknown");
typeName ? typeName : "Unknown", dims, elems);
EnrichWithConfig(monitoredSignals[i].path.Buffer(), line);
line += "}";
s = line.Size();