/* * File: wahbum.c * Author: arne * * Created on 31. Mai 2007, 15:58 */ #include #include #include /* * */ int main(int argc, char** argv) { struct usb_bus *busses; usb_init(); usb_find_busses(); usb_find_devices(); busses = usb_get_busses(); struct usb_bus *bus; int found = 0; struct usb_device *dev; for (bus = busses; bus; bus = bus->next) { for (dev = bus->devices; dev; dev = dev->next) { printf("Vendor: %x, Product: %x\n", dev->descriptor.idVendor, dev->descriptor.idProduct); if(dev->descriptor.idVendor == 0x694 && dev->descriptor.idProduct == 0x2){ found = 1; printf("NXT found\n"); break; } } if(found) break; } if(!found){ printf("unable to locate NXT\n"); exit(1); } unsigned char *buffer = malloc(1024); buffer[0] = 0x00; // direct command unsigned buffer[1] = 0x04; // set outputstate unsigned buffer[2] = 0xFF; // motor a unsigned buffer[3] = 100; // power signed buffer[4] = 0x01; // mode unsigned buffer[5] = 0x01; // regulation unsigned buffer[6] = 0; // turnratio signed buffer[7] = 0x20; // runstate unsigned buffer[8] = 0; // tacho limit unsigned 32 bit long little endian buffer[9] = 0; buffer[10] = 0; buffer[11] = 0; usb_dev_handle *dev_handle = usb_open(dev); usb_reset(dev_handle); usb_claim_interface(dev_handle, 0); usb_bulk_write(dev_handle, 0x01, buffer, 12, 1000); usb_close(dev_handle); printf("done!\n"); return (EXIT_SUCCESS); }