Example #1
0
        public static string show(SOCKET_REQUEST request)
        {
            string strInfo = string.Empty;

            strInfo += request.CmdNo.ToString() + "_";
            strInfo += request.Name.ToString() + "_";
            if (request.Ready == 0)
            {
                strInfo += request.Ready.ToString();
            }
            else
            {
                strInfo += request.ErrCode.ToString() + "_";
                strInfo += request.Ready.ToString() + "_";
                strInfo += request.Model.ToString() + "_";
                strInfo += request.OrderName.ToString() + "_";
                strInfo += request.IdCard.ToString() + "_";
                strInfo += request.MesFlag.ToString() + "_";
                for (int i = 0; i < request.UUT_NUM; i++)
                {
                    strInfo += request.UUT[i].SerialNo + ":" + request.UUT[i].Result.ToString();
                    if (i != request.UUT_NUM - 1)
                    {
                        strInfo += "|";
                    }
                }
            }
            return(strInfo);
        }
Example #2
0
        public CSerSocket(int slotMax)
        {
            try
            {
                SLOT_MAX = slotMax;

                //初始化结构体应答信息

                socket_reponse = new SOCKET_REQUEST();

                socket_reponse.UUT = new SOCKET_UUT[SLOT_MAX];

                for (int i = 0; i < SLOT_MAX; i++)
                {
                    socket_reponse.UUT[i] = new SOCKET_UUT();
                }

                REQUEST_LEN = CStuct <SOCKET_REQUEST> .GetStuctLen(socket_reponse);

                //初始化JSON应答信息

                json_reponse = new CJSON_REQUEST();

                json_reponse.Name = string.Empty;

                json_reponse.IdCard = string.Empty;

                json_reponse.Model = string.Empty;

                json_reponse.OrderName = string.Empty;

                json_reponse.MesFlag = 0;

                json_reponse.Ready = 0;

                json_reponse.UUT = new List <CJSON_UUT>();

                for (int i = 0; i < SLOT_MAX; i++)
                {
                    json_reponse.UUT.Add(new CJSON_UUT
                    {
                        Result   = 0,
                        SerialNo = string.Empty
                    });
                }
            }
            catch (Exception)
            {
            }
        }
