public void buildBitmap() { int _sx, _sy, pixelX, pixelY, scaledPixelY = 0, scaledPixelX = 0; int force = 0, sumForce = 0; int pcktNum = _packetList.Count(); byte[] buffer = new byte[height * width * 2 + 7]; //_map = new Map(80, 40);; Bitmap _bitmap; Pen pen = new Pen(Color.White) { Alignment = PenAlignment.Inset, Width = 0.05f }; _bitmap = new Bitmap(400, 200, PixelFormat.Format32bppArgb); Graphics graphicsBitmap = Graphics.FromImage(_bitmap); try { while (_working) // && _packetList.Count() > 0) { if (_packetList.Count == 0) { Logic.updateConsoleDuoBox("poczekalnia"); Thread.Sleep(500); } else { buffer = _packetList.ElementAt(0); //Logic.updateConsoleBox(string.Format("otrzymałem: {0}", buffer[0])); sumForce = 0; if (buffer[0] == _STX && buffer[1] == _sBitmap && buffer.Length == height * width * 2 + 7) { _sx = buffer[2] + buffer[3] * 256; _sy = buffer[4] + buffer[5] * 256; if (_sx != MainSettings.Default.AreaWidth || _sy != MainSettings.Default.AreaHeight) { _packetList.RemoveAt(0); break; //_logic.updateConsoleDuoBox("nieprawidlowa dlugosc ramki \n "); //_logic.updateConsoleDuoBox("\n"); } pixelX = 0; pixelY = 0; scaledPixelX = 0; scaledPixelY = 0; for (int j = 6; j < buffer.Length - 2; j += 2) { force = buffer[j] + buffer[j + 1] * 256; sumForce += force; if (force < 100) { _myColor = Color.Black; } else { _myColor = percentToColor(force, 0, 1000); } //scaledPixelX = _map.getField //if (pixelY < _sy / 2) //{ // if (pixelX >= 10 && pixelX < _sx / 2 - 10) // { // scaledPixelY = pixelY + _sy / 2; // scaledPixelX = scaledPixelY; // scaledPixelY = _sy - pixelX - 1; // } // if (pixelX >= 50 && pixelX < _sx - 10) // { // scaledPixelY = pixelY + _sy / 2; // scaledPixelX = scaledPixelY; // scaledPixelY = _sy - pixelX - 1; // } // if (pixelX >= 10 && pixelX < _sx / 2 - 10) // { // if (pixelY < _sy / 2) // scaledPixelY = pixelY + _sy / 2; // else if (pixelY >= _sy / 2) // scaledPixelY = pixelY - _sy / 2; // scaledPixelX = scaledPixelY; // scaledPixelY = _sy - pixelX - 1; // } // /*if (pixelY < _sy / 2) // scaledPixelY = pixelY + _sy / 2; // else if (pixelY >= _sy / 2) // scaledPixelY = pixelY - _sy / 2;*/ for (int k = 0; k < 5; k++) { for (int l = 0; l < 5; l++) { _bitmap.SetPixel( scaledPixelX * 5 + k, scaledPixelY * 5 + l, _myColor); } } pixelX++; Logic.updateConsoleBox(string.Format("sumForce: {0}", sumForce)); if (pixelX == MainSettings.Default.AreaWidth) { pixelX = 0; pixelY++; } } _logic.updatePictureBox(_bitmap); /* * for (int x =0; x < _bitmap.Width; x++) * { * for (int y=0; y< _bitmap.Height/2; y++) * { * _myColor = _bitmap.GetPixel(x, y + _bitmap.Height / 2); * _bitmap.SetPixel(x, y + _bitmap.Height / 2, _bitmap.GetPixel(x, y)); * _bitmap.SetPixel(x, y, _myColor); * } * }*/ } if (_packetList.Count > 1) { _packetList.RemoveAt(0); } } } } catch (Exception ex) { Logic.updateConsoleBox(string.Format("Bitmaper: {0}", ex.Message)); } }
public void BuildPacket(byte[] bytes) { try { //_packet[0] = Convert.ToByte(iterator); //_packetList.Add(_packet); //Logic.updateConsoleBox(string.Format("wyslałem: {0}", iterator.ToString())); //iterator++; for (int i = 0; i < bytes.Length; i++) { if (!headerFound && bytes[i] == _STX) { ClearPacket(); _packet[packetSize.Value] = bytes[i]; packetSize++; headerFound = true; } else if (headerFound && bytes[i] == _DLE) { bDLE = true; } else if (headerFound) { if (bDLE) { _packet[packetSize.Value] = bytes[i]; bDLE = false; } else if (bytes[i] == _ETX) { if (packetSize.Value == packetExpectedSize - 1 || Math.Abs(packetSize.Value - packetExpectedSize) < packetExpectedSize * difference / 100) { _packet[packetSize.Value] = bytes[i]; System.IO.File.WriteAllText(string.Format("{0}/binary/correct/{1}.txt", MainSettings.Default.PatientFolderPath, packetCorrect), System.Text.Encoding.Default.GetString(_packet)); _packetList.Add(_packet); ClearPacket(); packetCorrect++; packetsCollected++; headerFound = false; } else { headerFound = false; System.IO.File.WriteAllText(string.Format("{0}/binary/{1}.txt", MainSettings.Default.PatientFolderPath, packetsCollected), System.Text.Encoding.Default.GetString(_packet)); ClearPacket(); packetsCollected++; } } else if (packetSize.Value >= 6407) { ClearPacket(); } else { _packet[packetSize.Value] = bytes[i]; } packetSize++; } } bytes = null; } catch (Exception ex) { Logic.updateConsoleBox(string.Format("Receiver: {0}", ex.Message)); } }