First release of SharpHamilton: use C# script to control STAR and Vantage

I upladed SharpHamilton with C# script editor to github, you can download this small tool from github. SharpHamilton is only an wrapper of Venus into C#, you can programme with C# like venus to control STAR/Vantage. It contains a C# editor, and it support many modern features of IDE, which can make coding easier.

  • controlling STAR/Vantage from venus 4.4 to venus 6 (4.3 was not tested, but I think it will be ok), and support windows xp to windows 11
  • venus styled error handling
  • support deck layout manipulation
  • support 3D deck layout
  • support sequence and smart step
  • ADC, MAD, tip tracking speed, volume calculation for container, plate checking for CORE gripper transport, and more
  • syntax highlight, code completion, code folding, intellisense, refactor
  • version control and diff view
  • support nuget

This tool also support 3D run simulation, but it was not finished, maybe later we can put it into SharpHamilton.

10 Likes

This is really impressive!

This is awesome

Can I ask a potentially silly question? What’s the advantage to using this over Venus method editor? Is it for those who are programmers by trade, that have learnt lab processes afterwards (i.e. its easier for them)? Is version control easier this way? Would be useful if so, as I’d like to implement a system to merge changes from multiple developers (or to merge with customer versions).

FYI-My background is laboratory based first and then have moved to programming Hamilton instruments, so please excuse my ignorance.

There’s a few advantages to a programmatic (i.e. text-based) vs graphical interface. Version control is huge. It’s also much easier to build abstractions that can be reused across programs. Another big advantage is being able to use libraries for data manipulation and other pure software tasks. I also find it easier to integrate equipment as well as external data sources. Venus covers a lot of bases but it’s hard to compete with the world of open source libraries especially in Python, although C# also has huge support for building user-facing applications. .NET is a massive framework created by Microsoft to help developers build software so there’s a lot of ways it can be used.

6 Likes

Building on what @Stefan has said

The biggest advantages are on the productivity side - there’s just better & faster editing, building, testing, and packaging of platforms from cross functional or multi-site work. If you’re savvy enough you can even develop your own internal libraries/NuGet packages. It also makes integration a lot better overall with cloud providers & ELN’s/LIMS. And DevOps is much less painful.

So many labs test their code in production, that’s just insanity.

I like to think of the GUI’s provided by vendors as Jupyter Notebooks while something more programmatic is a full IDE like PyCharm or Visual Studio.

1 Like

Also want to add - C# was language of the year!!!

1 Like

Actually this was developed for IVD application, but it is also very useful for R&D users. The most advantage of code programming is productivity, it means that you can archive more complex functions within fewer time. For most of the problems in this forum, it will be very easier if you do it with python/C#. e.g. for following problem, if you write it with hsl, you have to know many knowledges of programming and math, and you have to write a lot of codes and do many tests. Only very experienced people can do it.

https://forums.pylabrobot.org/t/calculate-time-elpased/2737

if you write it in C#, there will be only two/one lines. The beginer can do it easily.

    string barcode = "20240105";
    var offset = (DateTime.Now - new DateTime(int.Parse(barcode.Substring(0,4)), 
        int.Parse(barcode.Substring(4,2)), 
        int.Parse(barcode.Substring(6,2)))).Days;
3 Likes

only the most based can test in prod

4 Likes