Changeset 88642a4 in thomson for elec/CrO2/software/powerSwitch.c
- Timestamp:
- Jan 16, 2012, 9:54:55 PM (12 years ago)
- Branches:
- main
- Children:
- 197a1cc
- Parents:
- d46151a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
elec/CrO2/software/powerSwitch.c
rd46151a r88642a4 21 21 #include <string.h> 22 22 #include <stdint.h> 23 #include <unistd.h> 24 23 25 #include <lusb0_usb.h> /* this is libusb, see http://libusb.sourceforge.net/ */ 24 26 … … 32 34 #define PRODUCTSTRING "CrO2" 33 35 36 /* These are the vendor specific SETUP commands implemented by our USB device */ 34 37 #define PSCMD_CONFIG 0 35 38 #define PSCMD_GET 1 36 39 #define PSCMD_PUT 2 37 /* These are the vendor specific SETUP commands implemented by our USB device */ 40 #define PSCMD_STATUS 3 38 41 39 42 static void usage(char *name) … … 178 181 }else if(strcmp(argv[1], "put") == 0){ 179 182 183 do 184 { 185 // Wait for motor on 186 nBytes = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, PSCMD_STATUS, 0,0, (char*)buffer, 1, 5000); 187 usleep(1000000); 188 } while (buffer[0] & 8); 189 190 180 191 FILE* fptr = fopen(argv[2], "rb"); 181 192 int blockid; … … 185 196 do 186 197 { 187 fread(buffer, 1, 18, fptr); // skip sync header 198 do 199 { 200 fread(&blktype, 1, 1, fptr); 201 if (feof(fptr)) 202 { 203 fprintf(stderr, "end of file.\n"); 204 fclose(fptr); 205 usb_close(handle); 206 exit(0); 207 } 208 } 209 while(blktype != 0x5A); // skip sync header 210 188 211 fread(&blktype, 1, 1, fptr); 189 212 fread(&blksize, 1, 1, fptr); 190 213 blksize -= 2; 191 214 fread(buffer, 1, blksize + 1, fptr); 215 if (blktype == 0) 216 { 217 // new file 218 printf("%.11s\n",buffer); 219 } 192 220 } 193 221 while (blockid --); … … 206 234 207 235 if (nBytes < 0) fprintf(stderr, "USB error %s\n", usb_strerror()); 208 209 236 usb_close(handle); 210 237 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.