jingdong first v2.1.1

This commit is contained in:
hyx 2025-04-20 21:43:28 +08:00
parent ae491ab832
commit b651108fc9
23 changed files with 5856 additions and 1494 deletions

View File

@ -22,13 +22,53 @@ AUX_SOURCE_DIRECTORY(escape_unescape DIR_SRC_ESCAPE_UNESCAPE)
AUX_SOURCE_DIRECTORY(net_utils DIR_SRC_NET_UTILS)
AUX_SOURCE_DIRECTORY(debug_print DIR_SRC_DEBUG_PRINT)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(MQTT_SRC_PATH ${CMAKE_CURRENT_LIST_DIR}/mqtt)
IF (PAHO_WITH_SSL)
SET(OPENSSL_SEARCH_PATH "/home/hyx/work/openssl/output" CACHE PATH "Directory containing OpenSSL libraries and includes")
IF (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
SET(OPENSSL_SEARCH_PATH "/usr/local/opt/openssl")
ENDIF (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
IF (WIN32)
SET(OPENSSL_SEARCH_PATH "C:/OpenSSL-Win64")
SET(OPENSSL_SEARCH_LIB_PATH "${OPENSSL_SEARCH_PATH}/lib64")
IF (DEFINED ENV{PAHO_WINDOWS_BUILD_BIT})
IF ($ENV{PAHO_WINDOWS_BUILD_BIT} STREQUAL "x86")
SET(OPENSSL_SEARCH_PATH "C:/OpenSSL-Win32")
SET(OPENSSL_SEARCH_LIB_PATH "${OPENSSL_SEARCH_PATH}/lib32")
ENDIF ()
ENDIF ()
ELSE()
SET(OPENSSL_SEARCH_LIB_PATH "${OPENSSL_SEARCH_PATH}/lib")
ENDIF ()
FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h
HINTS ${OPENSSL_SEARCH_PATH}/include)
FIND_LIBRARY(OPENSSL_LIB NAMES ssl libssl ssleay32
HINTS ${OPENSSL_SEARCH_PATH}/lib ${OPENSSL_SEARCH_LIB_PATH})
FIND_LIBRARY(OPENSSLCRYPTO_LIB NAMES crypto libcrypto libeay32
HINTS ${OPENSSL_SEARCH_PATH}/lib ${OPENSSL_SEARCH_LIB_PATH})
MESSAGE(STATUS "OpenSSL hints: ${OPENSSL_SEARCH_PATH}")
MESSAGE(STATUS "OpenSSL headers found at ${OPENSSL_INCLUDE_DIR}")
MESSAGE(STATUS "OpenSSL library found at ${OPENSSL_LIB}")
MESSAGE(STATUS "OpenSSL Crypto library found at ${OPENSSLCRYPTO_LIB}")
# INCLUDE_DIRECTORIES(
# ${OPENSSL_INCLUDE_DIR}
# )
add_definitions(-DOPENSSL=1)
ENDIF()
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_LIST_DIR}/
${CMAKE_BINARY_DIR}/
${MQTT_SRC_PATH}/
${OPENSSL_INCLUDE_DIR}/
${CMAKE_CURRENT_LIST_DIR}/uart_utils
${CMAKE_CURRENT_LIST_DIR}/uart_can
${CMAKE_CURRENT_LIST_DIR}/queue
@ -92,8 +132,8 @@ SET(SRC_TX_SERVER
${CMAKE_CURRENT_LIST_DIR}/main.c
)
ADD_EXECUTABLE(tx_server ${SRC_TX_SERVER})
ADD_EXECUTABLE(jd_server ${SRC_TX_SERVER})
TARGET_LINK_LIBRARIES(tx_server pthread dl)
TARGET_LINK_LIBRARIES(jd_server pthread dl "-L/home/hyx/work/openssl/output/lib" "-lssl" "-lcrypto")

13
cp.sh
View File

@ -1,7 +1,10 @@
#sshpass -p "&Over#B0Ost!" scp ./start.sh root@10.10.10.101:/root/
#sshpass -p "&Over#B0Ost!" scp ./output/bin/tx_server root@10.10.10.101:/root/
sshpass -p "&Over#B0Ost!" scp ./output/bin/tx_server root@10.10.10.101:/home/linaro/
#sshpass -p "&Over#B0Ost!" scp ./output/bin/tx_server root@10.10.12.2:/root/
#sshpass -p "&Over#B0Ost!" scp ./output/bin/tx_server root@10.10.10.101:/home/linaro/
#sshpass -p "PddloTSecPwdOnly!" scp ./output/bin/tx_server root@192.168.0.148:/home/linaro/
#sshpass -p "PddloTSecPwdOnly!" scp ./output/bin/tx_server root@10.10.10.132:/root/
#sshpass -p "PddloTSecPwdOnly!" scp ./start.sh root@10.10.10.225:/root/
#sshpass -p "PddloTSecPwdOnly!" scp ./start.sh root@10.10.10.132:/root/
#sshpass -p "TxApPwd#2025!" scp ./output/bin/tx_server root@10.10.12.2:/root
#sshpass -p "TxApPwd#2025!" scp ./*.zip root@10.10.12.4:/root/ota
sshpass -p "TxApPwd#2025!" scp output/bin/jd_server root@10.10.12.2:/root
#sshpass -p "TxApPwd#2025!" scp tx_ota/*.bin root@10.10.12.4:/root/ota
#sshpass -p "PddloTSecPwdOnly!" scp ./output/bin/tx_server root@10.10.12.4:/root/
#sshpass -p "PddloTSecPwdOnly!" scp tx_ota/*.bin root@10.10.12.6:/root/ota

