diff --git a/3rdparty/dahua/inc/dhnetsdk.h b/3rdparty/dahua/inc/dhnetsdk.h index f479312..a588747 100644 --- a/3rdparty/dahua/inc/dhnetsdk.h +++ b/3rdparty/dahua/inc/dhnetsdk.h @@ -21285,12 +21285,12 @@ typedef struct tagIMAGE_INFO int nHeight; // 图片高度 char szFilePath[260]; // 文件路径 BYTE byReserved[512]; // 预留字节 -}IMAGE_INFO; +}DH_IMAGE_INFO; // 目标人脸信息 typedef struct tagFACE_INFO_OBJECT { - IMAGE_INFO stuImageInfo; // 物体截图信息 + DH_IMAGE_INFO stuImageInfo; // 物体截图信息 EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别类型 unsigned int nAge; // 年龄 EM_FACEDETECT_GLASSES_TYPE emGlasses; // 是否戴眼镜 @@ -22226,7 +22226,7 @@ typedef struct tagMEDIAFILE_DOORCONTROL_RECORD_INFO // 门打开事件信息 EM_OPEN_DOOR_METHOD emOpenDoorMethod; // 开门方式 EM_OPEN_DOOR_STATE emOpenDoorState; // 开门结果 - IMAGE_INFO stuSceneImageInfo; // 全景大图信息 + DH_IMAGE_INFO stuSceneImageInfo; // 全景大图信息 NET_TIME stuSnapTime; // 抓拍时间 NET_DOORCONTROL_FACE_OBJECT stuFaceObject; // 目标人脸信息 UINT nCandidatesNum; // 候选人数量 diff --git a/Plugin/Driver/DriverMainDlg.cpp b/Plugin/Driver/DriverMainDlg.cpp index 4ec98bf..be7581e 100644 --- a/Plugin/Driver/DriverMainDlg.cpp +++ b/Plugin/Driver/DriverMainDlg.cpp @@ -348,6 +348,7 @@ void CDriverMainDlg::ProcessPipeMsg(int lMsgId, char* pData, int lLen) float targetAngle = 0.0f; // 鐩爣瑙掑害锛堝害锛 //璁$畻绾犳瑙掑害 theApp.m_fAngleForFast = CorrectAngle(currentAngle, targetAngle); + LogOutToFile("currentAngled : = %f, CorrectAng = %f", currentAngled, theApp.m_fAngleForFast); } //鑾峰彇璁惧閰嶇疆淇℃伅杩斿洖 @@ -394,9 +395,10 @@ float CDriverMainDlg::CorrectAngle(float currentAngle, float targetAngle) { // 杩欎簺鍙傛暟 鏄鏍规嵁瀹為檯鎯呭喌杩涜璋冩暣鐨 //pid 瀵硅薄鍦ㄧ涓娆¤皟鐢 CorrectAngle 鍑芥暟鏃跺垱寤猴紝骞朵笖鍦ㄧ▼搴忕殑鏁翠釜杩愯鏈熼棿涓嶄細琚攢姣併傚嵆浣垮嚱鏁版墽琛岀粨鏉燂紝pid 瀵硅薄浠嶇劧瀛樺湪锛屽叾鍐呴儴鐘舵侊紙濡傜Н鍒嗛」 integral銆佷笂涓娆¤宸 prevError 绛夛級浼氳鎸佷箙鍖栦繚瀛 static PIDController pid( - 0.5f, //姣斾緥绯绘暟 - 0.2f, //绉垎绯绘暟 - 0.1f, //寰垎绯绘暟 + 0.6f, //姣斾緥绯绘暟 P + 0.0f, //绉垎绯绘暟 I + 0.0f, //寰垎绯绘暟 D + -10.0f, //绉垎闄愬箙 10.0f, //绉垎涓婇檺 -45.0f, //杈撳嚭涓嬮檺 @@ -404,7 +406,6 @@ float CDriverMainDlg::CorrectAngle(float currentAngle, float targetAngle) { 0.023f //鏃堕棿姝ラ暱(绉) ); - // 瑙勮寖鍖栬搴︼紝纭繚瑙掑害鍦-180掳鍒180掳涔嬮棿 currentAngle = NormalizeAngle(currentAngle); targetAngle = NormalizeAngle(targetAngle); @@ -530,7 +531,7 @@ BOOL CDriverMainDlg::OpenCanDevice() return FALSE; } VCI_INIT_CONFIG InitInfo[1]; - InitInfo->Timing0 = 0x01; //250K + InitInfo->Timing0 = 0x03; //250K InitInfo->Timing1 = 0x1C; InitInfo->Filter = 0; InitInfo->AccCode = 0x80000000; @@ -1031,7 +1032,7 @@ void CDriverMainDlg::SendCanAGVMoveData(float Vel) { mvDirection = 3; //鍚庨 Vel = -Vel; } - reSpeed = Vel * 60 / C * 20.2; //RPM + reSpeed = Vel * 60 / C * 20.2; //RPM锛20.2鏄噺閫熸瘮銆 int16_t bytePair = static_cast(reSpeed); uint8_t reSpeedHByte = (bytePair >> 8) & 0xFF; // 楂樺瓧鑺 uint8_t reSpeedLByte = bytePair & 0xFF; // 浣庡瓧鑺 diff --git a/Plugin/Fast/Fast.cpp b/Plugin/Fast/Fast.cpp index 8ad57c8..3749db5 100644 --- a/Plugin/Fast/Fast.cpp +++ b/Plugin/Fast/Fast.cpp @@ -133,6 +133,7 @@ CString CFastApp::SendMsg2Platform(CString strReceiver, int nMsgType, Json::Valu string strJson = writer.write(root); g_pstPipeClient->SendeMsg(WCS_2_WMS_DATA, (char*)strJson.c_str(), strJson.length()); + LogOutToFile("FAST::SendMsg2Platform End"); return ""; diff --git a/Plugin/Fast/Fast.vcxproj b/Plugin/Fast/Fast.vcxproj index 44470b0..7fba8e1 100644 --- a/Plugin/Fast/Fast.vcxproj +++ b/Plugin/Fast/Fast.vcxproj @@ -23,18 +23,18 @@ {EDB92B51-C3C2-44DA-B21D-6BB824264D08} GrabImage_Display Win32Proj - 10.0.10586.0 + 10.0 Application - v143 + v140 MultiByte true Application - v143 + v140 MultiByte Dynamic diff --git a/Plugin/Fast/FastMainDialog.cpp b/Plugin/Fast/FastMainDialog.cpp index 645a1d1..718e3a5 100644 --- a/Plugin/Fast/FastMainDialog.cpp +++ b/Plugin/Fast/FastMainDialog.cpp @@ -121,135 +121,7 @@ void CFastMainDialog::ProcessPipeMsg(int lMsgId, char* pData, int lLen) LogOutToFile("HttpServiceListener::OnRecvRequest End"); } -// TCP服务端线程 -/*UINT CFastMainDialog::TCPListenerThread(LPVOID pParam) { - CFastMainDialog* pThis = (CFastMainDialog*)pParam; - SOCKET hServer = pThis->m_hServerSocket; - while (true) { - SOCKET hClient = accept(hServer, NULL, NULL); - if (hClient == INVALID_SOCKET) continue; - - char buffer[4096]; - int bytesRecv = recv(hClient, buffer, sizeof(buffer), 0); - if (bytesRecv > 0) { - CString strMsg(buffer, bytesRecv); - pThis->ProcessTCPMessage(strMsg); - } - closesocket(hClient); - } - return 0; -}*/ -UINT CFastMainDialog::TCPListenerThread(LPVOID pParam) { - CFastMainDialog* pThis = (CFastMainDialog*)pParam; - SOCKET hServer = pThis->m_hServerSocket; - - while (true) { - SOCKET hClient = accept(hServer, NULL, NULL); - if (hClient == INVALID_SOCKET) continue; - - // 禁用Nagle算法(可选) - int optval = 1; - setsockopt(hClient, IPPROTO_TCP, TCP_NODELAY, (char*)&optval, sizeof(optval)); - - // 持续接收数据直到连接关闭 - char buffer[4096]; - while (true) { - int bytesRecv = recv(hClient, buffer, sizeof(buffer), 0); - if (bytesRecv <= 0) { // 连接断开或错误 - LogOutToFile("[TCP] Client disconnected or error: %d", WSAGetLastError()); - break; - } - - CString strMsg(buffer, bytesRecv); - pThis->ProcessTCPMessage(strMsg); - } - closesocket(hClient); // 最终关闭连接 - } - return 0; -} - -// 处理收到的TCP消息 -void CFastMainDialog::ProcessTCPMessage(const CString& strJson) { - LogOutToFile("FAST::ProcessTCPMessage Received: %s", strJson); - - Json::Reader reader; - Json::Value root; - if (!reader.parse((LPCTSTR)strJson, root)) { - LogOutToFile("JSON parse error!"); - return; - } - - // 验证必要字段 - if (!root.isMember("receiver") || !root.isMember("type")) { - LogOutToFile("Invalid message format"); - return; - } - - // 通过现有平台接口转发 - CString strReceiver = root["receiver"].asString().c_str(); - int nMsgType = root["type"].asInt(); - Json::Value params = root.get("params", Json::nullValue); - - theApp.SendMsg2Platform(strReceiver, nMsgType, params); -} - -// 启动TCP服务 -void CFastMainDialog::StartTCPServer() -{ - // 1. 初始化Winsock - WSADATA wsaData; - int wsResult = WSAStartup(MAKEWORD(2, 2), &wsaData); - if (wsResult != 0) { - LogOutToFile("[TCP] WSAStartup failed: %d", wsResult); - return; - } - - // 2. 创建Socket - m_hServerSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (m_hServerSocket == INVALID_SOCKET) { - LogOutToFile("[TCP] Socket creation failed: %d", WSAGetLastError()); - WSACleanup(); - return; - } - - // 3. 设置端口复用(可选) - int optval = 1; - setsockopt(m_hServerSocket, SOL_SOCKET, SO_REUSEADDR, (char*)&optval, sizeof(optval)); - - // 4. 绑定端口 - sockaddr_in service; - service.sin_family = AF_INET; - service.sin_addr.s_addr = INADDR_ANY; - service.sin_port = htons(6000); - - if (::bind(m_hServerSocket, (SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR) - { - LogOutToFile("[TCP] Bind failed on port 6000: %d", WSAGetLastError()); - closesocket(m_hServerSocket); - WSACleanup(); - return; - } - - // 5. 开始监听 - if (listen(m_hServerSocket, SOMAXCONN) == SOCKET_ERROR) - { - LogOutToFile("[TCP] Listen failed: %d", WSAGetLastError()); - closesocket(m_hServerSocket); - WSACleanup(); - return; - } - - // 6. 启动线程 - m_pListenerThread = AfxBeginThread(TCPListenerThread, this); - if (m_pListenerThread == NULL) { - LogOutToFile("[TCP] Thread creation failed!"); - closesocket(m_hServerSocket); - WSACleanup(); - return; - } - LogOutToFile("[TCP] Server successfully started on port 6000"); -} BOOL CFastMainDialog::OnInitDialog() { CDialogEx::OnInitDialog(); @@ -283,7 +155,7 @@ BOOL CFastMainDialog::OnInitDialog() //初始化本地相机 InitLocalCamera(); - StartTCPServer(); // 新增TCP服务启动 + return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } diff --git a/Plugin/Fast/FastMainDialog.h b/Plugin/Fast/FastMainDialog.h index d485dda..9da1c0d 100644 --- a/Plugin/Fast/FastMainDialog.h +++ b/Plugin/Fast/FastMainDialog.h @@ -13,9 +13,6 @@ public: CFastMainDialog(CWnd* pParent = NULL); // 标准构造函数 virtual ~CFastMainDialog(); - void StartTCPServer(); - void StopTCPServer(); - // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_MAIN_DIALOG }; @@ -38,10 +35,4 @@ public: afx_msg void OnTimer(UINT_PTR nIDEvent); void ProcessPipeMsg(int lMsgId, char* pData, int lLen); - -private: - static UINT __cdecl TCPListenerThread(LPVOID pParam); - void ProcessTCPMessage(const CString& strJson); - CWinThread* m_pListenerThread; - SOCKET m_hServerSocket; }; diff --git a/Plugin/KcCtrl/KcCtrl.vcxproj b/Plugin/KcCtrl/KcCtrl.vcxproj index 7701449..7cd685f 100644 --- a/Plugin/KcCtrl/KcCtrl.vcxproj +++ b/Plugin/KcCtrl/KcCtrl.vcxproj @@ -21,7 +21,7 @@ {77089A10-F10B-4E0E-B045-86271BFD1A07} VcsClient - 10.0.10586.0 + 10.0 MFCProj diff --git a/Plugin/Plc/Plc.vcxproj b/Plugin/Plc/Plc.vcxproj index 95c63e4..d3b100a 100644 --- a/Plugin/Plc/Plc.vcxproj +++ b/Plugin/Plc/Plc.vcxproj @@ -21,7 +21,7 @@ {CD291D2B-F677-46FC-BC5F-0C4A18CBBC11} VcsClient - 10.0.10586.0 + 10.0 MFCProj diff --git a/Plugin/QrGuide/QrGuide.vcxproj b/Plugin/QrGuide/QrGuide.vcxproj index f2762c9..715507c 100644 --- a/Plugin/QrGuide/QrGuide.vcxproj +++ b/Plugin/QrGuide/QrGuide.vcxproj @@ -23,7 +23,7 @@ {A98ADD5C-021A-494A-9E04-61E7F3220104} GrabImage_Display Win32Proj - 10.0.10586.0 + 10.0