Пример #1
0
        static void Main(string[] args)
        {
            //Opretter alle klassserne
            UC1 useCase1Controller              = new UC1();
            UI  userInterface                   = new UI();
            TransferDataToBM    transferData    = new TransferDataToBM();
            BatteryLevel        batteryLevel    = new BatteryLevel();
            ZeroPointAdjustment zeroPointAdjust = new ZeroPointAdjustment();
            BloodPressure       blodPreassure   = new BloodPressure();
            ITransducer         transducer      = new Transducer();

            zeroPointAdjust.Transducer = transducer;

            //Tildeler de rigtige properties til UC1
            useCase1Controller.UserInterface       = userInterface;
            useCase1Controller.TransferData        = transferData;
            useCase1Controller.BatteryLevel        = batteryLevel;
            useCase1Controller.ZeroPointAdjustment = zeroPointAdjust;
            useCase1Controller.BloodPreassure      = blodPreassure;

            //Det ene thread skal kalde denne metode
            useCase1Controller.MakeZeroPointAdjustment();

            //Det andet thread skal kalde denne metode
            useCase1Controller.CheckBatteryStatus();



            /*
             * Her skal så oprettes to threads. Det ene thread skal læse batterylevel
             * og det andet skal foretage en måling
             * Jeg løser det ved at lave
             */
        }
Пример #2
0
        public void MakeZeroPointAdjustment()
        {
            //Tjekker om switchen ændres til nulpynktsjustering
            while (UserInterface.IsPressedSwitch() != true)
            {
            }

            //Opdaterer skærmen
            TransferData.TransferZeroPointMode(true);

            //Venter på, at der bliver trykket start
            //OBS! skal vi her også have mulighed for at ændre switch status?
            WaitForStartPressed();

            TransferData.TransferZeroPointStarted();

            //Undtagelse 2: advarer om lavt batteriniveau
            //- tænker det kører i en tråd for sig? Så skal vi bare sørge for at låse metoder i TransferDataToBM så der ikke bliver synkroniseringsproblemer

            double zeroPointValue = ZeroPointAdjustment.GetZeroPoint();

            BloodPreassure.Atm = zeroPointValue;

            TransferData.TransferZeroPointDone();
        }