What features do you want to see in an USB-HID Terminal?

Discuss the Integrated Development Environment (IDE)

Moderators: David Barker, Jerry Messina

Post Reply
User avatar
octal
Registered User
Registered User
Posts: 586
Joined: Thu Jan 11, 2007 12:49 pm
Location: Paris IDF
Contact:

What features do you want to see in an USB-HID Terminal?

Post by octal » Mon Oct 15, 2007 8:59 am

Hi,
I'm doing a bit of USB stuff these days with Swordfish, and for that I have made a little nice USB-HID terminal application.

I'm on the way of publishing this application as an USB-HID plugin for Swordfish in next few days. (grrrrrr .... Tim ... be patient).

The actual tool already let you
- See most important informations about the attached devices (like language, IO report size, ...)
- Send/Receive data from any HID device
- Write data to send as HEX values or ASCII values
- See Sent/Received data in a structured way (I'm working to finish this feature).

I would like to know what additional features do you excpect or want to see in such tool?

Regards
octal

TimB
Posts: 262
Joined: Wed Oct 04, 2006 7:25 am
Location: London UK

Post by TimB » Mon Oct 15, 2007 11:40 am

I would like to add macro's so you can send hex packets

One extra thing that would be nice but only if you had absolutely nothing else to do is some form of parsing. No idea what form it will take though

BTW SF will be fine. My people have SF as well

I'm happy to make a contribution to the hard work, to go toward as a meal 2. As I need it for an app I'm working on.

User avatar
octal
Registered User
Registered User
Posts: 586
Joined: Thu Jan 11, 2007 12:49 pm
Location: Paris IDF
Contact:

Post by octal » Mon Oct 15, 2007 12:33 pm

Hi Tim,
glad to hear from you :o
TimB wrote:I would like to add macro's so you can send hex packets


Could you give more details please?
TimB wrote: One extra thing that would be nice but only if you had absolutely nothing else to do is some form of parsing. No idea what form it will take though
This is what is taking time for me ... the last point I mentioned in my first post (Structured Data). In fact, actually, what I'm adding is a feature (The best I think) that will make it really useful.
You can specify the data structure (for example)
Report ID : 1 byte
Data Group 1 : 4 bytes ... or 2 words
....

and in this case the received data will be shown using a colouring scheme that shows automatically every packet maped to the defined data groups.

What I' try to add and finalise is a little Swordfish Parser for Structures (David added in last version Unions, and data aliasing inside structures which makes parsing a bit complicated).
In Swordfish, you can define Structures and mapp them (alias) to the send/receive buffer (see HID Sample produced by easyHID).
In fact what I want to do is to give to the user the possibility to Copy the declaration source code of the Struture from the code window, and to paste it directly to the plugin. The plugin will parse the source code and automatically generates the DATA GROUPS that will map to Input/Output USB HID data. This way, user will see data coloured, and when he hoover a group using mouse, he'll see in a hint (or maybe in the plugin window) the concerned Structure Field Bolded (or coloured) .... The data can also be shown in a grid like, with each column representing a field or group of data.

I think that this will be very helpfull and make data values tracking very helpfull.

I want also to add a feature that we can see mostly only on Serial Ports monitors, it's the fact to ask the software to start/stop capture when he receive a special data pattern (string). This will also be helpfull.

btw. This plugin will also be published for Proton Dev Suite, but without the parser since Proton does not support Structures.

Regards
octal

TimB
Posts: 262
Joined: Wed Oct 04, 2006 7:25 am
Location: London UK

Post by TimB » Mon Oct 15, 2007 12:39 pm

By Macros I mean you can assign a string of Hex or Ascii to a button and when you click the button it sends the saved packet

The Structures you talk about would be really great.

User avatar
octal
Registered User
Registered User
Posts: 586
Joined: Thu Jan 11, 2007 12:49 pm
Location: Paris IDF
Contact:

Post by octal » Mon Oct 15, 2007 12:43 pm

Ok. I see. Actually user types his text to send in a text box, and when he press SEND button, data are sent. So if you want to send again the same data you can just press SEND Again.

What I can add is to add the possibility to have (create) templates of text/HexData and send them using Menu Options or Dynamically created buttons.
I'll try to think about the best way to do it.

Regards
octal

TimB
Posts: 262
Joined: Wed Oct 04, 2006 7:25 am
Location: London UK

Post by TimB » Mon Oct 15, 2007 1:16 pm

Perhaps I'm confused on what you mean by structures

What I was thinking of was you would have a system were say the first 4 bytes were made into a Dword the next 2 a word etc.

As trying to rebuild dwords or floats or even words in my head is very hard.

So every packet sent via USB is sorted into units not just displayed as hex

User avatar
octal
Registered User
Registered User
Posts: 586
Joined: Thu Jan 11, 2007 12:49 pm
Location: Paris IDF
Contact:

Post by octal » Mon Oct 15, 2007 1:21 pm

Hi Tim,
This just want I said. I want users to define GROUPS of data (2 bytes, 1 word, .... ) or by copying/pasting Structures definitions directly from Swordfish source code.
When you go in flat view you'll see data as stupid hex data (with ascii representation), and when you go to Structured View, you'll see your data as GROUPS of data, that means that a WORD will be a group of two bytes, and will be shown as a WORD value, not as two stupid separated bytes.
Strings wilk be shown as String values .. not as a serie of Hex data (the only exception will be the control chars (#0, #13, #10,...).
I imagined this stuctured view to let users see data as they see them in source code, i.e as a single entity, as a variable with a given type, not as group of bytes.

and for that I'm fighting with floats representation in Swordfish, and with the full parsing of the structures source code.

regards
octal

Post Reply