#include "encodemodelcamera.h"

EncodeModelCamera::EncodeModelCamera(QObject *parent)
    : QObject{parent}
{
    cameraUDP = new QUdpSocket(this);
    //cameraUDP->bind(QHostAddress("198.18.0.1"),8080);

    cmdArray.insert(0,0xFA);
    cmdArray.insert(1,0xFA);
}

/**
 * @brief 发送三维建模相机指令
 * @param cmdDataArray 指令ID与负载数据
 */
void EncodeModelCamera::SendCMD(QByteArray cmdDataArray)
{
    cmdArray.clear();
    cmdArray.insert(0,0xFA);
    cmdArray.insert(1,0xFA);

    cmdArray.append(cmdDataArray);
    uint8_t* data = reinterpret_cast<uint8_t*>(cmdArray.data());
    uint16_t crc16 = calCRC16(data,cmdArray.size());

    QByteArray byteArray;
    QDataStream stream(&byteArray, QIODevice::WriteOnly);
    stream.setByteOrder(QDataStream::BigEndian);
    stream << crc16;
    cmdArray.append(byteArray);

    cameraUDP->writeDatagram(cmdArray,QHostAddress("127.0.0.1"),8080);
}