bool CHackRFController::setFrequency(const CFrequency& freq) { /* Convert Freq Hz 64bits to Freq MHz (32bits) & Freq Hz (32bits) */ wxUint32 lFreqMHz = wxUint32(freq.get() / wxUint64(1000000U)); wxUint32 lFreqHz = wxUint32(freq.get() % wxUint64(1000000U)); struct { wxUint32 freqMHz; /* From 30 to 6000MHz */ wxUint32 freqHz; /* From 0 to 999999Hz */ /* Final Freq = freq_mhz+freq_hz */ } setFreqParams; setFreqParams.freqMHz = wxUINT32_SWAP_ON_BE(lFreqMHz); setFreqParams.freqHz = wxUINT32_SWAP_ON_BE(lFreqHz); wxUint8 length = sizeof(setFreqParams); int result = ::libusb_control_transfer(m_device, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, REQUEST_SET_FREQUENCY, 0, 0, (unsigned char*)&setFreqParams, length, 0); if (result < 0) { wxLogError(wxT("Error from libusb_control_transfer: err=%d"), result); return false; } return true; }
void DataStreamTestCase::Int64RW() { TestMultiRW<wxInt64>::ValueArray ValuesI64; TestMultiRW<wxUint64>::ValueArray ValuesUI64; ValuesI64.push_back(wxInt64(0l)); ValuesI64.push_back(wxInt64(1l)); ValuesI64.push_back(wxInt64(-1l)); ValuesI64.push_back(wxInt64(0x12345678l)); ValuesI64.push_back((wxInt64(0x12345678l) << 32) + wxInt64(0xabcdef01l)); ValuesUI64.push_back(wxUint64(0l)); ValuesUI64.push_back(wxUint64(1l)); ValuesUI64.push_back(wxUint64(0x12345678l)); ValuesUI64.push_back((wxUint64(0x12345678l) << 32) + wxUint64(0xabcdef01l)); CPPUNIT_ASSERT( TestRW(wxUint64(0x12345678l)) == wxUint64(0x12345678l) ); CPPUNIT_ASSERT( TestRW((wxUint64(0x12345678l) << 32) + wxUint64(0xabcdef01l)) == (wxUint64(0x12345678l) << 32) + wxUint64(0xabcdef01l) ); CPPUNIT_ASSERT( TestMultiRW<wxInt64>(ValuesI64, &wxDataOutputStream::Write64, &wxDataInputStream::Read64).IsOk() ); CPPUNIT_ASSERT( TestMultiRW<wxUint64>(ValuesUI64, &wxDataOutputStream::Write64, &wxDataInputStream::Read64).IsOk() ); }