static void WriteCapabilities(CameraCapabilities capabilities) { Console.WriteLine($@"{capabilities.Name}: {capabilities.BatteryLevel} % Configure: {capabilities.CanBeConfigured} Preview: {capabilities.CanCapturePreviews} Iso: {capabilities.SupportedIsoSpeeds.Concat(" ")} Apertures: {capabilities.SupportedApertures.Concat(" ")} ShutterSpeeds: {capabilities.SupportedShutterSpeeds.Concat(" ")}"); }
private void Initialize() { _information = new CameraInfo() { Description = _camera.Description, DriverInfo = _camera.DriverInfo, Name = _camera.Name, DriverVersion = _camera.DriverVersion, SensorName = _camera.SensorName, SensorType = _camera.SensorType.ToString() }; _capabilities = new CameraCapabilities() { MaxBinX = _camera.MaxBinX, MaxBinY = _camera.MaxBinY, CanAbortExposure = _camera.CanAbortExposure, CanAsymmetricBin = _camera.CanAsymmetricBin, CanFastReadOut = _camera.CanFastReadout, CanGetCoolerPower = _camera.CanGetCoolerPower, CanPulseGuide = _camera.CanPulseGuide, CanSetCcdTemperature = _camera.CanSetCCDTemperature, HasShutter = _camera.HasShutter, ElectronsPerAdu = _camera.ElectronsPerADU, MaxAdu = _camera.MaxADU, MaxExposure = _camera.ExposureMax, MinExposure = _camera.ExposureMin, PixelSizeX = _camera.PixelSizeX, PixelSizeY = _camera.PixelSizeY, ResolutionX = _camera.CameraXSize, ResolutionY = _camera.CameraYSize, Resolution = string.Format("{0} x {1}", _camera.CameraXSize, _camera.CameraYSize) }; try { _capabilities.CanStopExposure = _camera.CanStopExposure; } catch (ASCOM.PropertyNotImplementedException e) { _capabilities.CanStopExposure = false; } try { _capabilities.HasAdjustableGain = _camera.Gain >= 0 || true; } catch (ASCOM.PropertyNotImplementedException e) { _capabilities.HasAdjustableGain = false; } try { _capabilities.MaxGain = _camera.GainMax.ToString(); } catch (ASCOM.PropertyNotImplementedException e) { _capabilities.MaxGain = "Not supported"; } try { _capabilities.MinGain = _camera.GainMin.ToString(); } catch (ASCOM.PropertyNotImplementedException e) { _capabilities.MinGain = "Not supported"; } }
// Connect to server private void TCP_Connection() { // Connect to server var tcpClient = new TcpClient(_serverIp.Address.ToString(), PConnection.TCPPort); // Get the stream _packetStream = new PacketStream(tcpClient.GetStream()); // Receive and display capabilities _capabilities = _packetStream.Receive <CameraCapabilities>(); spr_ISO.Adapter = new ArrayAdapter(this, global::Android.Resource.Layout.SimpleListItem1, _capabilities.SupportedIsoSpeeds); spr_Aperture.Adapter = new ArrayAdapter(this, global::Android.Resource.Layout.SimpleListItem1, _capabilities.SupportedApertures); spr_Shutter.Adapter = new ArrayAdapter(this, global::Android.Resource.Layout.SimpleListItem1, _capabilities.SupportedShutterSpeeds); _connected = true; }
static void TransferThread() { // Receive capabilities Console.WriteLine("Receiving capabilities..."); try { CameraCapabilities capabilities = _packetStream.Receive <CameraCapabilities>(); // Write Capabilities Console.WriteLine(); WriteCapabilities(capabilities); Console.WriteLine(); } catch (Exception e) { Console.WriteLine("Invalid configuration, skipping it...\n"); Console.WriteLine(e.ToString()); } Console.WriteLine("Connected to server, you can now send request"); string input; // Send commands while ((input = Console.ReadLine()) != "exit") { string arg = ""; PDataType pDataType; object value; string[] split = input.Split(' '); // Check invalid command if (split.Length < 1) { Console.WriteLine("Invalid command"); continue; } arg = split[1]; switch (input.Split(' ')[0]) { case "picture": pDataType = PDataType.Picture; value = int.Parse(arg); break; case "iso": pDataType = PDataType.ISO; value = int.Parse(arg); break; case "aperture": pDataType = PDataType.Aperture; value = double.Parse(arg); break; case "shutter": pDataType = PDataType.ShutterSpeed; value = arg; break; default: Console.WriteLine("Invalid Command"); continue; } Console.WriteLine("Sending packet..."); _packetStream.Send(new PPacket(pDataType, value)); Console.WriteLine("Packet sent"); } }