예제 #1
0
        public virtual void WriteVar(string value)
        {
            SvMgrObjects.VarValue varValue = new SvMgrObjects.VarValue();
            varValue.vt  = SvMgrEnums.VarType.svmgr_vtTXT;
            varValue.Txt = value;

            if (varValue.Txt != m_value)
            {
                SvMgrAPI.VarWrite(m_name, varValue, 0);
            }
        }
예제 #2
0
 public void Advise()
 {
     if (SvMgrAPI.VarAdvise(m_name, m_adviseN))
     {
         SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Variable " + m_name + " (n° " + m_adviseN + ") abonnée.");
     }
     else
     {
         SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Variable" + m_name + " (" + m_adviseN + ") non abonnée.");
     }
 }
예제 #3
0
        public virtual void WriteVar(double value)
        {
            SvMgrObjects.VarValue varValue = new SvMgrObjects.VarValue();
            varValue.vt  = SvMgrEnums.VarType.svmgr_vtANA;
            varValue.Ana = value;

            if (varValue.Ana != m_value)
            {
                SvMgrAPI.VarWrite(m_name, varValue, 0);
            }
        }
예제 #4
0
        public virtual void WriteVar(bool value)
        {
            SvMgrObjects.VarValue varValue = new SvMgrObjects.VarValue();
            varValue.vt  = SvMgrEnums.VarType.svmgr_vtLOG;
            varValue.Log = value;

            if (varValue.Log != m_value)
            {
                SvMgrAPI.VarWrite(m_name, varValue, 0);
            }
        }
예제 #5
0
 public void Unadvise()
 {
     SvMgrAPI.VarUnadvise(m_name, m_adviseN);
 }
