+ Reply to Thread
Results 1 to 2 of 2

Thread: Choosing the right language / data structure / Interface

  1. #1
    ups
    ups is offline
    Newbie ups is an unknown quantity at this point
    Join Date
    Sep 2008
    Posts
    3

    Choosing the right language / data structure / Interface

    I'm working in a personal project and I'm having some problems that I think you might help.

    This project consists in gathering and processing a large amount of data received in the serial port in a windows environment. The arrival of new of information is constant.
    The program should read the input by line and display it in a "table". (Data is composed by an ID and a data field.

    For start, the program should log the data in to a file and at the same time display it on the screen. I guess the ideal would have separe threads, one for logging to a file and another to display the relevant data.
    I want a system that can filter the displayed data on real time (by ID) while still storing and processing all the data in the background - disabling the ID filter should show all the data including the new one that is being received.
    So.. challenge number one: How to display (table) a very large amount of data in real time/fast refresh rate.

    Second, the data field is composed by a string of hexadecimal numbers. The string can have a different meaning depending on the ID of the packet. Most of them are bitfields. Others are in BCD format. Others are.. I'm trying to find that out precisely by using this program. I need a way to convert the strings to processed numbers in a readable format very fast.
    Challenge number two: which language would give the best performance to deal with the strings and numbers? I've been told that C# can handle it pretty well.. Is the .NET integration needed? (I suppose it would make my life easier.. but is it fast for constant reading and displaying?)

    Finally, the application will be used to debug, test and analyze the information so it has to be dynamic and would have to highlight changes in similar consecutive packets. Optimally, it would also be able to change the way the information is displayed (like some kind of script) without restarting/recompiling the application.
    Challenge number 3: Speed is in the essence while having highly customized display of the data.

    Now.. I've started with perl which gives a good grip on the data but no easy GUI. the command line is a bit too powerless to all the things I want to do. Also I noted that with too much data it starts to lag behind.
    I made a small incursion in VB because of the customized data tables. It was way to slow to handle the data (even to display it in a text box)!

    Now.. I have some experience with C and C++ but I must confess it was a long time ago and there are a lot of stuff I don't quite grasp (those *strange* pointers of pointers and MFC always had me..) but I sure willing to get my hands dirty and learn if I feel I can get somewhere.
    Also, I'm willing to learn new programming languages. This project is my first incursion in perl and so far so good. (Just stroke me now.. how fast is MATLAB?)

    Anyway, thanks for your time. Any help is appreciated.

  2. #2
    Super Moderator WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther has much to be proud of WingedPanther's Avatar
    Join Date
    Jul 2006
    Age
    36
    Posts
    11,686
    Blog Entries
    57

    Re: Choosing the right language / data structure / Interface

    I would use C++, no threads.
    Just create an istream connected to the serial port. For every input, you push out the data to both outputs (an ostream on a file and the grid). For your grid, you can use most any grid component and append a new row to the end of the grid.

    Most any GUI toolkit will provide you the necessary graphical tools (wxWidgets, Ultimate++, .NET, etc)

    You can pull your input into an integer and then display it as either hex or numeric as needed.

    If you can define what counts as "similar packets", then a RegEx may be useful for comparing the previous value to the current value.
    CodeCall Blog | CodeCall Wiki | Shareware
    Programming is a branch of mathematics.
    My CodeCall Blog | My Personal Blog

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Similar Threads

  1. C#:Tutorial - Download Data
    By Xav in forum CSharp Tutorials
    Replies: 13
    Last Post: 02-11-2010, 02:17 PM
  2. Choosing the right language
    By Athene in forum General Programming
    Replies: 30
    Last Post: 09-01-2008, 03:12 PM
  3. Few problems ... Algorithm and Data Structure
    By nt_virus in forum C# Programming
    Replies: 12
    Last Post: 03-31-2008, 11:59 AM
  4. Choosing a language
    By realhipcat in forum General Programming
    Replies: 2
    Last Post: 05-27-2007, 03:33 PM

Bookmarks

Bookmarks

     
        Algorithms and Data Structures

        Java tutorials

        Algorithms Forum

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts