Пример #1
0
 private static void TerminateTag_UpdateValueEvent(Datapool.ITagInfo e)
 {
     if (e.AsBoolean == true)
     {
         OnShutdown(e, EventArgs.Empty);
     }
 }
Пример #2
0
 public static void Initialize()
 {
     TerminateTag                   = Datapool.DatapoolSvr.CreateTagInfo("SYSTEM", "System terminate", Datapool.dpTypes.BOOL);
     TagInfo                        = Datapool.DatapoolSvr.CreateTagInfo(Properties.Settings.Default.ReadGroup, Properties.Settings.Default.ReadTag, GetDataType());
     TagInfo.UpdateValueEvent      += TagInfo_UpdateValueEvent;
     TerminateTag.UpdateValueEvent += TerminateTag_UpdateValueEvent;
 }
Пример #3
0
 private void TerminateTag_UpdateValueEvent(Datapool.ITagInfo e)
 {
     if (e.AsBoolean == true)
     {
         Cleanup();
         Messenger.Default.Send <string>("shutdown");
     }
 }
Пример #4
0
 private static void SwitchTag_UpdateValueEvent(Datapool.ITagInfo e)
 {
     try
     {
         var blendControl = OmniView.GetRaMOSConfiguration();
         blendControl.RecipeName = e.AsString;
         OmniView.SetRaMOSConfiguration(blendControl);
         App.AppVM.ErrorCode = string.Empty;
     }
     catch (Exception)
     {
         App.AppVM.ErrorCode = "Recipe in switch tag not valid. No change to current recipe.";
     }
 }
Пример #5
0
 private static void UpdateSwitchTag()
 {
     if (App.AppVM.RecipeSwitchGroup == string.Empty || App.AppVM.RecipeSwitchTag == string.Empty)
     {
         return;
     }
     if (SwitchTag != null)
     {
         SwitchTag.UpdateValueEvent -= SwitchTag_UpdateValueEvent;
         SwitchTag.Dispose();
     }
     SwitchTag = Datapool.DatapoolSvr.CreateTagInfo(App.AppVM.RecipeSwitchGroup, App.AppVM.RecipeSwitchTag, Datapool.dpTypes.STRING);
     SwitchTag.UpdateValueEvent += SwitchTag_UpdateValueEvent;
 }
Пример #6
0
        /*  Receive pile number from datapool as arg
         *  Read SQL on Stockpile System (IP received as arg)
         *  Select Product Info that matches that pile number
         *  Write tag and important product info to datapool
         *  Exit
         *
         *  Example: SqlReaderAddon -p 2574 -i 192.168.1.12 -g Product -t Name
         */
        static void Main(string[] args)
        {
            string pileNumber = string.Empty;
            string ipAddress  = string.Empty;
            string pileName   = string.Empty;
            string dpGroup    = string.Empty;
            string dpTag      = string.Empty;
            var    p          = new OptionSet()
            {
                { "p|pile=", "the {Pile} number to look up.",
                  v => pileNumber = v.ToString() },
                { "i|ip=", "Ip Address of SQL Server",
                  v => ipAddress = v.ToString() },
                { "g|group=", "the datapool {Group} to store into.",
                  v => dpGroup = v.ToString() },
                { "t|tag=", "the datapool {Tag} to store into.",
                  v => dpTag = v.ToString() }
            };

            p.Parse(args);
            if (ipAddress == string.Empty | pileNumber == string.Empty)
            {
                return;
            }
            using (SqlConnection conn = new SqlConnection())
            {
                string insString = @"SELECT Top 1 * FROM [Nautilus].[dbo].[ProductTable] WHERE name LIKE '%" + pileNumber + @"%'";
                conn.ConnectionString = "Server=" + ipAddress + ";Database=nautilus;Trusted_Connection=True;";
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(insString, conn))
                {
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        pileName = (string)reader["name"];
                    }
                }
            }

            DatapoolSvr.IpAddress = @"127.0.0.1";
            DatapoolSvr.MonitorPeriodMilliSeconds = 1000;
            Console.WriteLine(DatapoolSvr.IsConnected);
            // DatapoolSvr.MonitorTags(tagList);
            Datapool.ITagInfo tagInfo = DatapoolSvr.CreateTagInfo("car", "temp", dpTypes.FLOAT);
            tagInfo.UpdateValueEvent += TagInfo_UpdateValueEvent;
            Console.WriteLine(DatapoolSvr.IsConnected);

            /*
             * // This is our Unicode string:
             * string unicodeWrite = @"Write [<" + dpGroup + @"><" + dpTag + @"><" + pileName + @">]";  // datapool write...Tag must already exist
             * // datapool read example:   string readCode = @"Read [<car><temp>]";
             *
             * // Convert a string to utf-8 bytes.
             * byte[] utfWrite = Encoding.UTF8.GetBytes(unicodeWrite);
             * byte[] uCode = new byte[utfWrite.Length * 2 + 1];
             * // Convert utf-8 bytes to a string.
             * // string s_unicode2 = Encoding.UTF8.GetString(utf8Bytes);
             *
             * // convert utf-8 to null seperated utf-8 terminiated by 0x04
             * for (int i = 0; i < utfWrite.Length; i++)
             * {
             *  uCode[2 * i] = utfWrite[i];
             * }
             * uCode[2 * utfWrite.Length] = 0x04;
             *
             * Socket soc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
             * IPAddress ipAdd = IPAddress.Parse(@"127.0.0.1");
             * IPEndPoint remoteEP = new IPEndPoint(ipAdd, 8111);
             * soc.Connect(remoteEP);
             * // Byte[] buffer = new Byte[500];  A buffer that could be used during a read
             *
             * //soc.Send(uCode);
             * soc.Send(uCode);    // send the read or write string.  If read, receive the reply.
             * // int x = soc.Receive(buffer);
             * // Byte[] output = new Byte[x / 2 + 1];
             * // for (int i = 0; i < x; i+=2)
             * // {
             * //    output[i / 2] = buffer[i];
             * // }
             * // string s_out = Encoding.UTF8.GetString(output);
             * Console.WriteLine(pileName);
             */
            /*
             * QueryMonitoredTags
             * MonitorTags [<dpGroup><dpTag><dptype>]
             */
        }
Пример #7
0
 private static void TagInfo_UpdateValueEvent(Datapool.ITagInfo e)
 {
     Datapool.DatapoolSvr.Create(Properties.Settings.Default.WriteGroup, Properties.Settings.Default.WriteTag, Datapool.dpTypes.STRING);
     Datapool.DatapoolSvr.Write(Properties.Settings.Default.WriteGroup, Properties.Settings.Default.WriteTag, dataService.ReadSQL(e.AsString));
 }
Пример #8
0
 public static void TagInfoUpdate()
 {
     TagInfo.Dispose();
     TagInfo = Datapool.DatapoolSvr.CreateTagInfo(Properties.Settings.Default.ReadGroup, Properties.Settings.Default.ReadTag, GetDataType());
     TagInfo.UpdateValueEvent += TagInfo_UpdateValueEvent;
 }