public async Task DevicesCrossReference(IEnumerable <BaseDevice> devices)
        {
            if (_mappedIDs.Count == 0)
            {
                return;
            }
            // TODO will break
            var miner = CreateMiner() as IBinAndCwdPathsGettter;

            if (miner == null)
            {
                return;
            }
            var minerBinPath = miner.GetBinAndCwdPaths().Item1;

            var output = await DevicesCrossReferenceHelpers.MinerOutput(minerBinPath, "-d");

            var mappedDevs = DevicesListParser.ParseNanoMinerOutput(output, devices.ToList());

            foreach (var kvp in mappedDevs)
            {
                var uuid    = kvp.Key;
                var indexID = kvp.Value;
                _mappedIDs[uuid] = indexID;
            }
        }
        public async Task DevicesCrossReference(IEnumerable <BaseDevice> devices)
        {
            // v1.5.2 the mappings get screwed on mixed rigs
            const bool skipDCommandIsBroken = true;

            if (_mappedIDs.Count == 0 || skipDCommandIsBroken)
            {
                return;
            }
            // TODO will break
            var miner = CreateMiner() as IBinAndCwdPathsGettter;

            if (miner == null)
            {
                return;
            }
            var minerBinPath = miner.GetBinAndCwdPaths().Item1;

            var output = await DevicesCrossReferenceHelpers.MinerOutput(minerBinPath, "-d");

            var mappedDevs = DevicesListParser.ParseNanoMinerOutput(output, devices.ToList());

            foreach (var kvp in mappedDevs)
            {
                var uuid    = kvp.Key;
                var indexID = kvp.Value;
                _mappedIDs[uuid] = indexID;
            }
        }