All the 1-Wire devices are referenced by a "path" of the OWFS package (namely the owserver), which the 1-Wire driver of REXYGEN relies on. This "path" is hardcoded in the compiled application and it typically includes the 64-bit ID of the 1-Wire device, e.g. /28.551DDF030000/temperature12
Replacing a sensor therefore normally means you have to reconfigure the 1-Wire driver in your project, recompile it and download it to the target device, resulting in restarting the whole application, which is undesirable in some cases.
Luckily, the OWFS package supports the so-called aliases for individual 1-Wire devices. If you define the aliases, you can reference them in 1-Wire driver configuration in REXYGEN Studio. This adds one layer of hardware abstraction, which will allow you to replace a 1-Wire sensor/actuator on the fly if needed. In case of replacing the 1-Wire device, you'll just update the alias definition. But for REXYGEN runtime core, everything will look the same.
Configuring OWFS aliases
Please add the following line to your /etc/owfs.conf
:
alias = /etc/ow-alias
Now create the file with aliases definition:
sudo nano /etc/ow-alias
And put the following content in (replace the 1-Wire IDs with the IDs of your own devices!):
/28.551DDF030000 = sensor1
/28.1FBFBC020000 = sensor2
Save the file and restart owserver:
sudo systemctl restart owserver
Now run owdir
and you should see your aliases.
Instead of e.g. owread /28.551DDF030000/temperature12
you can now read the temperature using
owread /sensor1/temperature12
And you can use /sensor1/temperature12
in the OwsDrv driver configuration in REXYGEN Studio.
As a result, you'll be able to replace a 1-Wire sensor/actuator without restarting REXYGEN runtime core (RexCore). In such a case, the only thing which you will need to do is editing the ID in /etc/ow-alias file and restarting the owserver.