Example #3
0
        /// <summary>
        /// 自定义结构体应答客户端数据
        /// </summary>
        /// <param name="recvData"></param>
        /// <returns></returns>
        public byte[] ReponseStruct(byte[] recvBytes)
        {
            try
            {
                //接收字节长度
                if (recvBytes.Length != REQUEST_LEN)
                {
                    socket_reponse.CmdNo   = ESOCKET_CMD.NG;
                    socket_reponse.Name    = "";
                    socket_reponse.ErrCode = ESOCKET_ERROR.COMMAND_LENTH_ERROR;
                    socket_reponse.Ready   = 0;
                    socket_reponse.UUT_NUM = 0;
                    return(CStuct <SOCKET_REQUEST> .StructToBytes(socket_reponse));
                }

                SOCKET_REQUEST socketQuest = CStuct <SOCKET_REQUEST> .BytesToStruct(recvBytes);

                //站别名称
                string statName = socketQuest.Name;

                if (!StatIdList.ContainsKey(statName))
                {
                    socket_reponse.CmdNo   = ESOCKET_CMD.NG;
                    socket_reponse.Name    = socketQuest.Name;
                    socket_reponse.ErrCode = ESOCKET_ERROR.STATION_IS_NOT_EXIST;
                    socket_reponse.Ready   = 0;
                    socket_reponse.UUT_NUM = 0;
                    return(CStuct <SOCKET_REQUEST> .StructToBytes(socket_reponse));
                }

                int statId = StatIdList[statName];

                //命令类型
                switch (socketQuest.CmdNo)
                {
                case ESOCKET_CMD.QUERY_STATE:
                    socket_reponse.CmdNo   = ESOCKET_CMD.STATE_OK;
                    socket_reponse.Name    = socketQuest.Name;
                    socket_reponse.IdCard  = StatRunList[statId].IdCard;
                    socket_reponse.Model   = StatRunList[statId].ModelName;
                    socket_reponse.MesFlag = StatRunList[statId].MesFlag;
                    if (StatRunList[statId].DoRun == ERUN.空闲 || StatRunList[statId].DoRun == ERUN.测试结束)
                    {
                        socket_reponse.ErrCode = ESOCKET_ERROR.OK;
                        socket_reponse.Ready   = 0;
                        socket_reponse.UUT_NUM = StatRunList[statId].SlotNum;
                        for (int i = 0; i < socket_reponse.UUT_NUM; i++)
                        {
                            socket_reponse.UUT[i].SerialNo = string.Empty;
                            socket_reponse.UUT[i].Result   = 0;
                            StatRunList[statId].Result[i]  = 0;
                        }
                    }
                    else
                    {
                        int ready = StatRunList[statId].SubNo;
                        socket_reponse.ErrCode = ESOCKET_ERROR.OK;
                        socket_reponse.Ready   = ready;
                        socket_reponse.UUT_NUM = StatRunList[statId].SlotNum;
                        for (int i = 0; i < socket_reponse.UUT_NUM; i++)
                        {
                            socket_reponse.UUT[i].SerialNo = StatRunList[statId].SerialNos[i];
                            socket_reponse.UUT[i].Result   = 0;
                        }
                    }
                    break;

                case ESOCKET_CMD.START_TEST:
                    if (StatRunList[statId].DoRun == ERUN.空闲)
                    {
                        socket_reponse.CmdNo   = ESOCKET_CMD.NG;
                        socket_reponse.Name    = socketQuest.Name;
                        socket_reponse.ErrCode = ESOCKET_ERROR.STATION_IS_NOT_READY;
                        socket_reponse.Ready   = 0;
                        socket_reponse.UUT_NUM = 0;
                        return(CStuct <SOCKET_REQUEST> .StructToBytes(socket_reponse));
                    }
                    else
                    {
                        socket_reponse.ErrCode = ESOCKET_ERROR.OK;
                        socket_reponse.CmdNo   = ESOCKET_CMD.START_OK;
                        socket_reponse.Name    = socketQuest.Name;
                        socket_reponse.IdCard  = StatRunList[statId].IdCard;
                        socket_reponse.Model   = StatRunList[statId].ModelName;
                        socket_reponse.MesFlag = StatRunList[statId].MesFlag;
                        socket_reponse.Ready   = StatRunList[statId].SubNo;
                        socket_reponse.UUT_NUM = StatRunList[statId].SlotNum;
                        for (int i = 0; i < socket_reponse.UUT_NUM; i++)
                        {
                            socket_reponse.UUT[i].SerialNo = StatRunList[statId].SerialNos[i];
                            socket_reponse.UUT[i].Result   = 0;
                            StatRunList[statId].Result[i]  = 0;
                        }
                        StatRunList[statId].DoRun = ERUN.测试中;
                    }
                    break;

                case ESOCKET_CMD.END_TEST:
                    if (StatRunList[statId].DoRun == ERUN.空闲)
                    {
                        socket_reponse.CmdNo   = ESOCKET_CMD.NG;
                        socket_reponse.Name    = socketQuest.Name;
                        socket_reponse.ErrCode = ESOCKET_ERROR.STATION_IS_NOT_READY;
                        socket_reponse.Ready   = 0;
                        socket_reponse.UUT_NUM = 0;
                        return(CStuct <SOCKET_REQUEST> .StructToBytes(socket_reponse));
                    }
                    else
                    {
                        socket_reponse.ErrCode = ESOCKET_ERROR.OK;
                        socket_reponse.CmdNo   = ESOCKET_CMD.END_OK;
                        socket_reponse.Name    = socketQuest.Name;
                        socket_reponse.IdCard  = StatRunList[statId].IdCard;
                        socket_reponse.Model   = StatRunList[statId].ModelName;
                        socket_reponse.MesFlag = StatRunList[statId].MesFlag;
                        socket_reponse.Ready   = StatRunList[statId].SubNo;
                        socket_reponse.UUT_NUM = StatRunList[statId].SlotNum;
                        for (int i = 0; i < StatRunList[statId].SlotNum; i++)
                        {
                            socket_reponse.UUT[i].SerialNo = StatRunList[statId].SerialNos[i];
                            StatRunList[statId].Result[i]  = socketQuest.UUT[i].Result;
                        }
                        StatRunList[statId].DoRun = ERUN.测试结束;
                    }
                    break;

                default:
                    socket_reponse.CmdNo   = ESOCKET_CMD.NG;
                    socket_reponse.ErrCode = ESOCKET_ERROR.COMMAND_IS_NOT_DEFINE;
                    socket_reponse.Ready   = 0;
                    socket_reponse.UUT_NUM = 0;
                    break;
                }
                return(CStuct <SOCKET_REQUEST> .StructToBytes(socket_reponse));
            }
            catch (Exception)
            {
                socket_reponse.CmdNo   = ESOCKET_CMD.NG;
                socket_reponse.ErrCode = ESOCKET_ERROR.SYSTEM_ERROR;
                socket_reponse.Ready   = 0;
                socket_reponse.UUT_NUM = 0;
                return(CStuct <SOCKET_REQUEST> .StructToBytes(socket_reponse));
            }
            finally
            {
            }
        }