All Activity

This stream auto-updates

  1. Earlier
  2. To confirm that it was removed, just run DAQFactory and see if a trial dialog appears. If it does, then there is no license. It is giving you the other message because the upgrade key only works if you have the appropriate license already installed. For example, if you are upgrading from Lite to Base, the key only works if you have Lite installed and licensed. Otherwise folks would just buy the upgrade key and get Base for half price. If you have troubles with your keys, contact us directly.
  3. I found the email from 6 years ago with the upgrade key I am currently running release 19.1 build 2366 on both PC's I tried to remove the license from the old Computer - not sure if it worked though - no notification that it had (even after reboot) I then tried to install on my new computer but received the error message "you cannot upgrade a trial version of DAQFactory!" How do I confirm if the license has been removed and what do I need to do to install the license on the trial version that's currently installed
  4. The 15-16 letter key was emailed to you when you purchased. You need to use that key. It is not stored with the installation (otherwise someone could easily steal your license!). You can get the new computer working first if you like, then remove the development license off the old computer.
  5. I wish to transfer a license from my 6 year computer to my newly purchased computer reading section 1.6 and 1.7 this should be fairly simple my problem is section 1.7 item 2 "On the new computer, use the unlock key provided to you to license the computer as described in the last section. " where do I find the 15 -16 letter key in DAQFactory on my old Computer? Does it appear when I remove the development License? I don't want to remove it if I cannot re-install on my new computer I'm sorry to waste your time with such a simple task but it's just not clear to me what have I missed? Rodney
  6. OK. I still recommend upgrading... You are missing out on a lot. Just backup your document before doing so. Then you could revert back to 5.87c if you really wanted to.
  7. Wait, I think I got it fixed. If I simply remove the function name (LampCheck) at the top of the LampCheck sequence, and then call the sequence from the button, then I see the two sequences running concurrently.
  8. Your release is ancient (by software standards). Like over 13 years old. As such I can't really address any issues with it. You really should upgrade, at least to 19.1, probably to 20.2, especially if you are creating a new document. There is no charge for the upgrade to the newer release.
  9. your ctl file is for a newer version. Mine is... older.
  10. I'm assuming you called your sequence "LampCheck" too. I'm not sure and would need more detail on your application and what exactly makes you think it is failing. I made a simple equivalent sample (release 19.1) that I've attached here that shows it working as expected, both in 19.1 and 20.2. sequenceCaller.ctl
  11. Thanks, I resolved by splitting those functions into separate sequences. So now I have a helper sequence: function LampCheck() while (1) //-------------------- // check the lamp current pin LampCurrent() // check the lamp power pin LampPower() //-------------------- // now process the results // GPIO 1 GPIO 2 if (lampCurrent[0] == 0 && lampPower[0]) == 0) ? "Power not available/disconnected" v.lampStates.AddValue(-1) elseif (lampCurrent[0] == 0 && lampPower[0]) > 435) ? "Power available, lamp not connected" v.lampStates.AddValue(-2) elseif (lampCurrent[0] > 205 && lampCurrent[0] < 270 && lampPower[0]) > 435) ? "Power available, lamp off" v.lampStates.AddValue(0) elseif (lampCurrent[0] > 270 && lampPower[0]) > 435) ? "Power available, lamp on (flashing)" v.lampStates.AddValue(1) else ? "Other combinations wouldn’t be valid" v.lampStates.AddValue(-3) endif ? v.lampStates[0] //-------------------- // critical delay! delay(0.3) // execute 3 times a second endwhile This needs to run a couple times a second once started, parallel to the calling sequence. I understand this is a call for (pun) the BeginSeq() command. So here's a sample caller sequence: beginseq(LampCheck) ? "started sequence" Delay(.8) ? "delayed 0.8 seconds" Delay(1.4) ? "delayed 1.4 more seconds" endseq(LampCheck) Yet when I start this caller sequence, it is getting stuck in the LampCheck. The two sequences aren't running concurrently.
  12. There are two errors: 1) the primary error is that you are mixing C/C++ syntax with DAQFactory. DAQFactory only uses {} for denoting a static array. It is not used for blocks like it is in C. So, you want something like: function LampToggle(Light) // code endfunction function LampCurrentMonitor() // more code endfunction 2) while you can put multiple functions in a single sequence, the first function MUST have the same name as sequence. Actually it doesn't, but the name you provide for the sequence is the one the first function gets. So if the code you posted (with the changes mentioned above for endfunction) was in a sequence called myFunctions, you would be able to call LampCurrentMonitor() fine, but LampToggle() would not work. It would be named myFunctions() as far as DAQFactory is concerned because that is what you named the sequence.
  13. I'm unable to call a specific function from inside a sequence page from a control button. I would prefer to organize my functions that are related in a single sequence page. What am I doing wrong?
  14. Thanks. We are aware of that issue. It is a bug in the tool we use to generate the help system when used in an embedded browser. For now, I would recommend opening the PDF form of the help, installed in the DAQFactory installation folder, and do a search there.
  15. Thank you for the input. The difference here is that the devices themselves, the LabJack and serial device, are not in safe mode. Safe mode in this case is a DAQFactory feature. Since streaming data, both from the LabJack and from asynchronous serial devices is controlled by the device and not DAQFactory, switching DAQFactory does not stop the data from coming in. Safe mode in DAQFactory is largely designed to allow someone to load a document into a computer that does not have hardware and avoid all the errors that would be generated. It is also designed to allow someone to load a document of unknown origin and check it for potential harmful script. Safe mode in DAQFactory blocks outgoing serial comms, all the file based functions, and most scripts among other things. Although it is called "mode", it is not really a mode that one typically switches into an out of. Typically one will load a file in safe mode and work with it in safe mode, possibly coming out of it when hardware becomes available. A working system is not typically switched into DAQFactory safe mode otherwise.
  16. Safe mode typically refers to a state in which certain functions or operations of a device or system are restricted or disabled to prevent potential issues or damage. In the context of Labjack acquisition and serial streams, it's not typical for these processes to continue running while the device is in safe mode. However, the behavior can vary depending on how the safe mode is implemented in your specific setup. Some systems might have different levels of safe mode, where certain critical operations are stopped while others are allowed to continue.
  17. Thanks! Yet another reason to avoid USB...
  18. Thanks for your help. I found subfolders "BCGWorkspace20" and "BCGWorkspace2" in HKEY_CURRENT_USER/Software/DAQFactory/DAQFactory. Then, I deleted both entire subfolders. Problem is solved. I would like to add one more thing I noticed. When you search for a keyword in the help window, the keyword appears as "$1" in the search results.
  19. Even though you've set Windows 10 to keep the screen on and prevent the hard drive from sleeping, there might be other power management settings affecting the USB ports or network adapters. Check the power management settings for these devices in Device Manager and ensure that they are set to "Allow the computer to turn off this device to save power" is unchecked. Windows 10 has a feature called USB Selective Suspend, which can selectively suspend USB devices to save power. This could be affecting your USB-connected SDI-12 converter. You can disable this feature by going to Control Panel > Power Options > Change plan settings > Change advanced power settings > USB settings > USB selective suspend setting, and set it to Disabled.
  20. Yup, it was a very simple fix which has been applied. If you'd like to email us at support@ I can get you a link to an update. Otherwise it will probably be a couple days before we release it as 20.3. Thank you again for your detailed bug report.
  21. Excellent information and debugging. We should be able to resolve this quick. In the meantime, if the issue is auto-hide with the help, you can reset the help window back to its default by quitting DAQFactory, then opening the registry editor, navigating to HKEY_LOCAL_MACHINE/Software/DAQFactory/DAQFactory (yes two DAQFactory's) and delete the entire subfolder "BCGWorkspace20". If there is a "BCGWorkspace2" you can delete that as well.
  22. I installed DAQFactory into C:\DAQFactory which is default folder. I am starting DAQFactory either by double clicking .ctl file or opening the file from DAQFactory.exe. I uninstalled and reinstalled DAQFactory but nothing has changed. I installed the DAQFactory in another PC to investigate the problem and I found the problem. The problem is about help window. Help window behaviour is auto hide in default. When I changed it from auto hide, the problem occurred. Now, I can't open any DAQFactory files on my second PC.
  23. Thank you for the bug report. Can you tell me what folder you installed DAQFactory into? Also, how are you starting DAQFactory?
  24. You may be able to switch off the Auto-grid mode for the bottom axis and play around with the settings.
  25. A couple of key notes before I start: 1) hexadecimal is a loaded term. Hexadecimal is just another way of representing a number. So, 15 (base 10 / decimal) and 0x0F (base 16 / hex) are the exact same number and you can use either in DAQFactory IF, and that's a big IF, the device actually wants numbers (i.e. binary) and not an ASCII representation of numbers. If it wants an ASCII representation then the ASCII string "15" and the ASCII string "0F" are not the same and you have to use "0F". 2) the \ notation, i.e. \x0F only works in the comm monitor. It does not work in the write() function and therefore it won't work in the poll() function (which uses write). You instead have to build up your string using chr(), or chra() Besides those two points I can't say more without seeing the documentation to know if the device expects numbers or ASCII representations of numbers. If you can type \x02\x81\xD4\xD5\x03 in the comm monitor and get the desired result, then it expects numbers and is binary protocol. I will also say this: user protocols are probably being deprecated (and don't work in 20.1+) and therefore I suggest writing sequences to perform the polling instead. You can copy the poll() function if you want to help you, though you will have to specify the full device name for functions like write(), readUntil(), and purge(). It is also much easier to debug in a sequence.
  26. Hi, I am trying to communicate with a third party product and it requires that I send it commands using hexadecimal. I have build a custom serial protocol (Quick > Device config...) and that seems to work when I send one command via Comm Monitor. But, when I make a channel with the I/O type selected from the protocol I built, the command sent has additional slashes between each byte (see attached image, the line with the blue arrow is what I sent, the yellow highlighted line is the response and everything else is caused by the channel I made). I believe there is something missing or wrong with my Poll or probably the I/O I made in the protocol, this is the error that I get normally (every second): And, here is the protocol I made, Poll is the same but I included it anyways - all the other functions are empty: U,cts_protocol I,time,0,input,numeric private string time_now = Poll("\x02\x81\xD4\xD5\x03",3) // co2 = Delete (co2,0,3) return (time_now) ENDIO I,time2,1,input,string private string time_now2 = Poll("\x02\x81\xD4\xD5\x03",3) // co2 = Delete (co2,0,3) return (time_now2) ENDIO I,time3,2,output,string private string time_now3 = Poll("\x02\x81\xD4\xD5\x03",3) // co2 = Delete (co2,0,3) return (time_now3) ENDIO F,Poll,0 function Poll(string out, until) // this function will poll the port with given string and read // the response until the given character. Returns NULL (empty) // if there is an error if (argc < 2) throw("Invalid number of parameters") endif private string in try // lock the port if (!LockPort()) throw("Unable to lock port") endif // clear anything pending Purge() // output our string Write(out) // and read until the eol: in = ReadUntil(until) // release the port UnlockPort() // and return the response return(in) catch() // error occured UnlockPort() throw() endcatch // return NULL to indicate error. This should never happen // because of the throw() statement above return(NULL) As you can see I tried various ways to setup the I/O types. The functionality I am trying build is the ability to send settings to the product, but also continuously retrieve status of different operating conditions (for example temperature measurement). Thank you for the support and time in advance!
  1. Load more activity