public void CitpCaExFixtureModifyTest() { CaExFixtureModify sentPacket = new CaExFixtureModify(); for (int i = 0; i < 4; i++) { CaExFixtureModify.FixtureChange newFixture = new CaExFixtureModify.FixtureChange(); newFixture.FixtureId = 1690; newFixture.ChangedFields = CaExFixtureModify.Modification.Circuit & CaExFixtureModify.Modification.UnitNumber; newFixture.Patched = true; newFixture.DMXUniverse = 12; newFixture.DMXAddress = (ushort)(1 + (i * 24)); newFixture.Unit = "16"; newFixture.Channel = 10; newFixture.Circuit = "H1.1"; newFixture.Note = "A fixture of some sort"; newFixture.Position = new Coordinate() { X = 5, Y = 2, Z = -4 }; newFixture.Angle = new Coordinate() { X = 180, Y = 90, Z = 90 }; sentPacket.Fixtures.Add(newFixture); } CaExFixtureModify received = CitpPacketTester.SendAndReceiveCaExPacket(sentPacket) as CaExFixtureModify; int fixtureCount = sentPacket.Fixtures.Count(); Assert.AreEqual(fixtureCount, received.Fixtures.Count(), "Option count mismatch"); for (int i = 0; i < fixtureCount; i++) { Assert.AreEqual(sentPacket.Fixtures[i].FixtureId, received.Fixtures[i].FixtureId, "Id is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].Patched, received.Fixtures[i].Patched, "IsPatched is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].DMXUniverse, received.Fixtures[i].DMXUniverse, "DMXUniverse is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].DMXAddress, received.Fixtures[i].DMXAddress, "DMXAddress is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].Unit, received.Fixtures[i].Unit, "Unit is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].Channel, received.Fixtures[i].Channel, "ManufacturerName is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].Circuit, received.Fixtures[i].Circuit, "ManufacturerName is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].Note, received.Fixtures[i].Note, "Note is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].Position, received.Fixtures[i].Position, "Position is not equal."); Assert.AreEqual(sentPacket.Fixtures[i].Angle, received.Fixtures[i].Angle, "Angle is not equal."); } }
private static CitpPacket BuildCaEx(CitpRecieveData data) { CaExHeader header = new CaExHeader(0x0); header.ReadData(data.GetReader()); CitpPacket packet = null; switch (header.ContentCode) { case CaExContentCodes.Nack: packet = new CaExNack(); break; case CaExContentCodes.GetLiveViewStatus: packet = new CaExGetLiveViewStatus(); break; case CaExContentCodes.LiveViewStatus: packet = new CaExLiveViewStatus(); break; case CaExContentCodes.GetLiveViewImage: packet = new CaExGetLiveViewImage(); break; case CaExContentCodes.LiveViewImage: packet = new CaExLiveViewImage(); break; case CaExContentCodes.SetCueRecordingCapabilities: packet = new CaExSetCueRecordingCapabilities(); break; case CaExContentCodes.RecordCue: packet = new CaExRecordCue(); break; case CaExContentCodes.SetRecorderClearingCapabilities: packet = new CaExSetRecorderClearingCapabilities(); break; case CaExContentCodes.ClearRecorder: packet = new CaExClearRecorder(); break; case CaExContentCodes.EnterShow: packet = new CaExEnterShow(); break; case CaExContentCodes.LeaveShow: packet = new CaExLeaveShow(); break; case CaExContentCodes.FixtureConsoleStatus: packet = new CaExFixtureConsoleStatus(); break; case CaExContentCodes.FixtureListRequest: packet = new CaExFixtureListRequest(); break; case CaExContentCodes.FixtureList: packet = new CaExFixtureList(); break; case CaExContentCodes.FixtureModify: packet = new CaExFixtureModify(); break; case CaExContentCodes.FixtureRemove: packet = new CaExFixtureRemove(); break; case CaExContentCodes.FixtureSelection: packet = new CaExFixtureSelection(); break; case CaExContentCodes.FixtureIdentify: packet = new CaExFixtureIdentify(); break; case CaExContentCodes.GetLaserFeedList: //Not implemented yet, left here as placeholder. return(null); default: return(null); } packet.ReadData(data.GetReader()); return(packet); }