83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
#pragma once
|
|
#include "../float16/float16.h"
|
|
#include "CoreThing.h"
|
|
#include "Participant.h"
|
|
|
|
namespace Passer::Control {
|
|
|
|
class IMessage {
|
|
public:
|
|
virtual unsigned char Serialize(unsigned char *buffer);
|
|
|
|
static bool SendMsg(Participant *client, IMessage msg);
|
|
};
|
|
|
|
class InvestigateMsg : public IMessage {
|
|
public:
|
|
static const unsigned char id = 0x81;
|
|
static const unsigned char length = 3;
|
|
unsigned char networkId;
|
|
unsigned char thingId;
|
|
|
|
InvestigateMsg(unsigned char networkId, unsigned char thingId);
|
|
|
|
virtual unsigned char Serialize(unsigned char *buffer) override;
|
|
|
|
static bool Send(Participant *client, unsigned char networkId,
|
|
unsigned char thingId);
|
|
};
|
|
|
|
class ThingMsg : public IMessage {
|
|
public:
|
|
static const unsigned char id = 0x80;
|
|
static const unsigned char length = 5;
|
|
unsigned char networkId;
|
|
unsigned char thingId;
|
|
unsigned char thingType;
|
|
unsigned char parentId;
|
|
|
|
ThingMsg(unsigned char networkId, unsigned char thingId,
|
|
unsigned char thingType, unsigned char parentId);
|
|
|
|
virtual unsigned char Serialize(unsigned char *buffer) override;
|
|
|
|
static bool Send(Participant *client, unsigned char networkId,
|
|
unsigned char thingId, unsigned char thingType,
|
|
unsigned char parentId);
|
|
};
|
|
|
|
class NameMsg : public IMessage {
|
|
public:
|
|
static const unsigned char id = 0x91;
|
|
static const unsigned char length = 4;
|
|
unsigned char networkId;
|
|
unsigned char thingId;
|
|
unsigned char nameLength;
|
|
const char *name;
|
|
|
|
NameMsg(unsigned char networkId, unsigned char thingId, const char *name,
|
|
unsigned char nameLength);
|
|
|
|
virtual unsigned char Serialize(unsigned char *buffer) override;
|
|
|
|
static bool Send(Participant *client, CoreThing *thing,
|
|
unsigned char nameLength);
|
|
};
|
|
|
|
class ModelUrlMsg : public IMessage {
|
|
public:
|
|
static const unsigned char id = 0x90;
|
|
unsigned char networkId;
|
|
unsigned char thingId;
|
|
float scale;
|
|
unsigned char urlLength;
|
|
const char *url;
|
|
|
|
ModelUrlMsg(unsigned char networkId, unsigned char thingId,
|
|
unsigned char urlLegth, const char *url, float scale = 1);
|
|
|
|
virtual unsigned char Serialize(unsigned char *buffer) override;
|
|
};
|
|
|
|
} // namespace Passer::Control
|
|
using namespace Passer::Control; |