Limitations of wxPython

Hello, I am looking for some information so I can define what is and
isn't possible in my current project.
Please note: I have been learning (wx)Python for about three months
now so am still learning quickly.

print wx.VERSION = (2, 8, 11, 0, '')

The best overview I can give is I am trying to recreate an application
similar to skype, but without the limitations. By this I mean my
application will have the ability to send and receive multiple webcam
feeds (sent through a central SIP server) and other such
functionality.

I am currently communicating with an XML-RPC server (that someone else
is developing but I can give input to) and successfully sending and
receiving text data.

After searching the group threads I am still at a loss what I can and
can't achieve.

1) Sending and Recieving webcam stream
Currently I can access a webcam using VideoCapture, PyTimer and the
PIL functions. Each frame is captured and using EVT_PAINT put into a
panel. This refreshes quick enough to give the impression that is is a
stream, so this I am happy with. In theory would the best way of
broadcasting this be to send each frame captured to a SIP server
(maybe using RPC calls?) and allows the server to pass each image to
the other client to also 'Paint' into a panel?

And again do this but in reverse for receiving the other clients
webcam feed(s)?

2) Remote Desktop Connection
Is there anyway of embedding some form of RDC into a wxPython App to
allow the user to control another host machine? This would be for
fixing trivial issues without the need of driving 10-30miles and
wasting time/resources for a 5 minute fix.

3) Sending Voice
Is there a way of communication with a VoIP server to allow two way
voice communications?

4) XML Data Graphs
Is it possible to display an x-y graph with the data extracted and
plotted from an XML file? For example a users heart BPM data is
collected over a few hours, sent to the App in either an XML file, or
as tuple lists, and the results could be shown on a graph?

Thank you for all of the advice

Hello, I am looking for some information so I can define what is and
isn't possible in my current project.
Please note: I have been learning (wx)Python for about three months
now so am still learning quickly.

print wx.VERSION = (2, 8, 11, 0, '')

The best overview I can give is I am trying to recreate an application
similar to skype, but without the limitations. By this I mean my
application will have the ability to send and receive multiple webcam
feeds (sent through a central SIP server) and other such
functionality.

I am currently communicating with an XML-RPC server (that someone else
is developing but I can give input to) and successfully sending and
receiving text data.

After searching the group threads I am still at a loss what I can and
can't achieve.

1) Sending and Recieving webcam stream
Currently I can access a webcam using VideoCapture, PyTimer and the
PIL functions. Each frame is captured and using EVT_PAINT put into a
panel. This refreshes quick enough to give the impression that is is a
stream, so this I am happy with. In theory would the best way of
broadcasting this be to send each frame captured to a SIP server
(maybe using RPC calls?) and allows the server to pass each image to
the other client to also 'Paint' into a panel?

And again do this but in reverse for receiving the other clients
webcam feed(s)?

I think the mplayerctrl would probably work better. It wraps the
mplayer project. Worth a try anyway. Here's a link:

http://packages.python.org/MplayerCtrl/

2) Remote Desktop Connection
Is there anyway of embedding some form of RDC into a wxPython App to
allow the user to control another host machine? This would be for
fixing trivial issues without the need of driving 10-30miles and
wasting time/resources for a 5 minute fix.

I would think you could include an installer of some sort that you
could run from your application or your application's installer. Then
use your app to launch it.

3) Sending Voice
Is there a way of communication with a VoIP server to allow two way
voice communications?

I don't know about this one...

4) XML Data Graphs
Is it possible to display an x-y graph with the data extracted and
plotted from an XML file? For example a users heart BPM data is
collected over a few hours, sent to the App in either an XML file, or
as tuple lists, and the results could be shown on a graph?

Thank you for all of the advice

For simple graphs, PyPlot is your friend. For fancy stuff, you can use
matplotlib in wxPython. I'm not very familiar with either of these,
but others on the list are.

···

On Feb 10, 6:20 am, Nip Nip <drnip...@gmail.com> wrote:

-------------------
Mike Driscoll

Blog: http://blog.pythonlibrary.org

> Hello, I am looking for some information so I can define what is and
> isn't possible in my current project.
> Please note: I have been learning (wx)Python for about three months
> now so am still learning quickly.

> print wx.VERSION = (2, 8, 11, 0, '')

> The best overview I can give is I am trying to recreate an application
> similar to skype, but without the limitations. By this I mean my
> application will have the ability to send and receive multiple webcam
> feeds (sent through a central SIP server) and other such
> functionality.

> I am currently communicating with an XML-RPC server (that someone else
> is developing but I can give input to) and successfully sending and
> receiving text data.

> After searching the group threads I am still at a loss what I can and
> can't achieve.

> 1) Sending and Recieving webcam stream
> Currently I can access a webcam using VideoCapture, PyTimer and the
> PIL functions. Each frame is captured and using EVT_PAINT put into a
> panel. This refreshes quick enough to give the impression that is is a
> stream, so this I am happy with. In theory would the best way of
> broadcasting this be to send each frame captured to a SIP server
> (maybe using RPC calls?) and allows the server to pass each image to
> the other client to also 'Paint' into a panel?