21
d126ei4lj4cc00/ca.crt Executable file
View File

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDYzCCAkugAwIBAgIJAIQKwCvFI20lMA0GCSqGSIb3DQEBDQUAMEcxGTAXBgNV
BAMMEHRoaW5ndGFsay5qZGwuY24xCzAJBgNVBAoMAkpEMRAwDgYDVQQIDAdCZWlq
aW5nMQswCQYDVQQGEwJDTjAgFw0yMTA0MjAwNzUyMzFaGA8yMTIxMDMyNzA3NTIz
MVowRzEZMBcGA1UEAwwQdGhpbmd0YWxrLmpkbC5jbjELMAkGA1UECgwCSkQxEDAO
BgNVBAgMB0JlaWppbmcxCzAJBgNVBAYTAkNOMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAtoSsg0Qdzr/3vVIVNVrL8dHQNzwJvEDIkMapXfZ+KNxgEvwP
G6Ym+XUwykQdM3MjPSVdX/vwWDkOOZKKI5Rn5XHgt3Yufc7aVjmsvLto3mBdStuz
z3rh7PMPkFpW4Ie3zm0PCMbEsa6dT/ApPKElMZI5q4OSPNMmBLw8iDd9FPhi43bQ
74gQHKNbPxpXaCzMgNFxm9nwHsP2muHyKWkX8ATMXa/lPEjnD8+0eAGxlo0VY0h8
tWeipk1KFHRIdLJMhYOprKxWPqdY/pzqIyYNuOBqriO1/9FmxPXENlyGF/OUyvZt
uu4UwiCvQ9eVlZuN3XCCvZUZFAf92qYGWSC57QIDAQABo1AwTjAdBgNVHQ4EFgQU
hfVGDZhSn0yMTs2ZRXhXLVpTRRwwHwYDVR0jBBgwFoAUhfVGDZhSn0yMTs2ZRXhX
LVpTRRwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOCAQEAsZfBS1fn8vA5
DU/IzYSSEFMQbp15fgGXrhcw5cgssX4EkxgoJebs1zllNCTmuUuZfZOMVx2BOq7y
Av0pWXFv/8gGUY86ZCHdoXvqykQkLwfhBIRxuWjRycquHZaCtcM3rZtuHPvW1AfT
cTjC3HwXn05ISi5mbz2ibPrXODkaxDEJ8m83hCyXXOdoI0P7r3zSokSDSCgMQYvA
2N+bn+CdoRf46+xBSC2RHm7pssBtRDKTO/iOPeWuk+sKJ4piiZUzctuvxVh7OYno
HH8NmepyB0N9NTBrrpup3pgOFf9ot5B3y2OWH4n8Q7ddQGrmj7SuW1HTW3LIl/HF
tetXyNsX3w==
-----END CERTIFICATE-----

View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIDDTCCAfWgAwIBAgIHAycFFP4DADANBgkqhkiG9w0BAQsFADBHMRkwFwYDVQQDExB0aGluZ3Rh
bGsuamRsLmNuMQswCQYDVQQKEwJKRDEQMA4GA1UECBMHQmVpamluZzELMAkGA1UEBhMCQ04wIBcN
MjUwNDIzMDgyOTQ2WhgPMjA3NTA0MTEwODI5NDZaMEUxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdC
ZWlqaW5nMQswCQYDVQQKEwJKRDEXMBUGA1UEAxMOZDEyNmVpNGxqNGNjMDAwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCcr3PanvsNozpBtKtmVv7w4/5DevWxR/XB2cyQO0jnzHsKUAUo
JMsfCRcJWseQpHPGt+E+9S0VzJBEZmc//8aEJevVxGyBVPcWzs+G+bATOeHdPCROngZxePP01mDm
vMhcg3wynlxSunEms3PX2isu8JTALb59srFUUjJnSeUp6ZgQ4Ol2qxy5UOmaQfrkpWZGFuUztXxi
J1PTA4ghyE94dvag7B/9ao5Gknklev9xIDPcpFJnQEhkZgTHvSDpQ9/RqHo/EoitrLdAjThnhOiZ
r5kjbsCf/XJDpds1O5ALaZBYkPlEc+LIbiH2dWFI6EeLqJya3Ht4OjFjL6rHsVQ/AgMBAAEwDQYJ
KoZIhvcNAQELBQADggEBACc92CJ+XLbp9CHor9WWSuc/Medc4DLK2GK/R+PwaO5dFGB615N4UVGd
GpigK5Yf/Cg4JD5r8waDSyxrm1o/3GhB9fwBjEfSLW4FA3Tj6LexOIxkUEqGP7NpHrFE0zfvc/hD
SuoXFnwuaI3uZmw0ArMl9QNEvgcx8Bnd/p35KQjyeRvw7PT0DKuudYFmoIEJLW64FC5/b4/P6LDS
fsTNuABCJyjoC0gbe/r0rmlucpa3K22l8NXO/pcIGPKVBP8URwdB1ibu803hbV5+a4knUy6Qghv6
uvdL1fLIJo85byUm6wQ4hEqy6cOX4D3DS08STo+mLfsv5c90Wq83niP1fXw=
-----END CERTIFICATE-----

