Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - archived

Pages: 1 ... 346 347 [348] 349
5206
Pluto Main General Issues / Pluto 2 vs Previous Pluto ?
« 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

5207
Pluto Main General Issues / Pluto 2 vs Previous Pluto ?
« 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.

5208
Pluto Main General Issues / Pluto 2 vs Previous Pluto ?
« 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.

5209
Pluto Main General Issues / Pluto 2 vs Previous Pluto ?
« 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.

5210
Pluto Main General Issues / 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.

5211
Hi,

thanks for the code. I'll take a look and see if I can do any better.

Afterall, I'm speech recognition researcher...

BTW, is Sphinx2 you interfaced with ?

Will inform on any progress...

Regards,

Rob.

5212
Quote from: "aaron.b"
Those Sony Ericsson models are Symbian UIQ.  They're actually quite different since they have a touch-screen interface and the UI is very different.  We have a P900 here that we intend to get it working on, however it's been a lower priority since those phones are actually not ideal as remote controls.  The touch-screen interface is nice, and the display is big, but for channel surfing and other tasks in a dark room, and general remote control operation, most people prefer physical hard buttons.  The S.E. Px series don't have an up/down/left/right/enter joystick to navigate on-screen menus.  The regular, non-touchscreen phones, while not as "cool", actually make better remotes since they have more physical buttons.


Hi,

I see. I had P800 some time ago and it was quite good. They do have even better control for up/down and enter/up - it's on the left side - I think they call it jog dial. Only bemused server (bemused.sf.net) could use that wheel and it was really helpful.

Maybe you can take a peek at bemused server/client environment. They have implemented most of the stuff you probably need...

So the key of compatibility is beside Symbian also UI system ?

Regards,

Robert.

5213
App Server Users / Some general questions
« on: December 02, 2004, 09:07:17 pm »
Hi,

thanks for all info. I must say that I'm still talking about Pluto without having it actually working ...

So I'll make some better suggestions then. But berfore then I'll reveal my thoughts how to approach from MH to Pluto:
- phase 1: connect MH to message passing Pluto system: receive all messages, parse them, initiate events on other devices - actually just use devices that are available. AFAIK that won't be so hard.
- phase 2: try to implement some devices also through MH system, that will probably be a little harder.. One fo the obstacle would be object serialization, etc... But in another way, when we do that MH is so easy to add anything so it could be useful in anyway.

I'll post my progress and expect quite some questions :-) ...

Regards,

Rob.

5214
This was a duplicate of the prior message.  We had a problem with the forum that the messages weren't appearing, but it should have been fixed by now.

5215
Hey Rob,

I put the old series 1 code up on the site for Motion and Sphinx.  We haven't touched them at all yet.  Under series 2 DCE is quite a bit different, although the concepts are the same.  Most of the old classes that had the name OC in front, are now in the DCE namespace without the OC.  The old OCMessage is comparable to the new DCE::Message.  The easiest way to get them to work is to 1) get the system setup on your local machine with the pluto admin web site, 2) go into pluto admin, device template, and create new devices for sphinx and motion, giving them the same data, commands, and events as the old one, then 3) run DCEGenerator to build a new Series 2 DCE Device, lastly 4) copy the command implementations from the old series 1 device into the new command stubs in the new series 2 device.

Motion worked fine for us in the old series 1 systems.  It crashed every once in a while, however the framework with the startup scripts just relaunches it everytime.  It never created a problem since all the DCE Devices are socket driven you can stop and restart them without hurting anything.