> And again do this but in reverse for receiving the other clients
> webcam feed(s)?

I think the mplayerctrl would probably work better. It wraps the
mplayer project. Worth a try anyway. Here's a link:

Welcome to MplayerCtrl’s documentation! — MplayerCtrl v0.3.3 documentation

Thank you, I have read a little about this before. Does anyone have
any experience with getting the 'loadfromURL' command to work? I
cannot seem to find any for of stream-able media to test how to set up
this function.

> 2) Remote Desktop Connection
> Is there anyway of embedding some form of RDC into a wxPython App to
> allow the user to control another host machine? This would be for
> fixing trivial issues without the need of driving 10-30miles and
> wasting time/resources for a 5 minute fix.

I would think you could include an installer of some sort that you
could run from your application or your application's installer. Then
use your app to launch it.

I sort of understand what your saying. So have VNC installed on the
machine and use my App to launch an instance of this? Could this be
embedded into a widget at all?
Any idea's on what sort of commands I would have to use?

> 3) Sending Voice
> Is there a way of communication with a VoIP server to allow two way
> voice communications?

I don't know about this one...

> 4) XML Data Graphs
> Is it possible to display an x-y graph with the data extracted and
> plotted from an XML file? For example a users heart BPM data is
> collected over a few hours, sent to the App in either an XML file, or
> as tuple lists, and the results could be shown on a graph?

> Thank you for all of the advice

For simple graphs, PyPlot is your friend. For fancy stuff, you can use
matplotlib in wxPython. I'm not very familiar with either of these,
but others on the list are.

I shall research both of these functions today :slight_smile:
Im hoping that matplotlib shares some functionality with the Matlab
plotlib as that will speed up development

Nick

···

On Feb 10, 3:25 pm, Mike Driscoll <kyoso...@gmail.com> wrote:

On Feb 10, 6:20 am, Nip Nip <drnip...@gmail.com> wrote:

I wrote an application about 4 years ago in C# that did just this. It
consisted of three parts.

1. A proxy server that ran somewhere on the Internet.
2. The VNC server installed on a customer workstation.
3. The VNC client installed on a support rep machine.

There was also a simple application that "drove" VNC, this would be your app.

It worked by asking the VNC server it to initiate a connection to the
proxy (Only some versions of VNC allow server initiated connections).
The support rep would also connect to the proxy using the client.
Since both the client and server made outbound connections to the
proxy (which simply proxied them together) everything worked behind
NAT/firewalls without any special setup. My proxy simply did the VNC
handshake for both the client and server, then shuttled data back and
forth from one to the other. The proxy also had a web interface that
the support rep used to set up the connection, telling the proxy what
client they wanted to control, so when that client connected, the
support rep's connection would be bound to them.

IIRC correctly, I used TightVNC, it now has the ability to make
outbound connections without mucking with Windows messages (as I had
to do at the time). From the manual:

Add New Client... - This allows outgoing connections to be made from
the server to a viewer started in the "listening" mode. The name of
the target viewer machine and optional display number can be entered
in the dialog. Connections created this way are treated as shared.
Such so called "reverse connections" can also be initiated from the
command line using the -connect option.

This seems a lot easier than what I had to do at the time, by reading
the TightVNC source and emulating the GUI communicating with the
server process (via Windows messages).

You can do a silent install of VNC server and automatically configure
it to not accept any connections since you will be initiating them,
this is good for security as all your machines won't have VNC open and
waiting.

This system was deployed onto thin clients located all over the
country and used by a support team to quickly fix issues on thin
clients that previously required simply replacing them with a new thin
client. This was a Windows only solution, but you could do the same
thing in a cross platform app since TightVNC supports many platforms.

···

On Fri, Feb 11, 2011 at 6:05 AM, Nip Nip <drnipnip@gmail.com> wrote:

On Feb 10, 3:25 pm, Mike Driscoll <kyoso...@gmail.com> wrote:

On Feb 10, 6:20 am, Nip Nip <drnip...@gmail.com> wrote:
> 2) Remote Desktop Connection
> Is there anyway of embedding some form of RDC into a wxPython App to
> allow the user to control another host machine? This would be for
> fixing trivial issues without the need of driving 10-30miles and
> wasting time/resources for a 5 minute fix.

I would think you could include an installer of some sort that you
could run from your application or your application's installer. Then
use your app to launch it.

I sort of understand what your saying. So have VNC installed on the
machine and use my App to launch an instance of this? Could this be
embedded into a widget at all?
Any idea's on what sort of commands I would have to use?

Voice wouldn’t necessarily be apart of wxPython, but check out
http://www.pjsip.org/ they have a python binding, and just maybe you could use that stack for you video as well, IDK. There are multiple way’s of combining wxpython with other projects.

···


Hi, I will kill all ads in google gmail.
They will all be dead and gone for all my emails to you. HA HA bye bye ads I just massacred you!!!