public void SetupDialog() { EventLogger.LogMessage("Opening Setup Dialog Form", System.Diagnostics.TraceLevel.Info); var f = new SetupDialogForm(this, driverID, "Steps"); f.ShowDialog(); f.Dispose(); }
public string Action(string actionName, string actionParameters) { // Make sure the action is supported. if(!flSupportedActions.Contains(actionName)) throw new System.ApplicationException("The requested action (" + actionName +") is not supported by this driver."); // Handle the requested action string returnValue = ""; switch (actionName) { case "RefreshConfigNow": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.RefreshConfigNow(); break; case "HomeDevice": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.Home(); break; case "CenterDevice": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.Center(); break; case "GetFocuserNumber": returnValue = myFoc.FocuserNumber; break; case "GetDeviceNickname": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.Nickname; break; case "SetDeviceNickname": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.Nickname = actionParameters; break; case "GetTempCoeffValue": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); try { char c = actionParameters[0]; returnValue = myFoc.GetTempCoeffValue(c).ToString(); } catch(IndexOutOfRangeException) { throw new ApplicationException("Action: GetTempCoeffValue expects a char parameter 'A' through 'E'"); } break; case "SetTempCoeffValue": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); { string[] parms = actionParameters.Split('|'); if (parms.Length != 2) throw new ApplicationException("The SetTempCoeffValue action requires exactly two parameters for (1)Mode and (2)New Value delimited by the | character." + parms.Length.ToString() + " parameters were received."); char mode = parms[0][0]; // the first (and only) character of the first parameter int value = 0; if (!int.TryParse(parms[1], out value)) throw new ApplicationException("The SetTempCoeffvalue action expects a valid integer for its second parameter. " + parms[1] + " was received"); myFoc.SetTempCoeffValue(mode, value); break; } case "GetTempCoeffName": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); try { char c = actionParameters[0]; returnValue = myFoc.GetTempCoeffName(c); } catch (IndexOutOfRangeException) { throw new ApplicationException("Action: GetTempCoeffName expects an index parameter 'A' through 'E'"); } break; case "SetTempCoeffName": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); { string[] parms = actionParameters.Split('|'); if (parms.Length != 2) throw new ApplicationException("The SetTempCoeffName action requires exactly two parameters for (1)Mode and (2)New Name delimited by the | character." + parms.Length.ToString() + " parameters were received."); char mode = parms[0][0]; // the first (and only) character of the first parameter myFoc.SetTempCoeffName(mode, parms[1]); break; } case "SetTempOffset": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.SetTempOffset(double.Parse(actionParameters)); break; case "GetTempOffset": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.GetTempOffset(); break; case "GetSelectedTempCompMode": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); try { returnValue = myFoc.TempCompMode; } catch { throw; } break; case "SetTempCompMode": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.TempCompMode = actionParameters; // The TempCompMode property checks internally for the correct parameters. break; case "GetLEDBrightness": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.LEDBrightness.ToString(); break; case "SetLEDBrightness": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); { // Make sure we have a valid value. double d; int i; if(!double.TryParse(actionParameters, out d)) throw new ApplicationException("SetLEDBrightness expects a valid number for its parameter. " + "Received " + actionParameters); i = (int)d; myFoc.LEDBrightness = i; } break; case "GetDeviceType": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.DeviceType.ToString(); break; case "SetDeviceType": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.DeviceType = actionParameters.Substring(0, 2); break; case "GetTempComp": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.TempCompEnabled.ToString(); break; case "SetTempComp": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); if (actionParameters == true.ToString()) myFoc.TempCompEnabled = true; else myFoc.TempCompEnabled = false; break; case "GetBacklashCompSteps": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.BacklashCompSteps.ToString(); break; case "SetBacklashCompSteps": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); { uint steps; try{ steps = uint.Parse(actionParameters); } catch { throw new ApplicationException("Error parsing steps parameter in SetBacklashCompSteps action. Value received = " + actionParameters); } myFoc.BacklashCompSteps = steps; } break; case "GetBacklashCompEnabled": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.BacklashCompEnabled.ToString(); break; case "SetBacklashCompEnabled": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); if (actionParameters == true.ToString()) myFoc.BacklashCompEnabled = true; else myFoc.BacklashCompEnabled = false; break; case "GetFirmwareVersion": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = HubFocuserRev2.FirmwareVersion.ToString(); break; case "GetCOMPortName": returnValue = HubFocuserRev2.COMPortName; break; case "ForceHubDisconnect": // Call the static method of HubFocuser class to disconnect the entire hub. HubFocuserRev2.ForceHubDisconnect(); break; case "GetConnectionType": returnValue = HubFocuserRev2.ConnectionMethod.ToString(); break; case "GetTempCompAtStart": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = myFoc.TempCompAtStart.ToString(); break; case "SetTempCompAtStart": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.TempCompAtStart = bool.Parse(actionParameters); break; case "SyncPosition": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.SetCurrentPosition(int.Parse(actionParameters)); break; case "ResetToDefaults": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); myFoc.FocuserResetDefaults(); break; case "GetWiFiConnectionState": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = HubFocuserRev2.WiFiModuleConnected.ToString(); break; case "GetWiFiAttachedState": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); returnValue = HubFocuserRev2.WiFiModuleAttached.ToString(); break; case "GetWiFiFirmware": returnValue = HubFocuserRev2.WiFiFirmwareVersion.ToString(); break; case "GetWiFiIPAddress": returnValue = HubFocuserRev2.WiFiIPAddress.ToString(); break; case "GetWiFiNetworkName": returnValue = HubFocuserRev2.WiFiNetworkSSID; break; case "SetWiFiNetworkName": HubFocuserRev2.WiFiNetworkSSID = actionParameters; break; case "GetWiFiSecurityType": returnValue = HubFocuserRev2.WiFiNetworkSecurityMode; break; case "SetWiFiSecurityType": HubFocuserRev2.WiFiNetworkSecurityMode = actionParameters; break; case "GetWiFiSecurityKey": returnValue = HubFocuserRev2.WiFiNetworkSecurityKey; break; case "SetWiFiSecurityKey": HubFocuserRev2.WiFiNetworkSecurityKey = actionParameters; break; case "GetWiFiWEPIndex": returnValue = HubFocuserRev2.WiFiNetworkWepKeyIndex.ToString(); break; case "SetWiFiWEPIndex": HubFocuserRev2.WiFiNetworkWepKeyIndex = int.Parse(actionParameters) - 1; //Convert from the 1-4 front end to the 0-3 back end break; case "WiFiPushChanges": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); HubFocuserRev2.WiFiPushChanges(); break; case "WiFiResetDefaults": if (!HubFocuserRev2.IsHubConnected) throw new ASCOM.NotConnectedException("Operation cannot be completed. Device is not connected."); HubFocuserRev2.WiFiResetDefaults(); break; case "SetupDialogNonStandard": EventLogger.LogMessage("Opening Setup Dialog Form", System.Diagnostics.TraceLevel.Info); var f = new SetupDialogForm(this, driverID, actionParameters); f.ShowDialog(); f.Dispose(); break; default: throw new ApplicationException("A supported action was requested but the driver cannot implement it. Requested Action = " + actionName + " Please contact technical support."); } return returnValue; }