1.0.6 • Published 4 years ago

digitronic-bootp v1.0.6

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

digitronic-bootp

Implementation of the bootp protocol version of digitronic to change ip-addresses on DigiWEB devices

usage

on('device', (device)=>void)

you can find devices in the network with the device event.

    const bootp = new DigitronicBootpServer();
    bootp.on('device', (device)=>{
      console.log(device);
    })
    await bootp.open();

findDevice(mac, networkInterface?, tries=3)

find a device with a specific MAC-address on the network. The returned promise will be rejected if we cannot find the device on the network.

  • mac -> mac address of the device that should be found
  • networkInterface -> network interface of the device where the device is connected to. If this parameter is not passed we're searching on all interfaces
  • tries -> since we're communicating via udp broadcast there's high chance to loose some packets (especially on big networks). So the function retries the process with the given number before it rejects
    const bootp = new DigitronicBootpServer();
    await bootp.open();
    const foundDevice = await bootp.findDevice('001122334455');

changeIp(mac, ip)

changes the IP of the device.

  • mac -> mac address of the device that should be found
  • ip -> new ip address of the device as number
  • tries -> number of unsuccessful tries before the function rejects
  • networkInterface -> network interface of the device where the device is connected to. If this parameter is not passed we're using on all interfaces
    const bootp = new DigitronicBootpServer();
    await bootp.open();
    const wantedIp = 0xC0A80203; //192.168.2.3
    await bootp.setIp('001122334455', wantedIp);

find a list of devices that updates automatically

Helper class to get a list of all available devices on the network

  const deviceService = new DeviceService();
  deviceService.on('change', (devices: Device[]) => {
    console.log(devices);
  });
  deviceService.on('device-updated', (device:Device, devices: Device[]) => {
    console.log(device, devices);
  });
  deviceService.on('device-added', (device:Device, devices: Device[]) => {
    console.log(device, devices);
  });
  await deviceService.open();