Sphinx was a huge challenge for us.  We got it working and it recognized voice commands over a microphone (lights on, off, etc.).  We also did an interface with Asterisk, so if you called in, the voice prompt would say "Who would you like to speak with?"  And it would transfer the call to the person accordingly.  The problem was the accuracy.  BEST case, we were able to get around 80%.  That made it interesting for techies, but useless for a consumer product where we would need to be close to 100% to keep from angering the consumer.  We hired a voice-recognition company to come to our offices for several weeks and work with us on it.  We got lots of different microphones, and they made a lot of tweaks--that's how it got to 80%.  But, in the end, they said that Sphinx just wasn't advanced enough to get much better than that.  They recommended the commercial product from Nuance--who does all the speech recognition for 411 information, the big airlines, etc.  Nuance's product worked well, but they required $1 million up front, and a guaranteed commitment of $5 million.  Since our volumes are pretty small, and the speech recognition is just 1 tiny part of the whole product, we ruled out that possibility.

The files are:
http://plutohome.com/download/OCMotion.tar.gz
http://plutohome.com/download/sphinx.tar.gz
http://plutohome.com/download/sphinx_support_files.tar.gz

The support files is huge--it contains tons of sound files and other files sphinx used.  The sphinx.tar.gz also includes the modifications we made to Asterisk to get it working over the phone system.  Neither of these were released, and we haven't looked at them in almost 2 years.

Hope this helps.

5216
Those Sony Ericsson models are Symbian UIQ.  They're actually quite different since they have a touch-screen interface and the UI is very different.  We have a P900 here that we intend to get it working on, however it's been a lower priority since those phones are actually not ideal as remote controls.  The touch-screen interface is nice, and the display is big, but for channel surfing and other tasks in a dark room, and general remote control operation, most people prefer physical hard buttons.  The S.E. Px series don't have an up/down/left/right/enter joystick to navigate on-screen menus.  The regular, non-touchscreen phones, while not as "cool", actually make better remotes since they have more physical buttons.

5217
App Server Users / Some general questions
« on: December 02, 2004, 11:52:46 am »
Hey Robert,

That's great.  I didn't realize Mr. House did so much.  We'll help in any way possible.  I added some more detailed information about our DCE protocol and put it in our documentation: http://plutohome.com/support/index.php?section=document&docID=51.

DCE (Data, Commands & Events), is the mechanism through which all the devices communicate and share data and send each other commands & events.  It is socket-based, and will run on any platform.  We don't have any good PERL guys here (we're all C++), but it should work just fine.  

I'm not sure the best way to do it, though.  Here are the issues: Our DCEGen tool makes it really comfortable to create new devices.  You just use the pluto-admin web-site, add a device, specify what data it needs, commands it implements, and events it fires.  It builds a C++ project for you already, with a gcc Makefile, an MS VS.net project file.  All the classes are derived from common classes in our DCE library which implements the protocol.  The generated code is really very simple--it's basically just some switch blocks that handle receiving commands in the form of a message with an ID, and calling a virtual function, which the programmer implements.  The DCE library (the base classes) are not too complex, either.  The main object is the Message class, which contains the actual command or event, and knows how to serialize itself into a stream of binary data and be sent across a socket.

The most elegent solution would be to re-write everything in PERL from the ground up.  But then there would be quite a bit of work to do since the DCE Library, the Socket code, the Message class, etc. would need to be re-written.  Also, there would need to be a new version of the DCE generator since, if you're going to implement lots of devices, you won't want to have to do everything by hand.

But there might be an easier solution if PERL and C++ are able to work together.  I don't know PERL at all, and one of my colleagues here who knows it somewhat said it can be difficult to get them to work together.  However, if you know a way, here's what we could do...  We could modify DCEGenerator so that when it outputs a C++ program for the DCE Device, rather than just function stubs for the C++ programmer, it instead calls a function in the PERL program.  The trickier part would probably getting the PERL program to call member functions in the C++ class to fire events.  However, if we got that to work, then theoretically we could just go into the database, create a new Device that had the same data, commands and events as the existing Mr. House one, and DCE Generator would make a C++ wrapper that worked with the PERL module.

