(Ironically, this idea kinda relates to the big fiasco that occurred recently. I won't say what, but it happened in IRC, and those who know will know what I mean...
Also, it so happens that this was posted on July 24th, when the next release of Axe Parser is released. Ignore that also!)
I had a quirky idea - to have an online simulator where you can submit programs and apps!
Now, why is that useful, even if you have your own calculator?
1) You can test your programs/apps on other calcs for compatibility.
2) Emulators can be buggy, and don't really 100% represent real hardware.
3) No need for borrowing calcs - you have them available online, and you get FULL CONTROL.
4) Did you leave a calc at home? No worries - you can test programs (and even develop them) online!
5) You feel like a control freak since you're controlling someone's physical calculator.
There's probably more reasons, but I'll leave it to you for suggestions and thoughts.
So what is needed before I (or anyone else) starts?
- Axe Parser features to be implemented:
- Linking with other calcs
- Linking with computer and communicating with it
(This would also mean a client program on the computer that can send data and such, in which
Axe Parser can receive as a string. This is actually the feature I need - the first one is a stepping
stone for it.)
- Screenshoting the calculator - maybe a hook?
If possible, also when ASM programs are running?
(Or I might be missing a way to screenshot
without TI Connect or TiLP...)
So how does it work?It starts with a person plugging in his/her calculator into their computer. Then, they install software on both
the computer and calculator to allow remote control. Then they sync with each other. When the person
is using the calculator, there's no way to get in. Control will only work when the person runs the app, and
the program on the computer syncs with it.
The computer software then connects to a specific server to say that a person allows their calc to become
a testing ground. The server handles all the requests for testings and such. The server will have a webpage
for requests for testing.
A person wants to test, say, HELLOWRD.8Xp, their very interesting program.
They would file a request, and if approved, be allowed to schedule a time.
At the specified time, the person would first upload the program/app, and then
go to the main page for control. The program/app would be downloaded by the
client program on the donor's PC, and then sent to the calc. The app running would accept
it, save it, and then run it.
From there, the controller clicks keys, which submit commands to the server.
The clients receives commands from the server, which then gets sent to the calculator,
which the calc app receives and emulates the requested key.
Whew! That was confusing, wasn't it? Prepared to be a LOT more confused.
There are 2 ways of communicating between client and server: HTTP and direct.
HTTP:
__________ __________
| Client | GET http://server.com/calc_ctrl.php?id=123&command=getcomm | |
| PC | -------------------------------------------------------------------------> | Server |
|__________| |__________|
Direct:
__________ ___________
| | Connect to 77.77.77.777:4567 with raw TCP: "KEY_UP" | Client |
| Server | -------------------------------------------------------------------------> | PC |
|__________| |___________|
Now we're done!
Let's go to the FAQ:
FAQ1) OMG!!! THIS PROGRAM WILL GIVE ME VIRUSES!!!?!!!
No, it won't. A hacker would have to first figure out who to connect to, bypass all the logins,
THEN bypass the PHP security (for the file that sends commands), and THEN bypass program
security. Python will be used for the program, since it's cross platform (Windows, Mac, Linux),
and it's very secure.
2) Can people kill my calculator?
Yes... they can. However, there's 3 things for defense:
- Real, valid information (name, phone #, etc.) must be provided, and it is verified so the person can't escape from
punishment if they try destroying your calc.
- Pressing the ON key will stop the app completely. If they are doing something crazy, you can disconnect.
- Disconnecting the USB cable will obviously stop remote control.
3) Why Axe Parser?
Because:
- Basic really sucks for communication. It's slow and really doesn't work while in loops.
Not mentioning that Basic can't really communicate with the PC.
- I don't know ASM (well enough), so obviously I can't write it in that way.
- Axe Parser is a very nice language!
- The developer of Axe Parser is on this forum!
4)
(More to come if asked)
The FutureWOW... the future? Yup.
If you haven't realized it, if this works, that calc can connect to the internet!
Of course, on a USB tether, but otherwise, it works.
I recall someone attempting this, but it never went anywhere. (Some famous app had it...
Not too sure)
I'm hoping that if this, or at least parts of this suggestion are implemented,
we'll have a nice connection with the TI and the internet!