Пример #1
0
 public PlatformSensor(WiseSafeToOperate instance) :
     base("Platform",
          SensorAttribute.Immediate |
          SensorAttribute.AlwaysEnabled |
          SensorAttribute.ForcesDecision, instance)
 {
     domePlatformIsDownPin = new WisePin(Const.notsign + "PlatDown",
                                         Hardware.Instance.domeboard, DigitalPortType.FirstPortCL, 3, DigitalPortDirection.DigitalIn);
 }
Пример #2
0
        public void init()
        {
            if (_initialized)
            {
                return;
            }

            domePlatformIsDownPin = new WisePin(Const.notsign + "PlatDown",
                                                Hardware.Hardware.Instance.domeboard, DigitalPortType.FirstPortCL, 3, DigitalPortDirection.DigitalIn);
            _initialized = true;
        }
Пример #3
0
        public void init()
        {
            if (_initialized)
            {
                return;
            }

            safetyPin    = new WisePin("SafetySwitch", hardware.teleboard, DigitalPortType.SecondPortCH, 0, DigitalPortDirection.DigitalIn);
            _simulated   = safetyPin.Simulated;
            _initialized = true;
        }
Пример #4
0
        public DoorLockSensor(WiseSafeToOperate instance) :
            base("DoorLock",
                 SensorAttribute.Immediate |
                 SensorAttribute.AlwaysEnabled |
                 SensorAttribute.CanBeBypassed |
                 SensorAttribute.ForcesDecision, instance)
        {
            DoorLockPin = new WisePin("DoorLock", hardware.domeboard, DigitalPortType.FirstPortCH, 3, DigitalPortDirection.DigitalIn);
            BypassPin   = new WisePin("DoorBypass", hardware.domeboard, DigitalPortType.FirstPortCH, 2, DigitalPortDirection.DigitalIn);

            _timer.Change(0, (int)TimeSpan.FromSeconds(1).TotalMilliseconds);
        }
Пример #5
0
        public void init(bool multiTurn = false)
        {
            if (_initialized)
            {
                return;
            }

            WiseName        = "FocusEnc";
            this._multiTurn = multiTurn;

            if (this._multiTurn)
            {
                _maxValue = turnsBits.MaxValue * positionBits.MaxValue;
                pinLatch  = new WisePin("FocusLatch", hardware.miscboard, DigitalPortType.FirstPortCH, 3, DigitalPortDirection.DigitalOut);
                base.init("FocusEnc",
                          (int)_maxValue,
                          new List <WiseEncSpec>()
                {
                    new WiseEncSpec()
                    {
                        brd = hardware.miscboard, port = DigitalPortType.FirstPortCL, mask = 0x01
                    },
                    new WiseEncSpec()
                    {
                        brd = hardware.miscboard, port = DigitalPortType.FirstPortA, mask = 0xff
                    },
                    new WiseEncSpec()
                    {
                        brd = hardware.miscboard, port = DigitalPortType.FirstPortB, mask = 0xff
                    },
                }
                          );
                connectables.Add(pinLatch);
                disposables.Add(pinLatch);
            }
            else
            {
                base.init("FocusEnc",
                          1 << 7,
                          new List <WiseEncSpec>()
                        {
                        new WiseEncSpec()
                        {
                            brd = hardware.miscboard, port = DigitalPortType.FirstPortB, mask = 0x7f
                        },
                    },
                          true
                          );
            }

            _initialized = true;
        }
Пример #6
0
        public void init()
        {
            if (_initialized)
            {
                return;
            }

            WiseName = "WiseFocuser";

            encoder = WiseFocuserEnc.Instance;
            encoder.init(true);
            ReadProfile();

            pinDown = new WisePin("FocusDown", hardware.miscboard, DigitalPortType.FirstPortCH, 0, DigitalPortDirection.DigitalOut, direction: Const.Direction.Decreasing, controlled: true);
            pinUp   = new WisePin("FocusUp", hardware.miscboard, DigitalPortType.FirstPortCH, 1, DigitalPortDirection.DigitalOut, direction: Const.Direction.Increasing, controlled: true);

            connectables.AddRange(new List <IConnectable> {
                pinUp, pinDown, encoder
            });
            disposables.AddRange(new List <IDisposable> {
                pinUp, pinDown, encoder
            });

            movementMonitoringTimer = new System.Threading.Timer(new TimerCallback(onTimer));
            movementMonitoringTimer.Change(movementMonitoringMillis, movementMonitoringMillis);

            motionParameters = new Dictionary <Direction, MotionParameter>
            {
                [Direction.Up] = new MotionParameter()
                {
                    stoppingDistance = 10
                },
                [Direction.Down] = new MotionParameter()
                {
                    stoppingDistance = 10
                }
            };
            _initialized = true;
        }
Пример #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SafetySwitch"/> class.
        /// Must be public for COM registration.
        /// </summary>
        public SafetyMonitor()
        {
            ReadProfile(); // Read device configuration from the ASCOM Profile store

            tl         = new TraceLogger("", "SafetySwitch");
            tl.Enabled = traceState;
            tl.LogMessage("SafetyMonitor", "Starting initialisation");

            connectedState = false; // Initialise connected to false

            tl.LogMessage("SafetyMonitor", "Completed initialisation");

            Hardware.Instance.init();

            try
            {
                safetyPin = new WisePin("SafetySwitch", Hardware.Instance.teleboard, DigitalPortType.SecondPortCH, 0, DigitalPortDirection.DigitalIn);
            }
            catch (WiseException e)
            {
                tl.LogMessage("SafetyMonitor", string.Format("SafetySwitch constructor caught: {0}.", e.Message));
            }
        }
Пример #8
0
        public void init()
        {
            if (_initialized)
            {
                return;
            }

            try
            {
                openPin  = new WisePin("ShutterOpen", hw.domeboard, DigitalPortType.FirstPortA, 0, DigitalPortDirection.DigitalOut, controlled: true);
                closePin = new WisePin("ShutterClose", hw.domeboard, DigitalPortType.FirstPortA, 1, DigitalPortDirection.DigitalOut, controlled: true);
            }
            catch (Exception ex)
            {
                debugger.WriteLine(Debugger.DebugLevel.DebugShutter, "WiseDomeShutter.init: Exception: {0}.", ex.Message);
            }

            try
            {
                openPin.SetOff();
                closePin.SetOff();
            }
            catch (Hardware.Hardware.MaintenanceModeException) { }

            ReadProfile();
            if (ShutterWebClientEnabled && _ipAddress != string.Empty)
            {
                webClient = new WebClient(_ipAddress, this);
            }
            shutterPins = new List <WisePin> {
                openPin, closePin
            };

            _state = ShutterState.shutterError;

            _initialized = true;
        }