Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Архив » usbept - простой USB endpoint терминал


usbept - простой USB endpoint терминал

Сообщений 1 страница 7 из 7

1

Не прошло и полгода, продолжим наши игры )

usbepx - монитор USB endpoints как-то не зашёл, хотя сам я с тех пор использую его постоянно, поэтому вот другой вариант - предельно упрощённый терминал прямого доступа в endpoint для winusb и т.п. девайсов
В отличие от usb serial терминалов он опрашивает usb девайс не постоянно, а только в течение примерно 100 мс после ввода строки и передачи в девайс, т.е. в полном соответствии с логикой usb: хост - мастер, девайс - слейв
Программка очень простая, вот она вся

Код:
#include <stdio.h>
#include "libusb.h"
libusb_device_handle *dh;
int vid, pid, ep, n;
char s[256];
int main ( int argc, char *argv[] ) {
    if( argc == 4 ) {
        sscanf( argv[1], "%x", &vid );
        sscanf( argv[2], "%x", &pid );
        sscanf( argv[3], "%x", &ep  );
        libusb_init( NULL );
        if( dh = libusb_open_device_with_vid_pid( NULL, vid, pid ) ) {
            libusb_claim_interface( dh, 0 );
            while( 1 ) {
                printf( "< " );
                gets( s );
                if( strlen( s ) == 0 ) break;
                if( strlen( s ) > 63 ) s[63] = 0;
                if( libusb_bulk_transfer( dh, ep, s, 64, &n, 100 ) == 0 ) {
                    int c = 10;
                    while( libusb_bulk_transfer( dh, ep+0x80, s, 64, &n, 100 ) == 0 ) {
                        printf( "> %s\n", s );
                        if( --c == 0 ) break;
                    }
                } else break;
            }
            libusb_release_interface( dh, 0 );
            libusb_close( dh );
        } else printf( "No such device\nVID:%x PID:%x EP:%x\n", vid, pid, ep );
        libusb_exit( NULL );
    } else printf( "Usage\n%s VID PID EP\n", argv[0] );
    return 0;
}

Как оно работает очевидно из картинки
Поскольку программка всего 3 Кбайт, то эта же картинка содержит в себе и архив с usbept.exe и libusb-1.0.dll, достаточно переименовать файл картинки в файл.zip и он раскроется как zip

https://forumupload.ru/uploads/0018/26/8f/2/103898.png

2

вот теперь   надо  рассказать  опримере как этим пользоваться

png в  zip  это круто

(кстати не работает поле ответа)
https://forumupload.ru/uploads/0018/26/8f/62/t754763.jpg

Отредактировано selevo (2020-06-30 10:51:18)

3

Про zip в картинке - это старый трюк copy/b file.jpg+file.zip magic.jpg
Про поле ответа - я могу только наблюдать что тут хостер творит )
По поводу рассказать на примере, ну мне нужна настройка на аудиторию, опиши в двух словах на какую примерно

4

Как можно подробнее.

5

Не, я так не смогу, подробности же разные для разных людей, а вообще всё для всех охватить - это книга получится )

6

Ну  вот рассказ и напиши.
Из далека.

7

Возвращаясь к usbept
Так как программа завершает работу по вводу пустой строки, а ввод-вывод это просто gets и printf, то всё это может работать и автоматически в пакетном режиме
usbept vid pid ep < input.txt > output.txt
Ввод строк из файла input.txt, вывод в файл output.txt


Вы здесь » Микроконтроллеры » Архив » usbept - простой USB endpoint терминал