-
Notifications
You must be signed in to change notification settings - Fork 0
phoBehavioralBoxLabjackController
This software is used by lab members on Lab Computers to record the activity of mice via the LabJack.
This C++ code tracks activity of all dispensers. The code performs this by assigning a 0 or 1 to each variable excluding the running wheel. Once the mice triggers a dispenser by nose-poke, the software then saves that by changing the zero to a one. Then, a line is created in a CSV that lists the change along with the time the change occurred.
Here is an example of what the code looks like in action:
Upon loading the program, this text will display:
** Behavioral Box LabJack Controller: Version # Pho Hale 2021
CURRENT CONFIGURATION:============================================== Computer Hostname: Watson-BB-XX
Experiment Name: Exp_XX Cohort Name: cohort_xx Animal Name: Amimal_xx
Filesystem: Output Directory: C:/Common/data/experiment_xx/cohort_xx/animal_xx/ Historical data loading is enables and the output directory is C:/Common/data/experiment_xx/cohort_xx/animal_xx Webserver is enabled. It can be accessed via a web browser at URL http://xx.x.x.x:xxxx ==================================================== END CURRENT CONFIGURATION
(^ The above section just out lines where the files that will be retrieved by the program will be stored, as well as any backup locations- these can all be changed by editing the phoBehavioralBoxLabjackController-Config.ini file.)
Scanning for attached Labjacks... Found 1 device connections Successfully read json data from C:/Common/config/phoBehavioralBoxLabjackController-LogicalChannelSetupConfig.json! Attempting to parse as a LoadedLogicalChannelsSetupConfiguration object... Successfully loaded C:/Common/config/phoBehavioralBoxLabjackController-LogicalChannelSetupConfig.json as JSON and updated this->loadedChannelSetupConfig! Sucessfully loading config from C:/Common/config/phoBehavioralBoxLabjackController-LogicalChannelSetupConfig.json!
(All of this information can be found on Github via the "ConfigFiles" Subfolder in the "phoBehavioralBoxLabjackController" directory!)
Setting up Labjack Stream Registers: Disabling stream for handle: 2 Ensuring triggered stream is disabled: Setting STREAM_TRIGGER_INDEX to 0 Enabling internally-clocked stream: Setting STREAM_CLOCK_SOURCE to 0 Setting STREAM_RESOLUTION_INDEX to 0 Setting STREAM_SETTLING_US to 0.000000 Setting AIN_ALL_RANGE to 0.000000 Setting AIN_ALL_NEGATIVE_CH to LJM_GND
(The above code sets the some of the data stream's channels to constant variables: -Such as the STREAM_TRIGGER_INDEX (to be disabled), -STREAM_RESOLUTION_INDEX (disabled to ensure that we only used the sync between the Labjack and computer to change the lux of our light system), -STREAM_RESOLUTION_INDEX (ensures that the resolution, or how many times the software interprets data from the LabJack is set to zero before being configured later) -STREAM_SETTLING_US (the time it takes for a stream of data to reset before recording again) -AIN_ALL_RANGE (the range for analog inputs to be set to zero for the running wheel) -AIN_ALL_NEGATIVE_CH (setting all negative channels to have the same signal as the ground channel)
Scan Stream started! New file paths: Digital Inputs: C:/Common/data/experiment_xx/cohort_xx/animal_xx/out_file_s470020353_1704258004328.csv Analog Inputs: C:/Common/data/experiment_06/cohort_01/animal_05/out_file_analog_sxxxxxxxxx_Unix time in ms.csv
Labjack [470020353] : LABJACK TIME: Wed Jan 3 05:00:04 2024 COMPUTER TIME: Wed Jan 3 05:00:04 2024 Computer time is already synced with Labjack time!
(The code for this section is located in the phoLabjackClockSync.c file on Github) Commands: Press [p] at any time to print the most recently read values for all labjacks. Press [f] at any time to show the current output file directory. Press [s] at any time to show the current log files for all labjacks. Press [r] at any time to refresh and scan for more labjacks. Press [l] at any time to toggle visible LED Light mode for all labjacks. Press [a] at any time to toggle Attract mode for all labjacks. Press [u] at any time to display utility options. Press [q] at any time to quit. Press any other key at any time to show this list of commands.