Esempio n. 1
0
WirelessPacket buildAutoCalCompletionResponse(int nodeAddress)
{
	ByteStream payload;
	payload.append_uint16(0x0064);	//cmd id
	payload.append_uint8(0x00);	//completion flag
	payload.append_uint8(0x00);	//ch1 error flag
	payload.append_float(0.0f);	//ch1 offset
	payload.append_uint8(0x00);	//ch2 error flag
	payload.append_float(0.0f);	//ch2 offset
	payload.append_uint8(0x00);	//ch3 error flag
	payload.append_float(0.0f);	//ch3 offset
	payload.append_float(20.5f);//temperature

	//build the correct packet response first
	WirelessPacket packet;
	packet.deliveryStopFlags(DeliveryStopFlags::fromByte(0x07));
	packet.type(WirelessPacket::packetType_reply);
	packet.nodeAddress(nodeAddress);
	packet.payload(payload.data());

	return packet;
}
Esempio n. 2
0
WirelessPacket buildAutoCalNodeRecResponse(int nodeAddress)
{
	ByteStream payload;
	payload.append_uint16(0x0064);	//cmd id
	payload.append_uint8(0x00);	//status flag
	payload.append_float(5.0f);	//time to completion

	WirelessPacket packet;
	packet.deliveryStopFlags(DeliveryStopFlags::fromByte(0x07));
	packet.type(WirelessPacket::packetType_NodeReceived);
	packet.nodeAddress(nodeAddress);
	packet.payload(payload.data());

	return packet;
}
Esempio n. 3
0
    ByteStream AutoBalance_v2::buildCommand(NodeAddress nodeAddress, uint8 channelNumber, float targetPercent)
    {
        //build the command ByteStream
        ByteStream cmd;
        cmd.append_uint8(0xAA);                                               //Start of Packet
        cmd.append_uint8(0x05);                                               //Delivery Stop Flag
        cmd.append_uint8(0x00);                                               //App Data Type
        cmd.append_uint16(nodeAddress);                                       //Node address
        cmd.append_uint8(0x07);                                               //Payload Length
        cmd.append_uint16(WirelessProtocol::cmdId_autoBalance_v2);            //Command Id
        cmd.append_uint8(channelNumber);                                      //Channel Number
        cmd.append_float(targetPercent);                                      //Target Percentage Value

        //calculate the checksum of bytes 2-13
        uint16 checksum = cmd.calculateSimpleChecksum(1, 12);

        cmd.append_uint16(checksum);        //Checksum

        return cmd;
    }