public async Task <bool> ProcessData(SocketConnection conn) { connection = conn; if (connection.CurrentFrame == null) { connection.CurrentFrame = FrameFactory.Create(connection.Buffer); if (connection.CurrentFrame == null) { return(true); } } Frame f = connection.CurrentFrame; if (!f.Exam(connection.Buffer)) { return(true); } f.Parse(connection.Buffer); await f.Process(connection); connection.CurrentFrame = null; return(true); }
public async Task <bool> ProcessData(SocketConnection conn) { try { if (conn.CurrentFrame == null) { conn.CurrentFrame = FrameFactory.Create(conn.Buffer); if (conn.CurrentFrame == null) { return(true); } } Frame f = conn.CurrentFrame; if (!f.Exam(conn.Buffer)) { return(true); } f.Parse(conn.Buffer); await f.Process(conn); conn.CurrentFrame = null; return(true); } catch (Exception ex) { Console.WriteLine(ex.Message); return(false); } }
public int Receive(byte[] frame) { var serialNumber = "SN-100-200"; var data = ConvertUtils.ConvertTextToByteArrayInHexadecimal(serialNumber); FrameFactory.Create(frame, MetersOperationsConstants.RESPONSE_SERIAL_NUMBER, data); return(data.Length + 4); }
private static Person CreateTarget(out Context target) { var obj = new Person("Alice"); obj.Occupation = "Student"; target = new Context(obj.ToString()); target.AddFrame(FrameFactory.Create(obj)); obj.Occupation = "Lawyer"; target.AddFrame(FrameFactory.Create(obj)); return(obj); }
public void ContextTest_Evaluate_Not_True() { var obj = new Person("Charlize"); var target = new Context(obj.ToString()); target.AddFrame(FrameFactory.Create(obj)); var expr = new ExpressionNot(new KnowledgeRelation { Relation = "Name of", Subject = "T", Target = obj.ToString() }); var actual = target.Evaluate(expr); Assert.AreEqual(EvaluationResult.True, actual); }
public void ContextTest_Evaluate_Not_False() { var obj = new Person("Charlize"); var target = new Context(obj.ToString()); target.AddFrame(FrameFactory.Create(obj)); var expr = new ExpressionNot(new KnowledgeAttribute { Attribute = "Person", Subject = obj.ToString() }); var actual = target.Evaluate(expr); Assert.AreEqual(EvaluationResult.False, actual); }
public void ConnectWithFormatInvalidError() { //Arrange this.NetworkService = new MySocketTestConnectFormatError(); //Act //Create frame request var frame = FrameFactory.Create(MetersOperationsConstants.REQUEST_CONNECT); this.NetworkService.Send(frame); //Create frame response var buffer = new byte[100]; var sizeReceived = this.NetworkService.Receive(buffer); //Validate response this.Validator.ValidateFrame(buffer, sizeReceived, MetersOperationsConstants.RESPONSE_CONNECT); }
public void ContextTest_Evaluate_Xor_LeftFalse() { var obj = new Person("Charlize"); var target = new Context(obj.ToString()); target.AddFrame(FrameFactory.Create(obj)); var expr = new ExpressionXor( new KnowledgeRelation { Relation = "Name of", Subject = "Kate", Target = obj.ToString() }, new KnowledgeAttribute { Attribute = "Person", Subject = obj.ToString() } ); var actual = target.Evaluate(expr); Assert.AreEqual(EvaluationResult.True, actual); }
//I try to generalize this method but i have not time for it protected byte[] TransferData(byte operation) { //Create frame request var frame = FrameFactory.Create(operation); this.NetworkService.Send(frame); //Create buffer to save received data var buffer = new byte[BUFFER_DIMENSION]; int sizeReceived = this.NetworkService.Receive(buffer); //Validate response try { this.Validator.ValidateFrame(buffer, sizeReceived, operation); } catch (OversizedException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); return(null); } catch (InvalidFormatException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); return(null); } catch (ErrorException) { this.NetworkService.Send(frame); return(null); } catch (ChecksumErrorException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); return(null); } return(buffer); }
public double ReadEnergyValue(DateTime dateTime) { //Convert DateTime in Hex (byte[]) var dateTimeInHexadecimal = ConvertUtils.ConvertDateTimeToByteArrayInHexadecimal(dateTime); //Create frame request var frame = FrameFactory.Create(MetersOperationsConstants.REQUEST_READ_ENERGY_VALUE, dateTimeInHexadecimal); this.NetworkService.Send(frame); //Create buffer to save received data var buffer = new byte[BUFFER_DIMENSION]; var sizeReceived = this.NetworkService.Receive(buffer); //Validate response try { this.Validator.ValidateFrame(buffer, sizeReceived, MetersOperationsConstants.RESPONSE_READ_ENERGY_VALUE); } catch (OversizedException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (InvalidFormatException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (ErrorException) { this.NetworkService.Send(frame); } catch (ChecksumErrorException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } return(ConvertUtils.ConvertByteArrayInHexadecimalToDouble(buffer)); }
public void ContextTest_Evaluate_Xor_BothFalse() { var obj = new Person("Charlize") { Gender = Person.GenderType.Female }; var target = new Context(obj.ToString()); target.AddFrame(FrameFactory.Create(obj)); var expr = new ExpressionXor( new KnowledgeRelation { Relation = "Name of", Subject = "T", Target = obj.ToString() }, new KnowledgeRelation { Relation = "Gender of", Subject = "female", Target = obj.ToString() } ); var actual = target.Evaluate(expr); Assert.AreEqual(EvaluationResult.False, actual); }
public void Disconnect() { //Create frame request var frame = FrameFactory.Create(MetersOperationsConstants.REQUEST_DISCONNECT); this.NetworkService.Send(frame); //Create buffer to save received data var buffer = new byte[BUFFER_DIMENSION]; var sizeReceived = this.NetworkService.Receive(buffer); //Validate response try { this.Validator.ValidateFrame(buffer, sizeReceived, MetersOperationsConstants.RESPONSE_DISCONNECT); } catch (OversizedException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (InvalidFormatException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (ErrorException) { this.NetworkService.Send(frame); } catch (ChecksumErrorException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } //Switch off socket connection this.NetworkService.Disconnect(); }
public void Connect() { //Create socket connection to exchange data between client and server this.NetworkService.Connect(this.Ip, this.Port); //Create frame request var frame = FrameFactory.Create(MetersOperationsConstants.REQUEST_CONNECT); this.NetworkService.Send(frame); //Create frame response var buffer = new byte[BUFFER_DIMENSION]; var sizeReceived = this.NetworkService.Receive(buffer); //Validate response try { this.Validator.ValidateFrame(buffer, sizeReceived, MetersOperationsConstants.RESPONSE_CONNECT); } catch (OversizedException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (InvalidFormatException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (ErrorException) { this.NetworkService.Send(frame); } catch (ChecksumErrorException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } }
public string ReadSerialNumber() { //Create frame request var frame = FrameFactory.Create(MetersOperationsConstants.REQUEST_SERIAL_NUMBER); this.NetworkService.Send(frame); //Create buffer to save received data var buffer = new byte[BUFFER_DIMENSION]; var sizeReceived = this.NetworkService.Receive(buffer); var dataSize = ConvertUtils.ConvertByteInHexadecimalToInt(buffer[2]); //Validate response try { this.Validator.ValidateFrame(buffer, sizeReceived, MetersOperationsConstants.RESPONSE_SERIAL_NUMBER); } catch (OversizedException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (InvalidFormatException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (ErrorException) { this.NetworkService.Send(frame); } catch (ChecksumErrorException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } return(ConvertUtils.ConvertByteArrayInHexadecimalToText(buffer, dataSize)); }
public DateTime ReadDateTime() { //Create frame request var frame = FrameFactory.Create(MetersOperationsConstants.REQUEST_DATE_AND_TIME); this.NetworkService.Send(frame); //Create buffer to save received data var buffer = new byte[BUFFER_DIMENSION]; var sizeReceived = this.NetworkService.Receive(buffer); //Validate response try { this.Validator.ValidateFrame(buffer, sizeReceived, MetersOperationsConstants.RESPONSE_DATE_AND_TIME); } catch (OversizedException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (InvalidFormatException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } catch (ErrorException) { this.NetworkService.Send(frame); } catch (ChecksumErrorException) { frame = FrameFactory.Create(MetersOperationsConstants.ERROR); this.NetworkService.Send(frame); } return(ConvertUtils.ConvertByteArrayInHexadecimalToDateTime(buffer)); }
public void GetSerialNumberWithSuccess() { //Arrange this.NetworkService = new MySocketTestGetSerialNumber(); //Act //Create frame request var frame = FrameFactory.Create(MetersOperationsConstants.REQUEST_SERIAL_NUMBER); this.NetworkService.Send(frame); //Create frame response var buffer = new byte[100]; var sizeReceived = this.NetworkService.Receive(buffer); //Validate response this.Validator.ValidateFrame(buffer, sizeReceived, MetersOperationsConstants.RESPONSE_SERIAL_NUMBER); var serialNumber = ConvertUtils.ConvertByteArrayInHexadecimalToText(buffer, sizeReceived); //Assert Assert.AreEqual("SN-100-200", serialNumber); }
public int Receive(byte[] frame) { FrameFactory.Create(frame, MetersOperationsConstants.RESPONSE_DISCONNECT, 0x00, 0x00); return(5); }
public void Create_A_Strike_When_All_Pins_Down_After_One_Roll() { Frame frame = FrameFactory.Create("X"); Check.That(frame).IsInstanceOf <Strike>(); }
public int Receive(byte[] frame) { FrameFactory.Create(frame, MetersOperationsConstants.ERROR, 0x00, 0x00); return(5); }
public void Create_a_Spare_When_All_Pins_Fallen_After_Two_Rolls() { Frame frame = FrameFactory.Create("2/"); Check.That(frame).IsInstanceOf <Spare>(); }
public void Create_a_Basic_Frame_When_Not_All_Pins_Are_Fallen() { Frame frame = FrameFactory.Create("26"); Check.That(frame).IsInstanceOf <BasicFrame>(); }