int InfinityPortal::receivePackets() { int packetsReceived; int retVal = 0; int len = 0; unsigned char* packet = new unsigned char[32]; while(retVal == 0) { retVal = libusb_bulk_transfer(deviceHandler,0x81,packet,32,&len,10); if(retVal == 0) { processReceivedPacket(packet); packetsReceived += 1; } } return packetsReceived; }
void DataBus::AbstractClient::processReceivedPackets() { // Check if a packet is available while (m_packetParser.isPacketAvailable()) { // Process received packet Packet packet = m_packetParser.takePacket(); switch (packet.getPacketType()) { case PacketType_PingRequest: { processPingRequestPacket(packet); break; } case PacketType_RegisterClientResponse: { processRegisterClientResponsePacket(packet); break; } case PacketType_GetClientNameRequest: { processGetClientNameRequestPacket(packet); break; } case PacketType_GetClientPropertyListRequest: { processGetClientPropertyListRequestPacket(packet); break; } case PacketType_GetClientPropertyInfoRequest: { processGetClientPropertyInfoRequestPacket(packet); break; } case PacketType_GetClientPropertyValueRequest: { processGetClientPropertyValueRequestPacket(packet); break; } case PacketType_SetClientPropertyValueRequest: { processSetClientPropertyValueRequestPacket(packet); break; } case PacketType_GetClientMethodListRequest: { processGetClientMethodListRequestPacket(packet); break; } case PacketType_GetClientMethodInfoRequest: { processGetClientMethodInfoRequestPacket(packet); break; } case PacketType_GetClientMethodParameterInfoRequest: { processGetClientMethodParameterInfoRequestPacket(packet); break; } case PacketType_GetClientMethodReturnValueInfoRequest: { processGetClientMethodReturnValueInfoRequestPacket(packet); break; } // TODO: default: { // Check if registered if (m_registered == false) { // Ignore received packets when client is not registered break; } // Forward this to packet to outside processReceivedPacket(packet); break; } } } }