Code Monkey home page Code Monkey logo

labjackpython's People

Contributors

bengineer19 avatar bje- avatar chrisjohn404 avatar colagrosso avatar davelopez01 avatar fgrfl avatar labjackadmin avatar m-boesl avatar markrages avatar mnaberez avatar njdfan avatar pi-gyr avatar renaatd avatar rolsen avatar sjarman28 avatar sultanqasim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

labjackpython's Issues

Output frequency on u3

I am using the LabJack U3-LV to generate a square frequency wave. I am having trouble. I have consulted the frequency list and learned what I could from the pwm-looping example.

I cannot get the frequency to output anything but 60.9 Hz. The combination of base clock, clock divisor and timer value should be outputting 1500 Hz based on the frequency list. Does anyone know how I can fix this?

import u3
import time


def main():
    d = u3.U3()  # Open Labjack u3 low voltage device

    # Define inputs
    base_clock = 12000000
    clock_divisor = 16
    timer_value = 250

    # Configure timer
    d.configTimerClock(TimerClockBase=base_clock,
                       TimerClockDivisor=clock_divisor)
    d.configIO(TimerCounterPinOffset=4, NumberOfTimersEnabled=1)  # FIO4
    d.getFeedback(u3.Timer0Config(TimerMode=7, Value=timer_value))  # U3
    d.writeRegister(addr=7100, value=timer_value)

    time.sleep(5)  # hold for 10 seconds

    d.getFeedback(u3.Timer0(Value=0, UpdateReset=True))  # U3
    d.writeRegister(7200, 0)

    d.close()  # Close u3


if __name__ == '__main__':
    main()

add build to .gitignore

Would it be possible to add the 'build' folder to .gitignore ?
This way when the module is installed with 'python setup.py install' the build files will not affect the state of the git repo. It is specially useful when using LabJackPython as a git submodule.

Unable to find "labjackud" when running from Cygwin

After installing Labjack U3 windows drivers, and installing LabJackPython (master) on Cygwin (Python 2.7.13), it failed to load the driver when importing u3, prompting that the file was not found.

I managed to fix the issue by adding changing LabJackPython.py, line 135 from;

wlib = ctypes.CDLL("labjackud") 

to

wlib = ctypes.CDLL("labjackud.dll")

u6 stream function error

When runing the stream exemple, I get that self.StreamStarted is not defined.
Looking in the code, I found that U6 inherites from Device, and Device does have in it's init method a definition of StreamStarted=False.
But init is rewritten in U6, so I believe that Device.init should be called at the beginnig of U6.init.

Add LabJackPython library to PyPI

Just today I've create a formula for homebrew (a MacOS X package "manager") to simplify the installation of the exodriver et al, I also added a formula to download and install LabJackPython. This all works fine and without any issues, but... because LabJackPython is a pure python library it might make sense you guys submit it to PyPI so it can easily be installed using pip or easy_install, adding it there would be awesome!

FYI: http://github.com/mxcl/homebrew/pull/2693

reading zero values

I have some code that reads from an analogue pin (p) using the following code:

    if isinstance(unit, U6):
        reading = unit.getAIN(p)
    elif isinstance(unit, U12):
        reading = unit.eAnalogIn(p)['voltage']

For extended periods, these two read functions were returning 0V when non-zero voltage sources were connected to a U6 and a U12. Is this a known problem in the exodriver or in the Python library? It has magically come good again without (as far as I know) doing anything. Grateful for ideas on how to track down the problem!

reset method in u3.py returns "Command does not contain enough bytes."

This is what the function returns:
[code]
d.reset(hardReset = False)
File "/usr/local/lib/python2.6/dist-packages/u3.py", line 501, in reset
self.write(command)
File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 156, in write
setChecksum(writeBuffer)
File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 646, in setChecksum
raise LabJackException("Command does not contain enough bytes.")
LabJackPython.LabJackException: Command does not contain enough bytes.
[/code]

Besides that, It looks like in the line 495 one "9" is missed at the end, in the code is a "0x9" instead of "0x99".

Some assistance needed with u3 and SPI

