Пример #1
0
 private void sendPortsData(SendDataType sType)
 {
     if (cdInterface != null)
     {
         new Thread(sendPortsDataThread).Start(sType);                     // serPort.commWriteByte(buf, 0, buf.Length);
     }
 }
Пример #2
0
        private void SendData(SendDataType Type, int F1, int F2, int F3, int F4)
        {
#if DEBUG
            UpdateText("SendData");
#endif

            SendDataData s = new SendDataData();
            s.Header1 = 0x46;
            s.Header2 = 0x52;
            s.Header3 = 0x53;
            s.Header4 = 0x1;

            s.DataType = (int)Type;
            s.Flag1    = F1;
            s.Flag2    = F2;
            s.Flag3    = F3;
            s.Flag4    = F4;

            byte[] data = CommonUtilities.Serialize <SendDataData>(s);
            try
            {
                ws.Send(data);
            }
            catch (Exception ee)
            {
                Debug.WriteLine(ee.ToString());
            }
        }
Пример #3
0
 public void revePortsData(SendDataType sType)
 {
     if (sType.isNoDt)
     {
         revePortsData(sType.Buf);
     }
 }
Пример #4
0
 private void sendDataModel(SendDataType sType)
 {
     if (sendDataHandle != null)
     {
         sendDataHandle(sType);
     }
 }
Пример #5
0
        /// <summary>
        /// 接收发送给本机ip对应端口号的数据报
        /// </summary>
        private void ReciveMsg()
        {
            while (true)
            {
                try {
                    if (receivePoint == null)
                    {
                        receivePoint = new IPEndPoint(IPAddress.Any, 0);                      //用来保存发送方的ip和端口号
                    }
                    byte[] buffer   = new byte[1024 * 10];
                    int    length   = client.ReceiveFrom(buffer, ref receivePoint);//接收数据报
                    string ipClient = receivePoint.ToString();

                    SendDataType sendType = new SendDataType(subByteArr(buffer, 0, length), ipClient, CommunicationMode.UDP, SendMode.OUT);
                    reDate(sendType);


                    //reDate(buffer);
                    //setIpClient(ipClient, subByteArr(buffer, 0, length));
                }
                catch (Exception e) {
                    string msg = e.Message;
                }
            }
        }
Пример #6
0
 public void sendData(SendDataType sType)
 {
     if (sType.isNoDt)
     {
         sendData(sType.Buf, 0, sType.Buf.Length, sType.Ip);
     }
 }
Пример #7
0
 private ShareClientHeader(uint atomicCode, byte splitCount, byte splitIndex, SendDataType dataType, uint dataSize)
 {
     AtomicCode   = atomicCode;
     SplitCount   = splitCount;
     SplitIndex   = splitIndex;
     DataType     = dataType;
     DataPartSize = dataSize;
 }
Пример #8
0
 public DataPhase(SendDataType type, int itemCount, WriteElementDelegate write, int dataSizeBytes, int tupleSize = 1)
 {
     Type          = type;
     ItemCount     = (uint)itemCount;
     DataSizeBytes = dataSizeBytes;
     TupleSize     = tupleSize;
     WriteElement  = write;
 }
Пример #9
0
 public override void reveData(SendDataType sType)
 {
     if (!sType.isNoDt)
     {
         return;
     }
     receDt(sType.Buf);
 }
Пример #10
0
        private void sendPortsData(byte[] buf, string ip, CommunicationMode comMode, SendMode sendMode)
        {
            SendDataType sType = new SendDataType(buf, ip, comMode, sendMode);

            if (cdInterface != null)
            {
                new Thread(sendPortsDataThread).Start(sType);                     // serPort.commWriteByte(buf, 0, buf.Length);
            }
        }
Пример #11
0
        /// <summary>
        /// 拼接包头包尾
        /// </summary>
        /// <param name="Type"></param>
        /// <param name="packSend"></param>
        private void packDeal(byte Type, byte[] packSend)
        {
            packSend[0] = 0xf8;
            packSend[1] = Type;
            packSend[packSend.Length - 1] = 0xf7;
            SendDataType sType = new SendDataType(packSend, "", Utils.CommunicationMode.SERIALPORT, SendMode.ALL);

            addCSAndsendData(sType);
        }
