Ejemplo n.º 1
0
        private void ProcStartSend(object obj)
        {
            int       index     = (int)obj;
            FrameUnit frameUnit = FrameManager.CreateFrameUnit(0x03);

            byte[] frameData   = new byte[20];
            int    frameLength = 0;

            try
            {
                SerialManager.Send(new byte[] { 0x18, 0x01 }, 0, 2);
                Thread.Sleep(500);

                SerialManager.Send(new byte[] { 0x03, (byte)(index + 1) }, 0, 2);
                string txt = "";
                if (frameUnit.WaitData(15000))
                {
                    frameLength = frameUnit.ReadTotalData(frameData, frameData.Length);

                    if (frameData[7] == 0x81) //返回成功
                    {
                    }
                }
                ShowSendEnd(txt);
            }
            catch (ThreadAbortException)
            {
            }
            finally
            {
                FrameManager.DeleteFrameUnit(frameUnit);
            }
        }
Ejemplo n.º 2
0
        private void ProcVersion()
        {
            FrameUnit frameUnit = FrameManager.CreateFrameUnit(0x01);

            byte[] frameData   = new byte[20];
            int    frameLength = 0;

            try
            {
                SerialManager.Send(new byte[] { 0x01, 0x00 }, 0, 2);
                string txt = "";
                if (frameUnit.WaitData(2000))
                {
                    frameLength = frameUnit.ReadTotalData(frameData, frameData.Length);

                    if (frameData[4] == 0x77) //返回成功
                    {
                        txt = "版本:" + frameData[6] + "." + frameData[7] + " 日期:" + frameData[8] + "月" + frameData[9] + "日";
                    }
                }
                ShowVersion(txt);
            }
            catch (ThreadAbortException)
            {
            }
            finally
            {
                FrameManager.DeleteFrameUnit(frameUnit);
            }
        }
Ejemplo n.º 3
0
        private void ProcWriteParam(object obj)
        {
            int index = (int)obj;

            int[]  fieldVal = new int[13];
            byte[] bitArray = new byte[12 * 8];

            byte[] byteArray = new byte[12];

            byte[]    dataSend  = new byte[3 + 12];
            FrameUnit frameUnit = FrameManager.CreateFrameUnit(0x14);

            byte[] frameData = new byte[100];
            try
            {
                for (int i = 0; i < 3; i++)
                {
                    switch (tablePSD[index].Rows[i]["TrainState"].ToString())
                    {
                    case "L":
                        fieldVal[0] = 0x1c;
                        break;

                    case "G":
                        fieldVal[0] = 0x26;
                        break;

                    case "R":
                        fieldVal[0] = 0x52;
                        break;

                    default:
                        fieldVal[0] = 0x1c;
                        break;
                    }
                    fieldVal[1] = int.Parse(tablePSD[index].Rows[i]["FZK"].ToString());
                    fieldVal[2] = (int)tablePSD[index].Rows[i]["Crew"];
                    int trip = (int)tablePSD[index].Rows[i]["Trip"];

                    fieldVal[3] = trip % 1000;
                    fieldVal[4] = (int)tablePSD[index].Rows[i]["Dst"];
                    fieldVal[5] = trip / 1000;
                    fieldVal[6] = int.Parse(tablePSD[index].Rows[i]["Res"].ToString());
                    switch (tablePSD[index].Rows[i]["Dir"].ToString())
                    {
                    case "A":
                        fieldVal[7] = 1;
                        break;

                    case "B":
                        fieldVal[7] = 2;
                        break;

                    case "AB":
                        fieldVal[7] = 3;
                        break;

                    case "EAB":
                        fieldVal[7] = 0;
                        break;

                    default:
                        fieldVal[7] = 2;
                        break;
                    }
                    fieldVal[8]  = int.Parse(tablePSD[index].Rows[i]["Err"].ToString());
                    fieldVal[9]  = (int)tablePSD[index].Rows[i]["CarID"];
                    fieldVal[10] = (int)tablePSD[index].Rows[i]["ErrInf"];
                    fieldVal[11] = (int)tablePSD[index].Rows[i]["Mil"];
                    fieldVal[12] = int.Parse(tablePSD[index].Rows[i]["TelID"].ToString());

                    Tool.Field2BitArray(bitArray, fieldVal);

                    Tool.BitArray2ByteArray(bitArray, byteArray);

                    byteArray[11] = CRC8.ComputeCRC8(byteArray, 11, CRC8.CRCExpress);


                    dataSend[0] = 0x14;
                    dataSend[1] = (byte)(((index + 1) << 4) + (i + 1));
                    dataSend[2] = 0x60;
                    Array.Copy(byteArray, 0, dataSend, 3, 12);

                    SerialManager.Send(dataSend, 0, dataSend.Length);

                    if (frameUnit.WaitData(1000))
                    {
                    }
                }

                ShowWriteParamDone("");
            }
            catch (ThreadAbortException)
            {
            }
            finally
            {
            }
        }
