Subject: LXI protocol

From: phodina <[email-masked]>
Date: Tue, 06 Dec 2022 03:19:17 +0000

Hello,

these patches add tools to control laboratory equipment remotely (e.g. osciloscope, power supply, etc.).

----
Petr

From 42eb2875c900090f5a54f33a1766bae80c0f2988 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sat, 3 Dec 2022 10:21:12 +0100
Subject: [PATCH 1/2] gnu: Add liblxi.

* gnu/packages/hardware.scm (liblxi): New variable.

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 65558ffe08..64e45dffb8 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -42,6 +42,7 @@ (define-module (gnu packages hardware)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages cups)
@@ -67,6 +68,7 @@ (define-module (gnu packages hardware)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -1338,3 +1340,30 @@ (define-public libcpuid
 string, code name and other information from x86 CPU. This library is not to be
 confused with the @code{cpuid} command line utility from package @code{cpuid}.")
       (license license:bsd-2))))
+
+(define-public liblxi
+  (package
+    (name "liblxi")
+    (version "1.16")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+          (url "https://github.com/lxi-tools/liblxi")
+          (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "0dfhqslfx78qx5md4va5fpjmxwbxhb6mbx8bzlf31i6nhsj2rzcx"))))
+    (build-system meson-build-system)
+       (native-inputs (list cmake pkg-config))
+       (inputs (list avahi libtirpc libxml2))
+    (home-page
+     "https://lxi-tools.github.io/")
+    (synopsis
+     "LAN eXtensions for Instrumentation library")
+    (description
+     "This package provides library for LAN eXtensions for Instrumentation
+based on the LXI Consortium standard which defines the communication
+protocols for modern instrumentation and data acquision systems using
+Ethernet.")
+    (license license:bsd-3)))
-- 
2.38.1

From cc294ff8c4db2bc6a3f01402c45948bff10d1373 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sat, 3 Dec 2022 10:21:45 +0100
Subject: [PATCH 2/2] gnu: Add lxi-tools.

* gnu/packages/hardware.scm (lxi-tools): New variable.

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 64e45dffb8..bbd0fa4d31 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -62,6 +62,7 @@ (define-module (gnu packages hardware)
   #:use-module (gnu packages high-availability)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages lxqt)
   #:use-module (gnu packages mtools)
   #:use-module (gnu packages package-management)
@@ -81,6 +82,7 @@ (define-module (gnu packages hardware)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages security-token)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages virtualization)
@@ -1367,3 +1369,30 @@ (define-public liblxi
 protocols for modern instrumentation and data acquision systems using
 Ethernet.")
     (license license:bsd-3)))
+
+(define-public lxi-tools
+  (package
+    (name "lxi-tools")
+    (version "2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+          (url "https://github.com/lxi-tools/lxi-tools")
+          (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "17l70b8whwp0a7j23vsrav1abjzhw78k7rg77q78q07rdqn9fwnd"))))
+    (build-system meson-build-system)
+       (native-inputs (list cmake pkg-config readline))
+       (inputs (list liblxi lua))
+    (home-page
+     "https://lxi-tools.github.io/")
+    (synopsis
+     "LAN eXtensions for Instrumentation tools")
+    (description
+     "This package provides tools for LAN eXtensions for Instrumentation
+based on the LXI Consortium standard which defines the communication
+protocols for modern instrumentation and data acquision systems using
+Ethernet.")
+    (license license:bsd-3)))
-- 
2.38.1