int initDongle(libusb_context *ctx) { int result = -1; result = initHid(ctx); if (result < 0) { return result; } return result; }
int writeEp(SHidDev* pHidDev, const char* data, const int len) { if(!devReady(pHidDev)) return 0; initHid(pHidDev, pHidDev->packetLen); fillTxData(pHidDev, data, len); //doit ioctl(pHidDev->fd,HIDIOCSUSAGES, &pHidDev->ref_u); ioctl(pHidDev->fd,HIDIOCSREPORT, &pHidDev->rinfo_u); return 0; }
const char* getControl(SHidDev* pHidDev) { if(!devReady(pHidDev)) return 0; initHid(pHidDev,pHidDev->packetLen); //doit ioctl(pHidDev->fd,HIDIOCGREPORT, &pHidDev->rinfo_i); ioctl(pHidDev->fd,HIDIOCGUSAGES, &pHidDev->ref_i); compr_s32toChar(pHidDev->ref_i.values, pHidDev->ref_i.num_values); return (char*)(pHidDev->ref_i.values); }
const char* readEp(SHidDev* pHidDev) //~ const __u8* readEp(SHidDev* pHidDev, const int len) { if(!devReady(pHidDev)) return 0; initHid(pHidDev , pHidDev->packetLen); //doit ioctl(pHidDev->fd,HIDIOCGUSAGES, &pHidDev->ref_i); ioctl(pHidDev->fd,HIDIOCGREPORT, &pHidDev->rinfo_i); compr_s32toChar(pHidDev->ref_i.values, pHidDev->ref_i.num_values); //~ return (__u8*)(pHidDev->ref_i.values); return (char*)(pHidDev->ref_i.values); }
int setFeature(SHidDev* pHidDev, const char* data, const int len) { if(!devReady(pHidDev)) return 0; initHid(pHidDev, pHidDev->packetLen); fillTxData(pHidDev, data, len); pHidDev->rinfo_u.report_type = HID_REPORT_TYPE_FEATURE; pHidDev->ref_u.uref.report_type = HID_REPORT_TYPE_FEATURE; //doit ioctl(pHidDev->fd,HIDIOCSUSAGES, &pHidDev->ref_u); ioctl(pHidDev->fd,HIDIOCSREPORT, &pHidDev->rinfo_u); return pHidDev->packetLen; }
const char* getFeature(SHidDev* pHidDev) { if(!devReady(pHidDev)) return 0; initHid(pHidDev, pHidDev->packetLen); pHidDev->rinfo_i.report_type =HID_REPORT_TYPE_FEATURE; pHidDev->ref_i.uref.report_type =HID_REPORT_TYPE_FEATURE; //doit ioctl(pHidDev->fd,HIDIOCGREPORT, &pHidDev->rinfo_i); ioctl(pHidDev->fd,HIDIOCGUSAGES, &pHidDev->ref_i); //copy2Text(pHidDev, pHidDev->ref_i.values, len); compr_s32toChar(pHidDev->ref_i.values, pHidDev->packetLen); return (char*)(pHidDev->ref_i.values); }