private void SyncProtocol(byte sync) { if (escaped) { // sync byte despues de escape es error serialBufferPtr = 0; escaped = false; return; } if (serialBufferPtr == 0) { // Inicio de trama CopyByteToBuffer(sync); return; } else if (CopyByteToBuffer(sync) >= MIN_FRAME_SIZE) { // Fin de trama SerialPacket pck = new SerialPacket(serialBuffer, serialBufferPtr); if (pck.OkCrc()) { RaiseEventFrameArrived(pck); } } serialBufferPtr = 0; }
private void onPacketArrived(object sender, SerialPacket pck) { byte[] packet = pck.GetPacket(); switch (packet[PACKET_TYPE_OFFSET]) { case SERIAL_PROTO_ACK: if (packet[PACKET_SEQNO_OFFSET] == seqNo) { StopWaitingACK(); } break; case SERIAL_PROTO_PACKET_UNKNOWN: break; case SERIAL_PROTO_PACKET_ACK: // En este caso, debería enviarse ACK a la mota, // pero este tipo de mensaje no esta implementado aún // en TinyOS (?) case SERIAL_PROTO_PACKET_NOACK: default: RaiseMessageArrived(new EventArgMessage(RemovePacketHeader(packet))); break; } //Console.Write("\nFRAME: " + BitConverter.ToString(packet, 0, packet.Length) + "\n"); }
/* * Publica un evento pasando el paquete de la trama como argumento a * todos los suscriptores * del mismo */ protected virtual void RaiseEventFrameArrived(SerialPacket frm) { EventHandler <SerialPacket> handler = packedArrivedEvent; if (handler != null) { handler(this, frm); } }
/* * Publica un evento pasando el paquete de la trama como argumento a * todos los suscriptores * del mismo */ protected virtual void RaiseEventFrameArrived(SerialPacket frm) { EventHandler<SerialPacket> handler = packedArrivedEvent; if (handler != null) { handler(this, frm); } }
private void SyncProtocol(byte sync) { if (escaped) { // sync byte despues de escape es error serialBufferPtr = 0; escaped = false; return; } if (serialBufferPtr == 0) { // Inicio de trama CopyByteToBuffer(sync); return; } else if (CopyByteToBuffer(sync) >= MIN_FRAME_SIZE) { // Fin de trama SerialPacket pck = new SerialPacket(serialBuffer, serialBufferPtr); if (pck.OkCrc()) RaiseEventFrameArrived(pck); } serialBufferPtr = 0; }