refreshStatus method

Future<CuppsCommandResponse> refreshStatus()

Implementation

Future<CuppsCommandResponse> refreshStatus() async {
  try {
    DeviceStatusRequest req = DeviceStatusRequest(messageID: currentMessageID);
    String deviceStatusResXML = await send(xml: req.toXML());
    DeviceStatusResponse deviceStatusRes = DeviceStatusResponse.fromXML(deviceStatusResXML);
    // print("(TO DEVICE $deviceIndex) Received DeviceStatus ${deviceStatusRes.result}");
    if (deviceStatusRes.result.toLowerCase() == "ok" || deviceStatusRes.result.toLowerCase() == "") {
      // print(deviceStatusRes.status.map((e) => e.toXML()).toList());
      if (deviceStatusRes.status.where((element) => element.toXML().contains("${getType.name}Status")).isNotEmpty) {
        // print("Status DETECTED");
        deviceParameter.status =
            deviceStatusRes.status.firstWhere((element) => element.toXML().contains("${getType.name}Status"));
        CUPPS().notifier!();
        return CuppsCommandResponse(status: true, msg: "Device :$deviceName Status Refreshed");
      } else {
        CUPPS().notifier!();
        return CuppsCommandResponse(status: false, msg: "Device :$deviceName Status Not Found in Response");
      }
    } else {
      return CuppsCommandResponse(status: false, msg: deviceStatusRes.result);
    }
  } catch (e) {
    return CuppsCommandResponse(status: false, msg: "Device $deviceName refresh Exception: $e");
  }
}