示例#1
0
 private static HttpRequestMessage CreateRequest(this ICommand self, IDeviceConfig cfg)
 => self.CommonCreateRequest(
     self.CreateRequestUrl(),
     cfg,
     self.UsePost ? HttpMethod.Post : HttpMethod.Get,
     self.UsePost ? self.CreatePostContent() : null
     );
示例#2
0
        public override void SetConfig(IDeviceConfig config)
        {
            var mkConfig = config as MKInputConfig;

            if (mkConfig != null)
            {
                this.config = mkConfig;
            }
        }
示例#3
0
        public BaseDevice(IDeviceConfig deviceConfig, IDeviceClient client, IEventScheduler eventScheduler)
        {
            if (deviceConfig == null || client == null || eventScheduler == null)
            {
                throw new ArgumentNullException("one or more parameters are null. All parameters must be provided");
            }

            this._EventScheduler = eventScheduler;
            this._DeviceClient   = client;     // Connect to the IoT hub using the MQTT protocol

            this._deviceConfig = deviceConfig; // save for later
            this.deviceId      = deviceConfig.DeviceId;
            this.deviceType    = deviceConfig.DeviceType;
            // device status is set during initialization
        }
示例#4
0
        public List <DeviceConfigInfo> removeTimeoutConfig(List <DeviceConfigInfo> configs)
        {
            IDeviceConfig iDeviceConfig = SensorHub.DALFactory.DeviceConfig.Create();
            List <String> timeoutDevs   = iDeviceConfig.queryTimeoutDevice(configs);

            List <DeviceConfigInfo> restTimeConfig = new List <DeviceConfigInfo>();

            foreach (DeviceConfigInfo config in configs)
            {
                if (!timeoutDevs.Contains(config.DeviceCode))
                {
                    restTimeConfig.Add(config);
                }
            }
            return(restTimeConfig);
        }
示例#5
0
        public void clearDeviceConfigByDevCode(String devCode)
        {
            IDeviceConfig iDeviceConfig = SensorHub.DALFactory.DeviceConfig.Create();

            iDeviceConfig.clearDeviceConfig(devCode);
        }
示例#6
0
        public void incRetryCount(String devCode)
        {
            IDeviceConfig iDeviceConfig = SensorHub.DALFactory.DeviceConfig.Create();

            iDeviceConfig.incRetryCountByDevcode(devCode);
        }
示例#7
0
        public List <DeviceConfigInfo> getDeviceConfigBySensorCode(string sensorCode)
        {
            IDeviceConfig iDeviceConfig = SensorHub.DALFactory.DeviceConfig.Create();

            return(iDeviceConfig.getDeviceConfigBySensorCode(sensorCode));
        }
示例#8
0
        public DeviceConfigInfo GetLatestConfigByDeviceCodeAndSensorCode(string deviceCode, string sensorCode)
        {
            IDeviceConfig iDeviceConfig = SensorHub.DALFactory.DeviceConfig.Create();

            return(iDeviceConfig.getLatestConfigByDeviceCodeAndSensorCode(deviceCode, sensorCode));
        }
示例#9
0
        public void Update(DeviceConfigInfo conf)
        {
            IDeviceConfig iDeviceConfig = SensorHub.DALFactory.DeviceConfig.Create();

            iDeviceConfig.Update(conf);
        }
示例#10
0
 private static HttpRequestMessage CreateRequest <T>(this ICommandWithParameterSet <T> self, IDeviceConfig cfg)
     where T : IParameterSet
 => self.CommonCreateRequest(
     self.CreateRequestUrl(),
     cfg,
     self.UsePost ? HttpMethod.Post : HttpMethod.Get,
     self.UsePost ? self.CreatePostContent() : null
     );
示例#11
0
        private static HttpRequestMessage CommonCreateRequest(this ICommand self, Uri uri, IDeviceConfig cfg, HttpMethod method, HttpContent content)
        {
            var request = new HttpRequestMessage()
            {
                RequestUri = uri,
                Headers    =
                {
                    Authorization = new AuthenticationHeaderValue(
                        "Basic",
                        Convert.ToBase64String(
                            Encoding.ASCII.GetBytes(
                                $"{cfg.Key}:{cfg.Secret}"
                                )
                            )
                        )
                },
                Method  = method,
                Content = content
            };

            var contentBytes = content is null ? "" : $" ({content.Headers.ContentLength} bytes)";

            self.Logger?.LogInformation($"{request.Method.ToString().ToUpper()}: {request.RequestUri}{contentBytes}");

            return(request);
        }
示例#12
0
 public abstract void SetConfig(IDeviceConfig config);
 public IObservable <DeviceStatus> Connect(IDeviceConfig cfg)
 {
     throw new NotImplementedException();
 }