Hi,

I am trying to read temperature with the MAX6675 with a U3 LJ and SPI.

I followed this example and seem to have the PSI communication set up correctly because I can see the expected chip select, clock, and return signal on an oscilloscope, however, I am not sure how to set up the d.spi() command to read back only the required bits.

Here is my script:

import os
import time
import u3

d = u3.U3() #Open first found U3 over USB
d.configIO(FIOAnalog = 0x0F) #For this example FIO4-7 need to be digital IO

# Press ctrl-C to exit the program
try:
    while(True):
        results = d.spi([0x4<<2, 0])
        print(results)
        time.sleep(0.1)
except KeyboardInterrupt:         #this allows the program to quit when you press "ctrl C"
    print("ctrl C received, shutting down program")
    d.close()                      #close the device   

Here is a screenshot of the scope output: https://u.pcloud.link/publink/show?code=XZEsxIVZhKq97lWxxtBJFH1mVRERBLQWpWIV

Manually digitizing bits D14–D3 gives the binary sequence 000001101000, which in decimal is 104, and interpolating this as a 12 bit number between temperatures of 0°C and 1023.75°C as per the datasheet gives a reasonable 26°C result for the conditions I took the data.

Is there a way to set up the d.spi() command to return the binary sequence as mentioned above?

struct.pack error at low sample rates

Running

import u6

dev = u6.U6()
# Stop any previous stream to prevent Error 48. 
try:
    dev.streamStop()
except:
    pass
dev.getCalibrationData()
dev.streamConfig(NumChannels=1, ChannelNumbers=[0], 
                 ChannelOptions=[0], 
                 ResolutionIndex=0, ScanFrequency=1000)
stream = dev.streamData(convert=False)
dev.streamStart()
data = next(stream)
dev.streamStop()

yields the following traceback

  File "packerror.py", line 15, in <module>
    data = next(stream)
  File "site-packages/LabJackPython-2.0.0-py3.7.egg/LabJackPython.py", line 786, in streamData
  File "site-packages/LabJackPython-2.0.0-py3.7.egg/LabJackPython.py", line 316, in read
  File "site-packages/LabJackPython-2.0.0-py3.7.egg/LabJackPython.py", line 361, in _readFromExodriver
struct.error: pack expected 2496 items for packing (got 2560)

I2C: not possible to wait for ACK

After receiving a byte that initiates a slow operation, (as an alternative to clock stretching) some devices do not indicate ACK until that operation has completed. This can be useful when the operation results in data that can be fetched, and prevents attempts to fetch the data too early. Sending additional bytes before ACK is indicated can invalidate the data.

As far as I can tell, LabJackPython does not support operation in this way: it simply tests for ACK immediately after each byte is sent before proceeding to send the next byte, and reports how many bytes in the sequence were ACKed. This means that some devices (e.g. TSYS01) are unusable over I2C unless arbitrary timeouts are used.

UE9 on USB = Exodriver crash

Hi - just installed the exodriver on OS X Lion 10.7.2 and the LabJackPython libraries (v. 8-26-2011) Calling some functions makes the UE9 crash due to a libusb timeout.

I believe this device has the cloud firmware - would that be an issue?

Thanks

Here's the traceback:

Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ue9
>>> d = ue9.UE9()
>>> d.controlConfig()
{'EIOState': 0, 'DeviceName': 'UE9', 'DAC0 Enabled': False, 'EIODir': 0, 'ResetSource': 3, 'CIOState': 0, 'MIOState': 0, 'CIODirection': 0, 'HiRes Flag': False, 'FIODir': 0, 'PowerLevel': 0, 'ControlFWVersion': '1.94', 'DAC1 Enabled': False, 'ControlBLVersion': '1.12', 'DAC0': 0, 'MIODirection': 0, 'FIOState': 0, 'DAC1': 0}
>>> d.getCalibrationData()
{'TempSlope': 0.012681391788646579, 'AINOffsets': {'1': -0.011485442752018571, '0': -0.011335865361616015, '3': -0.01210519578307867, '2': -0.011920980177819729, '8': -5.217538365162909}, 'AINSlopes': {'1': 3.906618803739548e-05, '0': 7.817847654223442e-05, '3': 9.730923920869827e-06, '2': 1.9510509446263313e-05, '8': 0.00015772483311593533}, 'DACOffsets': {'1': -4.5890520587563515, '0': -18.611571568297222}, 'DACSlopes': {'1': 836.8496614841279, '0': 835.3621813086793}}
>>> d.getTemperature()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/ue9.py", line 1154, in getTemperature
    bits = self.singleIO(4, 133, BipGain = 0x00, Resolution = 12, SettlingTime = 0 )
  File "/Library/Python/2.7/site-packages/ue9.py", line 545, in singleIO
    if result[2] == 0:
