]> git.zerfleddert.de Git - rigol/blobdiff - usbtmc.c
include stdint.h
[rigol] / usbtmc.c
index 729f6db5028d016c361ce8213662aab73647256d..835b6c8b84b2a6449f13f4e98e16052248f5dc9d 100644 (file)
--- 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
Impressum, Datenschutz