void client_loop(void)
{
    int i = 0;  //loop iterator
    if (socket_conneted())
    {
        if (client_logined())
        {
            if (data.isGpsFixed)
            {
                MSG_GPS* msg = alloc_msg(CMD_GPS, sizeof(MSG_GPS));

                if (!msg)
                {
                    LOG_ERROR("alloc message failed");
                }

                msg->gps = data.gps;
                socket_sendData(msg, sizeof(MSG_GPS));
                LOG_DEBUG("send GPS message");
            }
            else
            {
                size_t msgLen = sizeof(MSG_HEADER) + sizeof(CGI) + sizeof(CELL) * data.cellNum;
                MSG_HEADER* msg = alloc_msg(CMD_CELL, msgLen);
                CGI* cgi = (CGI*) msg + 1;
                CELL* cell = (CELL*)cgi + 1;
                if (!msg)
                {
                    LOG_ERROR("alloc message failed");
                }

                memcpy(cgi, &(data.cgi), sizeof(CGI));
                for (i = 0; i < data.cellNum; i++)
                {
                    memcpy(cell + i, data.cells + i, sizeof(CELL));
                }
                socket_sendData(msg, msgLen);
                LOG_DEBUG("send CELL message");
            }
        }
        else
        {
            MSG_LOGIN_REQ* msg = alloc_msg(CMD_LOGIN, sizeof(MSG_LOGIN_REQ));
            u8 imei[16] = {0};

            eat_get_imei(imei, 15);

            if (!msg)
            {
                LOG_ERROR("alloc message failed");
            }

            memcpy(msg->IMEI, imei, 16);
            socket_sendData(msg, sizeof(MSG_LOGIN_REQ));
            LOG_DEBUG("send login message");
        }

    }

}
Exemple #2
0
s32 socket_sendDataWaitAck(void* data, s32 len, MSG_RESEND_FAILED_HANDLER pfn, void* userdata)
{
    s32 rc = socket_sendData(data, len);

    msg_push(data, len, pfn, userdata);

    return rc;
}
Exemple #3
0
s32 socket_sendDataDirectly(void* data, s32 len)
{
    s32 rc = socket_sendData(data, len);

    free_msg(data);

    return rc;
}