Пример #12
0
        //根据命令 获得对应的通讯数据
        public byte[] GetSerialSendData(byte comd)    //要点1
        {
            SendDataType sendDataType = (SendDataType)(comd);

            byte[]      serialDatas  = null;
            ISendData   getSendDatas = null;
            DataInfoSet dataInfoSet  = null;

            String[] dataBaseValues = null;
            switch (sendDataType)
            {
            case SendDataType.NormalSerialData:    //0x20
                serialDatas = GetNormalDatas();    //
                break;

            case SendDataType.DesignParam:    //0x21指令
                serialDatas = GetDesignParam();
                break;

            case SendDataType.TestSerialData:    //0x23
                serialDatas = GetTestDatas();
                break;

            case SendDataType.ClearComdSerailData:    //0x24
                serialDatas = GetClearWorkNumberDatas();
                break;

            case SendDataType.MachineSerialData:    //0x25
                getSendDatas   = new MachineInfoSendData();
                dataInfoSet    = MouldDataFactory.CreateDataInfo(DataTypeName.BaseDataTable);
                dataBaseValues = BaseDateModel.GetDataBaseModel().DataBaseValues;
                break;

            case SendDataType.ShouldPadPointsData:    //0x27
                serialDatas = GetShouldPadPoints();
                break;

            case SendDataType.SingleStepSerialData:    //0x28
                serialDatas = GetSingleStepDatas();
                break;

            case SendDataType.LockStaSerialData:    //0X29
                serialDatas = GetLockStaSerialDatas();
                break;

            case SendDataType.UnLockSerialData:    //0x2a
                serialDatas = GetUnLockSerialData();
                break;
            }
            if (getSendDatas != null)
            {
                serialDatas = getSendDatas.GetSendDatas(dataBaseValues, dataInfoSet);
            }
            return(serialDatas);
        }
Пример #13
0
 public void revePortsData(SendDataType sType)
 {
     foreach (FromBaseModel fbModel in fbModels) //遍历出主要的设置Model,去除不需要的更新的Model
     {
         if (fbModel == null)
         {
             continue;
         }
         fbModel.revePortsData(sType);
     }
 }
Пример #14
0
 /// <summary>
 /// 计算校验,并且发送数据
 /// </summary>
 /// <param name="buf"></param>
 public void addCSAndsendData(SendDataType sType)
 {
     if (!sType.isNoDt)
     {
         return;
     }
     if (sType.Buf == null || sType.Buf.Length < 2)
     {
         return;
     }
     sType.Buf[sType.Buf.Length - 2] = XWUtils.getCheckBit(sType.Buf, 0, sType.Buf.Length - 2);
     sendDataModel(sType);
 }
Пример #15
0
        private void sendPortsDataThread(object obj)
        {
            if (!(obj is SendDataType))
            {
                return;
            }
            SendDataType sType = (SendDataType)obj;

            if (cdInterface != null)
            {
                cdInterface.sendData(sType);
            }
        }
Пример #16
0
 private void reDate(SendDataType sType)
 {
     if (!sType.isNoDt)
     {
         return;
     }
     if (reveData != null && isOpenUDP)
     {
         reveData(sType);
     }
     if (crdInter != null)
     {
         crdInter.revePortsData(sType);
     }
 }
Пример #17
0
 /// <summary>
 /// 定义委托,输送详细的数据
 /// </summary>
 /// <param name="buf"></param>
 public void issue(SendDataType sType)
 {
     if (!sType.isNoDt)
     {
         return;
     }
     if (onDataReceived != null)
     {
         onDataReceived(sType);
     }
     if (crdInter != null)
     {
         crdInter.revePortsData(sType);
     }
 }
