Example #1
0
        private bool ProcessJob(string json)
        {
            bool         done      = true;
            OpenALPRData palteInfo = JsonHelper.ToClass <OpenALPRData>(json);

            if (palteInfo != null)
            {
                switch (palteInfo.Data_type)
                {
                case "alpr_group":
                case "alpr_results":
                    try
                    {
                        if (!palteInfo.Is_parked)
                        {
                            done = ProcessAlprGroupOrResults_New(palteInfo);
                        }
                        else
                        {
                            Program.Log.Info($"{palteInfo.Best_plate_number} is parked, no Bookmark or Alert will be created.");
                        }
                    }
                    catch (Exception ex)
                    {
                        done = false;
                        Program.Log.Error(null, ex);
                    }
                    break;

                case "heartbeat":
                    Heartbeats heartbeats = JsonHelper.ToClass <Heartbeats>(json);
                    try
                    {
                        done = ProcessAlprHeartbeat(heartbeats);
                    }
                    catch (Exception ex)
                    {
                        done = false;
                        Program.Log.Error(null, ex);
                    }
                    break;

                default:
                    done = true;
                    break;
                }
            }

            //************

            return(done);
        }
Example #2
0
        // Auto mapping happened when there is an ip address in videoStream.Url : rtsp://mhill:[email protected]/onvif-media / media.amp ? profile = balanced_h264 & sessiontimeout = 60 & streamtype = unicast
        private bool ProcessAlprHeartbeat(Heartbeats heartbeats)
        {
            if (heartbeats != null)
            {
                for (int i = 0; i < heartbeats.Video_streams.Count; i++)
                {
                    VideoStream videoStream = heartbeats.Video_streams[i];
                    if (videoStream != null)
                    {
                        KeyValuePair <string, string> kv = new KeyValuePair <string, string>(videoStream.Camera_id.ToString(), videoStream.Camera_name);
                        if (!openALPRList.Contains(kv))
                        {
                            openALPRList.Add(kv);
                            OpenALPRLNameHelper.SaveCameraNameList(openALPRList);
                        }

                        long cameraId = videoStream.Camera_id;
                        if (!string.IsNullOrEmpty(videoStream.Url) && AutoMapping) ////rtsp://mhill:[email protected]/onvif-media / media.amp ? profile = balanced_h264 & sessiontimeout = 60 & streamtype = unicast
                        {
                            Match match = Regex.Match(videoStream.Url, @"\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b");
                            if (match.Success)
                            {
                                // 1st case (No Camera_id found): AXIS M1054 Network Camera (192.168.0.36) - Camera 1|TestCamera|
                                bool exists = cameraList.Any(m => m.OpenALPRId == videoStream.Camera_id.ToString());

                                if (!exists)
                                {
                                    exists = cameraList.Any(m => m.OpenALPRname == videoStream.Camera_name);
                                    if (exists)
                                    {
                                        IEnumerable <OpenALPRmilestoneCameraName> cameras = cameraList.Where(m => m.OpenALPRname == videoStream.Camera_name);
                                        foreach (OpenALPRmilestoneCameraName camera in cameras)
                                        {
                                            camera.OpenALPRId = videoStream.Camera_id.ToString();
                                        }

                                        CameraMapper.SaveCameraList(cameraList);
                                    }
                                }

                                // 2nd case (No Camera_id No Camera_Name found): AXIS M1054 Network Camera (192.168.0.36) - Camera 1
                                if (!exists)
                                {
                                    Item milestoneCamera = MilestoneServer.GetCameraItem(match.Captures[0].Value);
                                    if (milestoneCamera != null)
                                    {
                                        exists = cameraList.Any(m => m.MilestoneName == milestoneCamera.Name);
                                        if (exists)
                                        {
                                            IEnumerable <OpenALPRmilestoneCameraName> cameras = cameraList.Where(m => m.MilestoneName == milestoneCamera.Name);
                                            foreach (OpenALPRmilestoneCameraName camera in cameras)
                                            {
                                                camera.OpenALPRId   = videoStream.Camera_id.ToString();
                                                camera.OpenALPRname = videoStream.Camera_name;
                                            }
                                            CameraMapper.SaveCameraList(cameraList);
                                        }
                                        else
                                        {
                                            OpenALPRmilestoneCameraName camera = new OpenALPRmilestoneCameraName
                                            {
                                                MilestoneName = milestoneCamera.Name,
                                                OpenALPRId    = videoStream.Camera_id.ToString(),
                                                OpenALPRname  = videoStream.Camera_name
                                            };
                                            cameraList.Add(camera);
                                            CameraMapper.SaveCameraList(cameraList);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(true);
        }