Ejemplo n.º 4
0
        private void ProcReadParam(object obj)
        {
            int       index     = (int)obj;
            FrameUnit frameUnit = FrameManager.CreateFrameUnit(0x24);

            byte[] frameData   = new byte[50];
            int    frameLength = 0;

            byte[] bitArray = new byte[12 * 8];


            try
            {
                for (int i = 0; i < 3; i++)
                {
                    SerialManager.Send(new byte[] { 0x24, (byte)(((index + 1) << 4) + (i + 1)) }, 0, 2);

                    if (frameUnit.WaitData(2000))
                    {
                        frameLength = frameUnit.ReadTotalData(frameData, frameData.Length);
                        if (frameData[4] == 0x77) //查询成功
                        {
                            //显示数据
                            if (frameData[7] == 0x60) //12*8Bit
                            {
                                Tool.ByteArray2BitArray(bitArray, frameData, 8, 12);

                                int state = Tool.FieldValue(bitArray, 0);
                                switch (state)
                                {
                                case 0x1c:
                                    tablePSD[index].Rows[i]["TrainState"] = "L";
                                    break;

                                case 0x26:
                                    tablePSD[index].Rows[i]["TrainState"] = "G";
                                    break;

                                case 0x52:
                                    tablePSD[index].Rows[i]["TrainState"] = "R";
                                    break;

                                default:
                                    tablePSD[index].Rows[i]["TrainState"] = "--";
                                    break;
                                }

                                int fzk = Tool.FieldValue(bitArray, 1);
                                tablePSD[index].Rows[i]["FZK"] = fzk.ToString();

                                int crew = Tool.FieldValue(bitArray, 2);

                                tablePSD[index].Rows[i]["Crew"] = crew;

                                int trip = Tool.FieldValue(bitArray, 3) + Tool.FieldValue(bitArray, 5) * 1000;
                                tablePSD[index].Rows[i]["Trip"] = trip;

                                int dst = Tool.FieldValue(bitArray, 4);
                                tablePSD[index].Rows[i]["Dst"] = dst;

                                int res = Tool.FieldValue(bitArray, 6);
                                tablePSD[index].Rows[i]["Res"] = res.ToString();

                                int dir = Tool.FieldValue(bitArray, 7);
                                switch (dir)
                                {
                                case 0:
                                    tablePSD[index].Rows[i]["Dir"] = "EAB";
                                    break;

                                case 1:
                                    tablePSD[index].Rows[i]["Dir"] = "A";
                                    break;

                                case 2:
                                    tablePSD[index].Rows[i]["Dir"] = "B";
                                    break;

                                case 3:
                                    tablePSD[index].Rows[i]["Dir"] = "AB";
                                    break;
                                }


                                int err = Tool.FieldValue(bitArray, 8);
                                tablePSD[index].Rows[i]["Err"] = err.ToString();

                                int carId = Tool.FieldValue(bitArray, 9);
                                tablePSD[index].Rows[i]["CarID"] = carId;

                                int inf = Tool.FieldValue(bitArray, 10);
                                tablePSD[index].Rows[i]["ErrInf"] = inf;

                                int mil = Tool.FieldValue(bitArray, 11);
                                tablePSD[index].Rows[i]["Mil"] = mil;

                                int tel = Tool.FieldValue(bitArray, 12);
                                tablePSD[index].Rows[i]["TelID"] = tel.ToString();
                            }
                        }
                    }
                }
                ShowReadParamDone("");
            }
            catch (ThreadAbortException)
            {
            }
            finally
            {
            }
        }