Esempio n. 1
0
        private static void Setup(LadderNetworkViewModel lnvmodel)
        {
            foreach (BaseViewModel bvmodel in lnvmodel.GetElements())
            {
                bvmodel.ViewCtrl = smmanager;
                BaseModel bmodel = bvmodel.Model;
                if (bmodel == null)
                {
                    continue;
                }
                for (int i = 0; i < bmodel.ParaCount; i++)
                {
                    IValueModel          vmodel = bmodel.GetPara(i);
                    SimulateVariableUnit svunit = null;
                    if (vmodel.ValueString.Equals(String.Empty))
                    {
                        continue;
                    }
                    switch (vmodel.Type)
                    {
                    case LadderValueType.Bool:
                        svunit = smodel.GetVariableUnit(vmodel.ValueString, "BIT");
                        break;

                    case LadderValueType.Word:
                        svunit = smodel.GetVariableUnit(vmodel.ValueString, "WORD");
                        break;

                    case LadderValueType.DoubleWord:
                        svunit = smodel.GetVariableUnit(vmodel.ValueString, "DWORD");
                        break;

                    case LadderValueType.Float:
                        svunit = smodel.GetVariableUnit(vmodel.ValueString, "FLOAT");
                        break;

                    case LadderValueType.String:
                        svunit = new SimulateStringUnit(vmodel.ValueString);
                        break;
                    }
                    svunit.CanClose = false;
                    SimuMoniValueModel smvmodel = new SimuMoniValueModel(svunit, smodel);
                    bvmodel.SetValueModel(i, smvmodel);
                }
            }
        }
Esempio n. 2
0
        public void Handle(IMoniValueModel mvmodel, ElementValueModifyEventArgs e)
        {
            if (mvmodel is SimuMoniValueModel)
            {
                SimuMoniValueModel smvmodel = (SimuMoniValueModel)mvmodel;
                switch (e.Type)
                {
                case ElementValueModifyEventType.ForceON:
                case ElementValueModifyEventType.ForceOFF:
                    smvmodel.Lock(e.Value, e.VarType);
                    break;

                case ElementValueModifyEventType.WriteON:
                case ElementValueModifyEventType.WriteOFF:
                case ElementValueModifyEventType.Write:
                    smvmodel.Write(e.Value, e.VarType);
                    break;

                case ElementValueModifyEventType.ForceCancel:
                    smvmodel.Unlock();
                    break;

                case ElementValueModifyEventType.AllCancel:
                    smvmodel.UnlockAll();
                    break;
                }
            }
            if (mvmodel is ElementModel)
            {
                ElementModel          element = (ElementModel)mvmodel;
                ICommunicationCommand command = null;
                switch (e.Type)
                {
                case ElementValueModifyEventType.ForceON:
                    element.SetValue = "ON";
                    Lock(element);
                    break;

                case ElementValueModifyEventType.ForceOFF:
                    element.SetValue = "OFF";
                    Lock(element);
                    break;

                case ElementValueModifyEventType.ForceCancel:
                    element.SetValue = String.Empty;
                    command          = new ForceCancelCommand(false, element);
                    Add(command);
                    break;

                case ElementValueModifyEventType.AllCancel:
                    element.SetValue = String.Empty;
                    command          = new ForceCancelCommand(true, element);
                    Add(command);
                    break;

                case ElementValueModifyEventType.WriteOFF:
                    element.SetValue = "OFF";
                    Write(element);
                    break;

                case ElementValueModifyEventType.WriteON:
                    element.SetValue = "ON";
                    Write(element);
                    break;

                case ElementValueModifyEventType.Write:
                    element.SetValue = e.Value;
                    Write(element);
                    break;
                }
            }
        }