Exemple #1
0
        public bool PublishConfiguredMessage(DeviceConfigMessage deviceConfigMessage, IEnumerable <Guid> deviceUIDs)
        {
            _loggingService.Info("Started publishing configured messages - AcknowledgementBypasser.PublishConfiguredMessage", "");
            bool result = false;
            var  deviceConfiguredMsgs = new List <DeviceConfig>();

            try
            {
                foreach (var parameter in deviceConfigMessage.Group.Parameters)
                {
                    foreach (var deviceUID in deviceUIDs)
                    {
                        var deviceConfiguredMsg = new VSS.VisionLink.Interfaces.Events.DeviceConfig.DeviceConfig
                        {
                            DeviceUID = deviceUID,
                            Group     = new VSS.VisionLink.Interfaces.Events.DeviceConfig.ParamGroup
                            {
                                GroupName  = deviceConfigMessage.Group.GroupName,
                                Parameters = new List <VSS.VisionLink.Interfaces.Events.DeviceConfig.Parameter>()
                            },
                            Timestamp = new VSS.VisionLink.Interfaces.Events.DeviceConfig.Context.TimestampDetail
                            {
                                EventUtc = deviceConfigMessage.Timestamp.EventUtc
                            }
                        };
                        var param = new VSS.VisionLink.Interfaces.Events.DeviceConfig.Parameter();
                        param.Attributes = new List <VSS.VisionLink.Interfaces.Events.DeviceConfig.Attributes>();
                        foreach (var attribute in parameter.Attributes)
                        {
                            var attr = new VSS.VisionLink.Interfaces.Events.DeviceConfig.Attributes
                            {
                                AttributeName  = attribute.AttributeName,
                                AttributeValue = attribute.AttributeValue
                            };
                            param.Attributes.Add(attr);
                        }
                        param.ParameterName = parameter.ParameterName;
                        deviceConfiguredMsg.Group.Parameters.Add(param);
                        deviceConfiguredMsgs.Add(deviceConfiguredMsg);
                    }
                }
                result = _kafkaPublisher.PublishDeviceConfiguredMessage(deviceConfiguredMsgs);
            }
            catch (Exception ex)
            {
                _loggingService.Error("An error has occured : " + JsonConvert.SerializeObject(ex), "", ex);
            }
            return(result);
        }
Exemple #2
0
        private DeviceConfigMessage BuildDeviceConfigMessage(DeviceConfigRequestBase request, string currentDateTimeUTC)
        {
            var deviceConfigMessage = new DeviceConfigMessage
            {
                Group = new ParamGroup
                {
                    GroupName  = request.ParameterGroupName,
                    Parameters = new List <Parameter>()
                },
                Timestamp = new TimestampDetail
                {
                    EventUtc = DateTime.Parse(currentDateTimeUTC)
                }
            };

            foreach (var item in request.ConfigValues)
            {
                if (this._paramterAttributeDetails.ContainsKey(item.Key))
                {
                    var parameterAttribute = item.Key.Split('.');
                    var parameter          = deviceConfigMessage.Group.Parameters.FirstOrDefault(x => x.ParameterName == parameterAttribute[0]);
                    if (parameter == null)
                    {
                        parameter = new Parameter
                        {
                            ParameterName = parameterAttribute[0]
                        };
                    }
                    if (parameter.Attributes == null)
                    {
                        parameter.Attributes = new List <AttributeDetails>();
                    }

                    parameter.Attributes.Add(
                        new AttributeDetails
                    {
                        AttributeName  = parameterAttribute[1],
                        AttributeValue = item.Value
                    });

                    if (!deviceConfigMessage.Group.Parameters.Any(x => x.ParameterName == parameterAttribute[0]))
                    {
                        deviceConfigMessage.Group.Parameters.Add(parameter);
                    }
                }
            }
            return(deviceConfigMessage);
        }
Exemple #3
0
 private async Task <Tuple <bool, List <DeviceConfigMsg> > > ProcessMessage(DeviceConfigurationSettingsConfig settingsConfig, DeviceConfigRequestBase request, DeviceConfigMessage deviceConfigMessage, List <DeviceConfigMsg> deviceConfigMsgs)
 {
     if (settingsConfig != null && !settingsConfig.SendToDevice)
     {
         //Dont insert into DeviceConfigMessage table. Just process the msg and publish to new Kafka topics
         this._loggingService.Info("Started Invoking ProcessBypassMessage", "DeviceConfigRepositoryServiceBase.ProcessMessage");
         return(Tuple.Create <bool, List <DeviceConfigMsg> >(_ackBypasser.ProcessBypassMessage(request, deviceConfigMessage.Group), null));
     }
     else
     {
         this._loggingService.Info("Started Invoking ProcessMessage", "DeviceConfigRepositoryServiceBase.ProcessMessage");
         return(_messageConstructor.ProcessMessage(await GetRequestAndHandleForNullCases(request), deviceConfigMessage));
     }
 }