dfu: throw exception when vid & pid == 0; change altsetting type
This commit is contained in:
parent
e6c01f75ad
commit
2adf4d585e
11
src/dfu.cpp
11
src/dfu.cpp
|
|
@ -47,7 +47,7 @@ enum dfu_cmd {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DFU::DFU(const string &filename, uint16_t vid, uint16_t pid,
|
DFU::DFU(const string &filename, uint16_t vid, uint16_t pid,
|
||||||
int altsetting,
|
int16_t altsetting,
|
||||||
int verbose_lvl):_verbose(verbose_lvl > 0),
|
int verbose_lvl):_verbose(verbose_lvl > 0),
|
||||||
_quiet(verbose_lvl < 0), dev_idx(0), _vid(0), _pid(0),
|
_quiet(verbose_lvl < 0), dev_idx(0), _vid(0), _pid(0),
|
||||||
_altsetting(altsetting),
|
_altsetting(altsetting),
|
||||||
|
|
@ -123,8 +123,9 @@ DFU::DFU(const string &filename, uint16_t vid, uint16_t pid,
|
||||||
displayDFU();
|
displayDFU();
|
||||||
|
|
||||||
/* don't try device without vid/pid */
|
/* don't try device without vid/pid */
|
||||||
if (_vid == 0 || _pid == 0)
|
if (_vid == 0 || _pid == 0) {
|
||||||
return;
|
throw std::runtime_error("Can't open device vid/pid == 0");
|
||||||
|
}
|
||||||
|
|
||||||
/* open the first */
|
/* open the first */
|
||||||
if (open_DFU(0) == EXIT_FAILURE) {
|
if (open_DFU(0) == EXIT_FAILURE) {
|
||||||
|
|
@ -132,6 +133,8 @@ DFU::DFU(const string &filename, uint16_t vid, uint16_t pid,
|
||||||
throw std::runtime_error("Fail to claim device");
|
throw std::runtime_error("Fail to claim device");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("%02x %02x\n", _vid, _pid);
|
||||||
|
|
||||||
char state = get_state();
|
char state = get_state();
|
||||||
if (_verbose > 0) {
|
if (_verbose > 0) {
|
||||||
printInfo("Default DFU status " + dfu_dev_state_val[state]);
|
printInfo("Default DFU status " + dfu_dev_state_val[state]);
|
||||||
|
|
@ -284,7 +287,7 @@ int DFU::searchDFUDevices()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_verbose > 0) {
|
if (_verbose > 0) {
|
||||||
printf("%04x:%04x (bus %d, device %2d)",
|
printf("%04x:%04x (bus %d, device %2d)\n",
|
||||||
desc.idVendor, desc.idProduct,
|
desc.idVendor, desc.idProduct,
|
||||||
libusb_get_bus_number(usb_dev),
|
libusb_get_bus_number(usb_dev),
|
||||||
libusb_get_device_address(usb_dev));
|
libusb_get_device_address(usb_dev));
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class DFU {
|
||||||
* \param[in] verbose_lvl: verbose level 0 normal, -1 quiet, 1 verbose
|
* \param[in] verbose_lvl: verbose level 0 normal, -1 quiet, 1 verbose
|
||||||
*/
|
*/
|
||||||
DFU(const std::string &filename, uint16_t vid, uint16_t pid,
|
DFU(const std::string &filename, uint16_t vid, uint16_t pid,
|
||||||
int altsetting, int verbose_lvl);
|
int16_t altsetting, int verbose_lvl);
|
||||||
|
|
||||||
~DFU();
|
~DFU();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue