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); }
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) { } }
/// <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 { } }