修改了装置重启方式,去除了外部调用的校验流程,现在直接在内部自动完成。
新增了装置升级的正式流程。
This commit is contained in:
@@ -681,6 +681,80 @@ std::vector<unsigned char> generate_preupgrade_message()
|
||||
return GetMsg(DataBuf, static_cast<unsigned char>(MsgRequestType::Request_Read_RunningInformation));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param data <20><>ǰ֡<C7B0><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param updateCount <20><>ǰ֡<C7B0><D6A1><EFBFBD><EFBFBD>
|
||||
* @param updateSize <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ܴ<EFBFBD>С
|
||||
* @param count <20><>֡<EFBFBD><D6A1>
|
||||
* @param crc CRCУ<43><D0A3>ֵ
|
||||
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
std::vector<unsigned char> generate_upgrade_start_message(const std::vector<unsigned char>& data,
|
||||
std::uint32_t updateCount,
|
||||
std::uint32_t updateSize,
|
||||
std::uint32_t count,
|
||||
std::uint32_t crc)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>44<34>ֽ<EFBFBD>ͷ<EFBFBD><CDB7> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
|
||||
std::vector<unsigned char> DataBuf(44 + data.size(), 0x00);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嵽44<34>ֽ<EFBFBD>ͷ<EFBFBD><CDB7>֮<EFBFBD><D6AE>
|
||||
std::copy(data.begin(), data.end(), DataBuf.begin() + 44);
|
||||
|
||||
DataBuf[0] = 0x00; // У<>鷽ʽ 0-crcУ<63><D0A3> 1-md5У<35><D0A3>
|
||||
DataBuf[1] = 0x00; // <20><><EFBFBD><EFBFBD>
|
||||
DataBuf[2] = 0x00; // <20><><EFBFBD><EFBFBD>
|
||||
|
||||
// 4<>ֽڵ<D6BD>ǰ֡<C7B0><D6A1><EFBFBD><EFBFBD>
|
||||
DataBuf[3] = static_cast<unsigned char>(((updateCount + 1) >> 24) & 0xFF);
|
||||
DataBuf[4] = static_cast<unsigned char>(((updateCount + 1) >> 16) & 0xFF);
|
||||
DataBuf[5] = static_cast<unsigned char>(((updateCount + 1) >> 8) & 0xFF);
|
||||
DataBuf[6] = static_cast<unsigned char>((updateCount + 1) & 0xFF);
|
||||
|
||||
// 4<>ֽ<EFBFBD><D6BD><EFBFBD>֡<EFBFBD><D6A1>
|
||||
DataBuf[7] = static_cast<unsigned char>((count >> 24) & 0xFF);
|
||||
DataBuf[8] = static_cast<unsigned char>((count >> 16) & 0xFF);
|
||||
DataBuf[9] = static_cast<unsigned char>((count >> 8) & 0xFF);
|
||||
DataBuf[10] = static_cast<unsigned char>(count & 0xFF);
|
||||
|
||||
// 4<>ֽ<EFBFBD><D6BD>ܴ<EFBFBD>С
|
||||
DataBuf[11] = static_cast<unsigned char>((updateSize >> 24) & 0xFF);
|
||||
DataBuf[12] = static_cast<unsigned char>((updateSize >> 16) & 0xFF);
|
||||
DataBuf[13] = static_cast<unsigned char>((updateSize >> 8) & 0xFF);
|
||||
DataBuf[14] = static_cast<unsigned char>(updateSize & 0xFF);
|
||||
|
||||
// 4<>ֽ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
||||
DataBuf[15] = static_cast<unsigned char>((crc >> 24) & 0xFF);
|
||||
DataBuf[16] = static_cast<unsigned char>((crc >> 16) & 0xFF);
|
||||
DataBuf[17] = static_cast<unsigned char>((crc >> 8) & 0xFF);
|
||||
DataBuf[18] = static_cast<unsigned char>(crc & 0xFF);
|
||||
|
||||
DataBuf[19] = 0x00; // ѹ<><D1B9><EFBFBD><EFBFBD>ʽ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
// DataBuf[20]~DataBuf[27] Ϊ0<CEAA><30>ѹǰ<D1B9><C7B0>С/ѹǰУ<C7B0>鱸<EFBFBD><E9B1B8>
|
||||
// DataBuf[28]~DataBuf[43] Ϊ0<CEAA><30>16<31>ֽ<EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// vector <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD>Ѿ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>ֵ
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ͨ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>38<33><38>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
||||
return GetMsg(DataBuf, static_cast<unsigned char>(MsgRequestType::Request_Upgrade));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
std::vector<unsigned char> generate_upgrade_end_message()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>3<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
|
||||
std::vector<unsigned char> DataBuf(3, 0x00);
|
||||
|
||||
DataBuf[0] = 0x55;//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ͨ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>38<33><38>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
||||
return GetMsg(DataBuf, static_cast<unsigned char>(MsgRequestType::Request_Upgrade));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>ö<EFBFBD>ʱ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
* @param time <20>·<EFBFBD><C2B7>Ķ<EFBFBD>ʱʱ<CAB1><CAB1> (tmֵ)
|
||||
|
||||
Reference in New Issue
Block a user