View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAnK9z2p77DaM6QbSrZlb+8OP+Q3r1sUf1wdnMkDtI58x7ClAF
KCTLHwkXCVrHkKRzxrfhPvUtFcyQRGZnP//GhCXr1cRsgVT3Fs7PhvmwEznh3Twk
Tp4GcXjz9NZg5rzIXIN8Mp5cUrpxJrNz19orLvCUwC2+fbKxVFIyZ0nlKemYEODp
dqscuVDpmkH65KVmRhblM7V8YidT0wOIIchPeHb2oOwf/WqORpJ5JXr/cSAz3KRS
Z0BIZGYEx70g6UPf0ah6PxKIray3QI04Z4Toma+ZI27An/1yQ6XbNTuQC2mQWJD5
RHPiyG4h9nVhSOhHi6icmtx7eDoxYy+qx7FUPwIDAQABAoIBAAh4d8Pu6lWfaGva
75U1yMyPFtThFd1CraeQNb3qZpOZe2FgWBcGfjCsViF8VeOc8GFi2XuE164hA/+e
paBRHJNSVYCWAOOxCzahcZizcPBpJavHL5NMeb6yskWfPVfcBtzxgspdw1H5oFpe
Qzn9Im6ENRZ6opy7B1kupGjvFsOANr7SgYU2kijRdP006dqMUGBfYjXRy5iL3MxW
m3kuedL01cO+f5Q//87c2mW41/g5bxDQrCPV5tShoslQi3axqwegWcKIMO4vgT13
Mry56zZAZ6GVZklot/HynsKBiLHod6stw41oxQfw08EZn+U6aQDOaJUrBs//2zXx
P+6yeSkCgYEAy+U92vt+/F1sRJ/u64tiDit7XjeGg+dT5bT9/QligOC3r/oFhZFp
9ZayswWhIlMRimSo89oyFdG0TWJZ7nf/6nByNVoVJSuekHek34x81bH5L3ooASmY
kgyeKQLz/9m3dKtGfHA9I2UKwxW8dgXVYT+2G4qsuz0xhGpJYAYpsAsCgYEAxLm+
oh5j4WWH4fxISiGKz1j7JqeAAsmfhqtlS4app3izvD3Soy7VKrmCL0lO3frEgdrY
i6x7wq78CWjCcgJ9Id4dGK7NTjzgKp3P1oNEMdFp1KwFE8xOFwIrs0Vn60ajU45D
IxNXcoeZJoYoxTG14/gHgJaJfkKABqfLyI5YCR0CgYBDWnHJccSr9ux56t8QvhVh
GuoA4JS14+ep/NTeDoiUjCcBobTLP5LiBqr3SkfFP+2OatwI2a4r2P8XhQKyLL/E
IOsJRr2vbq5NiMhU9GKUcNsg3Nh0MdptfG+OmqQhgzj/+EgreSQpGgqpEPgVgK3R
FyvAA1o16+v8kuO0LbT9qwKBgDZnV7zlwqF2vplUd3loxUaKSQprkA81SxSnGaBF
YW2bB7mrLzFJplHmc4Y4M8NXsjhnGTOnQ6KXWcQQYJW+8nQHROyqisR0OVoPwoaE
TruoOihCWjUbbw0V4Jf3PcHnCwv0b8SneKuHrGbm+ydtk+uzj/+Tofp00YsFpGmW
U+pRAoGAeXskUwaWH1vzzIoB03SalKvOYfAeUdd6YtbwVkMTKo5j054NYnLCv/5V
bsEGXiXXELk6pvbybw0Qq93aUWFDtG2yPZyxFkOu2UBmvLsvzX9YV5TK2I608tOk
yuI4udmf85QhO1vrrEKPIRIj3rZFdDzsSf14G19K3GK5lCEMugo=
-----END RSA PRIVATE KEY-----

