righthalfplane
Member
- Joined
- Jul 27, 2020
- Messages
- 117
I trying to set the send/read I/Q status ON by sending the command to the I/Q OUT usb port, but it times out. Other people have said that it works, but did not give any details. As fair a I can tell the program is correct, but I must be missing something -
#include <stdint.h>
#include <stdio.h>
#include <time.h>
#include <libusb-1.0/libusb.h>
// cc -o usb usb.c -lusb-1.0
int sub();
int main()
{
libusb_device_handle *handle;
//sub();
int r = libusb_init(NULL);
if (r < 0)return 0;
handle=libusb_open_device_with_vid_pid(NULL,(uint16_t )0x0c26,(uint16_t )0x0022);
if(handle == NULL){printf("libusb_open_device_with_vid_pid failed\n");return 1;}
int e=libusb_claim_interface(handle,0);
if(e != 0){printf("libusb_claim_interface error %d\n",e);return 1;}
e=libusb_set_interface_alt_setting(handle,0,1);
if(e != 0){printf("libusb_set_interface_alt_setting error %d\n",e);return 1;}
{
unsigned char cmd[] = { 0xFE, 0xFE, 0x96, 0xE0, 0x1A, 0x13, 0x00, 0x01, 0xFD, 0xFF };
int transferred;
transferred=0;
e=libusb_bulk_transfer(handle, 0X02,cmd,(int)sizeof(cmd), &transferred,1000);
if(e != 0)printf("libusb_bulk_transfer1 %d\n",e);
printf(" transferred %d\n",transferred);
transferred=0;
e=libusb_bulk_transfer(handle, 0X88,cmd,(int)sizeof(cmd), &transferred,1000);
if(e != 0)printf("libusb_bulk_transfer2 %d\n",e);
printf(" transferred %d\n",transferred);
}
if(handle)libusb_close(handle);
printf("Done\n");
return 0;
}
#include <stdint.h>
#include <stdio.h>
#include <time.h>
#include <libusb-1.0/libusb.h>
// cc -o usb usb.c -lusb-1.0
int sub();
int main()
{
libusb_device_handle *handle;
//sub();
int r = libusb_init(NULL);
if (r < 0)return 0;
handle=libusb_open_device_with_vid_pid(NULL,(uint16_t )0x0c26,(uint16_t )0x0022);
if(handle == NULL){printf("libusb_open_device_with_vid_pid failed\n");return 1;}
int e=libusb_claim_interface(handle,0);
if(e != 0){printf("libusb_claim_interface error %d\n",e);return 1;}
e=libusb_set_interface_alt_setting(handle,0,1);
if(e != 0){printf("libusb_set_interface_alt_setting error %d\n",e);return 1;}
{
unsigned char cmd[] = { 0xFE, 0xFE, 0x96, 0xE0, 0x1A, 0x13, 0x00, 0x01, 0xFD, 0xFF };
int transferred;
transferred=0;
e=libusb_bulk_transfer(handle, 0X02,cmd,(int)sizeof(cmd), &transferred,1000);
if(e != 0)printf("libusb_bulk_transfer1 %d\n",e);
printf(" transferred %d\n",transferred);
transferred=0;
e=libusb_bulk_transfer(handle, 0X88,cmd,(int)sizeof(cmd), &transferred,1000);
if(e != 0)printf("libusb_bulk_transfer2 %d\n",e);
printf(" transferred %d\n",transferred);
}
if(handle)libusb_close(handle);
printf("Done\n");
return 0;
}