コード例 #1
0
ファイル: Program.cs プロジェクト: garolion/Industrial-IoT
        /// <summary>
        /// Clear registry
        /// </summary>
        private static async Task ClearSupervisorsAsync()
        {
            var logger   = ConsoleOutLogger.Create();
            var config   = new IoTHubConfig(null);
            var registry = new IoTHubServiceHttpClient(new HttpClient(logger),
                                                       config, logger);

            var query = "SELECT * FROM devices.modules WHERE " +
                        $"properties.reported.{TwinProperty.Type} = '{IdentityType.Supervisor}'";
            var supers = await registry.QueryAllDeviceTwinsAsync(query);

            foreach (var item in supers)
            {
                foreach (var tag in item.Tags.Keys.ToList())
                {
                    item.Tags[tag] = null;
                }
                foreach (var property in item.Properties.Desired.Keys.ToList())
                {
                    item.Properties.Desired[property] = null;
                }
                foreach (var property in item.Properties.Reported.Keys.ToList())
                {
                    if (!item.Properties.Desired.ContainsKey(property))
                    {
                        item.Properties.Desired.Add(property, null);
                    }
                }
                await registry.CreateAsync(item, true, CancellationToken.None);
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: garolion/Industrial-IoT
        /// <summary>
        /// Create supervisor module identity in device registry
        /// </summary>
        private static async Task MakeSupervisorAsync(string deviceId, string moduleId)
        {
            var logger   = ConsoleOutLogger.Create();
            var config   = new IoTHubConfig(null);
            var registry = new IoTHubServiceHttpClient(new HttpClient(logger),
                                                       config, logger);


            await registry.CreateAsync(new DeviceTwinModel {
                Id       = deviceId,
                ModuleId = moduleId
            }, true, CancellationToken.None);

            var module = await registry.GetRegistrationAsync(deviceId, moduleId, CancellationToken.None);

            Console.WriteLine(JsonConvert.SerializeObject(module));
            var twin = await registry.GetAsync(deviceId, moduleId, CancellationToken.None);

            Console.WriteLine(JsonConvert.SerializeObject(twin));
            var cs = ConnectionString.Parse(config.IoTHubConnString);

            Console.WriteLine("Connection string:");
            Console.WriteLine($"HostName={cs.HostName};DeviceId={deviceId};" +
                              $"ModuleId={moduleId};SharedAccessKey={module.Authentication.PrimaryKey}");
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: garolion/Industrial-IoT
        /// <summary>
        /// Clear registry
        /// </summary>
        private static async Task ClearRegistryAsync()
        {
            var logger   = ConsoleOutLogger.Create();
            var config   = new IoTHubConfig(null);
            var registry = new IoTHubServiceHttpClient(new HttpClient(logger),
                                                       config, logger);

            var result = await registry.QueryAllDeviceTwinsAsync(
                "SELECT * from devices where IS_DEFINED(tags.DeviceType)");

            foreach (var item in result)
            {
                await registry.DeleteAsync(item.Id, item.ModuleId, null, CancellationToken.None);
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: garolion/Industrial-IoT
        /// <summary>
        /// Test network scanning
        /// </summary>
        private static async Task TestNetworkScannerAsync()
        {
            var logger = ConsoleOutLogger.Create();

            using (var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10))) {
                var watch    = Stopwatch.StartNew();
                var scanning = new ScanServices(logger);
                var results  = await scanning.ScanAsync(NetworkClass.Wired, cts.Token);

                foreach (var result in results)
                {
                    Console.WriteLine($"Found {result.Address}...");
                }
                Console.WriteLine($"Scan took: {watch.Elapsed}");
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: garolion/Industrial-IoT
        /// <summary>
        /// Test port scanning
        /// </summary>
        private static async Task TestPortScannerAsync(string host, bool opc)
        {
            var logger    = ConsoleOutLogger.Create();
            var addresses = await Dns.GetHostAddressesAsync(host);

            using (var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10))) {
                var watch    = Stopwatch.StartNew();
                var scanning = new ScanServices(logger);
                var results  = await scanning.ScanAsync(
                    PortRange.All.SelectMany(r => r.GetEndpoints(addresses.First())),
                    opc?new ServerProbe(logger) : null, cts.Token);

                foreach (var result in results)
                {
                    Console.WriteLine($"Found {result} open.");
                }
                Console.WriteLine($"Scan took: {watch.Elapsed}");
            }
        }