UNPKG

labjack-nodejs

Version:

nodejs library for using the LabJackM library

77 lines (65 loc) 1.8 kB
/** * Low level LJM dynamic library interface as provided by ffi. * * @author Chris Johnson (chrisjohn404, LabJack Corp.) */ var ref; try { ref = require('ref'); //Load variable type module } catch(err) { ref = require('ref-napi'); } var fs = require('fs'); //Load File System module var jsonConstants = require('ljswitchboard-modbus_map'); var driver_const = require('ljswitchboard-ljm_driver_constants'); var ljm; var ffi_liblabjack; // Require the ljm-ffi library. var ljm_ffi = require('ljm-ffi'); // Link to the ljm shared library (.so, .dylib, .dll) ljm = ljm_ffi.load(); ffi_liblabjack = ljm_ffi.loadRaw(); // Get the loaded version of LJM var ljmLibraryVersionData = ljm.LJM_ReadLibraryConfigS('LJM_LIBRARY_VERSION', 0); var ljmLibraryVersion = ljmLibraryVersionData.Value; var openAllIsLoaded = false; // console.log('ljmLibraryVersion', ljmLibraryVersion); if(ljmLibraryVersion >= 1.1200) { openAllIsLoaded = true; } var getHandlesIsLoaded = false; if(ljmLibraryVersion >= 1.1300) { getHandlesIsLoaded = true; } exports.getDriver = function() { return ffi_liblabjack; }; exports.getConstants = function() { return jsonConstants.getConstants(); }; exports.parseRegisterNameString = function (name) { return parseRegisterNameString(name); }; exports.hasOpenAll = function() { return openAllIsLoaded; }; exports.hasGetHandles = function() { return getHandlesIsLoaded; } /* LJM_SEND_RECEIVE_TIMEOUT_MS LJM_OPEN_TCP_DEVICE_TIMEOUT_MS LJM_LOG_MODE LJM_LOG_LEVEL LJM_LIBRARY_VERSION LJM_ALLOWS_AUTO_MULTIPLE_FEEDBACKS LJM_ALLOWS_AUTO_CONDENSE_ADDRESSES LJM_OPEN_MODE LJM_NAME_CONSTANTS_FILE LJM_ERROR_CONSTANTS_FILE LJM_LOG_FILE LJM_CONSTANTS_FILE LJM_MAX_LOG_FILE_SIZE LJM_STREAM_TRANSFERS_PER_SECOND LJM_RETRY_ON_TRANSACTION_ID_MISMATCH */