21
d126ei5emgcc00/ca.crt Executable file
View File

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDYzCCAkugAwIBAgIJAIQKwCvFI20lMA0GCSqGSIb3DQEBDQUAMEcxGTAXBgNV
BAMMEHRoaW5ndGFsay5qZGwuY24xCzAJBgNVBAoMAkpEMRAwDgYDVQQIDAdCZWlq
aW5nMQswCQYDVQQGEwJDTjAgFw0yMTA0MjAwNzUyMzFaGA8yMTIxMDMyNzA3NTIz
MVowRzEZMBcGA1UEAwwQdGhpbmd0YWxrLmpkbC5jbjELMAkGA1UECgwCSkQxEDAO
BgNVBAgMB0JlaWppbmcxCzAJBgNVBAYTAkNOMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAtoSsg0Qdzr/3vVIVNVrL8dHQNzwJvEDIkMapXfZ+KNxgEvwP
G6Ym+XUwykQdM3MjPSVdX/vwWDkOOZKKI5Rn5XHgt3Yufc7aVjmsvLto3mBdStuz
z3rh7PMPkFpW4Ie3zm0PCMbEsa6dT/ApPKElMZI5q4OSPNMmBLw8iDd9FPhi43bQ
74gQHKNbPxpXaCzMgNFxm9nwHsP2muHyKWkX8ATMXa/lPEjnD8+0eAGxlo0VY0h8
tWeipk1KFHRIdLJMhYOprKxWPqdY/pzqIyYNuOBqriO1/9FmxPXENlyGF/OUyvZt
uu4UwiCvQ9eVlZuN3XCCvZUZFAf92qYGWSC57QIDAQABo1AwTjAdBgNVHQ4EFgQU
hfVGDZhSn0yMTs2ZRXhXLVpTRRwwHwYDVR0jBBgwFoAUhfVGDZhSn0yMTs2ZRXhX
LVpTRRwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOCAQEAsZfBS1fn8vA5
DU/IzYSSEFMQbp15fgGXrhcw5cgssX4EkxgoJebs1zllNCTmuUuZfZOMVx2BOq7y
Av0pWXFv/8gGUY86ZCHdoXvqykQkLwfhBIRxuWjRycquHZaCtcM3rZtuHPvW1AfT
cTjC3HwXn05ISi5mbz2ibPrXODkaxDEJ8m83hCyXXOdoI0P7r3zSokSDSCgMQYvA
2N+bn+CdoRf46+xBSC2RHm7pssBtRDKTO/iOPeWuk+sKJ4piiZUzctuvxVh7OYno
HH8NmepyB0N9NTBrrpup3pgOFf9ot5B3y2OWH4n8Q7ddQGrmj7SuW1HTW3LIl/HF
tetXyNsX3w==
-----END CERTIFICATE-----

View File

@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE-----
MIIDDTCCAfWgAwIBAgIHAycFFRcCADANBgkqhkiG9w0BAQsFADBHMRkwFwYDVQQDExB0aGluZ3Rh
bGsuamRsLmNuMQswCQYDVQQKEwJKRDEQMA4GA1UECBMHQmVpamluZzELMAkGA1UEBhMCQ04wIBcN
MjUwNDIzMDgyOTUyWhgPMjA3NTA0MTEwODI5NTJaMEUxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdC
ZWlqaW5nMQswCQYDVQQKEwJKRDEXMBUGA1UEAxMOZDEyNmVpNWVtZ2NjMDAwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCwezx2pe348VvFHfKqdV7u078uf15UoXLfRnLMWc+9BXOVRptd
lssWSkgFtvpRfvCfpNBjD+UY1hBl//pOhRCkzpl9GrVrzfWdgp8zjX2XcoxFAjk0JxCFFObfvZFj
C+NR+5mMP9eHtQamaoXcHYYo8+kAzrW8r7ZZbkLjqn+UFHLb9f9cd0L2r0nzwUgErBXGw2HLjnwF
BVNGNSbmVXh6d2qFW1jzIC/mqjrFnbZIeiwTWd4hbM6CDoCHa6Rigl7V2T2LUgXCqt1fVubPG4/a
scRHdq9Uh4VoLcoGzgfMiW30NPxHplx2QjUTCt5VHsIQtD9fdganvzwgtNyioP1DAgMBAAEwDQYJ
KoZIhvcNAQELBQADggEBAG4eKbCKqVQ6Sffp6omXwD7cEU1t5vz5B7LBRU94J8AtGHWDslJwcGyi
5QfaZoArAXp5KOTRXhrLTRTEsUeyys2uAOZ0Z/LlUJ1Tsc8150QfM50IvlSiefoSC9+nrhjmEO+r
SuIeshvVmVK3BYHipMoKzyEbSkFFQ71d0ShiwhaOQLNrM+hi71yZ/yCQvllsd7HHrd7iocV+uJYJ
IAeMTqew/+jlHk+lZWB1egkU7q4uYBEDrtbu5hlPNDg6fIeBuuw1she2yjBkOYj2H+Vucx1UNrdf
UxjNBRqg6jpWNfOrMGkTBHAIbFOH8hEZQdhvo9za++IzQfSNkrM8moiJkZE=
-----END CERTIFICATE-----

