public override EusbPdu ParsePdu(byte[] data) { EusbPdu pdu; switch (GetPduType(data)) { case EusbType.RIM_EXCHANGE_CAPABILITY_REQUEST: pdu = new EusbRimExchangeCapRequestPdu(); break; case EusbType.CHANNEL_CREATED: pdu = new EusbChannelCreatedPdu(true); break; case EusbType.REGISTER_REQUEST_CALLBACK: pdu = new EusbRegisterRequestCallbackPdu(); break; case EusbType.QUERY_DEVICE_TEXT: pdu = new EusbQueryDeviceTextRequestPdu(); break; case EusbType.IO_CONTROL: pdu = new EusbIoControlPdu(); break; case EusbType.INTERNAL_IO_CONTROL: pdu = new EusbInternalIoControlPdu(); break; case EusbType.TRANSFER_IN_REQUEST: pdu = new EusbTransferInRequestPdu(); break; case EusbType.TRANSFER_OUT_REQUEST: pdu = new EusbTransferOutRequestPdu(); break; case EusbType.CANCEL_REQUEST: pdu = new EusbCancelRequestPdu(); break; case EusbType.RETRACT_DEVICE: pdu = new EusbRetractDevicePdu(); break; default: return base.ParsePdu(data); } if (!PduMarshaler.Unmarshal(data, pdu)) { pdu = new EusbUnknownPdu(); PduMarshaler.Unmarshal(data, pdu); } return pdu; }
public override EusbPdu ParsePdu(byte[] data) { EusbPdu pdu; switch (GetPduType(data)) { case EusbType.RIM_EXCHANGE_CAPABILITY_REQUEST: pdu = new EusbRimExchangeCapResponsePdu(); break; case EusbType.ADD_VIRTUAL_CHANNEL: pdu = new EusbAddVirtualChannelPdu(); break; case EusbType.ADD_DEVICE: pdu = new EusbAddDevicePdu(); break; case EusbType.CHANNEL_CREATED: pdu = new EusbChannelCreatedPdu(false); break; case EusbType.QUERY_DEVICE_TEXT: pdu = new EusbQueryDeviceTextResponsePdu(); break; case EusbType.IOCONTROL_COMPLETION: pdu = new EusbIoControlCompletionPdu(); break; case EusbType.URB_COMPLETION: pdu = new EusbUrbCompletionPdu(); break; case EusbType.URB_COMPLETION_NO_DATA: pdu = new EusbUrbCompletionNoDataPdu(); break; default: return base.ParsePdu(data); } if (!PduMarshaler.Unmarshal(data, pdu)) { pdu = new EusbUnknownPdu(); PduMarshaler.Unmarshal(data, pdu); } return pdu; }
public virtual EusbPdu ParsePdu(byte[] data) { EusbPdu pdu = new EusbUnknownPdu(); PduMarshaler.Unmarshal(data, pdu); return pdu; }