#include #include #include //отладка #include //отладка //using namespace std; void SendToDevice( char* bi, int &len, usb_dev_handle *udev) { int t; t=usb_bulk_write(udev, 2, bi, len, 200); if(t<0)len=0; else len=t; //if (t<0) cout t ":" strerror(errno) endl; cout t endl; //для отладки } int main(void) { struct usb_bus *bus=NULL; struct usb_device *dev=NULL; usb_dev_handle *udev=NULL; char com[]="AT+ZOPERTE=\"beeline\"\r\n"; char initcom1[]="AT+ZOPRT=5\r\n"; char initcom2[]="AT+ZSTART\r\n"; char initcom3[]="AT+CPBS=\"SM\"\r\n"; char initcom4[]="AT+CPMS=\"SM\",\"SM\",\"\"\r\n"; int lenc,lenc1,lenc2,lenc3,lenc4,len; usb_init(); usb_find_busses(); usb_find_devices(); //find device and open handle for (bus = usb_busses; bus; bus = bus->next) for (dev = bus->devices; dev; dev = dev->next) if( (dev->descriptor.idVendor==6610) && ( dev->descriptor.idProduct==49) ) //0x19d2 0x0031 { udev = usb_open(dev); } if(udev==0)return -1; usb_claim_interface(udev, 1); usb_set_altinterface(udev, 1); usb_resetep(udev, 1); lenc=0;while(com[lenc]!=0)lenc++; lenc1=0;while(initcom1[lenc1]!=0)lenc1++; lenc2=0;while(initcom2[lenc2]!=0)lenc2++; lenc3=0;while(initcom3[lenc3]!=0)lenc3++; lenc4=0;while(initcom4[lenc4]!=0)lenc4++; len=lenc; SendToDevice(com, len, udev); len=lenc1; SendToDevice(initcom1, len, udev); sleep(5); len=lenc; SendToDevice(com, len, udev); len=lenc2; SendToDevice(initcom2, len, udev); len=lenc3; SendToDevice(initcom3, len, udev); len=lenc4; SendToDevice(initcom4, len, udev); while(1) { sleep(59); len=lenc; SendToDevice(com, len, udev); } if(udev)usb_close(udev); return 0; }