fix:当存在idx作为确认时手机无法接收到数据的问题

This commit is contained in:
Zip
2019-03-15 17:33:37 +08:00
parent e4c6d14185
commit deaacbeb4b
2 changed files with 46 additions and 32 deletions

View File

@@ -92,7 +92,6 @@ void user_function_cmd_received( int udp_flag, uint8_t *pusrdata )
cJSON_AddItemToObject( json_send, strTemp1, json_send_plug_on ); cJSON_AddItemToObject( json_send, strTemp1, json_send_plug_on );
char *json_str = cJSON_Print( json_send ); char *json_str = cJSON_Print( json_send );
user_send( udp_flag, json_str ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> user_send( udp_flag, json_str ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
free( json_str ); free( json_str );
@@ -134,7 +133,7 @@ void user_function_cmd_received( int udp_flag, uint8_t *pusrdata )
} }
user_function_set_last_time( ); user_function_set_last_time( );
} }
cJSON_AddNumberToObject( json_send, "nvalue", relay_out( ) ); cJSON_AddNumberToObject( json_send, "nvalue", p_nvalue->valueint );
} }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>setting----------------------------------------------------------------- //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>setting-----------------------------------------------------------------
@@ -263,31 +262,34 @@ bool json_plug_analysis( int udp_flag, char x, cJSON * pJsonRoot, cJSON * pJsonS
plug_str[5] = x + '0'; plug_str[5] = x + '0';
cJSON *p_plug = cJSON_GetObjectItem( pJsonRoot, plug_str ); cJSON *p_plug = cJSON_GetObjectItem( pJsonRoot, plug_str );
if ( !p_plug ) return false; if ( !p_plug ) return_flag = false;
cJSON *json_plug_send = cJSON_CreateObject( ); cJSON *json_plug_send = cJSON_CreateObject( );
//<2F><><EFBFBD><EFBFBD>plug on------------------------------------------------------ //<2F><><EFBFBD><EFBFBD>plug on------------------------------------------------------
cJSON *p_plug_on = cJSON_GetObjectItem( p_plug, "on" ); if ( p_plug )
if ( p_plug_on )
{ {
if ( cJSON_IsNumber( p_plug_on ) ) cJSON *p_plug_on = cJSON_GetObjectItem( p_plug, "on" );
if ( p_plug_on )
{ {
user_relay_set( x, p_plug_on->valueint ); if ( cJSON_IsNumber( p_plug_on ) )
return_flag = true;
if ( user_config->plug[x].idx > 0 )
{ {
cJSON *json_return_now = cJSON_CreateObject( ); user_relay_set( x, p_plug_on->valueint );
cJSON_AddNumberToObject( json_return_now, "idx", user_config->plug[x].idx ); return_flag = true;
cJSON_AddNumberToObject( json_return_now, "nvalue", user_config->plug[x].on ); if ( user_config->plug[x].idx > 0 )
char *json_str = cJSON_Print( json_return_now ); {
user_send( udp_flag, json_str ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cJSON *json_return_now = cJSON_CreateObject( );
free( json_str ); cJSON_AddNumberToObject( json_return_now, "idx", user_config->plug[x].idx );
cJSON_Delete( json_return_now ); cJSON_AddNumberToObject( json_return_now, "nvalue", user_config->plug[x].on );
char *json_str = cJSON_Print( json_return_now );
user_send( udp_flag, json_str ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
free( json_str );
cJSON_Delete( json_return_now );
}
} }
} }
cJSON_AddNumberToObject( json_plug_send, "on", user_config->plug[x].on );
}
//<2F><><EFBFBD><EFBFBD>plug<75><67>setting<6E><67>Ŀ---------------------------------------------- //<2F><><EFBFBD><EFBFBD>plug<75><67>setting<6E><67>Ŀ----------------------------------------------
cJSON *p_plug_setting = cJSON_GetObjectItem( p_plug, "setting" ); cJSON *p_plug_setting = cJSON_GetObjectItem( p_plug, "setting" );
@@ -327,6 +329,9 @@ bool json_plug_analysis( int udp_flag, char x, cJSON * pJsonRoot, cJSON * pJsonS
cJSON_AddItemToObject( json_plug_send, "setting", json_plug_setting_send ); cJSON_AddItemToObject( json_plug_send, "setting", json_plug_setting_send );
} }
}
cJSON *p_nvalue = cJSON_GetObjectItem( pJsonRoot, "nvalue" );
if ( p_plug || p_nvalue )cJSON_AddNumberToObject( json_plug_send, "on", user_config->plug[x].on );
cJSON_AddItemToObject( pJsonSend, plug_str, json_plug_send ); cJSON_AddItemToObject( pJsonSend, plug_str, json_plug_send );
return return_flag; return return_flag;

View File

@@ -89,7 +89,7 @@ static void key_short_press( void )
char i; char i;
OSStatus err; OSStatus err;
if ( relay_out( ) ) if ( relay_out() )
{ {
user_relay_set_all( 0 ); user_relay_set_all( 0 );
} }
@@ -98,22 +98,31 @@ static void key_short_press( void )
user_relay_set_all( 1 ); user_relay_set_all( 1 );
} }
uint8_t * buf = NULL; //[64] = { 0 }; char relay_out_temp;
buf = malloc( 64 ); cJSON *json_send = cJSON_CreateObject( );
if ( buf != NULL ) cJSON_AddStringToObject( json_send, "mac", strMac );
if ( user_config->idx >= 0 )
cJSON_AddNumberToObject( json_send, "idx", user_config->idx );
relay_out_temp = relay_out( ) ? 1 : 0;
char plug_str[] = "plug_X";
for ( i = 0; i < PLUG_NUM; i++ )
{ {
if ( user_config->idx >= 0 ) plug_str[5] = i + '0';
sprintf( buf, "{\"idx\" : %d,\"mac\" : \"%s\",\"nvalue\" : %d}", user_config->idx, strMac, relay_out( ) ); cJSON *json_plug_send = cJSON_CreateObject( );
else cJSON_AddNumberToObject( json_plug_send, "on", relay_out_temp );
sprintf( buf, "{\"mac\" : \"%s\",\"nvalue\" : %d}", strMac, relay_out( ) ); cJSON_AddItemToObject( json_send, plug_str, json_plug_send );
os_log("send %s", buf);
if ( !user_mqtt_isconnect( ) ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
user_udp_send( buf );
else
user_mqtt_send( buf );
free( buf );
} }
char *json_str = cJSON_Print( json_send );
if ( !user_mqtt_isconnect( ) ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
user_udp_send( json_str );
else
user_mqtt_send( json_str );
free( (void *) json_str );
cJSON_Delete( json_send );
} }
mico_timer_t user_key_timer; mico_timer_t user_key_timer;
uint16_t key_time = 0; uint16_t key_time = 0;