Author Topic: Pluto 2 vs Previous Pluto ?  (Read 9265 times)

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Pluto 2 vs Previous Pluto ?
« on: December 04, 2004, 10:46:53 pm »
Hi,

I've read a lot about Pluto functionality. It really looks nice and I'm considering purchase of compatible mobile phone.

But since Pluto 2 is at preview stage I'd kindly ask for short description of features that maybe aren't functional yet. I've read about Designer, but OK it's usable.

What versions of Motion, Asterisk and Sphinx were interfaced with current code ?

Regards,

Rob.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Pluto 2 vs Previous Pluto ?
« Reply #1 on: December 05, 2004, 08:07:28 am »
Hey Rob,

We expect to have all the functionality in place around the beginning of January (if things stay on schedule).  At that point, we will stop new development and focus just on bug fixes, usability enhancements and testing.    Our goal is to have a stable, retail version ready around the end of March.

We are testing an asterisk integration using the latest stable version of asterisk from Debian's repository.  We expect it will be included in the 2.0.0.4 build, scheduled in about 2 weeks (we release 1 build per week).  Motion will probably make it in the following build.  We do not plan on including Sphinx in our retail product.  While it is of interest to techies, we were never able to get it to work reliably enough for a commercial product.  This despite many months with several engineers.  We even hired a speech recognition consulting company that sets up recognition systems for major corporations.  Their team came to Florida and worked with our engineers, but were never able to get satisfactory accuracy using the free, open source projects.  So, while we will gladly support Sphinx integration and host it and support it, it will not be in the retail version.

If you are looking at Pluto as a product to use--rather than a development platform--I would give it about 1 more month.  This release really was intended as a preview for developers who want to see how the platform works and may be interested in developing DCE wrappers for their own open source projects.  The foundation, framework and libraries are stable, but we still have work to do on the wizards, documentation, and user interface before it becomes very usefull as a smart home solution.

Hope this helps.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Pluto 2 vs Previous Pluto ?
« Reply #2 on: December 05, 2004, 10:18:58 am »
Quote from: "aaron.b"
Hey Rob,

We expect to have all the functionality in place around the beginning of January (if things stay on schedule).  At that point, we will stop new development and focus just on bug fixes, usability enhancements and testing.    Our goal is to have a stable, retail version ready around the end of March.

We are testing an asterisk integration using the latest stable version of asterisk from Debian's repository.  We expect it will be included in the 2.0.0.4 build, scheduled in about 2 weeks (we release 1 build per week).  Motion will probably make it in the following build.  We do not plan on including Sphinx in our retail product.  While it is of interest to techies, we were never able to get it to work reliably enough for a commercial product.  This despite many months with several engineers.  We even hired a speech recognition consulting company that sets up recognition systems for major corporations.  Their team came to Florida and worked with our engineers, but were never able to get satisfactory accuracy using the free, open source projects.  So, while we will gladly support Sphinx integration and host it and support it, it will not be in the retail version.

If you are looking at Pluto as a product to use--rather than a development platform--I would give it about 1 more month.  This release really was intended as a preview for developers who want to see how the platform works and may be interested in developing DCE wrappers for their own open source projects.  The foundation, framework and libraries are stable, but we still have work to do on the wizards, documentation, and user interface before it becomes very usefull as a smart home solution.

Hope this helps.


Hi,

if you need any help I suggest going to mailing lists for particular apps - they are really helpful.

For Misterhouse: I think the best startup way would be to implement parent DCE device with a lot of child devices - that is regarding devices. But MH is also strong in getting informations (weather, news, jokes, etc...) and I wonder what would be the best way to use it (can DCE device also be information retrieval only ?).

There is also active development for connection MH and Sphinx4 and there are more promising reports related to recognition success. So I guess Sphinx4 connection will happen soon. I'll inform you about further development.

I'm interested in porting Mobile Orbiter to SE P800 and P900, but I'm curious about Pluto license. If I contribute this to Pluto community based on existing source I won't be allowed to distribute it in turnkey solution ?

Also would kindly ask for few short answers :
- Mobile orbiter - how are live video feeds from motion distributed to mobile ? How is remote connection with mobile phone - over GPRS ? Is WAP interface used or just TCP connection between server and client?What security measures are taken in this situation ?

- Video phone - is it achieved through use of softphone ? Which app ?


Regards,

Rob.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Pluto 2 vs Previous Pluto ?
« Reply #3 on: December 05, 2004, 10:21:39 am »
Sorry for this guest thing.

I'm just used to automatic logging feature in other forums and always forget to log in, get back to main page and back to forum...

Regards,

Rob.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Pluto 2 vs Previous Pluto ?
« Reply #4 on: December 05, 2004, 03:28:42 pm »
Hi Rob,

>> Can DCE be used for information retrieval...

The underlying class behind DCE itself is "Message", which is nothing but a message, or essentially a packet.  It can be anything you want--binary data like a video, a packet of data in a stream, etc.  Within your code you can create a DCE message of any type, with any ID, and attach anything to it.  Just give it a destination device, group of devices, category of device, etc., and then pass it to SendMessage or QueueMessage.  It will get to it's destination.  Of course, the destination needs to know what to do with it and will ignore it if there's no handler for it.  So you can really use it for anything at all.

>> Sphinx 4

That's great news.  I wasn't one of the developers in our speech recognition efforts, but I know it was in the spring of 2003.  It sounds like things have improved in the last 18 months.

>> Porting to the SE800 / SE900

