Results 1 to 3 of 3

Thread: POSIX port of Ice

  1. #1
    cospan is offline Registered User
    Name: David McCoy
    Organization: Cospan Design
    Project: FPGA/android middleware
    Join Date
    Nov 2009
    Posts
    2

    POSIX port of Ice

    Hello, I'm fairly new to Ice, and cross language function calls, but I believe it will be a good fit for my project. It is a little different than what Ice (I believe) is originally intended for.

    Here are some details about my project:

    I have a development board in which I got Android up and running, and I want to talk to a soft processor inside of an FPGA (on another development board). In order to communicate between the two I wrote a daemon in Linux for the Android board that exposes a serial port as a socket. Android communicates with a socket, and then that information gets sent to the FPGA through the serial port (its bi-directional). So far I've abstracted the serial ports within the soft processor as to act like a file stream so that I can do fprintf, and fscanf. I can send strings back and forth, and I have some rudimentary functions working. Right now the program on the soft processor within the FPGA is running C, and I am working on changing it to C++ with POSIX support. POSIX supports multi-threading, and some other things I'm not totally clear on.

    Here are some questions.

    I know that Ice uses TCP, UDP, and SSL as a means to communicate. For the client sitting within Android that is great, because I am already using a socket, but I think I'll run into trouble when I try and setup a server on the FPGA because I don't have sockets on there, all I have is a streaming FILE. Is it possible to modify the proxy that is responsible for communication to utilize the FILE stream as apposed to a socket?

    Regarding the Ice runtime. Is it possible to get it running on a POSIX environment? or Will Ice only run on a complete operating system?

    I really appreciate all the hard work that the Ice team has put into making Ice into what it is. Thanks in advance for any ideas.

    Dave McCoy

  2. #2
    benoit's Avatar
    benoit is offline ZeroC Staff
    Name: Benoit Foucher
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Rennes, France
    Posts
    2,196
    Hi David,

    Sounds like an interesting project!

    It is possible to use other communication channels by implementing other transports. Ice has a pluggable plugin interface that allows supporting new transports independently from the Ice core (this is how the IceSSL protocol is implemented). Note however that this interface/API isn't public so you won't find any documentation about it. But since we provide the source code, you can check how the IceSSL plugin is implemented to get a good idea on what needs to be done (you can also check the implementation of the TCP and UDP transports in the Ice core).

    How hard it will be to support a new transport depends on whether or not your communication channel suports Posix socket semantics. That is, if your serial port can be accessed through a file descriptor which can be set in non-blocking mode (for non blocking connect/read/write) and which is "selectable" (either with select(), epoll(), etc), it won't be too hard to implement. However, if your communication channel supports only blocking read/write and can't be selected, it will be more difficult (the Ice core won't be able to directly use the file descriptor for your serial port to figure out when new data is available or can be written).

    Cheers,
    Benoit.

  3. #3
    cospan is offline Registered User
    Name: David McCoy
    Organization: Cospan Design
    Project: FPGA/android middleware
    Join Date
    Nov 2009
    Posts
    2
    Thanks a lot!

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Replies: 11
    Last Post: 10-01-2008, 07:17 AM
  2. A new transport over POSIX queues
    By fmoya in forum Patches
    Replies: 0
    Last Post: 06-07-2007, 06:48 AM
  3. Posix message queue
    By ywang in forum Help Center
    Replies: 1
    Last Post: 11-02-2006, 11:12 AM
  4. OpenBSD Port of Ice?
    By msw10100 in forum Help Center
    Replies: 0
    Last Post: 07-30-2005, 02:48 PM
  5. Would ICE be port to Delphi
    By 3100 in forum Help Center
    Replies: 0
    Last Post: 07-20-2004, 02:03 AM

Posting Permissions

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