Page 2 of 4

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 16 Aug 2013, 08:15
by HaWe
Online mode

It would be great if we could have again a feature that once was provided by the Robotics Invention System (RIS) for the RCX and the programming language RCX code or alternatively VisualBasic plus Spirit.ocx (and which I have sorely missed for the NXT):

One could create a program on the computer and let it execute on the computer, remote-controlling the brick automatically online via a serial connection (previously it was a serial wireless IR tower, either connected to the PC through RS232 or USB).

To make it clear: you didn't ever need something like a .net program running on the PC (or any other additional PC-Brick communication program like. e.g. Aforgenet, Monobrick, Mindsqualls), the online program and the offline program have been completely identical: you only had to choose either EXECUTION_ONLINE or UPLOAD/EXECUTION_OFFLINE !

This now should be able to do again with the EV3, too: alternatively execute a program online (wired or wireless) or alternatively upload the same program to the EV3 brick (as previously to the RCX brick) and then execute it offline, autonomously.

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 16 Aug 2013, 12:25
by mattallen37
In regard to running programs remotely.

Would there be any advantage? In order for it to run at it's optimum speed, the program would need to be executing from internally. Sending the OP-Codes one-at-a-time to execute would likely slow things down considerably, and I see no advantage.

If the idea is that you want to keep the EV3 free of a cluttered file system, then use a temporary directory (created specifically for this purpose), or else delete the files when you're done (which you should be able to automate if necessary).

I don't mean to say it's a bad idea, I would just like to understand the advantage.

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 16 Aug 2013, 12:50
by HaWe
there are no limits to the imagination - it's because of the same reason why people wish to have a BT or USB connection to a PC host;
currently for the NXT via BT or USB it's shaky and complicated and not everybody is experienced in Mindsqualls or .net programming and/or the NXT mailbox crap.

As an idea, e.g., you can monitor sensor readings for advanced graphical evaluation by charts like this one
Image
(this one by Labview)
Additionally you may use your PC keyboard, your mouse, and even a barcode scanner as input devices and your PC screen and your printer as output devices -
- or you maybe can spline in (? correct idiom ?) calculation results of a simultaneously running image processing program on the PC through an Input-Output Interface.

So in such cases the online mode could
a) temporarily help debugging and optimizing code (and online features would be disabled when in offline mode), or
b) it could be used exclusively if a steady connection to a PC host will be indispensable and always be given.

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 18 Aug 2013, 23:50
by tcwan
doc-helmut wrote:Online mode

To make it clear: you didn't ever need something like a .net program running on the PC (or any other additional PC-Brick communication program like. e.g. Aforgenet, Monobrick, Mindsqualls), the online program and the offline program have been completely identical: you only had to choose either EXECUTION_ONLINE or UPLOAD/EXECUTION_OFFLINE !

This now should be able to do again with the EV3, too: alternatively execute a program online (wired or wireless) or alternatively upload the same program to the EV3 brick (as previously to the RCX brick) and then execute it offline, autonomously.
Since EV3 is Linux based, I presume that you would be able to write the program as a client-server pair communicating over TCP/IP (I'm simplifying the explanation). This way, the server runs on the EV3 to perform the tasks, while the client can be compiled to run locally on the EV3 or else remotely on the PC connected via the WiFi Dongle. Best of both worlds.

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 19 Aug 2013, 07:58
by HaWe
sounds reasonable, and the communication program then should be completely integrated into the BCC IDE, running automatically if once been started (run_online), so that one has to write only 1 source code for either execution mode (online vs. offline).
Although I'm afraid that WiFi would be too slow (my WiFi is just about 10-50 Mbit/s, USB 2.0 is 480 Mbit/s).

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 19 Aug 2013, 08:31
by mightor
Heh, how much data do you think the EV3 can generate? :) I highly doubt your WiFi will be the bottleneck in this case.

= Xander

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 19 Aug 2013, 09:10
by HaWe
to be honest: I have no idea :oops:

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 19 Aug 2013, 09:43
by mightor
ok, consider the worst case scenario:
The first two sensor ports are running at 460Kbit/s each.
The third and fourth are going at 230Kbit/s each.

That's 1.38Mbit/s in total. Even if you could, somehow, get that data out of the UARTs, processed and out through the WiFi, your network would still be fine :) I am sure you'd have to do some pretty mad optimisations to get that kind of throughput :)

= Xander

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 19 Aug 2013, 10:27
by HaWe
I'll do my very best! :mrgreen:

Re: Wishlist for C for EV3 (EVC, EV3-C)

Posted: 19 Aug 2013, 11:19
by mightor
No, what I am saying is that I have my doubts whether the EV3's current firmware is capable of delivering this throughput. I have no doubt you will work hard on getting as close to the theoretical maximum as the hardware and software will allow.

= Xander