@@ -20,14 +20,14 @@ using namespace std;
SafeMessageQueue message_queue ; // ȫ<> <C8AB> <EFBFBD> <EFBFBD> Ϣ<EFBFBD> <CFA2> <EFBFBD> <EFBFBD>
//ʱ<> <CAB1> ת<EFBFBD> <D7AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
time_t ConvertToTimestamp ( const tagPqData_Float & data ) {
time_t ConvertToTimestamp ( const tagTime & time ) {
struct tm t = { } ;
t . tm_year = data . time. DeviceYear - 1900 ; // tm_year <20> <> 1900 <20> <> ʼ <EFBFBD> <CABC>
t . tm_mon = data . time. DeviceMonth - 1 ; // tm_mon <20> <> 0<> <30> 1<EFBFBD> £<EFBFBD> <C2A3> <EFBFBD> ʼ
t . tm_mday = data . time. DeviceDay ;
t . tm_hour = data . time. DeviceHour ;
t . tm_min = data . time. DeviceMinute ;
t . tm_sec = data . time. DeviceSecond ;
t . tm_year = time . DeviceYear - 1900 ; // tm_year <20> <> 1900 <20> <> ʼ <EFBFBD> <CABC>
t . tm_mon = time . DeviceMonth - 1 ; // tm_mon <20> <> 0<> <30> 1<EFBFBD> £<EFBFBD> <C2A3> <EFBFBD> ʼ
t . tm_mday = time . DeviceDay ;
t . tm_hour = time . DeviceHour ;
t . tm_min = time . DeviceMinute ;
t . tm_sec = time . DeviceSecond ;
// <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> 䣩
return mktime ( & t ) ;
@@ -333,7 +333,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
//std::cout << "New star base64Str0:" << max_base64Str << std::endl;
//std::cout << "New del base64Str1:" << avg_data.ConvertToBase64(1) << std::endl;
//lnk20250708ʹ <38> ýӿڷ<D3BF> <DAB7> <EFBFBD>
time_t data_time = ConvertToTimestamp ( avg_data ) ;
time_t data_time = ConvertToTimestamp ( avg_data . time );
std : : vector < DataArrayItem > arr ;
arr . push_back ( { 1 , //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1-<2D> ޣ<EFBFBD> 0-<2D> <> Rt<52> <74> ,1-<2D> <> Max<61> <78> ,2-<2D> <> Min<69> <6E> ,3-<2D> <> Avg<76> <67> ,4-<2D> <> Cp95<39> <35>
@@ -347,22 +347,22 @@ void process_received_message(string mac, string id,const char* data, size_t len
std : : string js = generate_json (
- 1 , //<2F> <> Ӧ<EFBFBD> <D3A6> <EFBFBD> ı <EFBFBD> <C4B1> Ķ<EFBFBD> <C4B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> յ<EFBFBD> <D5B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Դ<EFBFBD> IDӦ<44> <D3A6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <EFBFBD> <EFBFBD> <EFBFBD> 롰-1<> <31>
123456 , //<2F> 豸Ψһ <CEA8> <D2BB> ʶLdid<69> <64> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> <EFBFBD> <EFBFBD> Ndid
1 , //<2F> <> <EFBFBD> Ĵ<EFBFBD> <C4B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
123456 , //<2F> 豸Ψһ <CEA8> <D2BB> ʶLdid<69> <64> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> <EFBFBD> <EFBFBD> Ndid,<2C> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> id<69> <64> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
3 , //<2F> <> <EFBFBD> Ĵ<EFBFBD> <C4B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> <EFBFBD> <EFBFBD> 1 I<> <49> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /<2F> <> Ӧ 2 II<49> <49> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /<2F> <> Ӧ 3 <20> <> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> /<2F> <> Ӧ 4 <20> 㲥<EFBFBD> <E3B2A5> <EFBFBD> <EFBFBD>
0x1302 , //<2F> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͵<EFBFBD> <CDB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
max _data. name , //<2F> <EFBFBD> <DFBC> <EFBFBD> <EFBFBD> 豸ID<49> <44> 0-<2D> <EFBFBD> <DFBC> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1
max_data . Data_Type , // <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
avg _data. name , //<2F> <EFBFBD> <DFBC> <EFBFBD> <EFBFBD> 豸ID<49> <44> 0-<2D> <EFBFBD> <DFBC> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1
0x04 , //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̶<CDB9> Ϊ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2 , //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԣ<EFBFBD> <D4A3> ޡ<EFBFBD> 0<EFBFBD> <30> <EFBFBD> <EFBFBD> ʵʱ<CAB5> <CAB1> 1<EFBFBD> <31> <EFBFBD> <EFBFBD> ͳ<EFBFBD> ơ<EFBFBD> 2<EFBFBD> <32> <EFBFBD> <EFBFBD>
1 , //<2F> <> <EFBFBD> ݼ<EFBFBD> <DDBC> <EFBFBD> <EFBFBD> ţ<EFBFBD> <C5A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݼ<EFBFBD> <DDBC> <EFBFBD> ʽ <EFBFBD> <CABD> <EFBFBD> ͣ<EFBFBD> <CDA3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1
- 1 , //<2F> <> <EFBFBD> ݼ<EFBFBD> <DDBC> <EFBFBD> <EFBFBD> ţ<EFBFBD> <C5A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݼ<EFBFBD> <DDBC> <EFBFBD> ʽ <EFBFBD> <CABD> <EFBFBD> ͣ<EFBFBD> <CDA3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1
arr //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
) ;
//std::cout << js << std::endl;
queue_data_t data ;
data . monitor_no = 1 ;
data . strTopic = TOPIC_STAT ;
data . monitor_no = 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
data . strTopic = TOPIC_STAT ; //ͳ<> <CDB3> topic
data . strText = js ;
data . mp_id = " test " ;
data . mp_id = " test " ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
std : : lock_guard < std : : mutex > lock ( queue_data_list_mutex ) ;
queue_data_list . push_back ( data ) ;
@@ -440,6 +440,10 @@ void process_received_message(string mac, string id,const char* data, size_t len
std : : cout < < " READING_REALSTAT state: Processing stats data from " < < mac < < std : : endl ;
if ( udata [ 8 ] = = static_cast < unsigned char > ( MsgResponseType : : Response_New_3S ) ) {
unsigned char packet_type = udata [ 13 ] ;
//ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
unsigned char cid = udata [ 12 ] ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӵ<EFBFBD> <D3B5> <EFBFBD> <EFBFBD> <EFBFBD>
const uint8_t * data_ptr = parser . RecvData . data ( ) + 4 ;
size_t data_size = parser . RecvData . size ( ) - 4 ;
@@ -495,16 +499,39 @@ void process_received_message(string mac, string id,const char* data, size_t len
}
}
std : : string strScale ; //<2F> <> ѹ<EFBFBD> ȼ<EFBFBD>
int nPTType = 0 ; //<2F> <> <EFBFBD> ߷<EFBFBD> ʽ
ClientManager : : instance ( ) . get_point_scale_and_pttype (
id , // <20> <> ʹ <EFBFBD> <CAB9> id
s tatic_cast < unsigned char > ( u data[ 12 ] ) , // <20> ӱ<EFBFBD> <D3B1> <EFBFBD> <EFBFBD> н<EFBFBD> <D0BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> IJ<EFBFBD> <C4B2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
strScale ,
nPTType ) ;
std : : string base64 = realdata . ConvertToBase64 ( ) ;
std : : cout < < base64 < < std : : endl ;
//lnkʵʱ<CAB5> <CAB1> <EFBFBD> <EFBFBD> ʹ <EFBFBD> ýӿڷ<D3BF> <DAB7> <EFBFBD> 20250711
time_t da ta_ time = ConvertToTimestamp ( real data. time ) ;
std : : vector < DataArrayItem > arr ;
arr . push_back ( { 1 , //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1-<2D> ޣ<EFBFBD> 0-<2D> <> Rt<52> <74> ,1-<2D> <> Max<61> <78> ,2-<2D> <> Min<69> <6E> ,3-<2D> <> Avg<76> <67> ,4-<2D> <> Cp95<39> <35>
data_time , //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> 䣬<EFBFBD> <E4A3AC> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ꣬<EFBFBD> <EAA3AC> <EFBFBD> <EFBFBD> 1970<37> <30> <EFBFBD> <EFBFBD> <EFBFBD> 룬<EFBFBD> <EBA3AC> Ч<EFBFBD> <D0A7> <EFBFBD> 롰-1<> <31>
- 1 , //<2F> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ꣬<EAA3AC> <CEA2> <EFBFBD> ӣ<EFBFBD> <D3A3> <EFBFBD> Ч<EFBFBD> <D0A7> <EFBFBD> 롰-1<> <31>
0 , //<2F> <> <EFBFBD> ݱ<EFBFBD> ʶ<EFBFBD> <CAB6> 1-<2D> <> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD> <EFBFBD> 쳣
base64 } ) ;
std : : string js = generate_json (
- 1 , //<2F> <> Ӧ<EFBFBD> <D3A6> <EFBFBD> ı <EFBFBD> <C4B1> Ķ<EFBFBD> <C4B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> յ<EFBFBD> <D5B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Դ<EFBFBD> IDӦ<44> <D3A6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <EFBFBD> <EFBFBD> <EFBFBD> 롰-1<> <31>
123456 , //<2F> 豸Ψһ <CEA8> <D2BB> ʶLdid<69> <64> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0<EFBFBD> <30> <EFBFBD> <EFBFBD> Ndid,<2C> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> id<69> <64> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
3 , //<2F> <> <EFBFBD> Ĵ<EFBFBD> <C4B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> <C8BC> <EFBFBD> 1 I<> <49> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /<2F> <> Ӧ 2 II<49> <49> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /<2F> <> Ӧ 3 <20> <> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> /<2F> <> Ӧ 4 <20> 㲥<EFBFBD> <E3B2A5> <EFBFBD> <EFBFBD>
0x1302 , //<2F> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͵<EFBFBD> <CDB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cid , //<2F> <EFBFBD> <DFBC> <EFBFBD> <EFBFBD> 豸ID<49> <44> 0-<2D> <EFBFBD> <DFBC> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1
0x04 , //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̶<CDB9> Ϊ<EFBFBD> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
1 , //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԣ<EFBFBD> <D4A3> ޡ<EFBFBD> 0<EFBFBD> <30> <EFBFBD> <EFBFBD> ʵʱ<CAB5> <CAB1> 1<EFBFBD> <31> <EFBFBD> <EFBFBD> ͳ<EFBFBD> ơ<EFBFBD> 2<EFBFBD> <32> <EFBFBD> <EFBFBD>
- 1 , //<2F> <> <EFBFBD> ݼ<EFBFBD> <DDBC> <EFBFBD> <EFBFBD> ţ<EFBFBD> <C5A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݼ<EFBFBD> <DDBC> <EFBFBD> ʽ <EFBFBD> <CABD> <EFBFBD> ͣ<EFBFBD> <CDA3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -1
arr //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
) ;
//std::cout << js << std::en
queue_data_t data ;
data . monitor_no = 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
data . strTopic = TOPIC_RTDATA ; //ʵʱtopic
data . strText = js ;
data . mp_id = " test " ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
std : : lock_guard < std : : mutex > lock ( queue_data_list_mutex ) ;
queue_data_list . push_back ( data ) ;
std : : string base64 = realdata . ConvertToBase64 ( nPTType ) ;
//std::cout << base64 << std::endl;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɺ<EFBFBD> <C9BA> <EFBFBD> <EFBFBD> <EFBFBD> ״̬
ClientManager : : instance ( ) . change_device_state ( id , DeviceState : : IDLE ) ;
}