diff --git a/src/OneWireFirmata.cpp b/src/OneWireFirmata.cpp index 80cf5ae..bf647c5 100644 --- a/src/OneWireFirmata.cpp +++ b/src/OneWireFirmata.cpp @@ -17,6 +17,14 @@ #include "OneWireFirmata.h" #include "Encoder7Bit.h" +OneWireFirmata::OneWireFirmata() +{ + for (int i = 0; i < TOTAL_PINS; i++) { + pinOneWire[i].device = NULL; + pinOneWire[i].power = false; + } +} + boolean OneWireFirmata::handlePinMode(byte pin, int mode) { if (IS_PIN_DIGITAL(pin) && mode == PIN_MODE_ONEWIRE) { @@ -40,9 +48,6 @@ void OneWireFirmata::oneWireConfig(byte pin, boolean power) if (info->device == NULL) { info->device = new OneWire(pin); } - for (int i = 0; i < 8; i++) { - info->addr[i] = 0x0; - } info->power = power; } @@ -90,15 +95,9 @@ boolean OneWireFirmata::handleSysex(byte command, byte argc, byte* argv) { if (subcommand & ONEWIRE_RESET_REQUEST_BIT) { device->reset(); - for (int i = 0; i < 8; i++) { - info->addr[i] = 0x0; - } } if (subcommand & ONEWIRE_SKIP_REQUEST_BIT) { device->skip(); - for (byte i = 0; i < 8; i++) { - info->addr[i] = 0x0; - } } if (subcommand & ONEWIRE_WITHDATA_REQUEST_BITS) { int numBytes = num7BitOutbytes(argc - 2); @@ -110,9 +109,6 @@ boolean OneWireFirmata::handleSysex(byte command, byte argc, byte* argv) if (subcommand & ONEWIRE_SELECT_REQUEST_BIT) { if (numBytes < 8) break; device->select(argv); - for (int i = 0; i < 8; i++) { - info->addr[i] = argv[i]; - } argv += 8; numBytes -= 8; } @@ -170,9 +166,6 @@ void OneWireFirmata::reset() free(pinOneWire[i].device); pinOneWire[i].device = NULL; } - for (int j = 0; j < 8; j++) { - pinOneWire[i].addr[j] = 0; - } pinOneWire[i].power = false; } } diff --git a/src/OneWireFirmata.h b/src/OneWireFirmata.h index 9c68aef..c2a43e5 100644 --- a/src/OneWireFirmata.h +++ b/src/OneWireFirmata.h @@ -43,13 +43,13 @@ struct ow_device_info { OneWire* device; - byte addr[8]; boolean power; }; class OneWireFirmata: public FirmataFeature { public: + OneWireFirmata(); boolean handlePinMode(byte pin, int mode); void handleCapability(byte pin); boolean handleSysex(byte command, byte argc, byte* argv);