예제 #6
0
        private void SvMgrAPI_OnDataChange2(SvMgrObjects.VariableResult[] ArrayVarResult)
        {
            for (int i = 0; i < ArrayVarResult.Length; i++)
            {
                switch (ArrayVarResult[i].varValue.vt)
                {
                case SvMgrEnums.VarType.svmgr_vtLOG:
                    foreach (TypeBool typeBool in Variable.vVariableBool)
                    {
                        if ((typeBool.GetAdviseNumber() == ArrayVarResult[i].clientHandle))
                        {
                            SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, typeBool.GetVarName() + " = " + ArrayVarResult[i].varValue.Log);
                            typeBool.SetVar(ArrayVarResult[i].varValue.Log);
                        }
                    }
                    break;

                case SvMgrEnums.VarType.svmgr_vtANA:
                    foreach (TypeAna typeAna in Variable.vVariableAna)
                    {
                        if ((typeAna.GetAdviseNumber() == ArrayVarResult[i].clientHandle))
                        {
                            SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, typeAna.GetVarName() + " = " + ArrayVarResult[i].varValue.Ana);
                            typeAna.SetVar(ArrayVarResult[i].varValue.Ana);
                        }
                    }
                    break;

                case SvMgrEnums.VarType.svmgr_vtTXT:
                    foreach (TypeString typeString in Variable.vVariableString)
                    {
                        if ((typeString.GetAdviseNumber() == ArrayVarResult[i].clientHandle))
                        {
                            SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, typeString.GetVarName() + " = " + ArrayVarResult[i].varValue.Txt);
                            typeString.SetVar(ArrayVarResult[i].varValue.Txt);
                        }
                    }
                    break;
                }

                /*--------------------------------------------------- Action sur changement de valeur ----------------------------------------------------*/
                int indice;
                /*------------------------- Navette Collecte --------------------------------------*/
                //Class

                // MissionStatus
                indice = Variable.vVariableBool.IndexOf(NavetteCollecte.MissionStatus.SendCom);
                if (Variable.vVariableBool[indice].GetVarValue())
                {
                    indice = Variable.vVariableAna.IndexOf(NavetteCollecte.MissionStatus.MissionNumber);
                    resquestMissionStatusCollect.MissionNumber = Convert.ToInt32(Variable.vVariableAna[indice].GetVarValue());

                    indice = Variable.vVariableBool.IndexOf(NavetteCollecte.MissionStatus.MissionStatus);
                    if (Variable.vVariableBool[indice].GetVarValue())
                    {
                        resquestMissionStatusCollect.MissionStatus = PostTapingCollectShuttleMissionStatusType.Nok;
                    }
                    else
                    {
                        resquestMissionStatusCollect.MissionStatus = PostTapingCollectShuttleMissionStatusType.Ok;
                    }

                    try
                    {
                        collectClient.MissionStatus(resquestMissionStatusCollect);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Collecte -- MissionStatus : OK");
                    }catch (Exception e)
                    {
                        indice = Variable.vVariableBool.IndexOf(NavetteCollecte.ErreurCom);
                        Variable.vVariableBool[indice].WriteVar(true);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Warning, "Collecte -- Mission Status : " + e.Message);
                    }
                    indice = Variable.vVariableBool.IndexOf(NavetteCollecte.MissionStatus.SendCom);
                    Variable.vVariableBool[indice].WriteVar(false);
                }

                // ReportRunningMode
                indice = Variable.vVariableBool.IndexOf(NavetteCollecte.ReportRunningMode.SendCom);
                if (Variable.vVariableBool[indice].GetVarValue())
                {
                    indice = Variable.vVariableAna.IndexOf(NavetteCollecte.ReportRunningMode.DefaultCode);
                    resquestReportRunningModeCollect.DefaultCode = Convert.ToInt32(Variable.vVariableAna[indice].GetVarValue());

                    indice = Variable.vVariableString.IndexOf(NavetteCollecte.ReportRunningMode.DefaultLabel);
                    resquestReportRunningModeCollect.DefaultLabel = Variable.vVariableString[indice].GetVarValue();

                    indice = Variable.vVariableAna.IndexOf(NavetteCollecte.ReportRunningMode.EquipmentCode);
                    resquestReportRunningModeCollect.EquipmentCode = Convert.ToInt32(Variable.vVariableAna[indice].GetVarValue());

                    indice = Variable.vVariableAna.IndexOf(NavetteCollecte.ReportRunningMode.RunningMode);
                    if (Variable.vVariableAna[indice].GetVarValue() == 0)
                    {
                        resquestReportRunningModeCollect.RunningMode = PostTapingCollectShuttleRunningModeType.Default;
                    }
                    else if (Variable.vVariableAna[indice].GetVarValue() == 1)
                    {
                        resquestReportRunningModeCollect.RunningMode = PostTapingCollectShuttleRunningModeType.Manual;
                    }
                    else if (Variable.vVariableAna[indice].GetVarValue() == 2)
                    {
                        resquestReportRunningModeCollect.RunningMode = PostTapingCollectShuttleRunningModeType.MissionInProgress;
                    }
                    else if (Variable.vVariableAna[indice].GetVarValue() == 3)
                    {
                        resquestReportRunningModeCollect.RunningMode = PostTapingCollectShuttleRunningModeType.Rest;
                    }

                    resquestReportRunningModeCollect.RunningModeDateTime = DateTime.Now;

                    try
                    {
                        collectClient.ReportRunningMode(resquestReportRunningModeCollect);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Collecte -- Report Running Mode : OK");
                    }catch (Exception e)
                    {
                        indice = Variable.vVariableBool.IndexOf(NavetteCollecte.ErreurCom);
                        Variable.vVariableBool[indice].WriteVar(true);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Warning, "Collecte -- Report Running Mode : " + e.Message);
                    }
                    indice = Variable.vVariableBool.IndexOf(NavetteCollecte.ReportRunningMode.SendCom);
                    Variable.vVariableBool[indice].WriteVar(false);
                }

                // TapingOutputConveyorNumber
                indice = Variable.vVariableBool.IndexOf(NavetteCollecte.TapingOutputConveyorNumber.SendCom);
                if (Variable.vVariableBool[indice].GetVarValue())
                {
                    indice = Variable.vVariableAna.IndexOf(NavetteCollecte.TapingOutputConveyorNumber.TapingOutputConveyorNumber);
                    requestConveyorNumberCollect.TapingOutputConveyorNumber = Convert.ToInt32(Variable.vVariableAna[indice].GetVarValue());

                    try
                    {
                        collectClient.TapingOutputConveyorNumber(requestConveyorNumberCollect);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Collecte -- Taping Output Conveyor Number : OK");
                    }
                    catch (Exception e)
                    {
                        indice = Variable.vVariableBool.IndexOf(NavetteCollecte.ErreurCom);
                        Variable.vVariableBool[indice].WriteVar(true);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Warning, "Collecte -- Taping Output Conveyor Number : " + e.Message);
                    }
                    indice = Variable.vVariableBool.IndexOf(NavetteCollecte.TapingOutputConveyorNumber.SendCom);
                    Variable.vVariableBool[indice].WriteVar(false);
                }

                /*------------------------- Navette Evacuation --------------------------------------*/

                // MissionStatus
                indice = Variable.vVariableBool.IndexOf(NavetteEvacuation.MissionStatus.SendCom);
                if (Variable.vVariableBool[indice].GetVarValue())
                {
                    indice = Variable.vVariableAna.IndexOf(NavetteEvacuation.MissionStatus.MissionNumber);
                    resquestMissionStatusEvacuation.MissionNumber = Convert.ToInt32(Variable.vVariableAna[indice].GetVarValue());

                    indice = Variable.vVariableBool.IndexOf(NavetteEvacuation.MissionStatus.MissionStatus);
                    if (Variable.vVariableBool[indice].GetVarValue())
                    {
                        resquestMissionStatusEvacuation.MissionStatus = PostTapingEvacuationShuttleMissionStatusType.Nok;
                    }
                    else
                    {
                        resquestMissionStatusEvacuation.MissionStatus = PostTapingEvacuationShuttleMissionStatusType.Ok;
                    }

                    try
                    {
                        evacuationClient.MissionStatus(resquestMissionStatusEvacuation);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Evacuation -- Mission Status : OK");
                    }
                    catch (Exception e)
                    {
                        indice = Variable.vVariableBool.IndexOf(NavetteEvacuation.ErreurCom);
                        Variable.vVariableBool[indice].WriteVar(true);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Warning, "Evacuation -- Mission Status : " + e.Message);
                    }
                    indice = Variable.vVariableBool.IndexOf(NavetteEvacuation.MissionStatus.SendCom);
                    Variable.vVariableBool[indice].WriteVar(false);
                }

                // ReportRunningMode
                indice = Variable.vVariableBool.IndexOf(NavetteEvacuation.ReportRunningMode.SendCom);
                if (Variable.vVariableBool[indice].GetVarValue())
                {
                    indice = Variable.vVariableAna.IndexOf(NavetteEvacuation.ReportRunningMode.DefaultCode);
                    resquestReportRunningModeEvacuation.DefaultCode = Convert.ToInt32(Variable.vVariableAna[indice].GetVarValue());

                    indice = Variable.vVariableString.IndexOf(NavetteEvacuation.ReportRunningMode.DefaultLabel);
                    resquestReportRunningModeEvacuation.DefaultLabel = Variable.vVariableString[indice].GetVarValue();

                    indice = Variable.vVariableAna.IndexOf(NavetteEvacuation.ReportRunningMode.EquipmentCode);
                    resquestReportRunningModeEvacuation.EquipmentCode = Convert.ToInt32(Variable.vVariableAna[indice].GetVarValue());

                    indice = Variable.vVariableAna.IndexOf(NavetteEvacuation.ReportRunningMode.RunningMode);
                    if (Variable.vVariableAna[indice].GetVarValue() == 0)
                    {
                        resquestReportRunningModeEvacuation.RunningMode = PostTapingEvacuationShuttleRunningModeType.Default;
                    }
                    else if (Variable.vVariableAna[indice].GetVarValue() == 1)
                    {
                        resquestReportRunningModeEvacuation.RunningMode = PostTapingEvacuationShuttleRunningModeType.Manual;
                    }
                    else if (Variable.vVariableAna[indice].GetVarValue() == 2)
                    {
                        resquestReportRunningModeEvacuation.RunningMode = PostTapingEvacuationShuttleRunningModeType.MissionInProgress;
                    }
                    else if (Variable.vVariableAna[indice].GetVarValue() == 3)
                    {
                        resquestReportRunningModeEvacuation.RunningMode = PostTapingEvacuationShuttleRunningModeType.Rest;
                    }

                    resquestReportRunningModeEvacuation.RunningModeDateTime = DateTime.Now;

                    try
                    {
                        evacuationClient.ReportRunningMode(resquestReportRunningModeEvacuation);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Evacuation -- Report Running Mode : OK");
                    }
                    catch (Exception e)
                    {
                        indice = Variable.vVariableBool.IndexOf(NavetteEvacuation.ErreurCom);
                        Variable.vVariableBool[indice].WriteVar(true);
                        SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Warning, "Evacuation -- Report Running Mode : " + e.Message);
                    }
                    indice = Variable.vVariableBool.IndexOf(NavetteEvacuation.ReportRunningMode.SendCom);
                    Variable.vVariableBool[indice].WriteVar(false);
                }

                /*--------------------------------------------------- Fin action sur changement de valeur ----------------------------------------------------*/
            }
        }
