fixed and adaptions
This commit is contained in:
@@ -49,6 +49,8 @@ union {
|
||||
FirmwarePackage msg_FirmwarePackage;
|
||||
FirmwarePackageAck msg_FirmwarePackageAck;
|
||||
FirmwareDone msg_FirmwareDone;
|
||||
RequestDeviceList msg_RequestDeviceList;
|
||||
ResponseDeviceList msg_ResponseDeviceList;
|
||||
} mem_msg_decode;
|
||||
|
||||
|
||||
@@ -98,6 +100,8 @@ message_handler_t message_handlers[] = {
|
||||
MESSAGE_HANDLER(UsbPackageType_FIRMWAREPACKAGE, FirmwarePackage),
|
||||
MESSAGE_HANDLER(UsbPackageType_FIRMWAREDONE, FirmwareDone),
|
||||
MESSAGE_HANDLER(UsbPackageType_FIRMWAREPACKAGEACK, FirmwarePackageAck),
|
||||
MESSAGE_HANDLER(UsbPackageType_REQUEST_DEVICE_LIST, RequestDeviceList),
|
||||
MESSAGE_HANDLER(UsbPackageType_RESPONSE_DEVICE_LIST, ResponseDeviceList),
|
||||
};
|
||||
|
||||
|
||||
@@ -189,6 +193,25 @@ bool UsbDataPacket_head_check(const UsbDataPacket *p) {
|
||||
return p->head.check == UsbDataPacket_head_sum(p);
|
||||
}
|
||||
|
||||
#include "usbd_cdc_if.h"
|
||||
#include <pb_encode.h>
|
||||
static UsbDataPacket packet;
|
||||
void USBDataResonse(void * msg, const pb_msgdesc_t* fields, UsbPackageType typeid) {
|
||||
pb_ostream_t ostream = pb_ostream_from_buffer(packet.data,sizeof(packet.data));
|
||||
bool status = pb_encode(&ostream, fields ,msg);
|
||||
packet.head.length = ostream.bytes_written;
|
||||
packet.head.type = typeid;
|
||||
packet.head.check = UsbDataPacket_head_sum(&packet);
|
||||
|
||||
if(status) {
|
||||
while (CDC_Transmit_HS((uint8_t*)&packet, packet.head.length + sizeof(UsbDataPacketHead) ) == USBD_BUSY)
|
||||
{
|
||||
osDelay(3);
|
||||
}
|
||||
} else {
|
||||
Error_Handler();
|
||||
}
|
||||
}
|
||||
|
||||
//__attribute__((weak)) void DataClbk_FirmwareStart(void *msg, uint32_t length) {}
|
||||
//__attribute__((weak)) void DataClbk_FirmwarePackage(void *msg, uint32_t length) {}
|
||||
|
||||
Reference in New Issue
Block a user