예제 #1
0
 private void TheGrp_DataChanged(object sender, DataChangeEventArgs e)
 {
     foreach (var s in e.sts)
     {
         if (s.Error != 0)
         {
             HandleClients[s.HandleClient].errorCode = s.Error;
         }
         else
         {
             HandleClients[s.HandleClient].errorCode = 0;
             if (s.Quality == (int)Quality.GOOD)
             {
                 HandleClients[s.HandleClient].Value     = s.DataValue;
                 HandleClients[s.HandleClient].TimeStamp = DateTime.FromFileTime(s.TimeStamp);
             }
             else
             {
                 if (HandleClients[s.HandleClient].Value == null)
                 {
                     HandleClients[s.HandleClient].Value = InitValue(HandleClients[s.HandleClient]);
                 }
             }
             HandleClients[s.HandleClient].Quality = s.Quality;
         }
     }
     OnReadCompleted(new EventArgs());
 }
예제 #2
0
 // 调用事件函数
 public void OnDataChange(object sender, DataChangeEventArgs args)
 {
     if (DataChange != null)
     {
         DataChange(this, args);
     }
 }
 private void bgGrp1_DataChanged(object sender, DataChangeEventArgs e)
 {
     try
     {
         foreach (OPCItemState rslt in e.sts)
         {
             if (rslt.Quality == 0)
             {
                 continue;
             }
             if (rslt.HandleClient == 0)
             {
                 CMData cm = new CMData();
                 cm.machineCode = this.MachineCode;
                 cm.position    = int.Parse(rslt.DataValue.ToString());
                 this.OnPositionChanged(cm, new EventArgs());
             }
             else if (rslt.HandleClient == 1)
             {
                 pallet.Dispatcher.BeginInvoke(new InvokeDelegate(SetPalletPresentStatus), bool.Parse(rslt.DataValue.ToString()));
             }
         }
     }
     catch (NullReferenceException ex)
     {
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
예제 #4
0
        private void Group_DataChange(object p_Sender, DataChangeEventArgs p_EvArgs)
        {
            m_ItemAccessMutex.WaitOne();

            for (int i = 0; i < p_EvArgs.Status.Length; ++i)
            {
                try
                {
                    Dictionary <string, string> l_ItemProps = new Dictionary <string, string>();
                    IOPCItem l_Item = m_ServerModel.GetItemFromClientHandle(p_EvArgs.Status[i].HandleClient);

                    l_ItemProps.Add(ServerModel.ITEM_PROP_VALUE_KEY, OPCUtility.ValueToString(l_Item.Type, p_EvArgs.Status[i].DataValue));
                    l_ItemProps.Add(ServerModel.ITEM_PROP_QUALITY_KEY, OPCUtility.QualityToString(p_EvArgs.Status[i].Quality));
                    l_ItemProps.Add(ServerModel.ITEM_PROP_TIMESTAMP_KEY, OPCUtility.TimeStampToString(p_EvArgs.Status[i].Timestamp));

                    m_ServerModel.UpdateItem(p_EvArgs.Status[i].HandleClient, l_ItemProps);

                    if (this.VeriteqOPCServer)
                    {
                        WriteToDatabase(l_Item);
                    }
                }
                catch (Exception l_Ex)
                {
                    ErrorLog l_ErrorLog = ErrorLog.GetInstance();
                    l_ErrorLog.WriteToErrorLog(l_Ex.Message, l_Ex.StackTrace, "Error during OPC group update");
                }
            }

            m_ItemAccessMutex.ReleaseMutex();
        }
 private void OnDataChangeEvent(object sender, DataChangeEventArgs e)
 {
     if (dataChangeEventHandlers != null)
     {
         dataChangeEventHandlers(sender, e);
     }
 }
        /// <summary>
        /// Purpose: Method to Handle the EditControl actions events.
        /// </summary>
        /// <param name="sender" type="Rainbow.Content.Web.ModulesWTS.BusinessLayer.Games"></param>
        /// <param name="eventArgs" type="DataChangeEventArgs"></param>
        protected void EditControl_DataActionEnd(object sender, DataChangeEventArgs eventArgs)
        {
            OnUpdate(null);

            // Redirect back to the portal home page
            this.RedirectBackToReferringPage();
        }
예제 #7
0
 void user_OnDataChanging(object sender, DataChangeEventArgs e)//This method check if the update valid
 {
     try
     {
         PhoneUser user = (PhoneUser)sender;
         if (user == null)
         {
             return;
         }
         if (e.DataName == PhoneUserDataNames.UserName)
         {
             if (!CanAddUserUser(e.NewValue + "", user.UserNumber))
             {
                 e.CancelEdit = true;
             }
         }
         if (e.DataName == PhoneUserDataNames.UserNumber)
         {
             if (!CanAddUserUser(user.UserName, e.NewValue + ""))
             {
                 e.CancelEdit = true;
             }
         }
     }
     catch { }
 }
예제 #8
0
        // event handler: called if any item in group has changed values
        protected void theGrp_DataChange(object sender, DataChangeEventArgs e)
        {
            Trace.WriteLine("theGrp_DataChange  id=" + e.transactionID.ToString() + " me=0x" + e.masterError.ToString("X"));

            foreach (OPCItemState s in e.sts)
            {
                if (s.HandleClient != itmHandleClient)                  // only one client handle
                {
                    continue;
                }

                Trace.WriteLine("  item error=0x" + s.Error.ToString("X"));

                if (HRESULTS.Succeeded(s.Error))
                {
                    Trace.WriteLine("  val=" + s.DataValue.ToString());

                    txtItemValue.Text  = s.DataValue.ToString();                                // update screen
                    txtItemQual.Text   = OpcGroup.QualityToString(s.Quality);
                    txtItemTimeSt.Text = DateTime.FromFileTime(s.TimeStamp).ToString();
                }
                else
                {
                    txtItemValue.Text  = "ERROR 0x" + s.Error.ToString("X");
                    txtItemQual.Text   = "error";
                    txtItemTimeSt.Text = "error";
                }
            }
        }
 private void bgGrp1_DataChanged(object sender, DataChangeEventArgs e)
 {
     foreach (OPCItemState rslt in e.sts)
     {
         try
         {
             if (rslt.Quality == 0)
             {
                 continue;
             }
             if (rslt.HandleClient == 0)
             {
                 bool resValue = bool.Parse(rslt.DataValue.ToString());
                 pallet.Dispatcher.BeginInvoke(new InvokeDelegate(SetPalletPresentNEStatus), resValue);
             }
             else if (rslt.HandleClient == 1)
             {
                 bool resValue = bool.Parse(rslt.DataValue.ToString());
                 pallet.Dispatcher.BeginInvoke(new InvokeDelegate(SetPalletPresentSWStatus), resValue);
             }
         }
         catch (NullReferenceException ex)
         {
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
        private void Group_DataChange(object sender, DataChangeEventArgs eventArgs)
        {
            _itemAccessMutex.WaitOne();

            for (int i = 0; i < eventArgs.Status.Length; ++i)
            {
                try
                {
                    var itemProps = new Dictionary <string, string>();
                    var item      = _serverModel.GetItemFromClientHandle(eventArgs.Status[i].HandleClient);

                    itemProps.Add(ServerModel.ItemPropValueKey, OpcUtility.ValueToString(item.Type, eventArgs.Status[i].DataValue));
                    itemProps.Add(ServerModel.ItemPropQualityKey, OpcUtility.QualityToString(eventArgs.Status[i].Quality));
                    itemProps.Add(ServerModel.ItemPropTimestampKey, OpcUtility.TimeStampToString(eventArgs.Status[i].Timestamp));

                    _serverModel.UpdateItem(eventArgs.Status[i].HandleClient, itemProps);
                }
                catch (Exception ex)
                {
                    ErrorLog errorLog = ErrorLog.GetInstance();
                    errorLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error during OPC group update");
                }
            }

            _itemAccessMutex.ReleaseMutex();
        }
예제 #11
0
 void item_OnDataChanged(object sender, DataChangeEventArgs e)
 {
     try
     {
         ItemToListViewItem((RemarkNote)sender);
     }
     catch { }
 }
예제 #12
0
        //-----------------------------------------------------------------
        // this function handles data change callbacks due to the periodic refresh request
        // by the group.
        // The data is assiociated with the items by the client handle, that is specif(ied
        // in the add item function call.

        private void DataChangedHandler(object sender, DataChangeEventArgs e)
        {
            try
            {
                int i, hnd;

                //   OPC_QUALITY_STATUS qs;
                //   DateTime dt;
                for (i = 0; i < e.sts.Length; ++i)
                {
                    if (HRESULTS.Succeeded(e.sts[i].Error))
                    {
                        hnd = e.sts[i].HandleClient;
                        OPCItemDef tagItemDef = items1[hnd];
                        // int _tagValue = Convert.ToInt32(e.sts[i].DataValue);

                        if (tagItemDef != null)
                        {
                            if (tagItemDef.ItemID.Contains(TagLPG_WB_RFIDPunched) && Convert.ToInt32(e.sts[i].DataValue) == 1) //  Start
                            {
                                String RFIDCardNumber = _OPCB0.ReadStringItem(TagLPG_WB_CardData);
                                if (!string.IsNullOrEmpty(RFIDCardNumber))
                                {
                                    string WBWeight = _OPCB0.ReadStringItem(TagLPG_WB_Val);
                                    if (!string.IsNullOrEmpty(WBWeight))
                                    {
                                        string cmdexePath = @"C:\Users\Administrator\Documents\visual studio 2013\Projects\TLAS\TLAS.WBconsole\bin\DebugTLAS.WBconsole.exe";

                                        //notice the quotes around the below string...
                                        string           cmdArguments = String.Format("{0},{1}", RFIDCardNumber, WBWeight);
                                        ProcessStartInfo psi          = new ProcessStartInfo(cmdexePath, cmdArguments);
                                        Process          p            = new Process();
                                        p.StartInfo = psi;
                                        p.Start();
                                    }
                                }
                            }

                            if (tagItemDef.ItemID.Contains(TagLPG_Bay01_RFID_Puched) && Convert.ToInt32(e.sts[i].DataValue) == 1) //  Start
                            {
                            }

                            if (tagItemDef.ItemID.Contains(TagLPG_Bay01_LPGBatchComplete) && Convert.ToInt32(e.sts[i].DataValue) == 1) //  Start
                            {
                            }
                        }
                    }
                }
            }
            catch (Exception exe)
            {
                //  DBLogging.InsertLogs("Exception: Line1", false, exe.Message + " " + exe.InnerException, _connStr);
            }
        }
예제 #13
0
 void TagGroup_ReadComplete(object sender, DataChangeEventArgs e)
 {
     foreach (ItemValue value in e.Values)
     {
         var Tag = ActiveTags.FirstOrDefault(p => p.ClientId == value.ClientId);
         if (Tag != null)
         {
             Tag.ItemValue = value;
         }
     }
 }
예제 #14
0
        /// <summary>
        /// It is used to subscribe data change notification from OPC server
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="e">inlcude all updated OPC data point</param>
        private void OPCGrp_DataChange(object sender, DataChangeEventArgs e)
        {
            string Function_Name = "opcGrp_DataChange";

            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Entered");
            try
            {
                lock (m_opcDataDicObj)
                {
                    foreach (OPCItemState s in e.sts)
                    {
                        if (m_opcDataDic.ContainsKey(s.HandleClient))
                        {
                            if (HRESULTS.Succeeded(s.Error))
                            {
                                if (s.Quality == OPC_GOODQUALITY)
                                {
                                    LogHelper.Debug(CLASS_NAME, Function_Name, "DataValue = " + s.DataValue.ToString());
                                    m_opcDataDic[s.HandleClient].DataValue = s.DataValue;
                                }
                                else
                                {
                                    // m_needToReCreateGrp2Srv = true;

                                    if (s.Quality == OPC_NOTCONNECTEDQUALITY)                                                   // means the datapoint Quality is "NOT_CONNECT"
                                    {
                                        m_needToReCreateGrp2Srv = true;                                                         // next time plotting, will re-create group to OpcSrv1.

                                        if (m_opcDataDic[s.HandleClient].DataValue.ToString().CompareTo(OPC_NOTCONNECTED) != 0) //if last value was not "NOTCONNECTED"
                                        {
                                            LogHelper.Info(CLASS_NAME, Function_Name, "DataPoint:" + m_opcDataDic[s.HandleClient].ID +
                                                           " is not connected! ");
                                            m_opcDataDic[s.HandleClient].DataValue = OPC_NOTCONNECTED;
                                        }
                                    }
                                    else
                                    {
                                        LogHelper.Info(CLASS_NAME, Function_Name, "For DataPoint: " + m_opcDataDic[s.HandleClient].ID + ", OPCItemState quality not good, Quality = " + s.Quality);
                                        m_opcDataDic[s.HandleClient].DataValue = OPC_BLANK_DATAVALUE;
                                    }
                                }
                                LogHelper.Debug(CLASS_NAME, Function_Name, "The new value for datapoint[" + m_opcDataDic[s.HandleClient].ID + "] is " + m_opcDataDic[s.HandleClient].DataValue.ToString());
                            }
                        }
                    }
                }
            }
            catch (Exception localException)
            {
                LogHelper.Error(CLASS_NAME, Function_Name, localException);
            }

            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Exited");
        }
예제 #15
0
        /// <summary>
        /// Adds the specified data at the end of the List.
        /// </summary>
        /// <param name="data">The data to add at the end of the List.</param>
        public void Add(object data)
        {
            Tizen.Log.Fatal("NUI.List", "Add item ...");
            listData.Add(data);

            // Send Add event.
            DataChangeEventArgs e = new DataChangeEventArgs();

            e.ChangeType = DataChangeEventType.Add;
            e.data       = data;
            OnDataChangeEvent(this, e);
        }
예제 #16
0
        /// <summary>
        /// Inserts the specified data at the specified index in the list.
        /// </summary>
        /// <param name="index">The index at which the data must be inserted.</param>
        /// <param name="data">The data to insert into the list.</param>
        public void Insert(int index, object data)
        {
            Tizen.Log.Fatal("NUI.List", "Insert item at " + index);
            listData.Insert(index, data);
            DataChangeEventArgs e = new DataChangeEventArgs();

            // Send insert event
            e.ChangeType = DataChangeEventType.Insert;
            e.data       = data;
            e.param[0]   = index;
            OnDataChangeEvent(this, e);
        }
예제 #17
0
 public void TheGrp_DataChanged(object obj, DataChangeEventArgs e)
 {
     SetText(TxtDataChange, (Convert.ToDouble(TxtDataChange.Text) + 1).ToString());
     foreach (OPCItemState s in e.sts)
     {
         if (s.Error != 0)
         {
             if (s.HandleClient == 1234)
             {
                 MessageBox.Show("Item 1" + " FAILED. Error Code = " + s.Error.ToString());
             }
             else if (s.HandleClient == 5678)
             {
                 MessageBox.Show("Item 2" + " FAILED. Error Code = " + s.Error.ToString());
             }
         }
         else
         {
             if (s.HandleClient == 1234)
             {
                 if (s.Quality == 192)
                 {
                     if (s.DataValue != null)
                     {
                         SetText(_txtChangeVal_0, s.DataValue.ToString());
                         _txtChangeVal_0.BackColor = Color.White;
                     }
                 }
                 else
                 {
                     SetText(_txtChangeVal_0, GetQualityText(s.Quality));
                     _txtChangeVal_0.BackColor = Color.Red;
                 }
             }
             else if (s.HandleClient == 5678)
             {
                 if (s.Quality == 192)
                 {
                     if (s.DataValue != null)
                     {
                         SetText(_txtChangeVal_1, s.DataValue.ToString());
                         _txtChangeVal_1.BackColor = Color.White;
                     }
                 }
                 else
                 {
                     SetText(_txtChangeVal_1, GetQualityText(s.Quality));
                     _txtChangeVal_1.BackColor = Color.Red;
                 }
             }
         }
     }
 }
예제 #18
0
        /// <summary>
        /// Adds the specified data at the end of the List.
        /// </summary>
        /// <param name="data">The dataList to add at the end of the List.</param>
        public void AddAll(List <object> data)
        {
            Tizen.Log.Fatal("NUI.List", "Add items ...");
            listData.AddRange(data);

            // Send AddAll event.
            DataChangeEventArgs e = new DataChangeEventArgs();

            e.ChangeType = DataChangeEventType.AddAll;
            e.data       = data;
            OnDataChangeEvent(this, e);
        }
예제 #19
0
 void record_OnDataChanged(object sender, DataChangeEventArgs e)
 {
     try
     {
         CCallRecord record = (CCallRecord)sender;
         if (record == null)
         {
             return;
         }
         RiseEvent(OnRecordEdited, sender, e);
     }
     catch { }
 }
예제 #20
0
        /// <summary>
        /// Remove all elements from the list.
        /// </summary>
        public void Clear()
        {
            Tizen.Log.Fatal("NUI.List", "Clear ListView");
            DataChangeEventArgs e = new DataChangeEventArgs();

            // Clear event
            e.ChangeType = DataChangeEventType.Clear;
            OnDataChangeEvent(this, e);
            listData.Clear();

            // Load event
            e.ChangeType = DataChangeEventType.Load;
            OnDataChangeEvent(this, e);
        }
예제 #21
0
        // event handler: called if any item in group has changed values
        protected void theGrp_DataChange(object sender, DataChangeEventArgs e)
        {
            //Trace.WriteLine("theGrp_DataChange  id=" + e.transactionID + " me=0x" + e.masterError.ToString("X"));

            foreach (OPCItemState s in e.sts.Where(s => s.HandleClient == _itmHandleClient))
            {
                Trace.WriteLine("  item error=0x" + s.Error.ToString("X"));

                if (HRESULTS.Succeeded(s.Error))
                {
                    Trace.WriteLine("  val=" + s.DataValue);
                }
            }
        }
예제 #22
0
 private void group_DataChange(object sender, DataChangeEventArgs e)
 {
     _subject.OnNext(e.Items.Select(_ => {
         var item = _items.FirstOrDefault(__ => _.ClientHandle == __.ClientHandle)?.Item;
         if (item != null)
         {
             var value       = item.Result;
             value.ErrorCode = _.ErrorCode;
             value.Quality   = _.Quality;
             value.Timestamp = _.Timestamp;
             value.Value     = _.DataValue;
         }
         return(item);
     }).ToList());
 }
예제 #23
0
        // ------------------------------ events -----------------------------

        public void theGrp_DataChange(object sender, DataChangeEventArgs e)
        {
            Console.WriteLine("DataChange event: gh={0} id={1} me={2} mq={3}", e.groupHandleClient, e.transactionID, e.masterError, e.masterQuality);
            foreach (OPCItemState s in e.sts)
            {
                if (HRESULTS.Succeeded(s.Error))
                {
                    Console.WriteLine(" ih={0} v={1} q={2} t={3}", s.HandleClient, s.DataValue, s.Quality, s.TimeStamp);
                }
                else
                {
                    Console.WriteLine(" ih={0}    ERROR=0x{1:x} !", s.HandleClient, s.Error);
                }
            }
        }
예제 #24
0
 private static void OpcGroup_DataChanged(object sender, DataChangeEventArgs e)
 {
     Console.WriteLine("DataChanged Group:{0} TrID:{1} E:{2} Q:{3}", e.GroupHandleClient, e.TransactionID, e.MasterError, e.MasterQuality);
     foreach (OpcItemState s in e.ItemStates)
     {
         if (HRESULTS.Succeeded(s.Error))
         {
             Console.WriteLine(" {0}: {1} (Q:{2} T:{3})", s.HandleClient, s.DataValue, s.Quality, DateTime.FromFileTime(s.TimeStamp));
         }
         else
         {
             Console.WriteLine(" {0}: ERROR = 0x{1:x} !", s.HandleClient, s.Error);
         }
     }
 }
예제 #25
0
        void grp_DataChange(object sender, DataChangeEventArgs e)
        {
            var data = e.Values;
            var now  = DateTime.Now;

            if (_socketThreadList != null && _socketThreadList.Count > 0)
            {
                IPAddress addr = null;
                var       grp  = sender as ClientGroup;
                if (grp != null)
                {
                    addr = grp.RemoteAddress;
                }
                ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback(this.SendData), new TempCachedData(addr, data));
            }
        }
예제 #26
0
        private void bgGrp1_DataChanged(object sender, DataChangeEventArgs e)
        {
            try
            {
                foreach (OPCItemState rslt in e.sts)
                {
                    if (rslt.Quality == 0)
                    {
                        continue;
                    }
                    if (rslt.HandleClient == 0)
                    {
                        int resValue = int.Parse(rslt.DataValue.ToString());

                        if (resValue != 0)
                        {
                            CMData cm = new CMData();
                            cm.machineCode = this.MachineCode;
                            cm.position    = resValue;
                            this.OnPositionChanged(cm, new EventArgs());
                        }
                    }
                    else if (rslt.HandleClient == 1)
                    {
                        bool resValue = bool.Parse(rslt.DataValue.ToString());
                        pallet.Dispatcher.BeginInvoke(new InvokeDelegate(SetPalletPresentStatus), resValue);
                    }
                    else if (rslt.HandleClient == 3)
                    {
                        bool             resValue            = bool.Parse(rslt.DataValue.ToString());
                        NotificationData objNotificationData = new NotificationData();
                        objNotificationData.category    = NotificationData.errorCategory.ERROR;
                        objNotificationData.ErrorCode   = "TT";
                        objNotificationData.MachineCode = this.MachineCode;
                        objNotificationData.IsCleared   = !resValue;
                        this.OnLcmL2RotFalseAlarmTriggered(objNotificationData, new EventArgs());
                    }
                }
            }
            catch (NullReferenceException ex)
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #27
0
 private void user_OnDataChanged(object sender, DataChangeEventArgs e)
 {
     try
     {
         PhoneUser user = (PhoneUser)sender;
         if (user == null)
         {
             return;
         }
         RiseEvent(OnUserEdited, sender, e);
         string section  = user.Id + "";
         string newValue = e.NewValue is DateTime ? ((DateTime)e.NewValue).ToBinary() + "" : e.NewValue + "";
         XmlFile.SetValue(section, e.DataName, newValue);
         XmlFile.SaveDocument();
     }
     catch { }
 }
예제 #28
0
 void user_OnDataChanged(object sender, DataChangeEventArgs e)
 {
     try
     {
         PhoneUser    user = (PhoneUser)sender;
         ListViewItem Item = comparableListView1.Items[user.Id + ""];
         if (Item == null)
         {
             return;
         }
         //comparableListView1.Columns has key as dataName
         int    subItemIndex = comparableListView1.Columns[e.DataName].Index;
         string newValue     = e.NewValue is DateTime ? ((DateTime)e.NewValue).ToString(Settings.Default.DateTimeFormat) + "" : e.NewValue + "";
         Item.SubItems[subItemIndex].Text = newValue;
     }
     catch { }
 }
예제 #29
0
        void grp_DataChange(object sender, DataChangeEventArgs e)
        {
            writelock = true;
            var arr = e.Values;

            if (arr != null && currentTag != null)
            {
                foreach (HistoryData data in arr)
                {
                    if (data.ID == currentTag.ID)
                    {
                        source1.AppendAsync(Dispatcher, data);
                        timestamp = DateTime.Now;
                    }
                }
            }
            writelock = false;
        }
예제 #30
0
        /// <summary>
        /// Removes the specified data from the List.
        /// </summary>
        /// <param name="fromIndex">The from index of data to remove from the list.</param>
        /// <param name="removeNum">The remove number of data to remove from the list.</param>
        public void Remove(int fromIndex, int removeNum)
        {
            Tizen.Log.Fatal("NUI.List", "Remove item from " + fromIndex + ", number " + removeNum);
            if (fromIndex + removeNum > listData.Count)
            {
                return;
            }

            listData.RemoveRange(fromIndex, removeNum);

            // Send remove event.
            DataChangeEventArgs e = new DataChangeEventArgs();

            e.ChangeType = DataChangeEventType.Remove;
            e.param[0]   = fromIndex;
            e.param[1]   = removeNum;
            OnDataChangeEvent(this, e);
            //e.ChangeType = DataChangeEventType.Load;
            //OnDataChangeEvent(this, e);
        }