public bool SetJobMediaMode(JobMediaMode mode) { bool success = false; if (mode == JobMediaMode.Unknown) { throw new ArgumentException($"Cannot set Job Media Mode to '{mode}'.", nameof(mode)); } //Get current mode but set to allow PJL string currentPJLMode = AllowPJLAnyway(); JobMediaMode currentState = GetJobMediaMode(); if (currentState == mode) { LogDebug($"Job media mode already set to '{mode}' - no change required."); success = true; } else { LogDebug($"Job media mode set to '{currentState}', setting to '{mode}'."); int tries = 0; while (currentState != mode && tries++ < 3) { try { using (PjlMessenger pjl = new PjlMessenger(_address, _port)) { pjl.Connect(); pjl.SendCommand(_commands[mode]); } } catch (Exception ex) { LogWarn("Unable to set job media mode.", ex); } currentState = GetJobMediaMode(); if (currentState != mode) { LogDebug($"Job media mode failed to set. Attempt {tries}. Retrying..."); } } if (GetJobMediaMode() == mode) { LogDebug($"Job media mode '{mode}' set successfully."); success = true; } else { LogWarn($"Failed to set job media mode '{mode}'."); success = false; } } RestorePJL(currentPJLMode); return(success); }
public JobMediaMode GetJobMediaMode() { try { using (PjlMessenger pjl = new PjlMessenger(_address, _port)) { pjl.Connect(); string response = pjl.SendInquire(SettingsManagerResource.JediPaperlessInquire); return(response.Contains("ON") ? JobMediaMode.Paper : JobMediaMode.Paperless); } } catch (Exception ex) { LogWarn("Unable to get job media mode.", ex); return(JobMediaMode.Unknown); } }
public bool SetJobMediaMode(JobMediaMode mode) { if (mode == JobMediaMode.Unknown) { throw new ArgumentException($"Cannot set Job Media Mode to {mode}.", nameof(mode)); } try { using (PjlMessenger pjl = new PjlMessenger(_address, _port)) { pjl.Connect(); pjl.SendCommand(_commands[mode]); } return(true); } catch (Exception ex) { LogWarn("Unable to set job media mode.", ex); return(false); } }