Jump to content

Sparkette

Members
  • Posts

    399
  • Joined

  • Last visited

  • Days Won

    28

Everything posted by Sparkette

  1. 1. Place a control refnum 2. Right-click, Select VI Server Class, Generic, GObject, Control, Pixmap 3. Now it's a "Pixmap Refnum". Right-click again, Show Control 4. Drag the control out. Unfortunately, I first noticed this control in the VI Scripting style ring, where it was labeled as "warning: dangerous" or something like that. But the class isn't marked private, and it can be placed in the manner I described without any kind of warning, so maybe that warning is obsolete and it's been fixed? Then it would probably be in the palette, I guess, but I'm curious to hear what NI has to say. Maybe it's a bug that it can be placed that easily without generating any warnings. :p
  2. Lol I just noticed I'm the #1 most popular contributor for the week and the month. Not sure how special that really is as this isn't the most active forum, but it's still neat to see. Thanks I guess :)

  3. For me, something being another person's homework assignment is something that would make me more likely to want to do it for them, not less. I enjoy keeping options open for people who want them, especially when others would rather close them off. If it is in fact a homework assignment though, don't get your hopes up, because it would still have to be something I'd want to put the time into doing anyway.
  4. Does anyone have any idea what DCO stands for? It's in the same context as DDO, which I know means Data Display Object.

    1. bbean
    2. Sparkette

      Sparkette

      Not sure. In this context it's part of LabVIEW's internal data structures for front panel/block diagram objects. Often DDO structures are contained within them. But a DCO is often used even when the data doesn't need to be displayed (in which case there's no DDO) such as for parameter terminals, For/While loop terminals, etc.

      Data Container Object maybe?

    3. dadreamer

      dadreamer

      I believe, DCO stands for Data Controller Object and DDO should be Data Display Object. You might see DCOs and DDOs already with the help of Heap Peek. I didn't study DDOs much (it's either a control or an indicator), but a DCO controls how and which data is passed through a single terminal (on BD) or control/indicator (on FP). You may find any SubVI's/node's terminal w/ Heap Peek and in its properties you should find an address of DCO assigned to it. The same is doable with controls and indicators on Front Panel. On BD DCOs are called Parameters or EFN Parameters (for CLFNs) or somehow else. On FP they're called FrontPanelDataControllers. It's easy to find them using "F" button of Heap Peek. There are two internal functions in LabVIEW, which read and write from/to a DCO's (Transfer/Execution/Operate) data buffer: ReadDCOTransferData and WriteDCOTransferData. These funcs are used in Get Control Values By Index and Set Control Values By Index behind the scenes. It's even possible to call these funcs from BD directly to mimic the foresaid instruments behaviour.

  5. Bumping this thread because I've posted a new version; see the OP.
  6. Well, not supposed to know according to NI. But of course it's my brain, not theirs. Just mytwocents. Also, there's a reason MD5 has fallen out of favor, you know. 😛
  7. My latest project.

    ss_rLhnXy.png

  8. There are a bunch of objects in LabVIEW that aren't exposed in the default palettes, and are normally inaccessible except through scripting. I made a Quick Drop plugin that exposes all of these. Many of these are no longer supported, and others never were supported in the first place. Hidden ones are displayed with an "X" next to them to warn you: as I often say, be careful with these, and don't use them in any code you care about, as they can cause crashes, data corruption, and who knows what else! Download the LLB below and place it in your <LabVIEW install dir>\resource\dialog\QuickDrop\plugins folder. Then press Ctrl+Space, Ctrl+S to open this dialog. Select an item from the list and click OK, and there you go. There's some interesting/strange stuff in here! EDIT: Couple things I forgot to mention. The first time you open this (and whenever you rebuild the list) it uses two private properties on the app reference, to get the list of controls and indicators in the palette. Since this is just a property read, I'm sure the worst that could happen is a crash when you try to open the dialog, but I can't make any guarantees. Also there's some false positives for hidden items, mainly with front panel controls/indicators that come in different styles. Place by Style.llb
  9. Did you post this before you started working for NI?

    Seems kind of funny to see an NI employee asking the community for help with XNodes of all things 😄

    1. jacobson

      jacobson

      Started working at NI in 2014 so this was after that. At the time, I was an Applications Engineer and this was a side project so I didn't really want to bother any of our developers.

      I ask enough of our R&D team for work problems so I'll bug LAVA or our local user group with problems I've run into from more personal projects.

    2. Sparkette

      Sparkette

      Ah ok. Just thought it was funny :)

  10. I was trying to script something involving a build specification just yesterday. I'm pretty sure "Targets" refers to things like "My Computer", not build specifications. You can get a reference to the Build Specifications folder through the "My Computer" property of the project, IIRC. And from there you can get the Owned Items[] property, find the one you need, and use "To More Specific Class" to make it a Build Specification refnum. However, strangely, I haven't found any methods/properties that do anything specific to build specifications. Maybe I'm looking in the wrong place though.
  11. Wait, what about the person who already had the name Bryan?
  12. Does this mean its deprecated status will be removed? Also Paul, just wondering, how did you find that property?
  13. And yet all they're using is plain black lines connecting the nodes. In this thread? Really?
  14. I never thought to add a license to it; as you probably guessed it's not really something that readily crosses my mind. 😛 I don't really care what you do with it; I guess I'll put it under the MIT license or something in the next revision.
  15. Well that last one depends on your personal ethics on the matter, but I guess you did say "potentially" so you aren't wrong. That's a bit too off-topic to discuss much further here though; I was just making a joke
  16. I could try and see how well that works. Also, NI got back to me; they said they were able to confirm the issue I mentioned and they've filed an internal bug report. (Btw hooovahh, the second quote in your signature is not entirely accurate 😛)
  17. Thanks for your help. As it turns out though, I'm actually just going to keep running my code on that Raspberry Pi and use LabVIEW only for an additional component. There's another serial connection I'd need to share with LabVIEW, but it's an RS-485 adapter, and as it turns out, the sbRIO-9636 I'm using has an RS-485 connection built in, so I can just use that instead.
  18. You know how you can change the wire appearance for a class in the class properties? As it turns out, LabVIEW internally allows for more flexibility than that dialog gives you. So I made an advanced wire editing tool...and unlike a lot of stuff I post, you can actually use this for serious projects, because it does not use any private/unsupported LabVIEW functionality! With this tool, you can set wire size without limits (with results similar to this), customize both wire layers with any 8x8 monochrome pattern, and also mess with different draw options. Strangely, a few of these settings seem to have no effect, and many of the options for one of them actually crash LabVIEW. (These ones are disabled in my tool, but you can re-enable them by editing a typedef.) Given that this is actually a documented, supported property that's officially supposed to work, I've reported this as a bug to NI; if any NI engineers see this and feel like investigating, you can refer to service request #7762024. Latest version: Wire Studio 2.zip Old versions: Revision 1
  19. One alternative I thought of is running an LXI server on the Raspberry Pi. That could work, right?
×
×
  • Create New...

Important Information

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