Categories
Development General VSCP

New #VSCP Level II driver interface

The driver interface for Level II drivers will change for the upcoming 14.0.0 release. In previous versions the message passing has been done through the tcp/ip interface. This is no longer used (will still be used by Level III drivers).

The interface a driver maker has to implement is very simple and looks like this

// Open connection
long VSCPOpen( const char *pPathConfig, const unsigned char*pguid );

// Close connection
int VSCPClose( long handle );

// Write event
int VSCPWrite( long handle, const vscpEvent *pEvent, long timeout );

// Read event
int VSCPRead( long handle, vscpEvent *pEvent, unsigned long timeout );

// Get driver version MSB = major, LSB = build with minor/release in between
unsigned long VSCPGetVersion(  void );

// Get vendor string describing driver maker
const char *VSCPGetVendorString( void );

I think it is pretty selfexplanatory.

All Level II driver now must have a unique GUID assign to them. Configuration is

<driver enable="true"     
        name="driver-name"     
        path-driver="/usr/lib/x86_64-linux-gnu/vscpl2drv-driver-name1.so"     
        path-config="/var/lib/vscpl2drv-driver-name/drv.xml"       
        guid="FF:FF:FF:FF:FF:FF:FF:FC:88:99:AA:BB:CC:DD:EE:FF" 
</driver>

Worth to note here is that driver now by default will be installed to /usr/lib/x86_64-linux-gnu/ and /usr/lib/x86_32-linux-gnu/ so one can have 32-bit and 64-bit drivers installed on a system at the same time. We by this adopt to Debian roles used in deb packages.

Also driver names will end with the major version. So a a level II driver “automation” will be vscpl2drv-automation1. Also, drivers will comply to the Linux library installation schema used on Linux so they will be installed with the full version for example vscpl2drv-automation1.so.1.1.1 but links will be created for vscpl2drv-automation1.so.1.1, vscpl2drv-automation1.so.1 and vscpl2drv-automation1.so so drivers can be addressed as before.

If you make driver please use this schema. In the same way use vscpl1drv- as prefix for level I driver.

name is a system unique name for the driver.

path-driver gives the path to the driver as expected.

path-config is a path to a configuration file for a driver. Normally this file should be in xml format. The location for the configuration file can be anywhere but recommended is /var/lib/vscpl2drv-driver-name/ for a driver that can be configured on the fly and /etc/vscp for a driver that are static. The later being the safest place.

guid is a system unique GUID for the driver. This GUID must be set and it must be valid.

New for level II drivers is that they will be able to be configured on the fly and be interacted with through the web interface, websockets and tcp/ip interface. One can therefore easily set up configuration pages etc. More on that later.

For a sample of the new futures and a base for your own projects check the vscpl2drv-automation driver. This driver implements the automation functionality that was previously integrated into the VSCP daemon. Tables, DM, remote variables, udp, multicast are other functionality that is moved out to drivers with the upcoming 14.0.0 version.

A lot of new functionality is demonstrated in the vscpl2drv-automation. Save and load for example that save/load the current configuration. Also all parameters are possible to edit/change when the driver is loaded and alive in a system.

Some parameters may still be changed so look at tis as somewhat preliminary information.

Categories
General

CadSoft eagle 6.6.0 on new Ubuntu

I have had problems installing my eagle license for 6.6.0 on new Ubuntu versions for a while and have been forces to run it on my Windows machine (yes I have a license).

I found this link and it is halfway working. Superb work btw. But I still get a complaint about eagle not finding libssl1.0.0

I today found that the solution to this problem is to install libssl1.0.0_1.0.2n-1ubuntu5.3_i386.deb from here. Pretty obvious maybe. Now everything works as expected again.

Posted here in case someone else have the same problem and want to save a minute or two.

edit:

This may also be needed onm later Ubuntu versions

apt-get install libxrender1:i386 libxtst6:i386 libxi6:i386

Categories
General

Understanding Bluetooth Range | Bluetooth Technology Website

What is the range of Bluetooth? The effective, reliable range between Bluetooth devices is anywhere from more than a kilometer down to less than a meter. Use the Bluetooth Range Estimator What…

Source: Understanding Bluetooth Range | Bluetooth Technology Website

Categories
General

STMicro Launches the first 8-pin STM32 Microcontrollers

STM32G0316-DISCO

Source: STMicro Launches the first 8-pin STM32 Microcontrollers

Categories
General

CAN-Bus HAT for Raspberry Pi 4 offers RTC and wide-range power

Copperhill’s third-gen, $65 “PiCAN3” HAT features Raspberry Pi 4 support and a SocketCAN-ready CAN-Bus 2.0B port. The HAT has an RTC and is powered by a 3A, 6-20V Switch Mode Power Supply that can also power the Pi.

Source: CAN-Bus HAT for Raspberry Pi 4 offers RTC and wide-range power

Categories
General

Taming the ‘hard’ in hardware in 8 steps – a product development journey

In 2017, we (balena) embarked on a mission to build the ultimate flashing media. As a software company, we didn’t realize the hornet’s nest that we had stepped into. Little did we anticipate that in the process, we would end up re-examining the wheel at every step, going through eight

Source: Taming the ‘hard’ in hardware in 8 steps – a product development journey

Categories
General

ESP32 Weathercloud Weather Station: 16 Steps (with Pictures)

Source: ESP32 Weathercloud Weather Station: 16 Steps (with Pictures)

Categories
General

Qorvo – There can be only one? 5G vs Wi-Fi 6

With each new cellular standard, we see fresh claims for the “end of Wi-Fi”. When 3G was announced, it promised to make Wi-Fi (802.11b) redundant, which clearly turned out to be wrong. With 4G (LTE), this story repeated itself, claiming it would put Wi-Fi (802.11ac) in the bin.

Source: Qorvo – There can be only one? 5G vs Wi-Fi 6

Categories
General

Introducing GitHub Package Registry – The GitHub Blog

With GitHub Package Registry your packages are at home with their code—sign up for the limited beta to try it out.

Source: Introducing GitHub Package Registry – The GitHub Blog

Categories
General

Shipping a Linux Kernel with Windows | Windows Command Line Tools For Developers

Beginning with Windows Insiders builds this Summer, we will include an in-house custom-built Linux kernel to underpin the newest version of the Windows Subsystem for Linux (WSL). This marks the first time that the Linux kernel will be included as a component in Windows.

Source: Shipping a Linux Kernel with Windows | Windows Command Line Tools For Developers