Пример #1
0
    // Start is called before the first frame update
    void Start()
    {
        var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

        this.client = new DigitalTwinsClient(new Uri(adtInstanceUrl), credential);
        InvokeRepeating("CheckTwin", 5.0f, 5.0f);

        twin = new TwinModel()
        {
            workOrder = "Unknown",

            isRunning = false,

            isGripperOpen = true,

            position = new Position()
            {
                x = 0.5f,
                y = 0.5f,
                z = 0.5f
            }
        };


        SendTwinUpdate(twin);
    }
Пример #2
0
    void SendTwinUpdate(string twinId, TwinModel newTwin)
    {
        GameObject twinObject = GameObject.Find(twinId);

        TwinObject twinScript = twinObject.GetComponent <TwinObject>();

        twinScript.UpdateTwin(newTwin);
    }
Пример #3
0
    // Update is called once per frame
    void CheckTwin()
    {
        TwinModel newTwin = this.client.GetDigitalTwin <TwinModel>(twinName);

        if (!twin.Equals(newTwin))
        {
            SendTwinUpdate(newTwin);
            twin = newTwin;
        }
    }
Пример #4
0
    public override void UpdateTwin(TwinModel model)
    {
        Light light = (Light)model;

        updateTooltipText(light.ToString());
        if (light.isRunning != isRunning)
        {
            isRunning = light.isRunning;
            changeChildColors();
        }
    }
Пример #5
0
    public override void UpdateTwin(TwinModel model)
    {
        Escalator escalator = (Escalator)model;

        updateTooltipText(escalator.ToString());
        if (escalator.isRunning != isRunning)
        {
            isRunning = escalator.isRunning;
            changeChildColors();
        }
    }
Пример #6
0
    public override void UpdateTwin(TwinModel model)
    {
        FireAlarm alarm = (FireAlarm)model;

        updateTooltipText(alarm.ToString());
        if (alarm.status != status)
        {
            status = alarm.status;
            changeChildColors();
        }
    }
Пример #7
0
    public override void UpdateTwin(TwinModel model)
    {
        CovidAlarm alarm = (CovidAlarm)model;

        updateTooltipText(alarm.ToString());
        if (alarm.status != status)
        {
            status = alarm.status;
            text   = alarm.printedText;
            changeChildColors();
        }
    }
Пример #8
0
    // Update is called once per frame
    IEnumerator CheckTwin()
    {
        while (true)
        {
            foreach (KeyValuePair <string, string[]> models in twinModels)
            {
                foreach (string twinId in models.Value)
                {
                    TwinModel model = null;
                    switch (models.Key)
                    {
                    case "Hall":
                        model = client.GetDigitalTwin <Hall>(twinId);
                        break;

                    case "Light":
                        model = client.GetDigitalTwin <Light>(twinId);
                        break;

                    case "CovidAlarm":
                        model = client.GetDigitalTwin <CovidAlarm>(twinId);
                        break;

                    case "Clim":
                        model = client.GetDigitalTwin <Clim>(twinId);
                        break;

                    case "FireAlarm":
                        model = client.GetDigitalTwin <FireAlarm>(twinId);
                        break;

                    case "Escalator":
                        model = client.GetDigitalTwin <Escalator>(twinId);
                        break;

                    default:
                        break;
                    }
                    SendTwinUpdate(twinId, model);
                }
            }

            yield return(new WaitForSeconds(5));
        }
    }
Пример #9
0
    void SendTwinUpdate(TwinModel newTwin)
    {
        if (!newTwin.isGripperOpen)
        {
            controller.CloseGripper();
        }
        else
        {
            controller.OpenGripper();
        }
        if (newTwin.isRunning)
        {
            controller.PublishPosition(newTwin.position.x, newTwin.position.y, newTwin.position.z);
        }
        else
        {
            controller.PublishPosition(offPosition.x, offPosition.y, offPosition.z);
        }

        workOrderText.text = newTwin.workOrder;
    }
Пример #10
0
 public abstract void UpdateTwin(TwinModel model);
Пример #11
0
    public override void UpdateTwin(TwinModel model)
    {
        Clim clim = (Clim)model;

        updateTooltipText(clim.ToString());
    }
Пример #12
0
    public override void UpdateTwin(TwinModel model)
    {
        Hall hall = (Hall)model;

        updateTooltipText(hall.ToString());
    }