Beispiel #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            initSendBox();
            //StringBuilder r = new StringBuilder();
            //for (int i = ' '; i < 128; i++)
            //    r.Append((char)i);
            //FileData.Text = r.ToString();
            ips           = getIPAddress();
            GetIPID       = Encoding.Default.GetBytes("print(\"ID:\"..node.chipid())");
            OutPoint      = new IPEndPoint(IPAddress.Any, 0);
            BroadcastFlag = true;
            new Task(() => {
                while (!this.IsDisposed)
                {
                    try
                    {
                        byte[] buff      = Search.Receive(ref OutPoint);
                        lasttarget       = OutPoint.Address;
                        OutPoint.Address = IPAddress.Any;
                        OutPoint.Port    = 0;
                        string value     = Encoding.Default.GetString(buff);
                        if (value.IndexOf("[") == 0)
                        {
                            value = value.Substring(1);
                            value = value.Substring(0, value.Length - 1);
                        }
                        if (value.IndexOf("ID:") == 0)
                        {
                            IPAddress ip = OutPoint.Address;
                            int id       = int.Parse(value.Substring(3));
                            bool isfind  = false;
                            foreach (CarData car in DevSelect.Items)
                            {
                                if (car.ID == id)
                                {
                                    if (car.ip.Address != lasttarget.Address)
                                    {
                                        car.ip = lasttarget;
                                    }
                                    isfind = true;
                                    break;
                                }
                            }
                            if (!isfind)
                            {
                                CarData cd = new CarData(lasttarget, id);

                                Invoke(new MethodInvoker(() =>
                                {
                                    DevSelect.Items.Add(cd);
                                    if (DevSelect.SelectedIndex == -1)
                                    {
                                        DevSelect.SelectedIndex = 0;
                                    }
                                }));
                            }
                            Invoke(new MethodInvoker(() =>
                            {
                                DevSelect.Update();
                            }));
                            continue;
                        }
                        else
                        {
                            Invoke(new MethodInvoker(() =>
                            {
                                RecvText.AppendText(value + "\r\n");
                            }));
                        }
                        if (DownloadFlag)
                        {
                            if (value.IndexOf("W:") == 0)
                            {
                                int pos = int.Parse(value.Substring(2));
                                if (pos == WriteID)
                                {
                                    WriteID++;
                                    if (WriteID < 0)
                                    {
                                        SendTargetData("file.open(\"" + TargetFile.name + "\",\"w+\") print(\"W:" + WriteID + "\")");
                                    }
                                    else
                                    if (WriteID < TargetFile.lines.Count)
                                    {
                                        SendTargetData("file.writeline('" + TargetFile.lines[WriteID].Replace("\\", "\\\\").Replace("\"", "\\\"").Replace("'", "\\'") + "') print('W:" + WriteID + "')");
                                        Invoke(new MethodInvoker(() =>
                                        {
                                            Downprogress.Value = WriteID * 100 / TargetFile.lines.Count;
                                        }));
                                    }
                                    else
                                    {
                                        SendTargetData("file.close()");
                                        Invoke(new MethodInvoker(() =>
                                        {
                                            Downprogress.Value   = 100;
                                            Downprogress.Visible = false;
                                            DownloadFlag         = false;
                                        }));
                                    }
                                }
                            }
                            else if (value.IndexOf("D:") == 0)
                            {
                                int pos = int.Parse(value.Substring(2));
                                if (pos == WriteID)
                                {
                                    WriteID++;
                                    if (WriteID < 0)
                                    {
                                        SendTargetData("file.open(\"" + TargetFile.name + "\",\"w+\") function t2s(t) for i=1,#t do t[i]=string.char(t[i]) end return table.concat(t) end rp=" + WriteID + " print(\"D:\"..rp)");
                                    }
                                    else
                                    if ((TargetFile.stream.Length - TargetFile.stream.Position) != 0)
                                    {
                                        StringBuilder sb = new StringBuilder();
                                        int i            = (TargetFile.stream.Length - TargetFile.stream.Position) >= 32 ? 32 : (int)(TargetFile.stream.Length - TargetFile.stream.Position);
                                        while (i-- != 0)
                                        {
                                            sb.Append(TargetFile.stream.ReadByte());
                                            sb.Append(',');
                                        }
                                        TargetFile.writeInfo = sb.ToString();
                                        SendTargetData("file.write(t2s({" + TargetFile.writeInfo + "})) rp=" + WriteID + " print(\"D:\"..rp)");
                                        Invoke(new MethodInvoker(() =>
                                        {
                                            Downprogress.Value = WriteID * 100 / (int)(TargetFile.stream.Length / 32);
                                        }));
                                    }
                                    else
                                    {
                                        SendTargetData("file.close()");
                                        Invoke(new MethodInvoker(() =>
                                        {
                                            Downprogress.Value = 100;
                                            //Downprogress.Visible = false;
                                        }));
                                    }
                                }
                            }
                        }
                    }
                    catch { }
                }
            }).Start();
            int SearchCount = 15;

            new Task(() => {
                while (!this.IsDisposed)
                {
                    try
                    {
                        if (++SearchCount >= 15)
                        {
                            if (BroadcastFlag)
                            {
                                BroadcastData(GetIPID);
                            }
                            SearchCount = 0;
                        }
                    }
                    catch { }
                    Thread.Sleep(100);
                }
            }).Start();
        }
