add functions for usb port reset & config setting
This commit is contained in:
parent
a9470fdc99
commit
421311ef2a
|
@ -119,6 +119,25 @@ runs on USB_CT {
|
||||||
g_USB_Tguard.stop;
|
g_USB_Tguard.stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function f_usb_set_configuration(integer dev_hdl, integer bConfigurationValue)
|
||||||
|
runs on USB_CT {
|
||||||
|
var USB_result res;
|
||||||
|
var integer req_hdl := f_usb_get_req_hdl();
|
||||||
|
g_USB_Tguard.start;
|
||||||
|
USB.send(ts_USB_set_configuration(dev_hdl, bConfigurationValue, req_hdl));
|
||||||
|
USB.receive(USB_result:{req_hdl, dev_hdl, ?}) -> value res { log("Received ", res); }
|
||||||
|
g_USB_Tguard.stop;
|
||||||
|
}
|
||||||
|
|
||||||
|
function f_usb_reset_device()
|
||||||
|
runs on USB_CT {
|
||||||
|
var USB_result res;
|
||||||
|
var integer req_hdl := f_usb_get_req_hdl();
|
||||||
|
g_USB_Tguard.start;
|
||||||
|
USB.send(ts_USB_reset_device(g_dev_hdl, req_hdl));
|
||||||
|
USB.receive(USB_result:{req_hdl, g_dev_hdl, ?}) -> value res { log("Received USB reset response", res); }
|
||||||
|
g_USB_Tguard.stop;
|
||||||
|
}
|
||||||
/* Send a USB Device Request and wait for its completion to arrive */
|
/* Send a USB Device Request and wait for its completion to arrive */
|
||||||
function f_usb_dev_req(template (value) USB_DeviceRequest req)
|
function f_usb_dev_req(template (value) USB_DeviceRequest req)
|
||||||
runs on USB_CT return USB_transfer_compl
|
runs on USB_CT return USB_transfer_compl
|
||||||
|
|
|
@ -432,6 +432,17 @@ void USB__PT_PROVIDER::outgoing_send(const USB__claim__interface& send_par)
|
||||||
incoming_message(USB__result(send_par.req__hdl(), send_par.device__hdl(), rc));
|
incoming_message(USB__result(send_par.req__hdl(), send_par.device__hdl(), rc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void USB__PT_PROVIDER::outgoing_send(const USB__reset__device& send_par)
|
||||||
|
{
|
||||||
|
USB_Device *dev = usbdev_by_hdl(send_par.device__hdl());
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
rc = libusb_reset_device(dev->mHandle);
|
||||||
|
if (rc != 0)
|
||||||
|
log(TTCN_ERROR, "Cannot reset USB dev! \n");
|
||||||
|
|
||||||
|
incoming_message(USB__result(send_par.req__hdl(), send_par.device__hdl(), rc));
|
||||||
|
}
|
||||||
void USB__PT_PROVIDER::outgoing_send(const USB__release__interface& send_par)
|
void USB__PT_PROVIDER::outgoing_send(const USB__release__interface& send_par)
|
||||||
{
|
{
|
||||||
USB_Device *dev = usbdev_by_hdl(send_par.device__hdl());
|
USB_Device *dev = usbdev_by_hdl(send_par.device__hdl());
|
||||||
|
|
|
@ -93,6 +93,7 @@ protected:
|
||||||
void user_start();
|
void user_start();
|
||||||
void user_stop();
|
void user_stop();
|
||||||
|
|
||||||
|
void outgoing_send(const USB__reset__device& send_par);
|
||||||
void outgoing_send(const USB__open__vid__pid& send_par);
|
void outgoing_send(const USB__open__vid__pid& send_par);
|
||||||
void outgoing_send(const USB__open__path& send_par);
|
void outgoing_send(const USB__open__path& send_par);
|
||||||
void outgoing_send(const USB__transfer& send_par);
|
void outgoing_send(const USB__transfer& send_par);
|
||||||
|
|
|
@ -2,6 +2,7 @@ module USB_PortType {
|
||||||
import from USB_PortTypes all;
|
import from USB_PortTypes all;
|
||||||
|
|
||||||
type port USB_PT message {
|
type port USB_PT message {
|
||||||
|
out USB_reset_device;
|
||||||
out USB_open_vid_pid;
|
out USB_open_vid_pid;
|
||||||
out USB_open_path;
|
out USB_open_path;
|
||||||
out USB_set_configuration;
|
out USB_set_configuration;
|
||||||
|
|
|
@ -130,6 +130,11 @@ module USB_PortTypes {
|
||||||
octetstring data
|
octetstring data
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type record USB_reset_device {
|
||||||
|
integer req_hdl,
|
||||||
|
integer device_hdl
|
||||||
|
};
|
||||||
|
/* Response: USB_result */
|
||||||
|
|
||||||
template (value) USB_open_vid_pid
|
template (value) USB_open_vid_pid
|
||||||
ts_USB_open_vid_pid(USB_vendor_id vid, USB_product_id pid, integer device_hdl := -1,
|
ts_USB_open_vid_pid(USB_vendor_id vid, USB_product_id pid, integer device_hdl := -1,
|
||||||
|
@ -189,6 +194,21 @@ ts_USB_get_config_descriptor_by_value(integer device_hdl, integer cfg_val, integ
|
||||||
config_value := cfg_val
|
config_value := cfg_val
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template (value) USB_set_configuration
|
||||||
|
ts_USB_set_configuration(integer device_hdl, integer config_num := 1, integer req_hdl := -1) :=
|
||||||
|
{
|
||||||
|
req_hdl := req_hdl,
|
||||||
|
device_hdl := device_hdl,
|
||||||
|
configuration := config_num
|
||||||
|
}
|
||||||
|
|
||||||
|
template (value) USB_reset_device
|
||||||
|
ts_USB_reset_device(integer device_hdl, integer req_hdl := -1) :=
|
||||||
|
{
|
||||||
|
req_hdl := req_hdl,
|
||||||
|
device_hdl := device_hdl
|
||||||
|
}
|
||||||
|
|
||||||
template USB_descriptor
|
template USB_descriptor
|
||||||
tr_USB_descriptor(template integer device_hdl :=?, template integer req_hdl := ?,
|
tr_USB_descriptor(template integer device_hdl :=?, template integer req_hdl := ?,
|
||||||
template integer result_code := ?, template octetstring data := ?) := {
|
template integer result_code := ?, template octetstring data := ?) := {
|
||||||
|
|
Loading…
Reference in New Issue