BarTender

From MagnetoWiki
Revision as of 08:09, 1 August 2024 by Houpt (talk | contribs) (added youtube link)
Jump to navigation Jump to search

Walkthrough

Video walkthrough of workflow on youtube.


Overview of the Program

  1. All Experiments are loaded (LoadExperiments(); called by main)
    • All expts in the same directory as the application get loaded at when first run
    • Experiments are stored in text files of type EXPT, creater BARt
    • The experiment object holds the number of rats and variables per rat, and the tag abbreviations;
    • when a bar code is scanned, the weights window will ask the expt file to interepret the tag
    • The experiment object also holds the current on weights; the on weights are stored in a file with the name “EXPT on wgts” (i.e. for an experiment with tag CL, the weights are stored in the file “CL on wgts”.
  2. "On Weight" command -> makes on WeightsWindow the front most window
  3. WeightsWindow waits for input of the tag on the bottle ( waits_for_text flag is set to TRUE)
    • The waiting for a tag is just waiting for keystrokes – either hand entered, or entered by the bar code reader
    • if the WeightsWindow receives a return or enter, then it has gotten the full tag (waits_for_text flag is set to FALSE)
    • Having gotten the bottle tag, the weights window now:
    1. ProcessTag();
      • figure out the experiment, item, and subject number
    2. ForceRedraw();
      • If this is the first tag, then the window needs to be updated with the current expt, which means pulling up the different variables, etc.
    3. WaitForWeight();
      • update weight of that item – wait for the scale to transmit the weight
    4. ProcessWeight();
      • Store the weight in the appopriate bottle object(either as on weight or off weight).
    5. Clear();
      • Start all over again ( waits_for_text flag is set to TRUE)
  4. When the window is closed, the on weights will get stored on disk in a file with the name “EXPT on wgts” (i.e. for an experiment with tag CL, the weights are stored in the file “CL on wgts”.
scanner and scale

Barcode Scanner

scanner and bottle
  • Unitech MS340 USB 1D barcode scanner. Default setting, but set to "Continuous / Auto Power ON".

Serial Adapter

  • StarTech.com ICUSB232C : USB C to Serial Adapter Cable 16" (40cm) - USB Type C to RS232 (DB9) Converter Cable - USB-C Serial Cable for PLCs, Scanners, Printers - Male/Male - Windows/Mac/Linux
    StarTech USB-C Serial Adapter
    . Shows up as "/dev/cu.usbserial-1420", and listed under "System Information -> USB -> USB-Serial controller D"

!!!BE SURE TO CHECK StarTech.com FOR LATEST MACOS DRIVER!!!

Verify the adapter location by lookin gin /dev directory. Under Bartender "Settings" menu, enter full path to serial adaptor, e.g. "/dev/cu.usbserial-240"

  • StarTech.com SCNM925FM : 10 ft Cross Wired DB9 to DB25 Serial Null Modem Cable - F/M - Null Modem Cable - DB-9 (F) to DB-25 (M) - 10 ft
    StarTech 9-25pin null modem cable

Setting up the Balance

Sartorius BP-3100S

Macintosh->Serial port Mac->25 pin printer cable -> null modem adaptor-> balance

Balance menu setup (* = factory default):

1-1-2 stable conditions
5-1-7 = 9600 baud
5-2-3* = odd parity
5-3-1* = 1 stop bit
5-4-2* = hardware handshake with 2 char after CTS
6-1-5 autoprint at stability
6-2-2* autoprint not stoppable

If no weight is being reported (i.e. the balance is working, but the Mac doesn't appear to see it):

  • Turn scale off
  • unplug serial cable from back of scale
  • Turn scale on
  • When weight comes up, plug serial cable back in

Labels and Stickers

A helper app "BarLabeler" can print pdfs of the barcode stickers for bottles and QR codes for subject cages.


Labels should be printed using the barcode font "3 of 9". The designation of each bottle should be of the form "*EXC001F*", where "EXC" is the 2 or 3 letter experiment code, "001" is the subject number, and "F" is the item contained in that bottle (e.g., S for saccharin, W for water, F for food.). There should be no spaces between the elements of the label. The barcode reader expects the label to begin and end with an asterix (*). Place the human readable version of the label underneath the barcode. A label size of 2.0 inches by 0.8 inches seems best. See the website for premade Word and Pages templates.


Stickers should be printed onto Avery 22827 matte white water-resistant film rectangular labels 3.5" x 4.75", 24 per sheet, from which they can be cut into individual bottle labels. Because all the stickers are white, I recommend adding a color cue, such as a red marker line underneath the text on the saccharin labels, and a blue marker line on the water labels.


Formerly, we followed Jim Smith in using paper labels that were then secured to the bottles with waterproof "laminating stickers". The laminating stickers should be 3 inches by 1.5 inches, in order to completely seal the label. However, the Avery ware-resistant stickers work well (although they only come in white).