Commit 275689dc authored by DESKTOP-73N29FP\12868's avatar DESKTOP-73N29FP\12868

提交代码都修改为utf8格式

parent 79ed8fd2
cmake_minimum_required(VERSION 3.0.2)
cmake_minimum_required(VERSION 3.0.2)
project(jfx_traffic_events)
set(CMAKE_CXX_FLAGS "-std=c++11")
......
#include <stdio.h>
#include <stdio.h>
#include <unistd.h>
#include "EventsRos.h"
#include "http_client_curl.h"
......@@ -14,7 +14,7 @@ int EventsRos::loadConfig(ros::NodeHandle& nh)
SDK_LOG(SDK_INFO, "EventsRos::loadConfig");
char url[1024] = { 0 };
// 自有平台
// 自有平台
snprintf(url, 1023, "http://%s:%d/traffic/uploadParticipants", m_ip.c_str(), m_port);
m_Url = url;
......@@ -60,7 +60,7 @@ int EventsRos::loadConfig(ros::NodeHandle& nh)
}
#ifdef _ROS_XISHAN_
void EventsRos::TrackCallBackFunc(const jfx_common_msgs::OutFusionObjsConstPtr& msg)//接受ros发过来的消息
void EventsRos::TrackCallBackFunc(const jfx_common_msgs::OutFusionObjsConstPtr& msg)//接受ros发过来的消息
{
if (msg->objs.size() <= 0)
{
......@@ -75,25 +75,25 @@ void EventsRos::TrackCallBackFunc(const jfx_common_msgs::OutFusionObjsConstPtr&
obj.dev_no = item.dev_no;
obj.mec_no = item.mec_no;
obj.join_id = item.join_id;
obj.id = item.all_id;//物体id
obj.id = item.all_id;//物体id
obj.cross_name = item.cross_name;
obj.inner_pos = item.inner_pos;
obj.is_turn = item.is_turn;
obj.laneId = item.lane;
obj.time = item.time;//时间戳
obj.prob = item.Prob;//置信度
obj.name = item.type;//类型名称,其中包括car truck bus 自行车,行人
obj.licensePlateNumber = item.plate_no;//车牌号,没有就是:NONE
//obj.vehicleColor = item.color_name;//车颜色,没有就是:NONE
obj.objH = item.obj_h;//检测出车的3D框高
obj.objW = item.obj_w;//检测出车的3D框宽
obj.objL = item.obj_l;//检测出车的3D框长
obj.nowX = item.now_x;//检测出车的3D框中心点X
obj.nowY = item.now_y;//检测出车的3D框中心点Y
obj.lat = item.lat;//车所在位置的纬度
obj.lon = item.lon;//车所在位置的经度
obj.heading = item.heading;//车运行的朝向,北为0,顺时针0-360
obj.speed = item.speed;//计算出车的速度
obj.time = item.time;//时间戳
obj.prob = item.Prob;//置信度
obj.name = item.type;//类型名称,其中包括car truck bus 自行车,行人
obj.licensePlateNumber = item.plate_no;//车牌号,没有就是:NONE
//obj.vehicleColor = item.color_name;//车颜色,没有就是:NONE
obj.objH = item.obj_h;//检测出车的3D框高
obj.objW = item.obj_w;//检测出车的3D框宽
obj.objL = item.obj_l;//检测出车的3D框长
obj.nowX = item.now_x;//检测出车的3D框中心点X
obj.nowY = item.now_y;//检测出车的3D框中心点Y
obj.lat = item.lat;//车所在位置的纬度
obj.lon = item.lon;//车所在位置的经度
obj.heading = item.heading;//车运行的朝向,北为0,顺时针0-360
obj.speed = item.speed;//计算出车的速度
objsPtr->objs.emplace_back(obj);
}
objsPtr->devNo = m_devNo;
......@@ -114,23 +114,23 @@ void EventsRos::TrackCallBackFunc(const jfxrosperceiver::det_tracking_arrayConst
for (auto& item : msg->array)
{
TrkObj obj;
obj.time = item.frame;//时间戳
obj.prob = item.score;//置信度
obj.name = item.name;//类型名称,其中包括car truck bus 自行车,行人
obj.type = item.type;//类型值,基本上与上面的类型对应
obj.licensePlateNumber = item.license_plate_number;//车牌号,没有就是:NONE
obj.vehicleColor = item.color_name;//车颜色,没有就是:NONE
obj.objH = item.h;//检测出车的3D框高
obj.objW = item.w;//检测出车的3D框宽
obj.objL = item.l;//检测出车的3D框长
obj.nowX = item.x;//检测出车的3D框中心点X
obj.nowY = item.y;//检测出车的3D框中心点Y
obj.nowZ = item.z;//检测出车的3D框中心点Z
obj.lat = item.Lat;//车所在位置的纬度
obj.lon = item.Long;//车所在位置的经度
obj.heading = item.rot_y;//车运行的朝向,北为0,顺时针0-360
obj.id = item.obj_id;//物体id
obj.speed = sqrt(pow(item.v_x, 2) + pow(item.v_y, 2) + pow(item.v_z, 2));//计算出车的速度
obj.time = item.frame;//时间戳
obj.prob = item.score;//置信度
obj.name = item.name;//类型名称,其中包括car truck bus 自行车,行人
obj.type = item.type;//类型值,基本上与上面的类型对应
obj.licensePlateNumber = item.license_plate_number;//车牌号,没有就是:NONE
obj.vehicleColor = item.color_name;//车颜色,没有就是:NONE
obj.objH = item.h;//检测出车的3D框高
obj.objW = item.w;//检测出车的3D框宽
obj.objL = item.l;//检测出车的3D框长
obj.nowX = item.x;//检测出车的3D框中心点X
obj.nowY = item.y;//检测出车的3D框中心点Y
obj.nowZ = item.z;//检测出车的3D框中心点Z
obj.lat = item.Lat;//车所在位置的纬度
obj.lon = item.Long;//车所在位置的经度
obj.heading = item.rot_y;//车运行的朝向,北为0,顺时针0-360
obj.id = item.obj_id;//物体id
obj.speed = sqrt(pow(item.v_x, 2) + pow(item.v_y, 2) + pow(item.v_z, 2));//计算出车的速度
objsPtr->objs.emplace_back(obj);
}
m_jfx_events.PushEventInfos(objsPtr);
......
#pragma once
#pragma once
#include "LogBase.h"
#include "ros/ros.h"
#include "JfxEvents.h"
......@@ -14,7 +14,7 @@
/**
* @brief ros系统和event类衔接的类,ros的发送和接受都放到这里
* @brief ros系统和event类衔接的类,ros的发送和接受都放到这里
*/
class EventsRos
{
......@@ -25,27 +25,27 @@ public:
int loadConfig(ros::NodeHandle& nh);
#ifdef _ROS_XISHAN_
void TrackCallBackFunc(const jfx_common_msgs::OutFusionObjsConstPtr& msg);//接受ros发过来的消息
void TrackCallBackFunc(const jfx_common_msgs::OutFusionObjsConstPtr& msg);//接受ros发过来的消息
#else
void TrackCallBackFunc(const jfxrosperceiver::det_tracking_arrayConstPtr& msg);//接受ros发过来的消息
void TrackCallBackFunc(const jfxrosperceiver::det_tracking_arrayConstPtr& msg);//接受ros发过来的消息
#endif
int Start();
void SendEventsCb(TrkObjsPtr& outs);//发送event事件的函数
void SendRosEvents(TrkObjsPtr& outs);//发送event事件的函数
void SendEventsCb(TrkObjsPtr& outs);//发送event事件的函数
void SendRosEvents(TrkObjsPtr& outs);//发送event事件的函数
JfxEvents m_jfx_events;//event处理对象
JfxEvents m_jfx_events;//event处理对象
std::string m_devNo;
std::string m_mecNo;
std::string m_Url;//发送的地址
std::string m_Url;//发送的地址
std::string m_ip;
int m_port;
std::string m_folder;//当前目录
std::string m_folder;//当前目录
ros::Publisher m_pub;
};
\ No newline at end of file

#include "Component.h"
#include <sys/time.h>
#include <unistd.h>
......@@ -14,20 +14,20 @@ uint64_t GetCurTime()
bool CheckCarLane(jf::LaneType laneType) {
switch (laneType) {
case jf::LaneType::NormalLane: // 普通车道
case jf::LaneType::EnterLane: // 入口车道
case jf::LaneType::ExitLane: // 出口车道
case jf::LaneType::ConnectLane: // 连接车道
case jf::LaneType::EmergencyLane: // 应急车道
case jf::LaneType::EmergencyStopLane: // 紧急停车道
case jf::LaneType::AcceleratingLane: // 加速车道
case jf::LaneType::DeceleratingLane: // 减速车道
case jf::LaneType::HazardLane: // 避险车道
//case jf::LaneType::JunctionLane: // 路口车道
//case jf::LaneType::UTurnLane: // 掉头车道
case jf::LaneType::BusLane: // 公交车道
case jf::LaneType::TidalLane: // 潮汐(可变) 车道
case jf::LaneType::HOVHighLoadLane: // HOV 高承载车道
case jf::LaneType::NormalLane: // 普通车道
case jf::LaneType::EnterLane: // 入口车道
case jf::LaneType::ExitLane: // 出口车道
case jf::LaneType::ConnectLane: // 连接车道
case jf::LaneType::EmergencyLane: // 应急车道
case jf::LaneType::EmergencyStopLane: // 紧急停车道
case jf::LaneType::AcceleratingLane: // 加速车道
case jf::LaneType::DeceleratingLane: // 减速车道
case jf::LaneType::HazardLane: // 避险车道
//case jf::LaneType::JunctionLane: // 路口车道
//case jf::LaneType::UTurnLane: // 掉头车道
case jf::LaneType::BusLane: // 公交车道
case jf::LaneType::TidalLane: // 潮汐(可变) 车道
case jf::LaneType::HOVHighLoadLane: // HOV 高承载车道
return true;
default:
break;
......@@ -37,20 +37,20 @@ bool CheckCarLane(jf::LaneType laneType) {
bool CheckCarLaneAll(jf::LaneType laneType) {
switch (laneType) {
case jf::LaneType::NormalLane: // 普通车道
case jf::LaneType::EnterLane: // 入口车道
case jf::LaneType::ExitLane: // 出口车道
case jf::LaneType::ConnectLane: // 连接车道
case jf::LaneType::EmergencyLane: // 应急车道
case jf::LaneType::EmergencyStopLane: // 紧急停车道
case jf::LaneType::AcceleratingLane: // 加速车道
case jf::LaneType::DeceleratingLane: // 减速车道
case jf::LaneType::HazardLane: // 避险车道
case jf::LaneType::JunctionLane: // 路口车道
case jf::LaneType::UTurnLane: // 掉头车道
case jf::LaneType::BusLane: // 公交车道
case jf::LaneType::TidalLane: // 潮汐(可变) 车道
case jf::LaneType::HOVHighLoadLane: // HOV 高承载车道
case jf::LaneType::NormalLane: // 普通车道
case jf::LaneType::EnterLane: // 入口车道
case jf::LaneType::ExitLane: // 出口车道
case jf::LaneType::ConnectLane: // 连接车道
case jf::LaneType::EmergencyLane: // 应急车道
case jf::LaneType::EmergencyStopLane: // 紧急停车道
case jf::LaneType::AcceleratingLane: // 加速车道
case jf::LaneType::DeceleratingLane: // 减速车道
case jf::LaneType::HazardLane: // 避险车道
case jf::LaneType::JunctionLane: // 路口车道
case jf::LaneType::UTurnLane: // 掉头车道
case jf::LaneType::BusLane: // 公交车道
case jf::LaneType::TidalLane: // 潮汐(可变) 车道
case jf::LaneType::HOVHighLoadLane: // HOV 高承载车道
return true;
default:
break;
......
#pragma once
#pragma once
#include <MapInterface.hpp>
......@@ -7,5 +7,5 @@
uint64_t GetCurTime();
bool CheckCarLane(jf::LaneType laneType);//检查除了路口之外的道路类型
bool CheckCarLaneAll(jf::LaneType laneType);//机动车道路类型
bool CheckCarLane(jf::LaneType laneType);//检查除了路口之外的道路类型
bool CheckCarLaneAll(jf::LaneType laneType);//机动车道路类型
/*
/*
* SafeQueue.hpp
* Copyright (C) 2019 Alfredo Pons Menargues <apons@linucleus.com>
*
......@@ -115,7 +115,7 @@ class SafeQueue
bool ret = true;
if (m_max_num_items > 0 && m_queue.size() > m_max_num_items)
{
//修改为队列里大于这个值,pop出老的,push新的
//修改为队列里大于这个值,pop出老的,push新的
out = m_queue.front();
m_queue.pop();
ret = false;
......@@ -138,7 +138,7 @@ class SafeQueue
bool ret = true;
if (m_max_num_items > 0 && m_queue.size() > m_max_num_items)
{
//修改为队列里大于这个值,pop出老的,push新的
//修改为队列里大于这个值,pop出老的,push新的
out = m_queue.front();
m_queue.pop();
ret = false;
......
#pragma once
#pragma once
/*
__ _____ _____ _____
......
//
//
// Created by youle on 20-10-26.
//
......
//
//
// Created by youle on 20-10-26.
//
......
This diff is collapsed.
This diff is collapsed.

#include "config.h"
#include "LogBase.h"
......@@ -56,7 +56,7 @@ void EventsConfig::PacketArea()
//min_retr_speed *= 0.1;
//min_land_speed *= 0.1;
//打印参数
//打印参数
SDK_LOG(SDK_INFO, "high_speed_interval = %d", high_speed_interval);
SDK_LOG(SDK_INFO, "low_speed_interval = %d", low_speed_interval);
SDK_LOG(SDK_INFO, "illegal_park_interval = %d", illegal_park_interval);
......@@ -75,7 +75,7 @@ void EventsConfig::PacketArea()
}
int EventsConfig::IsInArea(double& lat, double& lon)
{
//检查是否是禁止停车区域
//检查是否是禁止停车区域
for (auto iter : forbiddenAreas)
{
if (lat > iter.minLat && lat < iter.maxLat &&
......
#pragma once
#pragma once
#include <string>
#include <vector>
......@@ -14,7 +14,7 @@ struct ForbiddenArea
/**
* @brief 配置信息结构
* @brief 配置信息结构
*/
struct EventsConfig
{
......@@ -33,26 +33,26 @@ struct EventsConfig
std::string pro_path;
std::string pro_dir;
std::string map_cfg;
int32_t high_speed_interval;//检测高速行驶的时间间隔,毫秒
int32_t low_speed_interval;//检测低速行驶的时间间隔,毫秒
int32_t illegal_park_interval;//检测非法停车的时间间隔,毫秒
int32_t motor_illegal_lane_interval;//检测机动车占用非机动车的时间间隔,毫秒
int32_t nonmotor_illegal_lane_interval;//检测非机动车占用机动车的时间间隔,毫秒
int32_t retrograde_interval;//检测逆行行驶的时间间隔,毫秒
float max_high_speed;//最高速的值,大于这个值开始检测
float min_low_speed;//最小速度值,小于这个值开始检测
float min_park_speed;//最小停车值,小于这个值开始检测
int32_t traffic_jam_num;//检测多少车处于慢速和停车状态的数量,大于这个值就认为是堵车
std::string forbidden_park_area;//禁止停车区域,(minLat,maxLat,minLon,maxLon;....)
std::string nonmotor_name_list;//非机动车所有类型列表
int32_t check_park_time;//停车之后多长时间认为是非法停车
int min_retr_speed;//逆行检查最小速度
int min_land_speed;//车道检测的最小速度
int emergence_illegal_lane_interval;//应急车道检测时间
int change_illegal_lane_interval;//异常变道检测时间
int changes_illegal_lane_interval;//连续变道检测时间
int person_illegal_lane_interval;//行人闯入检测时间
int32_t high_speed_interval;//检测高速行驶的时间间隔,毫秒
int32_t low_speed_interval;//检测低速行驶的时间间隔,毫秒
int32_t illegal_park_interval;//检测非法停车的时间间隔,毫秒
int32_t motor_illegal_lane_interval;//检测机动车占用非机动车的时间间隔,毫秒
int32_t nonmotor_illegal_lane_interval;//检测非机动车占用机动车的时间间隔,毫秒
int32_t retrograde_interval;//检测逆行行驶的时间间隔,毫秒
float max_high_speed;//最高速的值,大于这个值开始检测
float min_low_speed;//最小速度值,小于这个值开始检测
float min_park_speed;//最小停车值,小于这个值开始检测
int32_t traffic_jam_num;//检测多少车处于慢速和停车状态的数量,大于这个值就认为是堵车
std::string forbidden_park_area;//禁止停车区域,(minLat,maxLat,minLon,maxLon;....)
std::string nonmotor_name_list;//非机动车所有类型列表
int32_t check_park_time;//停车之后多长时间认为是非法停车
int min_retr_speed;//逆行检查最小速度
int min_land_speed;//车道检测的最小速度
int emergence_illegal_lane_interval;//应急车道检测时间
int change_illegal_lane_interval;//异常变道检测时间
int changes_illegal_lane_interval;//连续变道检测时间
int person_illegal_lane_interval;//行人闯入检测时间
std::vector<ForbiddenArea> forbiddenAreas;
std::vector<std::string> nonmotorLists;
......

#include <glog/logging.h>
#include<sys/time.h>
......@@ -108,8 +108,8 @@ void LimitOpenFile() {
}
void signalHandler(int signum) {
//ROS_INFO("Interrupt signal %d received", signum);
// 清理并关闭
// 终止程序
// 清理并关闭
// 终止程序
// g_Run = false;
exit(signum);
}
......@@ -118,16 +118,16 @@ SDKLogBase g_log;
int main(int argc, char** argv)
{
// 注册信号 SIGINT 和信号处理程序
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
LimitOpenFile();
google::InitGoogleLogging(argv[0]);
FLAGS_stderrthreshold = google::INFO; //输出到stderr的限值,默认为2(ERROR),默认ERORR以下的信息(INFO、WARNING)不打印到终端。
FLAGS_max_log_size = 500; //设置最大日志文件大小(以MB为单位)。
FLAGS_logbufsecs = 0; //设置可以缓冲日志的最大秒数,0指实时输出。
FLAGS_alsologtostderr = true; //是否将日志输出到文件和stderr,如果:true,忽略FLAGS_stderrthreshold的限制,所有信息打印到终端。
FLAGS_log_prefix = true; //设置日志前缀是否应该添加到每行输出。
FLAGS_stderrthreshold = google::INFO; //输出到stderr的限值,默认为2(ERROR),默认ERORR以下的信息(INFO、WARNING)不打印到终端。
FLAGS_max_log_size = 500; //设置最大日志文件大小(以MB为单位)。
FLAGS_logbufsecs = 0; //设置可以缓冲日志的最大秒数,0指实时输出。
FLAGS_alsologtostderr = true; //是否将日志输出到文件和stderr,如果:true,忽略FLAGS_stderrthreshold的限制,所有信息打印到终端。
FLAGS_log_prefix = true; //设置日志前缀是否应该添加到每行输出。
FLAGS_log_dir = "log";
g_log.AddLogFile = AddLogFileSys;
......
#pragma once
#pragma once
#include <cstdint>
#include <string>
......@@ -6,9 +6,9 @@
#include "ajson_c.hpp"
typedef struct _EventInfo {
int32_t eventId;//事件唯一id,为了分清哪个事件
int32_t eventType; // 由于一辆车同时可能有多个违章,所以需要加入事件类型列表,参考TrackResultType类型
int32_t eventStatus;//事件状态,包括开始,持续,结束,消失
int32_t eventId;//事件唯一id,为了分清哪个事件
int32_t eventType; // 由于一辆车同时可能有多个违章,所以需要加入事件类型列表,参考TrackResultType类型
int32_t eventStatus;//事件状态,包括开始,持续,结束,消失
}eventInfo;
AJSON(eventInfo,
......@@ -26,25 +26,25 @@ typedef struct _TrkObj {
std::string inner_pos;
int32_t is_turn = 0;
int32_t laneId = 0;
int64_t id = 0; // 节点目标id
std::string name; // 目标类型
int64_t id = 0; // 节点目标id
std::string name; // 目标类型
int32_t type;
double prob = 0.0; // 可信度
uint64_t time = 0; // 时间戳 单位毫秒
double nowX = 0.0; //相对设备 位置 x
double nowY = 0.0; //相对设备 位置 y
double nowZ = 0.0; //相对设备 位置 z
double lon = 0.0; // 经度
double lat = 0.0; // 纬度
double prob = 0.0; // 可信度
uint64_t time = 0; // 时间戳 单位毫秒
double nowX = 0.0; //相对设备 位置 x
double nowY = 0.0; //相对设备 位置 y
double nowZ = 0.0; //相对设备 位置 z
double lon = 0.0; // 经度
double lat = 0.0; // 纬度
double objL = 0.0; //
double objW = 0.0; //
double objH = 0.0; //
double speed = 0.0; // 速度
double heading = 0.0; // 航向角
std::string licensePlateNumber; //车牌号
// std::string vehicleName; //车类型名
std::string vehicleColor; // 车颜色
std::vector<eventInfo> eventList; // 由于一辆车同时可能有多个违章,所以需要加入事件类型列表,参考TrackResultType类型
double speed = 0.0; // 速度
double heading = 0.0; // 航向角
std::string licensePlateNumber; //车牌号
// std::string vehicleName; //车类型名
std::string vehicleColor; // 车颜色
std::vector<eventInfo> eventList; // 由于一辆车同时可能有多个违章,所以需要加入事件类型列表,参考TrackResultType类型
} TrkObj;
using TrkObjPtr = std::shared_ptr<TrkObj>;
......@@ -78,8 +78,8 @@ AJSON(TrkObj,
)
typedef struct _TrkObjs {
std::string devNo; // 设备相机id
std::string mecNo; // MecNo 工控机id
std::string devNo; // 设备相机id
std::string mecNo; // MecNo 工控机id
std::vector<TrkObj> objs;
}TrkObjs;
using TrkObjsPtr = std::shared_ptr<TrkObjs>;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment