/*******************************************************************************
 * Copyright (c) 2012, 2020 IBM Corp.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * and Eclipse Distribution License v1.0 which accompany this distribution.
 *
 * The Eclipse Public License is available at
 *   https://www.eclipse.org/legal/epl-2.0/
 * and the Eclipse Distribution License is available at
 *   http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *    Ian Craggs - initial contribution
 *******************************************************************************/

#include <stdio.h>
#include <syslog.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "com_api.h"
#include "kk_product.h"
#include "kk_findccu_handle.h"
#include "kk_login_handle.h"
#include "kk_data_handle.h"

//#include "kk_lan_queue.h"
#include "kk_lan_node_db.h"

static char s_ccuid[DEVICE_CODE_LEN] = {0};
int kk_lan_get_ccuid(_OU_ char *device_code)
{    
    strncpy(device_code, s_ccuid, strlen(s_ccuid));
    printf("kk_lan_get_ccuid:%s\n",s_ccuid);
    return strlen(s_ccuid);
}
static int _setDevice_Code(_IN_ char *device_code,int len)
{
    memset(s_ccuid, 0x0, DEVICE_CODE_LEN);
    printf("_setDevice_Code:%s\n",device_code);
    strncpy(s_ccuid, device_code, len);
    return len;
}
static void kk_lan_ccuid_init(void)
{
    uint8_t ccuid[DEVICE_CODE_LEN] = {0};
    int ccuid_len = 0;
    HAL_Execel_cmd(GET_CCUID_CMD,(char *)ccuid,sizeof(ccuid),&ccuid_len);
    printf("GET_CCUID_CMD:%s\n",ccuid);
    if(ccuid_len > 0 && ccuid_len <= DEVICE_CODE_LEN){
        _setDevice_Code(ccuid,ccuid_len-1);
    }else{
        _setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
    }
}




int main(int argc, char* argv[])
{
	int rc = 0;
	char *ppp;
	open("kk_lan",LOG_PID,LOG_USER);

	kk_lan_ccuid_init();

	/*set the callback to get the device date to cloud*/
	kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromMid,NULL,NULL);
	kk_findccu_handle_init();
	kk_map_dev_init();
	kk_login_init();

	//lan_queue_init();
	kk_lan_db_node_init();
	//kk_handle_sync_info();


	while(1){
		sleep(1);
	}
	return rc;
}

