Example #1
0
        public static void sendTrackBeamData(TrackBeamData trackBeamData)
        {
            byte[] body = Encoding.Default.GetBytes(JsonConvert.SerializeObject(trackBeamData));

            beamTrackDataChannel.BasicPublish(exchange: "beamTrackData",
                                              routingKey: "",
                                              basicProperties: null,
                                              body: body);
        }
Example #2
0
        public static void onReceiveTracks(SystemTracks trackData)
        {
            double heading = BeamsBuffer.Heading;

            //retreive the actual beams from the BeamBuffer
            byte[][] beamArray = BeamsBuffer.getBeamsAndFlush();

            if (beamArray == null)
            {
                return;
            }

            foreach (var track in trackData.systemTracks)
            {
                TrackBeamData trackBeamData = CalcBeams(track.trackID, heading, track.relativeBearing, beamArray);
                TrackBeamDataSender.sendTrackBeamData(trackBeamData);
            }
        }
Example #3
0
        public static TrackBeamData CalcBeams(long trackNum, double heading, double RB, byte[][] beamArray)
        {
            var trackBeamData = new TrackBeamData();

            trackBeamData.TrackNum = (int)trackNum;

            double       trackDegree = (heading + RB) % 360;
            const double factor      = 192.0 / 360.0;
            double       beamNumber  = trackDegree * factor;

            int    beamNum1   = (int)(Math.Floor(beamNumber));
            int    beamNum2   = (int)(Math.Ceiling(beamNumber));
            double precentage = Math.Abs(beamNum2 - beamNumber);

            trackBeamData.Beam1      = beamArray[beamNum1];
            trackBeamData.Beam2      = beamArray[beamNum2];
            trackBeamData.Precentage = precentage;

            return(trackBeamData);
        }