
use App\BootloaderMasterFirmware;
use App\BootloaderSlaveFirmware;
use App\Client;
use App\Cluster;
use App\Controlbox;
use App\Controlbox\Eventlog;
use App\Controlbox\Pi;
use App\Controlbox\Slave;
use App\Helpers\XmlHelper;
use App\Http\Controllers\Controller;
use App\Http\Controllers\EventLogController;
use App\Imports\TlogImport;
use App\NetworkSettingsSet;
use App\SlavesSettingsSet;
use Carbon\Carbon;
use Illuminate\Encryption\Encrypter;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
use Spatie\ArrayToXml\ArrayToXml;
use Throwable;
use XMLReader;



        $xml = file_get_contents(base_path('SlaveStat.xml');
        $controlbox = Controlbox::find($cid);
            $xml = simplexml_load_string(trim($xml));
            $xml = json_decode(json_encode($xml), TRUE);
        if (is_iterable($xml)) {
            foreach ($xml as $name => $data) {
                $modelArray = [
                    'name' => $name,
                    'valve' => $data['Status']['Valve'],
                    'temp' => $data['Status']['Temp'],
                    'status' => $data['Status']['Status'],
                    'EMStop' => $data['Status']['EMStop'],
                    'cycling' => $data['Cycle']['Status'],
                    'version' => is_array($data['Status']['Version']) ? 0 : $data['Status']['Version'],
                    'control_box_id' => $controlbox->id
                ];

                if ($controlbox->Slaves()->where('name', $name)->exists()) {
                    $controlbox->Slaves()->where('name', $name)->first()->update($modelArray);
                } else {
                    Slave::create($modelArray);
                }
            }
        }
