X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/rigol/blobdiff_plain/7a226bb8f5a070842eed562c04df6b79970a4e4b..7df76f49adf30ac260c99649678b084c9b6c282b:/usbtmc.c diff --git a/usbtmc.c b/usbtmc.c index 729f6db..835b6c8 100644 --- a/usbtmc.c +++ b/usbtmc.c @@ -8,6 +8,14 @@ #define USB_TIMEOUT 50000 +#if BYTE_ORDER == LITTLE_ENDIAN +#define LE32(x) x +#elif BYTE_ORDER == BIG_ENDIAN +#define LE32(x) ((uint32_t)((((uint32_t)x)>>24) | ((((uint32_t)x)>>8) & 0xff00) | ((((uint32_t)x)<<8) & 0xff0000) | (((uint32_t)x)<<24))) +#else +#error BYTE_ORDER not defined/known! +#endif + //Helper-routine: Convert a little-endian 4-byte word to an int static void int2chars(unsigned char *buff,unsigned int a) { buff[3]=(a>>24)&0xff; @@ -61,9 +69,9 @@ int usbtmc_sendscpi(usb_dev_handle *dev, char* cmd, buff[3]=0; int2chars(buff+4, cmdlen); buff[8]=1; - buff[9]=0x37; - buff[10]=0x39; - buff[11]=0x39; + buff[9]=0x00; + buff[10]=0x00; + buff[11]=0x00; //fprintf(stderr,"Writing header len=%d\n", cmdlen); //printb(buff,12); r=usb_bulk_write(dev, 1, (char*)buff, 12, USB_TIMEOUT); @@ -77,7 +85,7 @@ int usbtmc_sendscpi(usb_dev_handle *dev, char* cmd, seq++; buff[1]=seq; buff[2]=~seq; //nseq int2chars(buff+4,0x40); - buff[8]=1; + buff[8]=0; buff[9]=0xA; buff[10]=0; buff[11]=0; @@ -126,8 +134,7 @@ usb_dev_handle* usbtmc_initscope(void) { //Locate and open the scope dev = usbtmc_find_scope(); if (!dev) { - printf("No scope found.\n"); - exit(1); + return NULL; } usbtmc_claim(dev); //The following code isn't really necessary, the program works