GuoWenxue
2022-04-29 8bdd4bb9f08e38b61b47caa5aa50d6912772b289
Add json support in packet.c
2 files modified
34 ■■■■■ changed files
apue/project_socket/src/packet.c 21 ●●●●● patch | view | raw | blame | history
apue/project_socket/src/packet.h 13 ●●●●● patch | view | raw | blame | history
apue/project_socket/src/packet.c
@@ -50,7 +50,7 @@
    return 0;
}
int packet_string_pack(pack_info_t *pack_info, char *pack_buf, int size)
int packet_segmented_pack(pack_info_t *pack_info, char *pack_buf, int size)
{
    if( !pack_info || !pack_buf || size<=0 )
    {
@@ -58,10 +58,29 @@
        return -1;
    }
    memset(pack_buf, 0, size);
    snprintf(pack_buf, size, "%s|%s|%d.%d", pack_info->devid, pack_info->strtime, 
            temper_integer(pack_info->temper), temper_fract(pack_info->temper));
    return strlen(pack_buf);
}
int packet_json_pack(pack_info_t *pack_info, char *pack_buf, int size)
{
    if( !pack_info || !pack_buf || size<=0 )
    {
        log_error("Invalid input arguments\n");
        return -1;
    }
    memset(pack_buf, 0, size);
    snprintf(pack_buf, size, "{\"devid\":\"%s\", \"time\":\"%s\",\"temperature\":\"%d.%d\"}",
            pack_info->devid, pack_info->strtime,
            temper_integer(pack_info->temper), temper_fract(pack_info->temper));
    return strlen(pack_buf);
}
apue/project_socket/src/packet.h
@@ -54,6 +54,17 @@
 *               $size     :  packet output buffer size
 * return value: <0: failure   >0: packet bytes
 */
extern int packet_string_pack(pack_info_t *pack_info, char *pack_buf, int size);
extern int packet_segmented_pack(pack_info_t *pack_info, char *pack_buf, int size);
/*  description: package a json string packet: {"devid":"xxx", "time":"xxx", "temperature":"xxx"}
 *   input args:
 *               $pack_info:  packet data contains devid, time and temperature
 *               $pack_buf :  packet output buffer
 *               $size     :  packet output buffer size
 * return value: <0: failure   >0: packet bytes
 */
extern int packet_json_pack(pack_info_t *pack_info, char *pack_buf, int size);
#endif   /* ----- #ifndef _PACKET_H_  ----- */