I have not ran accrossed this topic yet. Is there anyway to pipe data into and out of the ARC software? My goal is keep the ARC software as is and have a pipe to my own AI software. I realize I could use the SDK to encorporate function, but the ARC is just too pretty the way it is.
An example of what I want to do is, lets says I speak the command in the ARC to "track the ball"; I'd like the ARC to pipe out something like "track ball" where my own software can grab that command string and do what ever with it (like store it in a memory database). And likewise if my software issued the command "track ball" the the ARC should read "track ball" coming into the pipe and the ARC software would react to it as if I spoke to the command.
In the controls I'm not seeing a clear way to pipe data to/from EZ-Builder. Is there a way achive this? Any suggestions?
Upgrade to ARC Pro
Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro
That would allow developers to put virtually any capability into ARC as an add-on that they wanted and utilize 3rd party application SDK/API's.
Now I can link my software with ARC. Thank you, thank you!
I'm literally going through this myself to link ARC with EventGhost through python scripts. EventGhost can control ARC which means anything in my house can control ARC, heck I could phone in commands now
Good luck with the project.
Rich's examples of using Telnet are probably best for event driven activities since you can essentially always listen for commands from the external app via Telent, but using HTTP Get or File I/O you could do periodic (even several times per second) look-ups.
HTTPGet is another that is pretty simple and great for APIs like Weather Underground, LastFM, IP webcams etc. for reading, writing and controlling.
I did have a file which had just the battery level of Melvin in it, it was updated every 2 seconds, this was checked by another application and the variable/information was in both applications. If you need an example of this I'll see if I have an old copy of Melvin's project.
I also use HTTPGet to pick up the current weather conditions, temperature etc. Again, if an example is needed I can post one. I have also used HTTPGet to pass information from ARC to another application via a PHP based web page, details of that are somewhere on here but again, if you need examples just ask.
I don't want to get in to too much detail without knowing any specifics so if you do need more information post up some specifics about what you want to do and I can tailor it to your needs.
Each of the installations were in geographically different locations, my portable tablet PC, my desktop workshop PC, and school classroom PC, and not all connected by a LAN but connected to the WWW.
I tried storing the file in Google Doc's but it didn't like the frequent update of data. Dropbox however worked well.
I did have difficulty keeping mental track of all the variables though...
But since you mentioned a battery level checker, how did you wire yours up? Did you use an ADC port (I assume not a digital port)? Did you use an external circuit to limit the battery voltage going into the EZ-B?
It should be all pretty clear to understand in that tutorial topic. But the key points;
ADC ports read the voltage of the LiPo Cells
A voltage divider is used to divide the voltage to a level which the EZ-B can accept, scripts multiply it back up.
The circuit can be adapted for other battery types easily. For instance, if you use a 12v SLA battery you can just change the divider to supply 1/3rd voltage to the ADC, max4v. A 7.2v NIMH a half divider. Etc.
Then just adjust the script to suit the number of batteries/cells and voltages.
it's very easy to use
Just make a reference to the DLL in your project then use a command like this to send data to ezb after setting up the TCP like sinstructed above.
EZ_Telnet.EZBTelnetClient.SendCommand("192.168.1.124","6666", "$thisvar = 1")
if you are looking at the variable watch you will see the new variable show up with its value.
you can also send commands that trigger scripts or other ex-scripting command.