View File

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAsHs8dqXt+PFbxR3yqnVe7tO/Ln9eVKFy30ZyzFnPvQVzlUab
XZbLFkpIBbb6UX7wn6TQYw/lGNYQZf/6ToUQpM6ZfRq1a831nYKfM419l3KMRQI5
NCcQhRTm372RYwvjUfuZjD/Xh7UGpmqF3B2GKPPpAM61vK+2WW5C46p/lBRy2/X/
XHdC9q9J88FIBKwVxsNhy458BQVTRjUm5lV4endqhVtY8yAv5qo6xZ22SHosE1ne
IWzOgg6Ah2ukYoJe1dk9i1IFwqrdX1bmzxuP2rHER3avVIeFaC3KBs4HzIlt9DT8
R6ZcdkI1EwreVR7CELQ/X3YGp788ILTcoqD9QwIDAQABAoIBABHvNCHKkvhtbqoF
dRelfdQ/aHpNL0Tic04FVr01k0reNvTAjCFipZjKS69o/N8zSziuAw9OGjX/6wKy
lLlOBHb7F9YC1NTzxTYQhCU1B8JQPbj1lOKb5a3gheXO2et61csLCnuaMUj1OIvI
33mS9oNK5i7S0t0t7hYAgoOoW/asQa5N0mTqH8uVGeq7eiHluk01q7VFnE0G6aYX
E8Zr68B1ihgRT8Iv2eW39apG2uqtBX/G048VTRWI1EOvVS/VM0vAbuN9mcvKOLtf
cMCCMUptbtSCFe8nvR8YZon1yrj53nOt2WVjTPn2G626VoBVn//UR7QvJMVHYD9p
3/zZnaECgYEA9L14pWghJjzBBwlsjqD074laaUVmc9MfZSfoqrniJdgfi2oGJ72D
zd+jq0XUAKOELfxG2KNCdmWg7QAbyA+5StjCAi6e9DogXV5LdS8XRPcQ/pEEyvZQ
JhfquPW+SJaLLAtKcKTbbtNJUVvg5B5nK7PUDHiJkTYsJUMbo4/0hO0CgYEAuJnR
vEBsr82TpI4tyo6eO85moRQslYwHMR3PQf9CMRnp/kHLSCNUROhbdNBVu7xVd4Zh
J2YlkkZUSqEod1bYVUwhbpCmQemPF7KfqF0FTLXbw/Jfp73JbYDxg60b3gJPJ2eZ
A7812Zmg4RukM+wkR0cIMVi+6TQ4n5lnbgNj9O8CgYEAnxHXLIr1oMi0HUK+0CVF
jbsUjH+TC40ZRsIds3mFx1slhZOv1HyVAmZtFpEYLiIZc1oZIg1a0WFUqzX62Jl/
sWoZDxoGLm7pQkZbfRrSYPzEivDu0Iwvo9K/uN/ggYV3h3T/OR+tj+a8LKkvDpXE
MN98324o27z+DGoFuNWD9DECgYAhYwiQ4KIHpcm3MFPN1798l5buOSTbI0lFs9uB
VzZUhRhR+PpYILOkBtZLqUZoPubCSFaX9pyC+R9TpBQaiWV0/+DoC1dWgnRz18WS
gMhtmFKX/OUaBHRCzthfdVad75L7UHxXNiT6JxP2wrYPAf2Juqobqq5UpTI8g1U2
i3xvlwKBgQDAb7zFOAc8eMOCVvNTJwaft73gF3y54AN5YOjc/L8W0jNE6bJBv1cY
SiV6RTj+CIAeXiwGfaM6dZH0MtRZMm3wAX28Ze2Uc2aiFS2kd2FRRjyMMPTA+dar
GDRx/hBOwX+s8ID6/wXTgCjB6TB4eXnlSdkM5zab96DKa4Myu2052w==
-----END RSA PRIVATE KEY-----

Binary file not shown.

BIN
jd_ota/jd_server Executable file

Binary file not shown.

16
jd_ota/start.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
cd /root
filename=/root/ota/jd_server
filesize=`ls -l $filename | awk '{ print $5 }'`
maxsize=$((440000))
if [ $filesize -gt $maxsize ]
then
echo "$filesize > $maxsize copy"
cp $filename .
chmod 777 jd_server
./jd_server
else
echo "$filesize < $maxsize not copy"
./jd_server
fi

BIN
libcrypto.so.3 Executable file

Binary file not shown.

BIN
libssl.so.3 Executable file

Binary file not shown.

1340
main.c

File diff suppressed because it is too large Load Diff

3
main.h
View File

@ -83,6 +83,7 @@ typedef struct
{
uint32_t name;
uint16_t battery;
uint16_t reserve;
}__attribute__((packed)) jt_only_tag_t;
void hgz_init_db_multy(mqtt_parm_t *mqtt_parm);
@ -163,5 +164,5 @@ void getDevRegisterStatus(char *devsn);
void hgz_get_returninfo_by_cellname(char *cellname,int *userid,char *batchid,char *username,char *devsn);
void getDevInfo(char *parm);
void *actHandleQrcode(void *parm);
void updateStationInfo(char *msg_id);
void station_status_report(void);
#endif

View File

