Comments (5)
Hello,
I am using this package and I am having some problems by the fact that it is not automerge.
The issue is related with:
try
global ver
global major, minor, update # bug in Julia v0.5 on windows?
major = Ref{UInt32}(0)
ccall((:DAQmxGetSysNIDAQMajorVersion,NIDAQmx),Int32,(Ref{UInt32},),major)
minor = Ref{UInt32}(0)
ccall((:DAQmxGetSysNIDAQMinorVersion,NIDAQmx),Int32,(Ref{UInt32},),minor)
update = Ref{UInt32}(0)
ccall((:DAQmxGetSysNIDAQUpdateVersion,NIDAQmx),Int32,(Ref{UInt32},),update)
ver = "$(major[]).$(minor[]).$(update[])"
catch
error("can not determine NIDAQmx version.")
end
try
include("constants_V$ver.jl")
include("functions_V$ver.jl")
catch
error("NIDAQmx version $ver is not supported.")
end
I think that this code can be simply replaced by:
include("constants_V20.1.0.jl")
include("functions_V20.1.0.jl")
This has additional advantage that the code would be able to run with any NIDAQmx versions. I quickly compared the files functions_V20.1.0.jl against the old versions of functions_Vver.jl and the older versions of NIDAQmx should run correctly using functions_V20.1.0.jl. The only difference between functions_V20.1.0.jl and the older version is a few additional functions. The same applies to constants_Vver.jl
By having the functions_Vver.jl and constants_Vver.jl generated with the latest version of NIDAQmx, the code should work with the older versions assuming that NIDAQmx is back version compatible.
Thanks,
Dylan
from nidaq.jl.
i can see how this change would conveniently allow users to use whatever version of the drivers they happen to have installed, but my concern is that someday they might not be backwards compatible.
what i don't understand is why you're having problems with automerge. that is related to releasing a new version of NIDAQ.jl, which we do everytime we update the driver support. have your forked it?
the much better solution IMO is to use binary builder to automatically install the DAQmx drivers.
from nidaq.jl.
My problem is not directly the automerge, but related with that. I am creating a package using NIDAQ.jl
and I want it to be able to precompile on computers which do not have DAQmx drivers installed. My package controls various hardware and I only want to require the DAQmx installation if the NIDAQ.jl
module is needed. I also want to document the package using Documenter.jl
and using the automatic deploy feature which require NIDAQ.jl
to be precompiled without the drivers installed (or to be installed automatically).
I totally agree with you that the binary builder to automatically install the drivers would be a much better alternative. Unfortunately, I don't know much about it, but sounds perfect for everything to be installed automatically.
from nidaq.jl.
would conditionally using NIDAQ
using Requires.jl solve you problem?
from nidaq.jl.
if not, then the only other thing i can think of is creating a DAQmx artifact using BinaryBuilder.jl and specifying lazy=true
in the Artifact.toml file. see CUDA.jl for an example of how to do this.
from nidaq.jl.
Related Issues (14)
- Runtime error on Julia 0.4-rel HOT 1
- Error when adding a analogue channel from a cDAQ module HOT 13
- support for newer NIDAQmx version 17.5.0 HOT 7
- getproperties() takes excessive amount of time HOT 2
- cannot add aichannels past ai7 HOT 1
- getproperties() returns truncated property names
- Linux support update after NI's new driver support HOT 9
- TagBot trigger issue HOT 8
- Sync modules HOT 4
- Bool32 sometimes very difficult to use HOT 1
- Cannot get Available Samples Per Channel HOT 1
- NIDAQmx version 16.1.0 is not supported HOT 3
- Test errors due to unsupported features of USB 6002 device HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nidaq.jl.