예제 #7
0
        private void SvMgrAPI_StartProject()
        {
            SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "DLL démarrée");
            SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Version : 16/04/2020 08H30");

            /*----------------------------- Déclaration des variables ----------------------------------------*/

            /*------------------------ Navette Collecte -----------------------------------------------------*/

            CollecteEchange1(CollectEchange1);
            CollecteEchange2(CollectEchange2);
            CollecteEchange3(CollectEchange3);
            CollecteEchange4(CollectEchange4);
            VarCollecteCommun(CollectVarCommun);

            /*------------------------ Navette Evacuation -----------------------------------------------------*/

            EvacuationEchange1(EvacEchange1);
            EvacuationEchange2(EvacEchange2);
            EvacuationEchange3(EvacEchange3);
            VarEvacuationCommun(EvacVarCommun);

            SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Il y a : " + (Variable.vVariableBool.Count() + Variable.vVariableAna.Count() + Variable.vVariableString.Count()) + " variables dont " + Variable.vVariableBool.Count() + " booleans, " + Variable.vVariableAna.Count() + " valeurs ana, " + Variable.vVariableString.Count() + " chaines de caractere.");
            /*----------------------------- Ouverture fichier URL Serveur ---------------------------------*/
            try
            {
                urlServeurCollect = File.ReadAllText(@"C:/ARC Informatique/PcVue 12/Bin/WAT/urlServeurCollect.txt");
                NavetteCollecte.urlServeur.WriteVar(urlServeurCollect);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "URL Serveur Collect : " + urlServeurCollect);

                urlServeurEvacuation = File.ReadAllText(@"C:/ARC Informatique/PcVue 12/Bin/WAT/urlServeurEvacuation.txt");
                NavetteEvacuation.urlServeur.WriteVar(urlServeurEvacuation);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "URL Serveur Evacuation : " + urlServeurEvacuation);

                urlClientCollect = File.ReadAllText(@"C:/ARC Informatique/PcVue 12/Bin/WAT/urlClientCollect.txt");
                NavetteCollecte.urlClient.WriteVar(urlClientCollect);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "URL Client Collect : " + urlClientCollect);

                urlClientEvacuation = File.ReadAllText(@"C:/ARC Informatique/PcVue 12/Bin/WAT/urlClientEvacuation.txt");
                NavetteEvacuation.urlClient.WriteVar(urlClientEvacuation);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "URL Client Evacuation : " + urlClientEvacuation);
            }
            catch (Exception e)
            {
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Fatal, "Gestion fichier -- " + e.Message);
            }

            /*----------------------------- Web Service Création Serveur ----------------------------------------*/
            //Collecte
            try
            {
                Uri baseAddressCollect = new Uri(urlServeurCollect);
                hostCollect = new ServiceHost(typeof(CollectService), baseAddressCollect);

                Service_Collect.Start(hostCollect);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Service Web Serveur -- Collect démarré");

                //Evacuation
                Uri baseAddressEvacuation = new Uri(urlServeurEvacuation);
                hostEvacuation = new ServiceHost(typeof(EvacuationService), baseAddressEvacuation);

                Service_Evacuation.Start(hostEvacuation);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Service Web Serveur -- Evacuation démarré");
            }
            catch (Exception e)
            {
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Fatal, "Service Web Serveur -- " + e.Message);
            }

            /*----------------------------------- Web Service Création Client ----------------------------------------*/
            // Class constructeur

            System.ServiceModel.Channels.Binding binding = new System.ServiceModel.BasicHttpBinding();
            // Collecte
            try
            {
                //EndpointAddress address = new EndpointAddress("http://wstest.groupeliebot.fr/Mx/Lima1/Mx.Broker.Lima.Endpoint/Interface/InterfacesPostTapingCollectShuttleToMx0101.svc");
                EndpointAddress address = new EndpointAddress(urlClientCollect);
                collectClient = new InterfacesPostTapingCollectShuttleToMx01Client(binding, address);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Service Web Client -- Collecte créé");

                //EndpointAddress address = new EndpointAddress("http://wstest.groupeliebot.fr/Mx/Lima1/Mx.Broker.Lima.Endpoint/Interface/InterfacesPostTapingEvacuationShuttleToMx0101.svc");
                address          = new EndpointAddress(urlClientEvacuation);
                evacuationClient = new InterfacesPostTapingEvacuationShuttleToMx01Client(binding, address);
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Info, "Service Web Client -- Evacuation créé");
            }

            catch (Exception e)
            {
                SvMgrAPI.LogMessage(SvMgrEnums.LogMessageLevel.Fatal, "Service Web Client -- " + e.Message);
            }


            /*---------------------------------- Fin Web Service Création Client ---------------------------------------*/
        }