We can handle any modifications to the DCE Generator and the C++ classes if you tell us how it should work.  To see the C++ code, go to Downloads and get "Pluto Disk Drive Source".  It's a really simple DCE Device which is an interface for a cd/dvd drive.  Disk_Drive.h and .cpp are the files which DCE Generator created, and the programmer implelemented.  You can see in the header that the device was given 1 data paremeter ("Drive"), and so it has members Set_Drive and Get_Drive.  It has some members to call to fire events: Media_Inserted, and it has functions to implement its commands: Eject_Disk, Start_Burning, etc.  Is there a way to use the same structure and just call your own PERL command handlers, and have your PERL program call our C++ event methods?

As far as Debian...  The code is not OS or distro specific.  It's mainly scripts to automate tasks for non-techies.  Our product was intended to be used as an appliance where the user may have no clue about computers.  So, for example, if the homeowner adds a new family member to the system using the Pluto Admin site, it will create a new user, export a "personal" files folder for that user as a samba share, create an email account for him, create a personal web home page for him, and so on.  The Debian-specific scripts are those that automate every possible task for a total non-computer user.  So, if you want a 'closed box' appliance that does nothing but Pluto, and automates absolutely everything, without ever logging in to the console, you will need to use a Debian platform for now.  But, aside from these scripts, there is nothing Debian-specific.

Aaron

5218
Pluto Main General Issues / Link to windows dlls and exes is not working
« on: December 02, 2004, 11:42:46 am »
Quote from: "aaron.b"
Apologies on the broken link.  It is fixed now.

We haven't had a chance to look at the Windows PVR solutions.   If WinMyth is functionally similar to the Linux version, it will probably be quite easy to get  it working.  There are only 2 devices involved, and they are both quite small: The MythTV-Plugin is the plugin which is loaded into the DCE Router and handles the communication with the mythbackend, and coordinates everything with all the players.  The MythTV Player is the DCE device that runs on the media pc itself and communicates with the Myth Front end.

There's not a lot of code (less than 1,000 lines), and in both cases, 90% of the code is generic.  In the Plug-in, much of the code is building the datagrids to show the program guide.  If WinMyth uses the same database schema, that code will work the same without any changes.

So, I think it will be really easy to get it going with WinMyth.  However, our focus right now is on finishing up the Linux implementation, since we still have several missing pieces.  We'll be able to put more attention to the Windows aspects in about a month or so.


Hi,

thanks for info. I'm user of both apps (for version 0.15) and can comment a little further:
- DSMyth seem to be Directshow filter for accessing files from mythbackend. That means you for instance just type myth://live and you get live tv played in wmp. Through that you can also access recorded movies - of course you also need proper codecs installed.

- Winmyth is just simple GUI wrapper around that. I guess it accesses recordings infor and displays it in own window.

Sources for both applications are available, so when the time comes, Windows Mythtv frontend will quickly get into shape.

Regards,

Robert.

5219
Pluto Main General Issues / Link to windows dlls and exes is not working
« on: December 02, 2004, 10:51:57 am »
Apologies on the broken link.  It is fixed now.

We haven't had a chance to look at the Windows PVR solutions.   If WinMyth is functionally similar to the Linux version, it will probably be quite easy to get  it working.  There are only 2 devices involved, and they are both quite small: The MythTV-Plugin is the plugin which is loaded into the DCE Router and handles the communication with the mythbackend, and coordinates everything with all the players.  The MythTV Player is the DCE device that runs on the media pc itself and communicates with the Myth Front end.

There's not a lot of code (less than 1,000 lines), and in both cases, 90% of the code is generic.  In the Plug-in, much of the code is building the datagrids to show the program guide.  If WinMyth uses the same database schema, that code will work the same without any changes.

So, I think it will be really easy to get it going with WinMyth.  However, our focus right now is on finishing up the Linux implementation, since we still have several missing pieces.  We'll be able to put more attention to the Windows aspects in about a month or so.

5220
Hi,

I know I'm bit early, but would like to find code for interfacing Motion and Sphinx - I already use them standalone...

I've traversed svn site, but couldn't find them.

Any pointer where to search ?

Regards,

Rob.

Pages: 1 ... 346 347 [348] 349