Archived

This forum has been archived. Please start a new discussion on GitHub.

IceStorm Subscriber Android

Hi Guys,

Has anyone successfully implemented an IceStorm Subscriber on Android??

I have a Ice Publisher publishing images from a camera on a raspberry pi. I want to write a subscriber which can use these images and display on a tablet.

Any help or suggestion would be much appreciated!

I am new to the Android platform and more confortable in C++ than Java.

Also has anyone managed to use the qt extension called "necessitas" along with Ice for android??

Regards,

Dr. Suraj Nair

Comments

  • mes
    mes California
    Hi,

    One potential problem in creating an IceStorm subscriber for Android is the restriction on incoming network connections that may be imposed by your device or network provider. IceStorm needs the ability to establish its own connection to each subscriber, and that may not be feasible on a mobile device.

    A workaround is to use Glacier2 as your front-end for the IceStorm service. The Android client would establish a bidirectional connection with Glacier2, and Glacier2 would handle the connection to IceStorm.

    Regards,
    Mark
  • Hi Mark,

    Thanks for the info.

    I have a few questions though bit first let me describe my setup to u.

    I am working on a medical robotic device and I have a controller running on a raspberry pi. This kernel is debian with a real time patch. IceE is installed on it over which we develop the application.

    One application is to grab videos from a surgical microscope and publish it using ice.

    Now I wang to setup different possibilities to use these published inages. One was is on an android tablet. For which this is what I have done:

    1. Compiled IceE for android ndk so that I can use c++

    2. Using qt necessitas tool to develop

    Now, my question is about the restrictions in network connection by the device which u mentioned. Im a bit confused here. We will operate in a local lan without intetnet. Would this still be a problem? Also ice box will run on the raspberry pi.

    I dont wang to develop in the native java environment for Ice android.

    Im using an Android Nexus 7 tablet.

    Regards,

    Suraj




    mes wrote: »
    Hi,

    One potential problem in creating an IceStorm subscriber for Android is the restriction on incoming network connections that may be imposed by your device or network provider. IceStorm needs the ability to establish its own connection to each subscriber, and that may not be feasible on a mobile device.

    A workaround is to use Glacier2 as your front-end for the IceStorm service. The Android client would establish a bidirectional connection with Glacier2, and Glacier2 would handle the connection to IceStorm.

    Regards,
    Mark
  • mes
    mes California
    Hi,

    Sounds like an interesting project. :)

    On a local LAN over Wifi, you shouldn't have any connection issues with your Android devices.

    I think the main question now is, If you decide to use IceStorm, where does it run? You won't be able to re-compile IceStorm for Ice-E, which means you'll need a host somewhere whose purpose is running IceStorm.

    Regards,
    Mark
  • HI Mark,

    Thanks for the reply!

    Cant I run icebox directly on the rasp pi??

    I already have a publisher running on the pi. For this I compile IceStorm.ice and
    SliceChecksumDict.ice using slice2ccpe on the raspberry pi so that I can use it with IceE. This seems o work.

    I did the same for android. While building IceE for android-ndk I also plugged in IceStorm.ice and SliceChecksumDict.ice to generate the headers and the function iside the static library generated for Andoid.

    Any suggestions??

    Regards,

    Suraj



    mes wrote: »
    Hi,

    Sounds like an interesting project. :)

    On a local LAN over Wifi, you shouldn't have any connection issues with your Android devices.

    I think the main question now is, If you decide to use IceStorm, where does it run? You won't be able to re-compile IceStorm for Ice-E, which means you'll need a host somewhere whose purpose is running IceStorm.

    Regards,
    Mark
  • mes
    mes California
    You might not have any trouble getting IceBox to run with Ice-E, but IceStorm is a different matter. IceStorm relies on Freeze (for persistence) and other Ice APIs not available with Ice-E. As I see it, you have several alternatives:
    • Run IceStorm on a separate (non-embedded) host
    • Try getting Ice (instead of Ice-E) to build for pi, so that you can run IceStorm on the camera device
    • Don't use IceStorm but rather develop your own custom subscription service using Ice-E that can run on the camera device

    Hope that helps.
    Mark