Just about the dandiest CBL program I've written, CBLConsole replaces all those messy Send( and Get( statements for testing CBL commands with a console-based entry system based off of the Vernier LabPro's RS232 format. It runs on the TI-82, TI-83, TI-83 Plus series, TI-84 Plus series (probably including the 84+CSE as no direct screen manipulation is used), TI-85, TI-86, all TI-68k, and on PC via Python 2.7. The TI-73 is currently not supported due to a lack of string support in the OS. The Nspires, TI-84 Plus CE, TI-81, and TI-80 do not support interfacing with a CBL / LabPro, and thus will not be supported.

*insert TI-85/TI-86 screenshot here* *insert TI-68k screenshot here*


CBLConsole includes simple syntax for sending and receiving lists from the CBL: "s{7}" to send the list {7}, and "g" to get a list from the interface. To simplify life, I've added some macros to, for example, convert a list of ASCII values to a string or check the interface for an error condition.
So.. I see screenshot from a calculator and one from a pc interface. So is this a calculator program being connected to a computer as well, or is it something being run on a computer to get the info from the devices? A little bit more info would be nice, or perhaps a handy diagram explaining? :p
Very nice!
tifreak8x wrote:
So.. I see screenshot from a calculator and one from a pc interface. So is this a calculator program being connected to a computer as well, or is it something being run on a computer to get the info from the devices? A little bit more info would be nice, or perhaps a handy diagram explaining? :p


It's a re-implementation of the TI Link Protocol in Python 2, talking to a CBL/2/LabPro over a graylink. I've since upgraded to USB support with the LabPro, paralleling efforts from pyCBLM. I've booted Python 2 support (although, theoretically, it could be done) and made a unified software interface for talking to the sensor interface. So far, only the LabPro's native USB interface is defined, but the only obstacles to adding more interfaces is converting data types and building/tearing down connections at the lower layers.

The Python 3 / USB rewrite is completely from scratch and a nearly one-to-one port from the 68k TI-BASIC version. All of the behavior, even the weirder behavior, is replicated. A new command is added, the 'D' command, to go through the list of available sensor interface drivers (presently CBL2_DUMMY and LabProUSB). Since I'm expecting some significant code changes in the near future as I implement the serial interfaces, I'm not releasing any source code yet. I'm just glad it works.

Silverlink is working. Still needs a lot of work before it's releasable (since it only works in the specific case of the user sending/receiving strings due to a lack of data parsers). CBLConsole's Silverlink module is split into two parts: one transfers data over USB to/from the Silverlink, and the other translates the TI-82 link protocol into Python types and handles the simulated TI-82 link protocol. That way, other link protocols (such as TI-85 or TI-92) can be added without changing the link cable code, or other link cables (such as Graylink) can be added without changing the link protocol code.

.
Quote:
CBLConsole's Silverlink module is split into two parts: one transfers data over USB to/from the Silverlink, and the other translates the TI-82 link protocol into Python types and handles the simulated TI-82 link protocol. That way, other link protocols (such as TI-85 or TI-92) can be added without changing the link cable code, or other link cables (such as Graylink) can be added without changing the link protocol code.

Good, layered architecture is the right way to implement communication code Smile
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement