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