241824 binary file editor

In Progress Posted Sep 10, 2008 Paid on delivery
In Progress Paid on delivery

The editor will be used to edit portions of binary files, both graphically and numerically, as well as interface with an emulator (Ostrich2).

Sample code available with most of the functionality required below, including sample code for tracing/communication.

ostrich2 hardware protocol available at [url removed, login to view]

- Descriptor file

Stores list of addresses for tables/constants, the name of each table/constant, conversion factors for raw data to display data, and file length.

The descriptor file can start as a file with no names/tables and they can be added by the program.

- File loading

User selects files to open. If a descriptor file is loaded, display list of tables as defined by the descriptor file.

- Ostrich interface

Be able to send and receive from ostrich. Protocol documentation will be provided.

- Display tables with header info

The data is stored in a format which describes if it is 1d or 2d, and the values for the rows/columns. The row and column data should be processed and displayed with the tables.

- Display tables as tables or as graphs.

The data should be able to be displayed both numerically and graphically. The graph should be able to be rotated/oriented, as well as allow for graphical manipulation of the data. (ex: shift-up or shift-down for increment and decrement of the selected value.)

- Get trace data from ostrich.

The ostrich2 provides a trace interface. This involves sending a string to the ostrich to tell it you want to trace, and what range of data it should report hits in. The window of watched data in the ostrich2 will be the viewed window of the currently open table. Alternatively, the entire data section can be “traced” and logged.

- Highlight active cell.

If a window is open and trace is on/active then the currently active cell should be highlighted. This should be done both when viewing the table numerically as well as graphically.

- Follow active cell

When tracing, the active cell is highlighted. A button should be available to also “follow” the active cell with the cursor. In this case, the table manipulation schemes discussed above should also follow. (ex: shift-up or shift-down for increment and decrement of the active cell.)

- Active cell trails.

When highlighting active cells is on, “trails” and “reset trails” buttons should be active. Trails will not un-highlight the last active cell when a new cell is active. It will instead partially change is color back, but allow the user to see what has been active as well as what is active. “reset trails” resets the display, un-highlighting the inactive cells. This does not turn off trails though. The trails button itself is the toggle for that. Toggling off trails does not un-highlight the inactive cells.

- Be able to push updates in tables to ostrich2.

User should be able to select between real time updates (sent to the ostrich2 as they are made), and user selected update intervals (pushed when user is done making changes and selects “update” function/button).

The push should be selected between sending individual cells and large cell rages (the whole table). Single updates can be done a cell at a time. Large updates should be done on a table basis.

- Record trace data to file.

When the user selects “record trace data”, store trace data in a file. When saving trace data, save the active cell (time stamp, value in table, X axis value, Y axis value).

- Save as new file. Numerical order.

A button in the tool bar will allow the user to save as new file. The file format can be “customername-date-time” or just “customername-counter”.

- Make notes on what was changed.

When changes are made, store as notes. What tables were changed and what was changed in those tables. When “save as a new file” is selected, also create a text file that goes along with that file that has its changes versus the previous save.

- Compare maps

Allow the selection of “compare files”. Load the corresponding compare maps and be able to show absolute values of the other maps as well as relative differences between the maps.

Example scenario:

User opens application.

User selects descriptor file. Program loads descriptor file.

User selects file to open. Program loads bin file.

User selects “connect” to ostrich2. Program executes initialization string and communication with ostrich2.

User selects push current file to ostrich2. Program pushes bin file to ostrich2.

User selects verify data on ostrich2. Program reads file from ostrich2 and compares to opened bin.

User selects open table. Program displays user selected table.

User makes changes to table. Program saves changes to temp file.

User hits commit. Program pushes table to appropriate section of ostrich2 and verifies.

User selects another table. Program opens second table and displays.

User selects trace. Program gets trace data from ostrich2 for active table/window and highlights active cell. Changes highlighted cell as trace data changes.

User selects trace with trails. Program gets trace data from ostrich2 and highlights active cell and leaves highlighted.

While in trace, user should be able to hit shift-up or shift-down and increment or decrement the value in the active cell.

User selects log trace. Program prompts user for save file location. Program writes all trace data for selected table(s) until stop tracing button is pressed.

User saves file. Program writes temp file to selected file name.

.NET C Programming Odd Jobs

Project ID: #1988072

About the project

Remote project Active Jul 11, 2012