Jump to content

infinitenothing

Members
  • Posts

    362
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by infinitenothing

  1. NI has a great start to a solution for me with the FPGA toolkit I mentioned. I was hoping there were some other options. Maybe I can drop a request in the third party toolkit developer exchange. You can think of my ADC solution as a bit like a frame grabber. Basically, I'm going to grab the voltages off the pixel hardware one at a time. So imagine like 25MSPS and then I reshape that into 60x60 arrays so I can get 7k frames per second. Ideally, most of my processing can be done in parallel (pipelined) with the acquisition (imagine applying a threshold to each pixel as they come off the ADC). Actually, I have the acquisition going fine right now. I can grab images. I was just complaining because the mipi interface would be something I have to implement at this point. It's not a deal breaker (unless there's an inherent high worst case latency limit on mipi and then it might be) but the interface isn't doing me any favors. I am more focused on the processing on the FPGA—I don't want to reinvent but will do if I have to.
  2. You could consider building it yourself. Here's a 24 bit 8 ch 250kSamp/sec ADC we use:https://www.analog.com/media/en/technical-documentation/data-sheets/AD7768-7768-4.pdf
  3. I have a feeling that's not going to be fast enough. My images are relatively small maybe 60x60 x maybe 10 cameras but I need really low latency (sub millisecond). I'm planning on bringing the sensors/pixels into an ADC directly so I don't have to worry about any interfaces slowing me down. I'm hoping the processing is relatively simple (eg take a threshold, measure perimeter). My plan A is a FlexRIO (eg 5751B) or an Scope like the 5170. Have you used the Kria or Jetson platforms? Is my application in range?
  4. I'm looking to process images with very low latency. I don't know if I have time to ship it off to the CPU and back to make a decision and react. I see that NI has a toolkit https://www.ni.com/en-us/support/documentation/supplemental/18/ni-vision-fpga-function-support-and-compatibility.html It seems a bit limited though. For example, I'd like a bit more from the particle analysis toolkit. Things like perimeter and the Max Feret Diameter. Does anyone have any suggestions? I'd rather buy than build.
  5. Network streams give you a few things: 1) TCP's guaranteed delivery can be foiled by the OS. I know in some cases you can pull the cable and one side will not get an error because it put the message in the OS buffer but the other side will obviously fail to get the message. It's a little tricky at this point to figure out exactly which messages need to be transmitted. I believe network streams can tolerate that disconnect. 2) Explicit buffer sizing at the application layer. TCP uses buffering at the OS layer which is much harder to poke into. Of course, with network streams, memory use is really bad with variable sized messages so YRMV. 3) A flush method. This comes in handy if you want the host to do something smart when a message takes too long to get to the other side. This is also useful in cases where the host and client are developed by two different parties and the sender wants to prove their transmission. You can of course roll your own with TCP but that's one more thing TBD. 4) "Connected" property node. I'm guessing there's some sort of heartbeat underneath. You're totally allowed to ignore this
  6. I keep up with the latest so that if NI breaks some functionality I can be loud and obnoxious and hopefully get things fixed in a future version. My thanks goes to all the other early adopters. Oh, but I use the single seats and just pay for the SSP each year. It's just a cost of doing business as I see it.
  7. I DMed you but I was more looking for a process than a solution to my particular problem. By process I mean for example, who's the backup for the account manager? Who can tell me if the TSE is out of the office? Those are my usual "go to"s
  8. Is there a certain protocol for escalating support issues? I'm calling in on my service request daily now—it goes straight to voicemail. I added a note and emailed almost a week ago. My account manager was CCed. How do I get someone to talk to me?
  9. How do you figure out the dependencies? My eyes just glaze over when I look at this screen:
  10. Can you rank these three options? Specifically, I'm looking at what are the best options for avoiding mem copies of the string. Is the "swap value" primitive buying me anything?
  11. I'm imagining a collaboration where one developer develops the code and a different developer develops and tests the installer. The only problem I see with this is by default, there's just one lvproj file with both the code and the installer build spec in it so both developers would be working on the same "file". It might be possible to make two lvproj with the build spec in one and the installer in the other. Or maybe the code developer delivers a packed project library to the installer developer? Has anyone gone down one of these paths?
  12. I was actually just pointing out that the employees of the integrators have had a reasonable amount of training and experience and are possibly an undervalued source of talent worth reaching out to. I'm not sure why you guys are all up in arms about ethics. There's nothing wrong with offering someone a job at better pay. That's just natural market efficiency. It didn't occur to me that you might have the opportunity to hire someone from an integrator you are already working with (I was assuming you didn't have an integrator already) but if that was the case, any ethical issues should codified in the contract you signed with the integrator.
  13. While I'm extracting "secrets" Unicode in 2022? (Nods hopefully looking to others to assure me everything is going to be OK)
  14. Find your local integrator and poach anyone that's been there for a few years. Basically, the integrators like to "train on the job" so the customers are effectively paying for the training. You can usually out pay the integrator for talent because they have to maintain margins on their contract hourly rates.
  15. When is LV2021 being released? Seems a bit odd to get everyone excited and then not have the product immediately available.
  16. Not checking the signature seems like a potential security risk as someone could swap in a tampered PLL and potentially the caller wouldn't notice and that "hack" could go undetected. https://en.wikipedia.org/wiki/Arbitrary_code_execution Also I noticed the PPL can use VI server to monitor/manipulate it's caller. Here's an example VI that could be injected into a PPL VI. It seems to me that a PPL shouldn't get access to its caller.
  17. I'm still watching the presentation. I didn't realize it was at the same time as the "digital transformation" presentation. I'm curious to see how well the Git integration works. Also, I don't understand how the "chat pod" works. It made me think we need a discord channel.
  18. What about the "in place" structure for a data value reference. What's the equivalent text based concept for a mutex wrapping some operation (for example increment by one) to make something "thread safe" For single element queues, how do I explain what dequeuing does? That it makes the other dequeuers and preview queures wait or timeout and that no two dequeuers can access at the same time. Is there a term or a simple code snippet that shows this behavior?
  19. Is there a LabVIEW jargon to text based translation guide out there? I'd like to know what other developers call things like: (non)Reentrant Single element queue Data value reference Functional global I think there are some concepts I'm OK on: We call them clusters, they call them structs right? We have reasonable agreement on concepts like enums and global variables
  20. That's potentially useful but I can always do my own fixed strings by using things like "replace string subset" or by operating with an Array of U8s. It's more the output of number to string conversion that's not fixed that's my issue at the moment.
  21. That works well for numbers <9. If you have a bigger integer you'd have to do something like successive modulo divide by 10s to break up the number and update each byte individually. I guess I was hoping someone else did the heavy lifting. As for why, I have an application where I'm generating many strings and I'd like to be "in place" all the way down for performance or determinism reasons. I can also imagine situations where you might want to do something like this on an FPGA where memory is fixed.
  22. Lets say you wanted to be totally fixed in memory and you wanted to print something like "January 13th". You could figure out the longest string that could possibly exist and copy your number (13) into there and pad the rest with spaces or something but most of the functions I've seen in LV like number to string and array to spreadsheet string all seem to output a variable sized string. Are there any functions that take in a number and an input string and writes the number "in place" ?
  23. The new version of license manager will only let you use the 20 digit activation code if Windows thinks you're not on the internet or if you are on the internet and can log into NI's website. This creates a possible hazard for people if they find themselves "connected to the internet" but where a firewall (possibly a "great" firewall put up by a foreign nation) blocks NI's website. I tested this out by editing my hosts file to simulate that sort of situation. I can also imagine scenarios where a closed LAN has some local http servers that make Windows think you might be on the internet. As for possible work arounds to convince License Manager that you aren't actually connected, I found a registry key that we might be able to use: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNlaSvcParametersInternet https://blog.superuser.com/2011/05/16/windows-7-network-awareness/ And, I was able to do some poking around and found that Windows sometimes thinks it's connected if it can pull from http://wpad.yourdomain.example/wpad.dat so it might be possible to block that.
  24. https://forums.ni.com/t5/Example-Code/Get-and-Set-RT-System-Time-Programmatically-Using-System/ta-p/3522285?profile.language=en
  25. Check out the example at examples\Data Communication\Protocols\TCP\Simple TCP\ It uses the TCP primitives without EOL.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.