There's actually almost nothing to do.  All the code, the logic, the framework, etc. is in common base classes that is ansi C++.  We had to write our own set of macros and classes to get Symbian to compile ansi C++.  Natively Symbian C++ is quite different--instead of the stl list, they have their own mechanism.  Their strings are completely different.  So we had to write macros to do translation, and in some cases, like strings, write our own Symbian classes that mimiced the classes in ansi c++.  But, with that work having been done, our ansi C++ code now compiles just fine in Symbian.  The base classes then call methods: DrawImage, DrawRectangle, DrawText which is what the UI-specific class must implement.  So, literally, 99% of the code is shared between Linux, Windows, CE and Symbian, and there are only a few functions specific to Symbian.  And those functions are probably very similar, if not identical, between the Symbian flavors.  Plus, in the case of our mobile phone app, all the graphics processing, text rendering, etc. is done on the PC side, which feeds pre-rendered bitmaps to display on the phone.  We did this so we can run the same software on Java phones, and other proprietary platforms, like Motorolla's.  It's probably no more than 50-100 lines of code that will change for each platform, and only a day or two of work.

>> Pluto license

You can distribute the software royalty free, but if you work for a manufacturer and want to embed the software into some existing hardware sold as a pre-installed combination, you do need a separate license.  In our case, we took a huge risk going open source with our product since we work in a very competitive segment.  We have a couple dozen programmers, as do our competitors, like Crestron, AMX, Core Access, Kaleidascape, etc.  If there was no restrictions at all, our competitors could just drop their own engineering efforts and just use all our software to compete against us.  So, the purpose of the Pluto license was to allow the same freedoms and rights as GPL for the open source community, which only cares about the software anyway since they're not manufacturing any hard good, but prevent our competitors from using our software on their hardware and selling it as their own product.  Also, the Pluto License doesn't prohibit distribution with hard goods, it only requires a separate license, which may or may not even require a fee.  It depends on what company wants to distribute it and as part of what product.  We want everyone to be able to use our software for free, we just don't want our competitors to drive us out of business with our own product.  :)

>> Video feeds

Are handled 2 ways: push or pull.  You can add 'video' object to any screen within Designer, and just specify the source.  It can be any device that knows how to provide video frames--a camera, Xine, etc.  In that case it's a 'pull' system because when the orbiter gets to the screen it asks the other device for the video.  Presently, the only message we implement is the 'Video Frame' message, and the orbiter requests this about twice per second (ie 2 frames per second).  The other mechanism is a 'push', where another device sends the orbiter an 'update object image' command, telling the orbiter to put an image (or series of images) on the screen.  More messages could be added to do a true streaming, either by embedding the video within the dce message, or sending a message telling the device to render video being broadcast over a udp port.

>> remote connection
When you leave the house, the Core sends the phone a 'message' by calling it using a regular phone call, but with an encoded caller ID.  This requires going through a switch that is able to do this.  The problem with other methods is they are not reliable.  If you are on the phone, sms, mms and internet are cut off--it's a limitation of all the current cell phone providers.  The only thing that gets through to you no matter what is another call.  And you would be pissed off if you hung up the phone after a 45 minute call only to learn that your house was being robbed 30 minutes earlier but you missed it since you were on the phone.  So, the software sits in the background 'listening' for incoming calls, and if the caller id matches a given pattern, it beeps and displays a message.  For the phone to send requests back to the server, it just opens a web page basically, passing the outgoing data on the url, receiving the incoming data as the body of the page.  This makes it very easy to add functionality (they're just web pages), and to implement security (you just need an SSL certificate so the web page is secure).  In the future, for those who don't want their own ssl certificate, we will offer very cheap use of our SSL certificate so the phone can hit our servers, which will 'tunnel' through a secure ssh connection back to your server.

>> Video phone

Video phone is presently only supported on the Linux media directories.  We use a heavily modified version of Linphone, and some extensions which allow us to route video over sip, so we can treat video calls just like normal phone calls (ie hold, transfer, voice mail, etc.).  We're still a few weeks away from making this available with the series 2.

>> Auto login

Sorry...  I'm not one of the php guys, but I know it actually was a real pain to get phpbb, mantis, mailman, and our own sites to use a unified login, so you wouldn't have to create separate user accounts for each.  I think they're working on an auto-login for our site, which, since it's unified, will mean it will automatically login to the forums, bug tracking, etc.  I don't know when that will be finished though.

Aaron

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Pluto 2 vs Previous Pluto ?
« Reply #5 on: December 05, 2004, 06:13:28 pm »
Hi,

thanks for all info. Now I'm getting into Pluto system. It's kind of structure I was thinking of, so will probably continue working in this direction.

Hope will be of help in further development. It things get going, I'm sure a lot of MH users will also take part.

Your answers are tremendous source of information, I hope I didn't bother you much...



See you till next question  :-) ...

Thanks,

Rob.

archived

  • Hello, I'm new here
  • Posts: 0
    • View Profile
Pluto 2 vs Previous Pluto ?
« Reply #6 on: December 06, 2004, 05:07:10 pm »
Glad to help.  I put the beginnings of the Programmer's Guide for Orbiter Symbian in the documentation.  You can view it here:

http://plutohome.com/support/index.php?section=document&docID=14

Note that you can also edit this documentation locally.  Just edit the line in the php web site globalconfig/globalconfig.inc.php, and add your user id (found in the users table) here:

$GLOBALS['userIsAdmin']=array(33129,33130);

Then when you're viewing your local copy of the documentation, add a &Edit=1 to the URL to go into 'edit' mode.  Any changes you make to the  documentation will be made to your local copy of the database (table: Document).

Then you can run sqlCVS ci to merge your local database changes back to our central database--our sqlCVS server will be going soon.  Of course your local tables (your settings, users, passwords, etc.) are not merged.  But it merges back into our database new device templates, documentation, and other 'shared tables'.  If you modify a record in the database that you didn't create, sqlCVS will give you the username and contact info of the developer who owns that record and a batch number.  You can just email him and tell him to approve that batch, which causes those changes to get merged in too.