Пример #18
0
 /// <summary>
 /// 接收数据的地方
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
 {
     if (pointClosing)
     {
         return;              //如果正在关闭,忽略操作,直接返回,尽快的完成串口监听线程的一次循环
     }
     try{
         Listening = true;                       //设置标记,说明我已经开始处理数据,一会儿要使用系统UI的。
         //Thread.Sleep(intS);
         byte[]       buf      = commDataRead(); //声明一个临时数组存储当前来的串口数据
         SendDataType sendType = new SendDataType(buf, comm.PortName, CommunicationMode.SERIALPORT, SendMode.OUT);
         issue(sendType);
     }
     finally{
         Listening = false;
     }
 }
Пример #19
0
        /// <summary>
        /// A utility function for reading the payload of a <see cref="DataMessage"/> for a <c>MeshShape</c>.
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="vertices"></param>
        /// <param name="indices"></param>
        /// <param name="normals"></param>
        /// <param name="colours"></param>
        /// <returns>Returns the updated component <see cref="SendDataType"/>. The <see cref="SendDataType.End"/>
        /// flag is also set, or alone when done. Returns -1 on failure.</returns>
        /// <remarks>
        /// This may be called immediately after reading the <see cref="DataMessage"/> for a
        /// <c>MeshShape</c> to decode the payload content. The method uses a set of
        /// <see cref="ComponentAdaptor{T}"/> interfaces to resolve data adaption to the required type or
        /// container. Each call will only interface with the adaptor relevant to the message payload
        /// calling <see cref="ComponentAdaptor{T}.Set(int, T)"/> for the incoming data. Vertices and
        /// indices must be correctly pre-sized, while other components may have the
        /// <see cref="ComponentAdaptor{T}.Count"/> property set to ensure the correct size (matching
        /// the vertex count, or 1 for uniform normals).
        /// </remarks>
        public static int ReadDataComponentDeferred(BinaryReader reader, uint vertexCount, uint indexCount,
                                                    ComponentBlockReader vertexReader,
                                                    ComponentBlockReader indexReader,
                                                    ComponentBlockReader normalsReader,
                                                    ComponentBlockReader coloursReader)
        {
            UInt32       offset;
            UInt32       itemCount;
            SendDataType dataType;

            dataType  = (SendDataType)reader.ReadUInt16();
            offset    = reader.ReadUInt32();
            itemCount = reader.ReadUInt32();

            // Record and mask out end flags.
            SendDataType endFlags = dataType & (SendDataType.ExpectEnd | SendDataType.End);

            dataType = dataType & ~endFlags;

            bool ok           = true;
            bool complete     = false;
            uint endReadCount = 0;

            switch (dataType)
            {
            case SendDataType.Vertices:
                endReadCount = vertexReader(dataType, reader, offset, itemCount);
                ok           = ok && endReadCount != ~0u;

                // Expect end marker.
                if ((endFlags & SendDataType.End) != 0)
                {
                    // Done.
                    complete = true;
                }

                // Check for completion.
                if ((endFlags & SendDataType.ExpectEnd) == 0)
                {
                    complete = endReadCount == vertexCount;
                }
                break;

            case SendDataType.Indices:
                endReadCount = indexReader(dataType, reader, offset, itemCount);
                ok           = ok && endReadCount != ~0u;
                break;

            // Normals handled together.
            case SendDataType.Normals:
            case SendDataType.UniformNormal:
                if (normalsReader == null)
                {
                    return(-1);
                }

                endReadCount = normalsReader(dataType, reader, offset, itemCount);
                ok           = ok && endReadCount != ~0u;
                break;

            case SendDataType.Colours:
                if (coloursReader == null)
                {
                    return(-1);
                }

                endReadCount = coloursReader(dataType, reader, offset, itemCount);
                ok           = ok && endReadCount != ~0u;
                break;

            default:
                // Unknown data type.
                ok = false;
                break;
            }

            int returnValue = -1;

            if (ok)
            {
                returnValue = (int)dataType;
                if (complete)
                {
                    returnValue |= (int)SendDataType.End;
                }
            }

            return(returnValue);
        }
Пример #20
0
 public void sendData(SendDataType sType)
 {
 }
Пример #21
0
 public override void reveData(SendDataType sType)
 {
 }
Пример #22
0
 public virtual void reveData(SendDataType sType)
 {
 }