Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Mefistotelis

  1. When I'm trying to figure out checksums, I'm first trying various online tools which compute them. They often support many varieties. Checksum byte is very rarely used for checksum. I've seen once an algorithm which used that area, assuming it is zero filled. Count is sometimes included, sometimes not - hard to judge. If a simple check with few sites/tools won't help, i'm going into REing the code. It is simpler than checking all possibilities. Also, implementations of CRC used in various products are often incorrect, ie. incorrectly treating sign, byte order, or just having a typo. So sometimes it's not possible to figure out the algorithm without reversing the target code.
  2. There are two APIs to graphical systems: X-window and Wayland. X-window contains compatibility layer for Wayland, Wayland contains compatibility layer for X-window. And most libraries which help creating GUIs allow to compile the same user code for both. Microsoft won by donating Windows to schools, and providing courses for teachers. This paid out over years, making Windows a template by which all OSes are judged. Now, at least is EU, there is a movement to require open-source OS in all public institutions. This should, over years, remove some of that bias.
  3. Depends on a kid. Depends on his interests. If you're just after programming a PC: Scratch is quite popular. There's also similar thing called Blocky. If the kid won't get into things unless that's a game: Baba is you is a great game for kids. He probably already has some favorite games, and many games today use LUA. So he could also start modifying a game he knows using LUA scripts. If he prefers to drive something mechanic, like a robot: There are some DJI products for kids, like Robomaster or Tello. Not the cheapest, but high quality. You can program these. There are actually many programmable robots and robotic arms for kids, just search the net. Arduino is also easily programmable, and there are many sensors, LEDs, displays, motors etc. which you can drive with it.
  4. I actually don't care enough for LV to get triggered by the first sentence. But the last one... 😡
  5. Tough decisions are definitely required to put LV back on its feet. But those also have to be correct decisions - and that's not easy to judge at this point. Approach to some features may change now, as "this design flaw was solved in NXG" is no longer an argument.
  6. Read this: https://en.wikipedia.org/wiki/Name_mangling Symbols are decorated this way only in C++. If you just don't want the decoration, compile with C compiler, or use `extern "C" {` and declare your functions within that block. For how LabVIEW handles name mangling - someone who knows LV would have to reply.
  7. Typically, people tend to use 'repo' from Android to make a project from multiple git repos. It's a lot more flexible than submodules. With 'repo', you create a 'manifest' (or multiple manifests) which contain all repositories to be included, with indication on branch and commit to be used. It's intuitive, and anyone who worked with Android already knows how to use it.
  8. Right; sorry, I had attention span only to read a few last posts. From a few projects I looked into, only text files like *.lvproj files seem to be detected. Projects with only VIs in them are not marked as LabVIEW, no matter how much are there or what's the file/project name.
  9. The idea of comparing a quarter instead of full timeline is to have kind of derivative of the use of each language - change in the amount of uses, instead of the total uses. Popularity of LV is on decline for several years now. Whether it's 38th or 51st on a chart isn't going to change much. There are many reasons why that is happening; lack of long-term strategy is visible. There was no reaction to HW engineering being transformed from diagrams into Hardware Description Languages. There was no reaction to major languages giving jurisdiction over specifications to non-profit standardizing orgs. For govs shifting towards open-source SW in bureaucracy and education. Even the reaction to expansion of Code Versioning Systems was lacking. That would be a long post if I tried to list all such missteps. I'm wondering if there is a strategy now. Some recent actions may suggest NI did set up some goals to reach. I wonder if they realize how far they have to go to reverse the trend in the world we have now.
  10. Thanks! That is quite strange that I know exactly how LabVIEW works, but can't properly use it for what it is intended.
  11. Wow.. yes, that seem to work exactly as I expected. Makes a new VI file with given control. Can I make it iterate through all the types and open every possible VI in one run?
  12. I need a group of VI files, each containing only one control on Front Panel. Basically, I want every control available in LV menus in its own separate VI. Is there a way to automate creation of such VIs?
  13. Made CPC2 re-creation - connector pane is now there, but LV seem to not want to display it without BD... While at it, also made a simple icon creation.
  14. Yes. What I didn't mention in the video is - ATM the tool only supports the specific components I put into project. I didn't even looked at other controls yet. And for various flavors of numeric/boolean controls - all we can figure out is whether that's a control or indicator, the specific visual representation of the switch is lost - recovered one always looks the same. Thank you, will consider that. Complex projects are already supported - you just need `find` to list all extracted files, and do the 3 actions for each of them: extract to XML, recover FP, re-create VI. Default data type for that numeric control is Double. For this type, my tool sets an increment of 0,1. If it was Integer, the increase would be 1. The original value of that increment is lost with the removal of FP.
  15. Oh, going into that is definitely not for 15 minutes video. Recovering it completely and automatically, for every VI - would be a project for several months (considering this is my afternoon project). It's way easier to make partial recovery, requiring the user to finish. And just placing block diagram with the components we've already recovered for FP - is trivial. Yeah, noticed that as well.. the whole connectors pane is very easy to handle, I will likely fix that in the nearby future. Yes. That is probably the main use of that solution - recover the project without Block Diagrams, then re-create only VIs that need updating, and re-build everything.
  16. I sorted all the extracted LV14 files by size, and one stands out. Size of Block Diagram in XML form: 15MB And the size is not due to some binary blob stored inside - no, the is just a lot of parts in the block diagram heap. Amount of XML tags: # xmllint --xpath "count(//*)" ex_allChanPropsMod_BDHb.xml 234903 File: vi.lib/Platform/express/ex_EditUserDefinedProperties/ex_allChanPropsMod.vi And its content isn't even that impressive: There are just a lot of cases hiding in the "Case Structure", and a lot of copies of the same chunk of diagram within each case. Also the file seem to have syntax errors? Is it normal that some library files from NI doesn't even compile?
  17. Yes. "&lt;" and "&gt;" are just symbols used to allow storage in XML; these are so-called HTML Entities. So this string really is "<vilib>". No idea. There are more tags which can be used, but I never cared for listing them, or checking whether they're all hard-coded. EDIT: Reading @Rolf Kalbermatter answer above, I see he already answered this.
  18. Yes. Extract your file, and paths will be in XML. "LVPath" is actually a class, which is instantiated for many things. So all paths basically have the same structure. I export it to XML as list of strings - this is how it is really stored. Elements in the list are either normal strings, or tags which LV replaces with value from current config. Example: <LIvi> <!-- LinkObj Refs for VI --> <Section Index="0" Format="inline"> <LVIN Unk1="NI_InternetTK_Common_VIs.lvlib:Close Calling VI's Windows.vi" Unk2=""> <!-- VI To Lib Object Ref --> <VILB LinkSaveFlag="2"> <LinkSaveQualName /> <LinkSavePathRef Ident="PTH0" TpVal="0"> <String>&lt;vilib&gt;</String> <String>addons</String> <String>internet</String> <String>NI_InternetTK_Common_VIs.lvlib</String> </LinkSavePathRef> </VILB> </LVIN> </Section> </LIvi>
  19. Thanks @Rolf Kalbermatter, did proper update. Watcom actually had Windows extender, separate to the DOS extender. Also, interesting prediction. Personally, I think Apple overestimates scalability of their phone silicon. But we'll see.
  20. What you want is to flush your output file occasionally. File writes are buffered, and performed only when enough data has gathered, or the file is being closed. In C, flushing is done by fflush(); for LV - someone else will have to answer.
  21. Thank you! That added some important info to my list: https://github.com/mefistotelis/pylabview/blob/master/LVcode.py#L224 A little below the arch list, there's getVICodeProcName() function where I added mangled names for the dispatch table items which I got from LV for MacOS. Pylabview will now, upon extraction of a VI file, create a MAP file with offsets and names of known symbols within the executable bytecode.
  22. Do we have a full list of these architectures somewhere? I've seen: 'i386', 'wx64', 'ux86', 'ux64', 'm386', 'mx64', 'PWNT', 'axwn', 'axlx', 'axdu', 'ARM ' (those are all little endians) I'm not exactly sure what each of these means. Are different OSes counted as separate architectures?
  23. I just did. Wow. Now I know I was missing a lot by ignoring Apple. At least from this perspective. Not a single function name is missing, and all names are decorated with types.
  • Create New...

Important Information

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