Пример #1
0
        public PID(int pidId, string pidName, BrewIO brewIO, Outputs output, IPidRepository pidRepo)
        {
            _pidId   = pidId;
            _pidName = pidName;
            _brewIO  = brewIO;
            _output  = output;
            _heater  = new HeaterController(_brewIO, output);
            _heater.Start();

            PidConfig = pidRepo.GetPidConfig(pidId);
            if (PidConfig == null)
            {
                PidConfig = new PidConfig
                {
                    PidId = pidId,
                    PIDKp = DefaultPIDKp,
                    PIDKi = DefaultPIDKi,
                    PIDKd = DefaultPIDKd
                };
                pidRepo.AddPidConfig(PidConfig);
            }

            _pidRegulator = new PIDRegulator3(PidConfig.PIDKp, PidConfig.PIDKi, PidConfig.PIDKd);
            Status        = new PidStatusDto
            {
                PidId   = _pidId,
                PidName = _pidName
            };
        }
Пример #2
0
 public void UpdateExistingPidConfig(PidConfig pidConfig)
 {
     _db.PidConfigs.ReplaceOne(x => x.Id == pidConfig.Id, pidConfig);
 }
Пример #3
0
 public void AddPidConfig(PidConfig pidConfig)
 {
     _db.PidConfigs.InsertOne(pidConfig);
 }