public TrackObjectZones(byte[] data, TrackAI ai)
        {
            this.frontView = new TrackObjectZonesView(new[] { data[0], data[1], data[2], data[3] }, ai);
            this.rearView  = new TrackObjectZonesView(new[] { data[5], data[6], data[7], data[8] }, ai);

            this.frontView.DataChanged += this.frontView_DataChanged;
            this.rearView.DataChanged  += this.rearView_DataChanged;
        }
        private void TestGetBytes(byte[] zoneData, byte[] targetData)
        {
            byte[] dataBefore = new byte[zoneData.Length + 1 + targetData.Length];
            Array.Copy(zoneData, dataBefore, zoneData.Length);
            dataBefore[zoneData.Length] = 0xFF; // Zone data ends with 0xFF
            Array.Copy(targetData, 0, dataBefore, zoneData.Length + 1, targetData.Length);

            TrackAI trackAI = new TrackAI(zoneData, targetData, null);

            byte[] dataAfter = trackAI.GetBytes();

            Assert.AreEqual(dataBefore, dataAfter);
        }
 public TrackObjectZonesView(byte[] data, TrackAI ai)
 {
     this.ai    = ai;
     this.zones = new byte[4];
     this.SetBytes(data);
 }