Jump to content

kull3rk3ks

Members
  • Posts

    21
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by kull3rk3ks

  1. To be honest is looks to me like someone abused a powerpoint template from 2007. I am personally not really fond of serif fonts and the added radius on 3 of the 4 corners of the buttons seems unnecessary to me. That said, the rebranding doesn't actually affect me in any meaningful productive way so I guess it's their choice to burn a pile of cash on a rebrand.
  2. Does anyone have issues with blocking calls when used in parallel processes? I would like to deserialize data in multiple parallel processes, but the "from JSON Text", that in turn calls the "JSON text to Variant" function which uses the NI utilities for determining variant data types. These are set as non-reentrant and as they are protected, there is no way to change that. Am I stuck up poop creek without a paddle here?
  3. Thank you all for your inputs! I will use the poly method, as I also now think it would suit my application best. It wouldn't be very maintenance-intensive, since i don't believe the communication protocols will shift that much.
  4. so am I correct in assuming that what you are suggesting is that I implement a config class of which i pass the correct child instance to the initialise() method of the messenger class and the child instance gets its init data from there?
  5. I am trying to wrap my head around something i've been dealing with lately: I want to implement a "Messenger" Class for facilitating a switch of communication interfaces in my programs. Basically my current thought process is that I have: - A parent class called "Messenger" with the methods: initialise(?), connect(), [U8] recieveData(), sendData([U8]), disconnect(), that I can use in my code. - A child class "TCP Messenger", which overrides the methods: initialise(IP, Port, Timeout, DVR, ConnectionType), connect(), [U8] recieveData(), sendData([U8]), disconnect(). - A child class "Serial Messenger", which also overrides the methods: initialise(Port Number, Timeout, DVR, ConnectionType), connect(), [U8] recieveData(), sendData([U8]), disconnect(). - A child class "Profibus Messenger", which again overrides the methods: initialise(FPGA ref, SlaveAddress, ConnectionType), connect(), [U8] recieveData(), sendData([U8]), disconnect(). ... I would like to change the communication type by simply loading a different class and letting dynamic dispatch do the rest. All of the methods have similar interfaces, except the initialise method, as every type of connection necessitates different types of parameters. Everything else is basically getting byte Arrays and setting Byte arrays. How would one go about solving this? Do I just create an Initialise method with every possible parameter and only use what I need in the specific implementation? Robert
  6. I just checked the JSON file again, found no error in it and decided to upload it to che cRIO again for testing. Lo and behold it works... I have no idea why.
  7. I am currently wondering about the encoding of strings in JSON, since havine something like this: { "serverConfig": { "read": { "address": "164.3.157.40", "port": 5010, "bytesToRead": 130, "connectionMode": "Server", "connectionTimeout": 5000, "readTimeout": 2000 } } } throws error 1 (Parser error) and when I remove the quotation marks on the values like so: { "serverConfig": { "read": { "address": 164.3.157.40, "port": 5010, "bytesToRead": 130, "connectionMode": Server, "connectionTimeout": 5000, "readTimeout": 2000 } } } everything seems to work just fine. The problem is that the JSON Editor that I use automatically sets quotation marks for non-numeric values. also the first variant passes validation, whereas the second doesn't. am I missing something?
  8. I am trying to figure out if i'm missing something in my approach. I am using an Array of Objects as Class Data of a handler Class. I Dynamically add these Instanced to the handler and when i'm done, I'd like them to be released from memory. When adding the Instance of the class (using the Insert Into Array function of LabVIEW), I call methods to add the data, set a status and create a file backup of the object so it can be retrieved after a program restart. When I'm done I'd like to remove the Instance from the Array by using the Delete From Array function of LabVIEW and delete the file backup of the object like this: My question is if the Instance of the probe object still remains in memory after this and if so, is there any way I can tell LabVIEW to destruct it? Cheers, Robert
  9. I couldn't seem to get the Panel to work for me for some reason, so I played around with it and startet digging. In this process I found a bug that affects localised hardware, where the decimal symbol is not a point. To get the example running I had to do the following: Set "use system decimal point" to false and Set the options on the formating string to use the decimal point. There might be other instances of the GetJSONData Method where the format has to be changed, I didn't check all of them. Cheers, Robert
  10. Hey there, I have a cRIO capable of rendering an embedded UI (cRIO 9039). Is it possible to Control that embedded UI by using VNC? Has anyone attempted anything like this? Thanks, Robert
  11. Hi, this may be a stupid question, but I'm trying to host a thinclient on my cRIO 9068 and thus want to display some html/javascript from the cRIO itself. I couldn't find the folder where I could do these things in the file structure of the 9068. Has anyone had any experience regarding this?
  12. Hey, I have an application where I need to sample at a specific higher rate to calculate RMS values and feed some of my values over FPGA front panel objects to a fast loop on my RT and send the samples at a slower rate (triggered by a timer) over a DMA FIFO to slower loop. I Set the loop time to 10000 S/s and i'm filling up the DMA FIFO every 50 ms. The diagram looks something like this: My question is: does the FPGA code execute the auto-indexed FOR-Loop like the Non-FPGA Diagram would, where the single Trigger bool from the timer remains true for all cycles of the for-loop, OR do I need to make sure the "Triggered" condition of the case structure is there for all FOR-Loop cycles? Thanks, Robert
  13. Hi there, I have an issue with a small project i'm currently working on, where I have an array of waveforms that I'm displaying on a graph. What I would like to do is to change the X-Axis from displaying the timestamp to displaying another channel. I have for instance a channel where force was recorded, and another where distance was recorded. I would now like to display force over distance for example. What would be the best way to do this? Would be thankful for any pointers on this matter. Robert.
  14. That did the trick, thanks Ton! Also thanks for the Anwer, hooovahh but i wanted the Programmer to be able to just bundle the variables and be done with it - and it seems to work nicely this way.
  15. Hi there! I've played around with a piece of my Programm where I have to create an array of clusters where a cluster has two emenents: a NAME and a VALUE for the specific name. I Would like to use something like the firt Screenshot as an Input (Bundle the Variables to a cluster). Then, inside the SubVI I would like to generate said Array of Clusters based on the Label of the Controls that I use as Inputs to the cluster. As a Result I would like to get something like this: The thing is that I can't seem to get the Data out of the Variant - On the Frontpanel, the indicator for the variant shows all the information I need... How do I get the Information out of there? Any Ideas?
  16. I'm using the NI 9236 quarter bridge modules, which should support 10kS/s I'm also using an NI 9207 to get the position information from a sensor. Setting the sampling rate to 1024 solved the data rate error. I do get another error now: Error 537952 occurred at rwfm_AcqRead.vi Possible reason(s): cRIO Module Underflow: This error occurs if post-processing code on the FPGA VI cannot execute in one acquisition period. You must lower your sample rate or reduce the amount of post-processing performed on the FPGA. There is no post-processing that I know of performed on the FPGA. Anybody got a hint?
  17. Hello there! I'm currently working on the control of a machine that does a specific measurement while the sensor (composed of several strain gauges) slides along a sled. I would like to acquire the sensor Data and to relate it to the position of the sled. The machine also has simple User inputs as Buttons and simple outputs as LEDs. The motors are controlled by relais which are connected to DOs. I wanted to use the cRIO Wfm reference library for my project because it seems to be great at this task. My current problem is that whenever I try to start a measurement, I get the error message CompactRIO: (Hex 0xFE4C) You have entered a data rate that is not supported by the selected module and oversample clock frequency. As a matter of fact though, I know that the Delta sigma strain gauge modules support a sampling rate of 10.000S/s but I seem to get the error from the FPGA. I'll attach my FPGA VI and the Measure VI (which is normally located inside a statemachine) for your reference. - all of them written in LV2012. I also get the same error when Using the example VI provided in the RIO Wfm Library. Thank you for reading and eventually helping Untitled 1.vi Measurement.vi FPGA-Main.vi
  18. Thank you for your helpful replies. You were absolutely right, ned. The problem was the indicator inside the structure. Moved it outside and it workes like a charm. I really like your approach better though, I might steal it Thanks!
  19. Hi there! For my current project i needed to make some DOs on a cRIO blink at certain intervals (for signaling). I wrote a sub-VI that i thought would do the trick, but it doesn't seem to work. The output merely pulses. It works with "normal" tick counts on the computer, but as soon as I send it to the RT Task (Communicating with the FPGA) it seems to stop working. i've attached the sub-VI. it's written in LV 2012. Hope you can help, Robert Blinken.vi
×
×
  • Create New...

Important Information

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