Exemplo n.º 1
0
        public void StreamTest()
        {
            MemoryStream stream = new MemoryStream();

            stream.WriteAllBytes(CommonHelper.StringToByte("Hello"));
            stream.Position = 0;
            var bytes = stream.ReadAllBytes();

            Assert.AreEqual(CommonHelper.ByteToString(bytes), "Hello");
        }
Exemplo n.º 2
0
        /// <summary>
        /// Received handler for listener.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <param name="peerFrom">The peer.</param>
        private void OnReceiveHandler(byte[] data, Peer peerFrom)
        {
            Assert.AreEqual(
                CommonHelper.ByteToString(this.lastData),
                CommonHelper.ByteToString(data));

            Assert.AreEqual(this.lastPeerFrom.IP, peerFrom.IP);

            this.received = true;
        }
Exemplo n.º 3
0
        public void OnSendData(byte length, byte mark, byte data)
        {
            var modeByte = new List <byte>();

            modeByte.Add(0x7e);   //帧头
            modeByte.Add(length); //帧长度
            modeByte.Add(mark);   //帧标识
            modeByte.Add(data);   //数据
            //和校验
            var andValue = (byte)(length + mark + data);

            modeByte.Add(andValue);
            modeByte.Add(0xf5);//帧尾
            var t1   = string.Join("", modeByte);
            var t2   = CommonHelper.ByteToString(modeByte.ToArray());
            var text = new ScsRawDataMessage(modeByte.ToArray(), "k1");

            if (Client.CommunicationState == TcpSocket.Scs.Communication.CommunicationStates.Connected)
            {
                Client.SendMessage(text);
            }
        }
Exemplo n.º 4
0
        public string ScanDevice(int deviceIndex)
        {
            int         count = PCIE_DeviceList.TheDeviceList().Count;
            PCIE_Device dev   = PCIE_DeviceList.TheDeviceList().Get(deviceIndex);

            if (dev == null)
            {
                return("device");
            }
            if (dev.WDCScan_DMAContigBufLock() != 0)
            {
                //MessageBox.Show(("分配报告内存失败"));
                return("device");
            }
            ////DWORD wrDMASize = dataSize; //16kb
            if (!dev.ScanDMAWriteMenAlloc(16 * 1024))
            {
                //MessageBox.Show("内存分配失败!");
                return("device");
            }
            dev.StartWrDMA(0);
            dev.WriteBAR0(0, 0x60, 1);          //中断屏蔽
            dev.WriteBAR0(0, 0x50, 1);          //dma 写报告使能

            var dma    = (WD_DMA)dev.m_dmaMarshaler.MarshalNativeToManaged(dev.pScanReportWrDMA);
            var ppwDma = (WD_DMA)dev.m_dmaMarshaler.MarshalNativeToManaged(dev.pScanpwDma);

            dev.WriteBAR0(0, 0x58, (uint)dma.Page[0].pPhysicalAddr);           //dma 写报告地址
            //设置初始DMA写地址,长度等
            dev.WriteBAR0(0, 0x4, (uint)ppwDma.Page[0].pPhysicalAddr);         //wr_addr low
            dev.WriteBAR0(0, 0x8, (uint)(ppwDma.Page[0].pPhysicalAddr >> 32)); //wr_addr high
            dev.WriteBAR0(0, 0xC, (UInt32)16 * 1024);                          //dma wr size

            dev.WriteBAR0(0, 0x28, 1);
            //int readIndex = 0;
            var dt = DateTime.Now;

            while (true)
            {
                var current = (DateTime.Now - dt).Seconds;
                if (current > 1)
                {
                    break;
                }
                dev.WriteBAR0(0, 0x10, 1);
            }
            dev.WriteBAR0(0, 0x10, 1);

            dev.WriteBAR0(0, 0x28, 0);
            dev.WriteBAR0(0, 0x10, 0);
            //启动DMA
            //       //dma wr 使能
            byte[] tmpResult = new Byte[16 * 1024];
            Marshal.Copy(dev.pScanWbuffer, tmpResult, 0, 16 * 1024);
            LogHelper.WriteLog(string.Format("设备{0}自检返回数据: ", deviceIndex + 1) + CommonHelper.ByteToString(tmpResult));
            var findItem = tmpResult.Where(o => o == 63).Count();

            LogHelper.WriteLog(findItem.ToString());
            //var findItem = barList.FirstOrDefault(o => o != 63);
            if (findItem > 50)
            {
                // scanStr = "设备所有通道自检正常!";
                return(string.Empty);
            }
            else
            {
                string errorStr = deviceIndex == 0 ? "1,2,3" : " 4,5,6";
                var    query    = tmpResult.Where(o => o == 3).Count();
                if (query > 50)
                {
                    errorStr = deviceIndex == 0 ? "2,3" : " 5,6";
                }
                var query1 = tmpResult.Where(o => o == 12).Count();
                if (query1 > 50)
                {
                    errorStr = deviceIndex == 0 ? "1,3" : " 4,6";
                }
                var query2 = tmpResult.Where(o => o == 15).Count();
                if (query2 > 50)
                {
                    errorStr = deviceIndex == 0 ? "3" : " 6";
                    LogHelper.WriteLog(query2.ToString());
                }
                var query3 = tmpResult.Where(o => o == 48).Count();
                if (query3 > 50)
                {
                    errorStr = deviceIndex == 0 ? "1,2" : " 4,5";
                }
                var query4 = tmpResult.Where(o => o == 51).Count();
                if (query4 > 50)
                {
                    errorStr = deviceIndex == 0 ? "2" : " 5";
                }
                var query5 = tmpResult.Where(o => o == 60);

                if (query5.Count() > 50)
                {
                    errorStr = deviceIndex == 0 ? "1" : " 4";
                    LogHelper.WriteLog(query5.ToString());
                }
                //var query6 = tmpResult.Where(o => o == 0);
                //if (query6.Count()==tmpResult.Count())
                //{
                //    errorStr = deviceIndex == 0 ? "1,2,3" : " 4,5,6";
                //}
                //switch (findItem)
                //{
                //    case 3:
                //        errorStr = deviceIndex == 0 ? "1,2" : " 4,5";
                //        break;
                //    case 12:
                //        errorStr = deviceIndex == 0 ? "1,3" : " 4,6";
                //        break;
                //    case 15:
                //        errorStr = deviceIndex == 0 ? "1" : " 4";
                //        break;
                //    case 48:
                //        errorStr = deviceIndex == 0 ? "2,3" : " 5,6";
                //        break;
                //    case 51:
                //        errorStr = deviceIndex == 0 ? "2" : " 5";
                //        break;
                //    case 60:
                //        errorStr = deviceIndex == 0 ? "3" : " 6";
                //        break;
                //    default:
                //        errorStr ="Error";
                //        break;
                //}
                // scanStr += errorStr;
                //  tmpInfo +=errorStr+"";
                return(errorStr);
            }
        }