Skip to content
Snippets Groups Projects
Program.cs 3.22 KiB
Newer Older
Patrik Paško's avatar
Patrik Paško committed
using SDK.Communication;
Michal Ondrejička's avatar
Michal Ondrejička committed
using SDK.Models;
using System;
Patrik Paško's avatar
Patrik Paško committed
using System.Linq;
Michal Ondrejička's avatar
Michal Ondrejička committed
using System.Threading.Tasks;
using tDevkit;

namespace Main
{
    class Program
    {
        static async Task Main(string[] args)
Daniel Andrášik's avatar
Daniel Andrášik committed
        {
Daniel Andrášik's avatar
Daniel Andrášik committed

Daniel Andrášik's avatar
Daniel Andrášik committed
        }

        public static async Task TestSensor()
Patrik Paško's avatar
Patrik Paško committed
            const string ClientName = "{insert}";
            const string ClientGuid = "{insert}";
            const string BranchGuid = "{insert}";
            const string ApiKey = "{insert}";
            const string Login = "{insert}";
            const string Password = "{insert}";

            try
            {
                // Define connection options with specific credentials and client identifiers
                ConnectionOptionsBuilder optionsBuilder = new ConnectionOptionsBuilder();
                ConnectionOptions connectionOptions = optionsBuilder
                    .Url("https://twin.rtls.solutions/api/")
                    .Client(ClientName)
                    .ClientGuid(ClientGuid)
                    .BranchGuid(BranchGuid)
                    .Timeout(1000)
                    .ApiKey(ApiKey)
                    .Version(ConnectionOptions.VERSION_3)
                    .Login(Login)
                    .Password(Password)
                    .Build();

                // Create tDevKit connector class instance and authorize by credentials in builder
                DevkitConnectorV3 devkitConnector = (DevkitConnectorV3)DevkitFactory.CreateDevkitConnector(connectionOptions);
                AuthenticationResponseContract auth = await devkitConnector.Authenticate(false);
                Console.WriteLine(auth);

                // Define sensors data list of SensorDataContract
                var dataList = new[]
                {
                    new SensorDataContract
                    {
                        Quantity = "Voltage",
                        Value = "120",
                        Unit = "V",
                        DataType = "Single"
                    },
                    new SensorDataContract
                    {
                        Quantity = "Frequency",
                        Value = "1",
                        Unit = "Hz",
                        DataType = "Single"
                    },
                    new SensorDataContract
                    {
                        Quantity = "OK parts",
                        Value = "600",
                        Unit = "pcs",
                        DataType = "Int32"
                    }
                };

                // Create sensor contract with specific data
                SensorContract sensor = new SensorContract
                {
                    Login = "buffer",
                    SensorData = dataList.ToArray(),
                };

                // Send sensor with specified data to Twinzo server
                PostResponseContract[] response = await devkitConnector.AddSensorData(new[] { sensor });
                Console.WriteLine(response);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            finally
            {
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }