Esempio n. 1
0
        public Task Write(int id, byte[] data)
        {
            var request = new WriteDataRequest
            {
                TerminalId = id,
                Data       = data
            };

            return(_appServiceConnection.SendMessageAsync(CreateMessage(request)));
        }
        private void WriteButton_Click(object sender, RoutedEventArgs e)
        {
            var data = GetWriteData();

            if (data == null)
            {
                return;
            }

            WriteDataRequest?.Invoke(data);
        }
Esempio n. 3
0
        public WriteDataResponse Write(WriteDataRequest request)
        {
            using var channel = GrpcChannel.ForAddress($"http://{_cluster.Leader}:5000");
            var client = new Leader.LeaderClient(channel);

            var response = client.Write(new WriteRequest
            {
                Message = Google.Protobuf.ByteString.CopyFromUtf8(request.Message)
            });

            return(new WriteDataResponse {
                Offset = response.Offset
            });
        }
Esempio n. 4
0
        private int WriteData(byte[] data, RobotPacket.PacketID packetID)
        {
            crcCount++;
            if (CancelProcess)
            {
                SendCancel();
                return 2;
            }
            var writeMotionDataRequest = new WriteDataRequest(data, packetID);
            //var bytes = writeMotionDataRequest.BuildRequest();
            //SendData(bytes);
            //System.Threading.Thread.Sleep(5);
            //return 1;
            if (crcCount == WirelessConnection.MaxCrcRetry)
            {
                crcCount = 0;
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: reach max crc");
                    _logger.Error("WriteData: reach max crc");
                }

                return 0;
            }
            var reply = writeMotionDataRequest.Process() as RobotReplyData;
            if (reply == null)
            {
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: reply is null");
                    _logger.Error("WriteData: reply is null");
                }

                return 0;
            }

            // Check reply error
            if (reply.Type == RobotReplyData.ReplyType.CRC)
            {
                DebugHelper.WriteLine("WriteData: CRC error");
                _logger.Error("WriteData: CRC error");
                return WriteData(data, packetID);
            }
            else if (reply.Type != RobotReplyData.ReplyType.Success)
            {
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: reply is not success");
                    _logger.Error("WriteData: reply is not success");
                }

                return WriteData(data, packetID);
                //return 0;
            }

            if (reply.Data.Length == 0)
            {
                if (_writeProcess) _logger.Error("WriteData: reply data is null");
                return 0;
            }
            if (GlobalFunction.LE4ToDec(reply.Data) != data.Length)
            {
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: cannot write all data");
                    _logger.Error("WriteData: cannot write all data");
                }

                return 0;
            }
            crcCount = 0;
            return 1;
        }
Esempio n. 5
0
        private int WriteData(byte[] data, RobotPacket.PacketID packetID)
        {
            crcCount++;
            if (CancelProcess)
            {
                SendCancel();
                return(2);
            }
            var writeMotionDataRequest = new WriteDataRequest(data, packetID);

            //var bytes = writeMotionDataRequest.BuildRequest();
            //SendData(bytes);
            //System.Threading.Thread.Sleep(5);
            //return 1;
            if (crcCount == WirelessConnection.MaxCrcRetry)
            {
                crcCount = 0;
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: reach max crc");
                    _logger.Error("WriteData: reach max crc");
                }

                return(0);
            }
            var reply = writeMotionDataRequest.Process() as RobotReplyData;

            if (reply == null)
            {
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: reply is null");
                    _logger.Error("WriteData: reply is null");
                }

                return(0);
            }

            // Check reply error
            if (reply.Type == RobotReplyData.ReplyType.CRC)
            {
                DebugHelper.WriteLine("WriteData: CRC error");
                _logger.Error("WriteData: CRC error");
                return(WriteData(data, packetID));
            }
            else if (reply.Type != RobotReplyData.ReplyType.Success)
            {
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: reply is not success");
                    _logger.Error("WriteData: reply is not success");
                }

                return(WriteData(data, packetID));
                //return 0;
            }

            if (reply.Data.Length == 0)
            {
                if (_writeProcess)
                {
                    _logger.Error("WriteData: reply data is null");
                }
                return(0);
            }
            if (GlobalFunction.LE4ToDec(reply.Data) != data.Length)
            {
                if (_writeProcess)
                {
                    DebugHelper.WriteLine("WriteData: cannot write all data");
                    _logger.Error("WriteData: cannot write all data");
                }

                return(0);
            }
            crcCount = 0;
            return(1);
        }