Jump to content

viSci

Members
  • Posts

    456
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by viSci

  1. I often use variant attributes as a quick and dirty dictionary. I found out that I could flatten my 'variant dictionary' and save the flattened string to a file. I tried to unflatten the saved string and reconstitute the variant and its attributes but am getting an error 116 (Unflatten or byte stream read operation failed due to corrupt, unexpected, or truncated data.) I am using a variant constant because the variant dictionary I created has no datatype other than the attributes which are all 1D string arrays. I am beginning to think that this might not be possible to do, but thought I would check in to make sure I am not overlooking something.
  2. I am looking for alternatives to using Systemlink to manage a large network of WES7 cDAQ's. I imagine there are many windows server tools out there to manage software deployment, replication, remote monitoring, etc. I am hoping someone might have some experience in this area and could offer a few suggestions on tools that would work well for the NI ecosystem but not require being an IT specialist. Thanks.
  3. Systemlink was designed for such use cases. The only negative I have with it is the pricing model which is based on the number of nodes in your network.
  4. I was wondering when someone would mention the long forgotten but hopeful promise of Teststand Lite. I doubt after all these years NI is going to provide this. It is likely something that will only happen with community support.
  5. Finally, It works! Sometimes a clusterasaurus is just what you need. The cluster within cluster idea is a neat trick, thanks Rolf.
  6. Not sure were the 1024 comes in as AES key here is 32 bytes and the ReconFile path is 260 characters. As you said to get 260 I would have to append two clusters. Here is my latest clusterasaurus... Unfortunately this still is not satisfying the DLL. It is not blowing up but returning an error indicating an invalid parameter so I might not be too far off...
  7. I like the idea of a cluster within a cluster. Is it then possible to just use an array to cluster going into a cluster bundle to add in the fixed arrays?
  8. So does every *struct passed into a dll need to be flattened to a byte array? I guess in the previous case it only worked because I was passing a empty array in the cluster. So for something like this: // Structure to pass reconstruction parameters struct RECON_INFO_STRUCT { unsigned int cpmBlkSize; unsigned int sepTimeDelta; unsigned int sepByChannelFlag; //0=no, 1=yes unsigned int wavFormat; //0=mulaw, 1=pcm unsigned int decryptFlag; //0=no, 1=yes unsigned int AESKeySize; //0=128,1=192,2=256 char AESKey[CRYPTO_KEY_MAX_LENGTH_BYTES]; unsigned int makeReadableAfterReconFlag; char reconFile[MAX_PATH]; }; STATUS __stdcall SRVIVR_API_ReconFile(void* handle, char* partDataFileName, RECON_INFO_STRUCT* pReconInfo, void* pNotifyCB, void* pCBArg); Do I need to manually flatten everything to a single byte array or is there some way to use this?
  9. Ok, that comment prompted me to dig some more into the IDD for the device and found that Length parameter, which I thought was the number of bytes in the data array is really the number of bytes in the data array plus 12 for the 3 long int parameters in the cluster. Once I made that change it all started working. Thanks for your help!
  10. Was hoping someone might be able to give me a tip on this one... Trying to call the function below: typedef struct { unsigned int Length; unsigned int Id; unsigned int TimeTag; char Data[1024]; }DATA_FRAME; int __stdcall SRVIVR_API_StoreData(void* handle, int partition, int totalFrames, DATA_FRAME frameData[]); Here is what the import dll tool produces: This does not look correct to me and produces the dreaded 1097 exception error. I modified the call to be: Which I believe is closer to the intent of the original C function, but still gives me a 1097 error. I suspect that somehow the array pointer that the function is expecting is not correct. The frameData parameter is being passed into the function as a 'Adapt to Type', Array Pointer. I also tried flattening to a single U32 array and passing that in as an array data type but still no joy. Any ideas? BTW, I have had success calling many other functions from the dll of the form: int __stdcall func(void* handle, int param1, int param2, etc);
  11. Have been looking at the OPC UA toolkit, it looks pretty cool and as you pointed out has compatibility with a huge selection of 3rd party tools and utilities. It seems like the licensing is free for Linux cRIO's so would just need to purchase the $500 dev toolkit. OPC UA also has a full selection of scaler and array data types and a pretty nice LV API. I was wondering if anyone knows about the OPC UA History Data vi's. It seems like a type of memory resident time series historian but was wondering if it uses any sort of database under the hood.
  12. Has anyone looked at NI's new Systemlink / Skyline technology? It looks like a type of DDS running on RabbitMQ that is being used for all future LV software and package deployment for Windows and Linux platforms. Skyline 17.5 has Publish Subscribe tag's, tag viewer and a new web dashboard that can bind to tags. I was informed that in Q2 Skyline will have historical capabilities but am not sure if it could serve as a citadel replacement.
  13. There is probably a way to stream from VLC but I have not figured it out yet. I did look at the Blackmagic SDK and played with an example that can stream a solid blue screen to the SDI output. I guess that is a starting point...
  14. Shaun - Thanks for the link. There is a DirectShow rendering example given for mms video stream but I could not get it to work. I tried to modify the URL for local media but no luck. I will try to contact the originator of the library... bbean - Yes Blackmagic does have a nice app that works great. I can use it to stream uncompressed AVI files to my SDI output. The problem is that I need to do this programatically...
  15. Thanks for the links. Took a peek but did not see any examples or API's of how to stream video to a directshow output device.
  16. I have a BlackMagic UltraStudio SDI device that connects to a PC via USB3 and provides SDI video input and output. I was hoping to be able to generate AVI files in LV and render them via DirectShow to the SDI output but so far I can only get this to work in 3rd party video application software. I was wondering if anyone has had any luck using the DirectShow interfaces in LabVIEW and if they would care to offer some tips or example code.
  17. Actually that mod did not work. Here is the solution I came up with. I tried passing in the cluster typedef directly into the DLL but it always crashes .
  18. Hi Rolf - That was a very good try but short 2 bytes. After that adjustment it works great, thanks!
  19. Ok I realized I did not follow your instructions correctly. After I changed 'Adapt to Type' to 'Array' it ran without crashing. I am getting back an unstructured string but it is a starting point. Thank you Ned, that was a big help!
  20. The Typedef on the last line was just meant to indicate that the DLL function takes two parameters, the first is a pointer to a U16 and the second is a pointer to the data structure I am trying to build. I tried as you suggested, to create a large U8 array and pass it in as a pointer to array and adapt to type. It no longer crashes in edit mode and now waits until I run the vi
  21. I have create a LV wrapper for a DLL that crashes LV when the CLN is simply wired in edit mode and saved. I will admit that the DLL prototype requires a rather obese LV cluster which is so large it freezes LV when probed but still I do not see any other way to convey the data. Here is the diagram... LV will crash when I connect the cluster to the 2nd input of the CLN and then Save. The CLN function prototype is... int32_t LDR_GetCsmuDir(uint16_t *DirType, void *Response); The Response parameter is set to 'Adapt to Type', Pointer to Handle. I also tried 'Handles by Value' as it still crashes. Basically I have a cluster of 256 strings each of which is 256 characters, which appears to be too much for LV to handle. Perhaps there is a way to Malloc the data but that is outside my area of knowledge presently.
  22. It has been awhile (more like 6 years) since the great SVN, HG, GIT debate occurred in the LAVA community. I thought it would be informative just to get a simple roll call of who has settled for what. Rationales are optional, just wanted to get a head count...
  23. At NIWeek, the new NI Package Builder was showcased. It looks like an alternative to VIPM, is that correct? Did anyone notice if it is going to work with previous versions of LabVIEW or just 2017?
  24. I have greatly simplified my life by using the XLR8 3rd party toolkit for all my .xlsx needs. http://sine.ni.com/nips/cds/view/p/lang/en/nid/212056
  25. viSci

    Turn Key DAS

    I was dismayed when a large client announced they are abandoning their sizable investment in NI cDAQ HW to go with the Siemens LMS SCADAS system. It got me wondering why NI does not offer something to compete with this type of Uber DAS system and software. Certainly NI has the HW covered, although LMS has a better take on DAS HW with multi-functional inputs (voltage, current, PWM, etc). I would love to hear your take on the subject... Just a side note that the systems I am talking about are fairly small < 32 channels, so it is not the large network based scalability of the LMS that is the selling point. Rather it seems to be the desire to have full featured, fully integrated, off the shelf software supported by a larger company that is the draw.
×
×
  • Create New...

Important Information

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