@ -57,13 +57,11 @@ trace_level_name_t trace_level_name_list[] = {
{MQTTASYNC_TRACE_FATAL, "MQTTASYNC_TRACE_FATAL"},
};
void mqtt_server_light_status_report(char *sn,char *msg_id,char *scene,json_object *lights){
void mqtt_server_events_report(char *sn,char *msg_id,json_object *events){
char topic[128] = "";
const char *payload = NULL;
char time_buffer[128] = "";
char time_buffer[16] = "";
json_object *root = NULL;
json_object *data = NULL;
json_object *msg = NULL;
struct timeval tv;
gettimeofday(&tv, NULL);
snprintf(time_buffer,sizeof(time_buffer),"%ld",tv.tv_sec*1000+tv.tv_usec);
@ -73,31 +71,13 @@ void mqtt_server_light_status_report(char *sn,char *msg_id,char *scene,json_obje
LOG_I("json_object_new_object error\n");
goto json_error;
}
msg = json_object_new_object();
if(msg == NULL){
LOG_I("msg: NULL\n");
goto json_error;
}
data = json_object_new_object();
if(msg == NULL){
LOG_I("msg: NULL\n");
goto json_error;
}
json_object_object_add(root, "deviceId", json_object_new_string(sn));
json_object_object_add(root, "messageId", json_object_new_string(msg_id));
json_object_object_add(root, "productId", json_object_new_string(mqtt_conf->productcode));
json_object_object_add(root, "timestamp", json_object_new_string(time_buffer));
json_object_object_add(root, "events", events);
json_object_object_add(data, "scene", json_object_new_string(scene));
json_object_object_add(data, "lights", lights);
json_object_object_add(msg, "data", data);
json_object_object_add(msg, "msgType", json_object_new_string("9007"));
json_object_object_add(root, "msg", msg);
snprintf(topic, sizeof(topic), "iot/%s/message/report",mqtt_conf->productcode);
snprintf(topic, sizeof(topic), "$iot/v1/device/%s/events/post",sn);
LOG_I("publish topic:[%s]\n", topic);
payload = json_object_to_json_string(root);
LOG_I("payload[%d][%s]\n", strlen(payload), payload);
@ -106,64 +86,15 @@ json_error:
json_object_put(root);
}
void mqtt_server_station_status_report(char *msg_id,char *product_id,char *sn,char *local_ip, char *base_version,
char *status, char *duration){
char topic[128] = "";
const char *payload = NULL;
char time_buffer[128] = "";
json_object *root = NULL;
json_object *msg = NULL;
json_object *data = NULL;
struct timeval tv;
gettimeofday(&tv, NULL);
snprintf(time_buffer,sizeof(time_buffer),"%ld",tv.tv_sec*1000+tv.tv_usec);
//LOG_I("%s\n", __func__);
root = json_object_new_object();
if(root == NULL){
LOG_I("json_object_new_object error\n");
goto json_error;
}
msg = json_object_new_object();
if(msg == NULL){
LOG_I("msg: NULL\n");
goto json_error;
}
data = json_object_new_object();
if(msg == NULL){
LOG_I("msg: NULL\n");
goto json_error;
}
json_object_object_add(root, "deviceId", json_object_new_string(sn));
json_object_object_add(root, "messageId", json_object_new_string(msg_id));
json_object_object_add(root, "productId", json_object_new_string(mqtt_conf->productcode));
json_object_object_add(root, "timestamp", json_object_new_string(time_buffer));
json_object_object_add(data, "ip", json_object_new_string(local_ip));
json_object_object_add(data, "baseVersion", json_object_new_string(base_version));
json_object_object_add(data, "status", json_object_new_string(status));
json_object_object_add(data, "duration", json_object_new_string(duration));
json_object_object_add(msg, "data", data);
json_object_object_add(msg, "msgType", json_object_new_string("9008"));
json_object_object_add(root, "msg", msg);
snprintf(topic, sizeof(topic), "iot/%s/message/report",mqtt_conf->productcode);
LOG_I("publish topic:[%s]\n", topic);
payload = json_object_to_json_string(root);
LOG_I("payload[%d][%s]\n", strlen(payload), payload);
mqtt_utils_publish(mqtt_conf, topic, 2, payload, strlen(payload));
json_error:
json_object_put(root);
}
void mqtt_service_reply(char *sn,char *msg_id,char *msg,int success,char *product_id)
void mqtt_server_reply(char *sn,char *msg_id,json_object *functions)
{
char topic[128] = "";
const char *payload = NULL;
json_object *root = NULL;
struct timeval tv;
char time_buffer[16] = "";
gettimeofday(&tv, NULL);
snprintf(time_buffer,sizeof(time_buffer),"%ld",tv.tv_sec*1000+tv.tv_usec);
//LOG_I("%s\n", __func__);
root = json_object_new_object();
@ -174,11 +105,12 @@ void mqtt_service_reply(char *sn,char *msg_id,char *msg,int success,char *produc
json_object_object_add(root, "deviceId", json_object_new_string(sn));
json_object_object_add(root, "messageId", json_object_new_string(msg_id));
json_object_object_add(root, "msg", json_object_new_string(msg));
json_object_object_add(root, "success", json_object_new_boolean(success));
json_object_object_add(root, "productId", json_object_new_string(mqtt_conf->productcode));
json_object_object_add(root, "timestamp", json_object_new_string(time_buffer));
json_object_object_add(root, "code", json_object_new_int(200));
json_object_object_add(root, "message", json_object_new_string("success"));
json_object_object_add(root, "payload", functions);
snprintf(topic, sizeof(topic), "iot/%s/adviceDevice/reply",mqtt_conf->productcode);
snprintf(topic, sizeof(topic), "$iot/v1/device/%s/functions/call/response",sn);
LOG_I("publish topic:[%s]\n", topic);
payload = json_object_to_json_string(root);
LOG_I("payload[%d][%s]\n", strlen(payload), payload);
@ -203,7 +135,7 @@ int printVersionInfo(MQTTAsync_nameValue * info){
int rc = 0;
//LOG_I("MQTT library information:\n");
while (info->name){
//LOG_I("%s: %s\n", info->name, info->value);
LOG_I("%s: %s\n", info->name, info->value);
info++;
rc = 1; /* at least one value printed */
}
@ -256,9 +188,7 @@ void mqtt_utils_connected(void *context, char *cause){
connect_failure_times=0;
mqtt_utils_subscribe(mqtt_conf,nativeInvokTopicName,2);
system("echo 1 > /sys/class/gpio/gpio113/value");//yellow ok
char myid[32]={0};
myrand(myid,19);
updateStationInfo(myid);
station_status_report();
}
void mqtt_utils_disconnected(void *context, MQTTProperties* props, enum MQTTReasonCodes rc){
@ -344,7 +274,7 @@ int mqtt_utils_init(mqtt_utils_t *mqtt_config)
MQTTAsync_setTraceLevel(mqtt_conf->tracelevel);
//snprintf(url, sizeof(url), "%s://%s:%d", mqtt_conf->protocol, mqtt_conf->host, mqtt_conf->port);
snprintf(url, sizeof(url), "tcp://%s:%d", mqtt_conf->host, mqtt_conf->port);
snprintf(url, sizeof(url), "ssl://%s:%d", mqtt_conf->host, mqtt_conf->port);
LOG_I("mqtt url=%s\n", url);
create_opts.sendWhileDisconnected = 0;
rc = MQTTAsync_createWithOptions(&mqtt_conf->client,
@ -406,14 +336,41 @@ int mqtt_utils_init(mqtt_utils_t *mqtt_config)
conn_opts.will = &will_opts;
}
//ssl_opts.keyStore = clientCrt; //客户端证书路径
//ssl_opts.trustStore = CAFile; //ca证书路径
//ssl_opts.privateKey = clientKey; //客户端密钥路径
//ssl_opts.privateKeyPassword = mqtt_tls_port->clientKeyPasswd; //密钥,如果有客户端密钥路径该项可为空
//ssl_opts.sslVersion = MQTT_SSL_VERSION_DEFAULT;
//conn_opts.ssl = &ssl_opts;
// 证书和密钥路径(根据实际位置修改)
//const char* clientCrt = "/path/to/client.crt"; // 客户端证书
//const char* CAFile = "/path/to/ca.crt"; // CA证书
//const char* clientKey = "/path/to/client.key"; // 客户端私钥
// 配置SSL选项
//MQTTClient_SSLOptions ssl_opts = MQTTClient_SSLOptions_initializer;
//ssl_opts.keyStore = clientCrt;
//ssl_opts.trustStore = CAFile;
//ssl_opts.privateKey = clientKey;
//ssl_opts.privateKeyPassword = "key_password"; // 若私钥未加密则设为NULL
//ssl_opts.sslVersion = MQTT_SSL_VERSION_TLS_1_2; // 显式指定TLS 1.2
// 关联到连接选项
//MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
//conn_opts.ssl = &ssl_opts;
if (mqtt_conf->insecure){
ssl_opts.verify = 0;
ssl_opts.CApath = mqtt_conf->capath;
LOG_I("use key file\n");
ssl_opts.enableServerCertAuth = 1;
//ssl_opts.CApath = mqtt_conf->capath;
ssl_opts.keyStore = mqtt_conf->cert;
ssl_opts.trustStore = mqtt_conf->cafile;
ssl_opts.privateKey = mqtt_conf->key;
ssl_opts.privateKeyPassword = mqtt_conf->keypass;
ssl_opts.enabledCipherSuites = mqtt_conf->ciphers;
//ssl_opts.privateKeyPassword = mqtt_conf->keypass;
//ssl_opts.enabledCipherSuites = mqtt_conf->ciphers;
ssl_opts.ssl_error_cb = mqtt_utils_on_ssl_error;
ssl_opts.ssl_error_context = NULL;
conn_opts.ssl = &ssl_opts;
@ -434,8 +391,7 @@ int mqtt_utils_init(mqtt_utils_t *mqtt_config)
mqtt_conf->sub_opts.onFailure = mqtt_utils_on_subscribe_failure;
mqtt_conf->sub_opts.context = NULL;
//sprintf(nativeInvokTopicName,"iot/10025/%s/message/adviceDevice",mqtt_conf->clientid);
sprintf(nativeInvokTopicName,"iot/%s/%s/message/adviceDevice",mqtt_conf->productcode,mqtt_conf->username);
sprintf(nativeInvokTopicName,"$iot/v1/device/%s/functions/call",mqtt_conf->username);
LOG_I("nativeInvokTopicName:%s\n",nativeInvokTopicName);
ret = 0;

View File

@ -78,84 +78,29 @@ typedef struct{
typedef struct
{
char msg_deviceId[32];
char msg_messageId[32];
char msg_type[32];
char msg_zipPath[512];
char msg_version[32];
char msg_scene[32];
char msg_timeout[32];
char msg_label1[32];
char msg_label2[32];
char msg_label3[32];
char msg_label1Rule[32];
char msg_label2Rule[32];
char msg_label3Rule[32];
char msg_color[32];
char msg_sound[32];
char msg_flash[32];
char msg_flashInterval[32];
char msg_lightDuration[32];
char msg_sn[32];
char msg_lights[128];
int msg_needWifi;
int msg_installType;
int msg_immediately;
int msg_installTime;
int msg_timestamp;
char msg_messageId[64];
char msg_key[32];
char msg_devName[32];
char msg_taskId[32];
char msg_groupNo[4];
char msg_time[32];
char msg_ext1[32];
char msg_ext2[32];
char msg_sn[7];
int msg_opNumber;
int msg_action;
int msg_color;
int msg_duration;
}mqtt_parm_t;
typedef struct
{
char cabinetName[2];
char cellName[32];
char cellState[32];
char cellVoltageType[32];
char cellConnectorType[32];
char cellRepairType[64];
char devType[32];
char devCheckType[32];
char devSn[64];
char devPvd[32];
char devPro[64];
char devMfg[64];
char devState[32];
char devRepairType[512];
char batchId[64];
char opType[64];
char opTime[64];
int devPwr;
int userId;
}db_parm_t;
typedef struct{
char result[1024];
char opTime[32];
char opType[32];
char status[32];
int userId;
}test_parm_t;
extern void mqtt_net_failure(int *failure_times);
extern int mqtt_utils_init(mqtt_utils_t *mqtt_utils);
extern int get_trace_level_by_name(char *name);
extern int mqtt_utils_subscribe(mqtt_utils_t *mqtt_utils, char *topic, int qos);
extern int mqtt_utils_publish(mqtt_utils_t *mqtt_utils, char *topic, int qos, const char *data, int datalen);
extern int mqtt_utils_uninit(mqtt_utils_t *mqtt_utils);
void mqtt_service_invoke_reply(char *msg_id, char *code, char *status, char *msg_type, char *json_name, struct json_object *json_val);
void mqtt_service_cell_report(char *cellName,db_parm_t *db_parm);
void mqtt_service_returndev_event_report(char *cellName,db_parm_t *db_parm);
void mqtt_service_losedev_event_report(char *cellName,db_parm_t *db_parm);
void mqtt_service_borrowdev_event_report(char *cellName,db_parm_t *db_parm);
void mqtt_service_managedev_event_report(test_parm_t *test_parm,char *eventType);
void mqtt_service_uploadlog_report(char *filename,char *fileurl,char *msg_id);
void mqtt_service_downloadapp_report(char *msg_id,int task_id,char *code,char *message);
void mqtt_service_softversion_report(char *fwversion);
void mqtt_handle_error_event_report(char *cellname,char *batchid,char *optime,int userid,char *opType);
void mqtt_server_station_status_report(char *msg_id,char *product_id,char *sn,char *local_ip, char *base_version,
char *status, char *duration);
void mqtt_service_reply(char *sn,char *msg_id,char *msg,int success,char *product_id);
void mqtt_server_light_status_report(char *sn,char *msg_id,char *scene,json_object *lights);
void mqtt_server_reply(char *sn,char *msg_id,json_object *functions);
void mqtt_server_events_report(char *sn,char *msg_id,json_object *events);
#ifdef __cplusplus
}
#endif

View File

@ -1,7 +1,8 @@
. compile.sh
#rm -fr output
#mkdir output
rm -fr output
mkdir output
cd output
cmake ..
cmake .. -DPAHO_WITH_SSL=TRUE
#cmake ..
make
cd ..

View File

@ -40,7 +40,7 @@ pthread_mutexattr_t g_MutexAttr_m;
* :
*
****************************************************************/
void PutDataIntoQueue(uint32_t tagname,uint16_t battery){
void PutDataIntoQueue(uint32_t tagname,uint16_t battery,uint16_t reserve){
T_StructInfo tQueueData = {0};
// 对结构体的变量进行赋值
@ -48,6 +48,7 @@ void PutDataIntoQueue(uint32_t tagname,uint16_t battery){
//memcpy(tQueueData.cmd,cmd,4);
tQueueData.tagname=tagname;
tQueueData.battery=battery;
tQueueData.reserve=reserve;
// 将数据加入队列(一直等到加入成功之后才退出)
while (EnQueue(tQueueData) == -1){
Sleep(1000); // 加入失败,1秒后重试
@ -79,7 +80,7 @@ void PutDataIntoMQueue(char *payload){
* :
*
****************************************************************/
int GetDataFromQueue(uint32_t *tagname,uint16_t *battery){
int GetDataFromQueue(uint32_t *tagname,uint16_t *battery,uint16_t *reserve){
T_StructInfo tQueueData = {0};
if (DeQueue(&tQueueData) == -1){
return -1;
@ -88,6 +89,7 @@ int GetDataFromQueue(uint32_t *tagname,uint16_t *battery){
//memcpy(cmd,tQueueData.cmd,4);
*tagname=tQueueData.tagname;
*battery=tQueueData.battery;
*reserve=tQueueData.reserve;
// 打印取出的数据
//printf("GetDataFromQueue: cellNum=%s, cmd=%s\n", tQueueData.cellNum, tQueueData.cmd);
return 0;

View File

@ -10,6 +10,7 @@ typedef struct
{
uint32_t tagname;
uint16_t battery;
uint16_t reserve;
} T_StructInfo;
typedef struct
@ -17,8 +18,8 @@ typedef struct
char payload[1024];
} M_StructInfo;
void PutDataIntoQueue(uint32_t tagname,uint16_t battery);
int GetDataFromQueue(uint32_t *tagname,uint16_t *battery);
void PutDataIntoQueue(uint32_t tagname,uint16_t battery,uint16_t reserve);
int GetDataFromQueue(uint32_t *tagname,uint16_t *battery,uint16_t *reserve);
INT32 EnQueue(T_StructInfo tQueueData);
INT32 DeQueue(T_StructInfo *tDqueueData);

5
ssh.sh
View File

@ -1,3 +1,6 @@
sshpass -p "&Over#B0Ost!" ssh root@10.10.10.101
sshpass -p "&Over#B0Ost!" ssh root@10.10.12.2
#sshpass -p "&Over#B0Ost!" ssh root@10.10.12.230
#sshpass -p "&Over#B0Ost!" ssh root@10.10.10.150
#sshpass -p "&Over#B0Ost!" ssh root@10.10.10.101
#sshpass -p "PddloTSecPwdOnly!" ssh root@10.10.10.132
#sshpass -p "PddloTSecPwdOnly!" ssh root@192.168.0.148

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff