コード例 #1
0
        public void Add(ActiveBusesModel activeBus)
        {
            var exist = ActiveBuses.Any(x => x.ConnectionId == activeBus.ConnectionId);

            if (exist)
            {
                return;
            }

            ActiveBuses.Add(activeBus);
        }
コード例 #2
0
        public void BusUpdate(ActiveBusesModel bus)
        {
            int index = ActiveBuses.FindIndex(item => item.Name.Equals(bus.Name));

            if (index != -1)
            {
                ActiveBuses[index] = bus;
            }
            else
            {
                ActiveBuses.Add(bus);
            }
        }
コード例 #3
0
        public void UpdateActiveBuses(ActiveBusesModel bus)
        {
            int index = BusStatusList.FindIndex(item => item.Name.Equals(bus.Name));

            if (index != -1)
            {
                BusStatusList[index].ActiveBus = bus;
            }
            else
            {
                var activeBbus = new BusStatusModel();
                activeBbus.Name      = bus.Name;
                activeBbus.State     = bus.State;
                activeBbus.ActiveBus = bus;
                BusStatusList.Add(activeBbus);
            }
        }
コード例 #4
0
        public async Task Login(string name, List <string> groups)
        {
            name = name.ToLower();


            var confs = await GlobalData.GetBusConfigList();

            if (name == "control")
            {
                await SendResponseForControl(confs);
            }
            else
            {
                groups.Add(name);
                var currentBusConf = await GetBusByName(name);

                if (currentBusConf == null)
                {
                    Log.Warning("GetBusByName returned null on Login");
                }
                var newBus = new ActiveBusesModel
                {
                    Name         = name,
                    ConnectionId = Context.ConnectionId,
                    IsActive     = true,
                    Type         = BusType.RigBus
                };

                if (newBus.State == null)
                {
                    newBus.State = new RigState();
                }
                ActiveService.Add(newBus);

                if (currentBusConf !.BusType == BusType.VirtualRigBus)
                {
                    Log.Warning("sending state to virtual rig");
                    globalState.Name = name;
                    await Clients.Caller.SendAsync(SignalRCommands.State, globalState);
                }

                await SendActiveUpdate(newBus);
                await SendResponseToBuses(groups, currentBusConf, name);
            }
            return;
        }
コード例 #5
0
 private void HandleActiveBusUpdate(ActiveBusesModel active)
 {
     UpdateNewState(active.State);
     ActiveBusServie !.BusUpdate(active);
     StateHasChanged();
 }
コード例 #6
0
 private async Task SendActiveUpdate(ActiveBusesModel activeUpdate)
 {
     activeUpdate.IncSerial();
     await Clients.Group(SignalRGroups.Control).SendAsync(SignalRCommands.ActiveUpdate, activeUpdate);
 }