コード例 #1
0
        //读取1号位料箱信息数据
        private RfidStationInfoList ParseRfidStationInfoList(byte[] bts)
        {
            RfidStationInfoList stationInfoList = new RfidStationInfoList();
            object obj = StructTransform.BytesToStruct(bts, stationInfoList.GetType());

            return((RfidStationInfoList)obj);
        }
コード例 #2
0
        public void OnEVENT_CUSTOM_UPDATE_P1_INFO(ApcmEventArgs evt)
        {
            RfidStationInfoList stationInfoList = Get <RfidStationInfoList>($"{ApcmKeyConf.DataCollection}:{ApcmDevcieConfig.PROPERTY_P1_INFO}:DATA");
            RfidStationInfo     rfidStationInfo = Get <RfidStationInfo>($"{ApcmKeyConf.DataCollection}:{ApcmDevcieConfig.PROPERTY_P2_WORKBININFO}:DATA");
            int i = 0;

            foreach (RfidStationInfo info in stationInfoList.RfidStationInfos)
            {
                if (info.Equals(stationInfoList.RfidStationInfos[i]))
                {
                    OrderRfidStationInfos(i, stationInfoList);
                }
                i++;
            }
            Write(ApcmDevcieConfig.PROPERTY_P1_INFO, StructTransform.StructToBytes(stationInfoList));
        }
コード例 #3
0
        public void OnEvent_P1_InfoReadDone(ApcmEventArgs evt)
        {
            RfidStationInfoList list = ParseRfidStationInfoList((byte[])((Dictionary <string, object>)evt.Data)[ApcmDevcieConfig.PROPERTY_P1_INFO]);

            Set($"{ApcmKeyConf.DataCollection}:{ApcmDevcieConfig.PROPERTY_P1_INFO}:DATA", list);
            //更新上下料信息表
            PushToMes(ApcmDevcieConfig.EVENT_MES_CHARGING_STATE, new Dictionary <string, object>
            {
                ["LINE"]           = SysConf.Main.AssemblyLine.Id,
                ["IS_READ"]        = 0,
                ["DISPATCH_STATE"] = 1,
                ["FLAG"]           = 2,
                ["NO_FROM"]        = "1",
                ["BTRAY_ID1"]      = list.RfidStationInfos[0].UID,
                ["BTRAY_ID2"]      = list.RfidStationInfos[1].UID,
                ["BTRAY_ID3"]      = list.RfidStationInfos[2].UID
            });
        }
コード例 #4
0
        //读取1号位料箱信息数据
        private RfidStationInfoList ParseRfidStationInfoList(byte[] bts)
        {
            string btrayId1 = Encoding.Unicode.GetString(bts.Take(1).ToArray());
            string btrayId2 = Encoding.Unicode.GetString(bts.Skip(1).Take(1).ToArray());
            string btrayId3 = Encoding.Unicode.GetString(bts.Skip(2).Take(1).ToArray());

            byte[] bts4 = bts.Skip(3).Take(bts.Length - 3).ToArray();
            List <RfidStationInfo> rfidStationInfos = JsonExtension.JsonToModel <List <RfidStationInfo> >(Encoding.Unicode.GetString(bts4));
            RfidStationInfoList    infoList         = new RfidStationInfoList()
            {
                BtrayId1         = btrayId1,
                BtrayId2         = btrayId2,
                BtrayId3         = btrayId3,
                RfidStationInfos = rfidStationInfos
            };

            return(infoList);
        }
コード例 #5
0
 //1号位更新排序
 private RfidStationInfoList OrderRfidStationInfos(int i, RfidStationInfoList stationInfoList)
 {
     if (i == 0)
     {
         stationInfoList.RfidStationInfos[0] = stationInfoList.RfidStationInfos[1];
         stationInfoList.RfidStationInfos[1] = stationInfoList.RfidStationInfos[2];
         stationInfoList.RfidStationInfos[2] = new RfidStationInfo();
     }
     else if (i == 1)
     {
         stationInfoList.RfidStationInfos[1] = stationInfoList.RfidStationInfos[2];
         stationInfoList.RfidStationInfos[2] = new RfidStationInfo();
     }
     else if (i == 2)
     {
         stationInfoList.RfidStationInfos[i] = new RfidStationInfo();
     }
     return(stationInfoList);
 }
コード例 #6
0
        //读取料箱信息,更新MES上下料信息表
        public Result PLC01ReadInfoDoneEvent(ActionArgs actionArgs)
        {
            //获取到P1Info
            byte[] bts = Encoding.ASCII.GetBytes(actionArgs.StepResult.Data.ToString());
            RfidStationInfoList list = ParseRfidStationInfoList(bts);

            curentRsInfoList = list;
            //更新上下料信息表
            RChargingState chargingState = new RChargingState()
            {
                LINE           = Constant.OrderLine,
                IS_READ        = 0,
                DISPATCH_STATE = 1,
                FLAG           = 2,
                NO_FROM        = "1",
                BTRAY_ID1      = list.RfidStationInfos[0].UID,
                BTRAY_ID2      = list.RfidStationInfos[1].UID,
                BTRAY_ID3      = list.RfidStationInfos[2].UID
            };

            actionArgs.RedisClientRemote.LPush("LD:A00:MDCI:CHARGING_STATE:Q", chargingState);
            Logger.Device.Info($" invoke UpCHARGING_STATEEvent 更新MES上下料信息表成功");
            return(Result.Success());
        }