Beispiel #2
0
        private void MultipleSettingEdit_Load(object sender, EventArgs e)
        {
            try
            {
                //加载设备类型
                if (deviceInfos != null)
                {
                    //DataTable dt = Basic.Framework.Common.ObjectConverter.ToDataTable<Jc_DevInfo>(deviceInfos);
                    //DevSelect.DataSource = dt;
                    //DevSelect.DisplayMember = "Name";
                    //DevSelect.ValueMember = "devid";
                    //DevSelect.Refresh();
                    CheckedListBoxItem[] items = new CheckedListBoxItem[deviceInfos.Count];
                    for (int i = 0; i < deviceInfos.Count; i++)
                    {
                        //if (multiplesettingInfo != null)
                        //{
                        //}
                        items[i] = new CheckedListBoxItem(deviceInfos[i].Devid.ToString(), deviceInfos[i].Name, CheckState.Unchecked);
                    }
                    DevSelect.Items.AddRange(items);
                }
                if (multiplesettingInfo != null)
                {
                    //加载设备类型选择
                    for (int j = 0; j < DevSelect.Items.Count; j++)
                    {
                        if (DevSelect.Items[j].Value.ToString() == multiplesettingInfo.Devid.ToString())
                        {
                            DevSelect.SetItemChecked(j, true);
                        }
                    }
                    DevSelect.Enabled = false;
                    //加载倍数关系
                    string[] multipleTextArray = multiplesettingInfo.MultipleText.Split('|');
                    for (int i = 0; i < multipleTextArray.Length; i++)
                    {
                        string[] tempsonmultipleTextArr = multipleTextArray[i].Split(',');
                        switch (i + 1)
                        {
                        case 1:
                            WeekAverageMin1.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax1.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled1.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 2:
                            WeekAverageMin2.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax2.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled2.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 3:
                            WeekAverageMin3.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax3.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled3.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 4:
                            WeekAverageMin4.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax4.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled4.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 5:
                            WeekAverageMin5.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax5.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled5.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 6:
                            WeekAverageMin6.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax6.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled6.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 7:
                            WeekAverageMin7.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax7.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled7.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 8:
                            WeekAverageMin8.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax8.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled8.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 9:
                            WeekAverageMin9.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax9.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled9.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 10:
                            WeekAverageMin10.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax10.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled10.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;
                        }
                    }
                }
                else
                {
                    DevSelect.Enabled = true;
                    for (int j = 0; j < DevSelect.Items.Count; j++)
                    {
                        DevSelect.SetItemChecked(j, false);
                    }
                    for (int i = 0; i < 10; i++)//全部置成初始状态
                    {
                        string[] tempsonmultipleTextArr = ("0,0,0|0,0,0|0,0,0|0,0,0|0,0,0|0,0,0|0,0,0|0,0,0|0,0,0|0,0,0").Split('|');
                        switch (i + 1)
                        {
                        case 1:
                            WeekAverageMin1.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax1.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled1.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 2:
                            WeekAverageMin2.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax2.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled2.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 3:
                            WeekAverageMin3.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax3.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled3.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 4:
                            WeekAverageMin4.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax4.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled4.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 5:
                            WeekAverageMin5.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax5.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled5.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 6:
                            WeekAverageMin6.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax6.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled6.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 7:
                            WeekAverageMin7.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax7.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled7.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 8:
                            WeekAverageMin8.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax8.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled8.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 9:
                            WeekAverageMin9.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax9.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled9.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;

                        case 10:
                            WeekAverageMin10.Value = decimal.Parse(tempsonmultipleTextArr[0]);
                            WeekAverageMax10.Value = decimal.Parse(tempsonmultipleTextArr[1]);
                            Multipled10.Value      = decimal.Parse(tempsonmultipleTextArr[2]);
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Basic.Framework.Logging.LogHelper.Error(ex);
            }
        }