Помогите правильно сделать архитектуру используя SOLID

Софт на Qt

Вводные данные: есть тот кто передает и принимает данные (socket)

Но мы упростим

struct Net {

bool sendData (const QByteArray &data);

signals:

void receviedData (const QByteArray &data);

}

Первый уровень это протокол сервиса.

enum class CommandId : quint8 {

Command1,

Command2

}

struct ServicePacket {

CommandId id;

QByteArray data;

}

id это номер команды, data любые данные которые нужный для этой команды

Теперь сами команды

struct Command1 {

quint64 time;

QString cmdData;

}

struct Command2 {

QString status;

}

ServicePacket  Может иметь формат бинарный, и может иметь формат Json

В случае с бинаркой

struct ServicePacket {

CommandId id;

QByteArray data;

}

Для Json

struct ServicePacket {

CommandId id;

QJsonValue data;

}

3 попытка реализации лежит в аттаче

Мне кажется я что-то сильно путаю и каждый раз прихожу в тупик, то не могу перекодировать принятые пакеты, то закодировать.

Мне нужны подробные объяснения что я не так делаю. с рабочим примером типа как в аттаче, но там ошибки потому что я не дописал, первые 3 версии были также ужасны.

4 года назад
id2606
41 год
9 лет в сервисе
Был
3 года назад

Заявки фрилансеров

Нет заявок фрилансеров
  • Похожие заказы

  • $150

    Разработчик на C# для реализации не сложного софта - срочно! Бюджет 150$ - оплата по факту готовности, аванса не будет Но передача исходников, только после оплаты Срок 2 дня на реализацию ...

    Закрыт
    4 года назад
  • $500

    Нам необходимо выполнить скрипт (бот), который будет парсить сеть эфира и находить нужные нам события.  Один из таких определения наличия ликвидности на бирже (DEX) Uniswap.  Если события верны, и нужен параметр найден выполняется ...

    Прикладное ПОнет заявок
    Закрыт
    4 года назад
  • $25

    Необходимо создать чат-бот для Viber для приёма заявок (Вроде фриланс биржи). В боте нужно реализовать 2 сценария: 1 - для клиентов, 2 - для исполнителей. Для клиентов: человек заходит в бот, ...

    Закрыт
    4 года назад
  • На входе имеем фотографии листов натурального камня произвольной формы и размера, но плоские. На них наклеены базовые метки на определенном расстоянии (например 4 точки, которые образуют квадрат 1м на 1м).  Необходимо разработать ...

    Закрыт
    4 года назад
  • Разработать многопоточное приложение с графическим пользовательским интерфейсом, определяющее приближенно методом Монте-Карло величину числа π (3.1415…). Приложение содержит один головной поток, поддерживающий элементы GUI, и произвольное количество потоков-генераторов, определяющих в непрерывном режиме искомую величину π. ...

    Закрыт
    4 года назад
  • Нежен бот котороы в веб-приложении фифа 21 покупает игроков по заданным параметром, далее продает его по заданным параметрам, либо сохраняет в клубе, либо сам ищет на рынке минимальную цену и выставляет его на рынок. Нужно ...

    Прикладное ПОнет заявок
    Закрыт
    4 года назад