IndexError: list index out of range
>>> d.getCalibrationData()
libusb error: LIBUSB_ERROR_TIMEOUT
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/ue9.py", line 1197, in getCalibrationData
    self.controlConfig()
  File "/Library/Python/2.7/site-packages/ue9.py", line 382, in controlConfig
    result = self._writeRead(command, 24, [ 0xF8, 0x09, 0x08 ])
  File "/Library/Python/2.7/site-packages/LabJackPython.py", line 536, in _writeRead
    result = self.read(readLen, stream=False)
  File "/Library/Python/2.7/site-packages/LabJackPython.py", line 282, in read
    return self._readFromExodriver(numBytes, stream, modbus)
  File "/Library/Python/2.7/site-packages/LabJackPython.py", line 324, in _readFromExodriver
    readBytes = staticLib.LJUSB_Read(self.handle, ctypes.byref(newA), numBytes)
  File "/Library/Python/2.7/site-packages/LabJackPython.py", line 74, in errcheck
    raise LabJackException(ec, "Exodriver returned error number %s" % ec)
LabJackPython.LabJackException: Exodriver returned error number -7
>>> ^D
'''

Return value of u3.voltageToDACBits()

If I use u3.voltageToDACBits() on my U3-HVs with 0.0 volts as argument I get slightly negative values due to some calibration errors. When I afterwards feed the bits value to the getFeedback function, the U3-HV set the corresponding DAC output to a value close to maximal voltage, which I understand but which also is a bit counter-intuitive. Wouldn't it be a better idea to cap the output value of the function voltageToDACBits to 0x0000 if the result of the conversion is smaller than 0 or to 0xFFFF if the results value is larger?

Labjack U6 set dutycyle PWM16

Hi there,
I’m using LabJack U6 connected via USB and try to set the dutycyle of timer0 for a 16bit PWM. For some reason when I write the dutycycle value in the register number 7100 for the configuration of the timer it works fine (reading the value from this register returns the expected result). However, when I try updating the value (this time I write to register number 7200) and try to read out the value afterwards I get zero.
Register mapping was taken from here:
https://labjack.com/pages/support/software?doc=%2Fsoftware-driver%2Fdirect-modbus-tcp%2Fud-modbus-old-deprecated%2F

Code:

import u6
import LabJackPython

d = u6.U6() 
configData = d.configU6()
print(configData)

def PWM():
    d.debug = True

    # Set the timer clock to be 4 MHz with a given divisor
    d.writeRegister(7000, 4)
    print(d.readRegister(7000))
    d.writeRegister(7002, 15)
    print(d.readRegister(7002))

    # Enable timer0
    d.writeRegister(50501, 1)
    print(d.readRegister(50501))

    # Configure the timer for PWM, starting with a duty cycle of 0.0015%.
    baseValue = 65535
    d.writeRegister(7100, [0, baseValue])
    print(d.readRegister(7100))

    # Updating the duty cycle
    currentValue = 32123
    d.writeRegister(7200, currentValue)
    print(d.readRegister(7200))


PWM()

Running this code results in:

{'FirmwareVersion': '1.35', 'BootloaderVersion': '6.15', 'HardwareVersion': '2.00', 'SerialNumber': 360005362, 'ProductID': 6, 'LocalID': 1, 'VersionInfo': 12, 'DeviceName': 'U6Pro'}
Sent: [0x0, 0x0, 0x56, 0xa2, 0x0, 0x0, 0x0, 0xb, 0x0, 0x10, 0x1b, 0x58, 0x0, 0x2, 0x4, 0x0, 0x0, 0x0, 0x4]
Response: [0x56, 0xa2, 0x0, 0x0, 0x0, 0x6, 0x0, 0x10, 0x1b, 0x58, 0x0, 0x2]
Sent: [0x0, 0x0, 0x56, 0xa3, 0x0, 0x0, 0x0, 0x6, 0x0, 0x3, 0x1b, 0x58, 0x0, 0x2]
Response: [0x56, 0xa3, 0x0, 0x0, 0x0, 0x7, 0x0, 0x3, 0x4, 0x0, 0x0, 0x0, 0x4]
4
Sent: [0x0, 0x0, 0x56, 0xa4, 0x0, 0x0, 0x0, 0xb, 0x0, 0x10, 0x1b, 0x5a, 0x0, 0x2, 0x4, 0x0, 0x0, 0x0, 0xf]
Response: [0x56, 0xa4, 0x0, 0x0, 0x0, 0x6, 0x0, 0x10, 0x1b, 0x5a, 0x0, 0x2]
Sent: [0x0, 0x0, 0x56, 0xa5, 0x0, 0x0, 0x0, 0x6, 0x0, 0x3, 0x1b, 0x5a, 0x0, 0x2]
Response: [0x56, 0xa5, 0x0, 0x0, 0x0, 0x7, 0x0, 0x3, 0x4, 0x0, 0x0, 0x0, 0xf]
15
Sent: [0x0, 0x0, 0x56, 0xa6, 0x0, 0x0, 0x0, 0x6, 0x0, 0x6, 0xc5, 0x45, 0x0, 0x1]
Response: [0x56, 0xa6, 0x0, 0x0, 0x0, 0x6, 0x0, 0x6, 0xc5, 0x45, 0x0, 0x1]
Sent: [0x0, 0x0, 0x56, 0xa7, 0x0, 0x0, 0x0, 0x6, 0x0, 0x3, 0xc5, 0x45, 0x0, 0x1]
Response: [0x56, 0xa7, 0x0, 0x0, 0x0, 0x5, 0x0, 0x3, 0x2, 0x0, 0x1]
1
Sent: [0x0, 0x0, 0x56, 0xa8, 0x0, 0x0, 0x0, 0xb, 0xff, 0x10, 0x1b, 0xbc, 0x0, 0x2, 0x4, 0x0, 0x0, 0xff, 0xff]
Response: [0x56, 0xa8, 0x0, 0x0, 0x0, 0x6, 0xff, 0x10, 0x1b, 0xbc, 0x0, 0x2]
Sent: [0x0, 0x0, 0x56, 0xa9, 0x0, 0x0, 0x0, 0x6, 0x0, 0x3, 0x1b, 0xbc, 0x0, 0x2]
Response: [0x56, 0xa9, 0x0, 0x0, 0x0, 0x7, 0x0, 0x3, 0x4, 0x0, 0x0, 0xff, 0xff]
65535
Sent: [0x0, 0x0, 0x56, 0xaa, 0x0, 0x0, 0x0, 0xb, 0x0, 0x10, 0x1c, 0x20, 0x0, 0x2, 0x4, 0x0, 0x0, 0x7d, 0x7b]
Response: [0x56, 0xaa, 0x0, 0x0, 0x0, 0x6, 0x0, 0x10, 0x1c, 0x20, 0x0, 0x2]
Sent: [0x0, 0x0, 0x56, 0xab, 0x0, 0x0, 0x0, 0x6, 0x0, 0x3, 0x1c, 0x20, 0x0, 0x2]
Response: [0x56, 0xab, 0x0, 0x0, 0x0, 0x7, 0x0, 0x3, 0x4, 0x0, 0x0, 0x0, 0x0]
0

I would have expected the last print statement to output 32123 instead of 0. Any ideas what's wrong here?

No examples for U12?

I am preparing an undergrad lab, we want a time series of temperature from the probe, maybe a few samples per second.

I have a U12, installed the driver and Python, it is ready to use in a Jupyter notebook! This seems to work:
d = u12.U12(debug=True) # create a u12 device controller

Now what? I cannot seem to find any example codes. This only has u3, u6, u9.
https://github.com/labjack/LabJackPython/blob/master/Examples/streamTest.py
The u9 functions used in it do not exist in u12.

Presumably I want AIstreamstart - AIstreamread -- AI streamclose. (What does AI stand for? or do I want raw?)

What are the asterisks by some in/out variables in the reference manual --
https://labjack.com/support/datasheets/u12/programming-reference/aistreamstart?

The docstring on aiStreamStart suggests this usage:

dev = U12()
dev.aiStreamStart(1, [0], 200)
{'scanRate': 200.0, 'idnum': 1}
File: //anaconda/envs/ATMOcanes/lib/python3.6/site-packages/u12.py
Type: method

But when I literally type this, it fails with botu u12 and U12 (capital)
NameError Traceback (most recent call last)
in ()
----> 1 dev = U12()
2 dev.aiStreamStart(1, [0], 200)

NameError: name 'U12' is not defined

file: u12.py line 2161

I get the same
AttributeError: dlsym(...): symbol not found
error for all of the ai functions. See below. Any help is greatly appreciated.
The eAnalogIn function works and samples correctly so I know that the communication works.

/Users/jason/Downloads/u12.py in aiSample(self, numChannels, channels, idNum, demo, stateIOin, updateIO, ledOn, gains, disableCal)
2159 stateIOin = ctypes.c_long(stateIOin)
2160
-> 2161 ecode = staticLib.AISample(ctypes.byref(idNum), demo, ctypes.byref(stateIOin), updateIO, ledOn, numChannels, ctypes.byref(channelsArray), ctypes.byref(gainsArray), disableCal, ctypes.byref(overVoltage), ctypes.byref(voltages))
2162
2163 if ecode != 0: raise U12Exception(ecode)

/Users/jason/anaconda/lib/python2.7/ctypes/init.pyc in getattr(self, name)
376 if name.startswith('') and name.endswith(''):
377 raise AttributeError(name)
--> 378 func = self.getitem(name)
379 setattr(self, name, func)
380 return func

/Users/jason/anaconda/lib/python2.7/ctypes/init.pyc in getitem(self, name_or_ordinal)
381
382 def getitem(self, name_or_ordinal):
--> 383 func = self._FuncPtr((name_or_ordinal, self))
384 if not isinstance(name_or_ordinal, (int, long)):
385 func.name = name_or_ordinal

AttributeError: dlsym(0x101f145a0, AISample): symbol not found

License Missing

There isn't a license file or any mention of the license:

LabJackPython$ grep -ri license *
LabJackPython$

Please add a file called LICENSE.txt with your license so we know how this code may be used. It would be great if you would use a permissive license such as BSD or MIT.

Troubles with configTimerClock in u3.py

This function seems to have some problems. The first one is a little bug in the variable timerClockBase in line 243, wich must be TimerClockBase instead. The problem is once you fix it the command return error 72.
" d.configTimerClock(TimerClockBase = 6, TimerClockDivisor = 1)
File "/usr/local/lib/python2.6/dist-packages/u3.py", line 249, in configTimerClock
result = self._writeRead(command, 10, [0xf8, 0x02, 0x0A])
File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 376, in _writeRead
self._checkCommandBytes(result, commandBytes)
File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 369, in _checkCommandBytes
raise LabJackException("Command returned with error number %s" % results[6])
LabJackPython.LabJackException: Command returned with error number 72
"
I hope you can fix this little issue to improve your great software.

handling multiple labjacks on the same computer

Hello All,
i have been using labjack more and more recently due to convenience,
i own 2 (u6 usb model) of them and would like use them at the same time with different scripts doing different things.

when using the examples, it seems that only one unit at the time can be handled. when launching a second script it will cause the first one to crash.

ive tried using the openallu6 function to get the list of serial numbers in order to choose a device but as the name states it already opens the ports so i cannot only choose one .

are there any examples of listing and selecting a specific device?
thanks!

close() method does not release the device on Windows 10

When executing the basic U3 example code, the final command does not really release the U3 device for other applications to use it. More specifically, if a try to open the same device from MATLAB, I get the following error: LabJack is already open via USB in another program or process.

import u3
d = u3.U3()
d.configU3()
d.close()

Why does labjackpython package still enforce python=2.7?

Even though the setup.py has all versions pf python listed, after python setup.py install I tried to include it in a conda environment and got this error:

$ conda env create -f environment.yml
Fetching package metadata .............
Solving package specifications: .

UnsatisfiableError: The following specifications were found to be in conflict:

  • labjackpython -> python 2.7*
  • python 3*
    Use "conda info " to see the dependencies for each package.

Wrong logic in binaryToCalibratedAnalogVoltage U6?

In U6.py function binaryToCalibratedAnalogVoltage you are right-shifting 8 bits when byte value is NOT 16 bit. Shouldn't this be the opposite?

See:
if is16Bits:
bits = float(bytesVoltage)/256
else:
bits = float(bytesVoltage)

instead of:
if not is16Bits:
bits = float(bytesVoltage)/256
else:
bits = float(bytesVoltage)

Better packaging

The packaging of labjackpython could be much improved by:

  1. providing a wheel so that people can just pip install labjack
  2. putting all the files in one folder

Doing 1. doesn't have any downsides and would help people have access to your current work (at the moment they have to navigate to github to find the latest version rather than doing pip install labjack). It's possible the wheel(s) could include the driver too unless that needs to alter OS

Doing 2. has the slight downside that people should import by doing from labjack import u3 rather than import u3. So it would break code very minimally, but the current way that labjack gets installed is pretty bad; it's like installing an application by just dumping all the files in the root of "Program Files" rather than in a folder for that app

[background: I'm the creator of the PsychoPy package and we have lots of labjack users, but it's annoying for me supporting dependent hardware/libs when they each have a different install method]

Index Error

This worked the first time I ran it, but now, I keep getting IndexError: list index out of range?

liblabjackusb.so: undefined symbol: DigitalIO

I got an installation and library issue.

I followed these installation steps for an installation on ubuntu 16.04.
https://labjack.com/support/software/installers/exodriver/mac-and-linux/...

The following code brings me to an undefined symbol for DigitalIO in the liblabjackusb.so

$ python
>>> import u12
>>> d =u12.U12()
>>> d.digitalIO(idNum=-1, demo=0, trisD=3, trisIO=0, stateD=0, stateIO=0, updateDigital=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.linux-x86_64/egg/u12.py", line 2506, in digitalIO
    def getFirmwareVersion(self, idNum=None):
  File "/usr/lib/python2.7/ctypes/__init__.py", line 375, in __getattr__
    func = self.__getitem__(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 380, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/local/lib/liblabjackusb.so: undefined symbol: DigitalIO

I was looking around for the DigitalIO implementation and i found it in ljacklm.h and ljacklm.c.

$cd ljacklm/libljacklm
$ nm ljacklm.o | grep DigitalIO
0000000000007489 T DigitalIO
$ nm libljacklm.so.1.20.2 | grep DigitalIO
00000000000091a9 T DigitalIO

u12.py loads the liblabjackusb.so but it should load the ljacklm.so.1.20.2 (see u12.py line 348) .

There is forum discussion on labjack about this issue:
https://labjack.com/forums/u12/liblabjackusbso-undefined-symbol-digitalio#comment-form

There is also a stackoverflow question about it :
https://stackoverflow.com/questions/46206357/liblabjackusb-so-undefined-symbol-digitalio#46220124

SIGALRM in outputSinDac.py not found

outputSinDac.py, line 87 in
signal.signal(signal.SIGALRM, dacs.handleSetDac)
AttributeError: 'module' object has no attribute 'SIGALRM'

Windows 7
Python 2.7.13
installed via pip install.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.