//
//  lancommn.h
//  lanserver
//
//  Created by chzns on 2018/4/27.
//  Copyright © 2018�? chznsrudp. All rights reserved.
//

#ifndef lancommn_h
#define lancommn_h

#include <stdint.h>
#include <stdio.h>
#ifdef __RTOS__ 
#include "MQTTFreeRTOS.h"
#endif

//#define AIIP_LOG

//ios去掉log,便于调试
//#ifdef IOS
//#undef AIIP_LOG
//#endif

#ifdef AIIP_LOG
#define LOG_TAG "IPPLAN"

#ifdef ANDROID
#include <android/log.h>
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,LOG_TAG,__VA_ARGS__)
#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)

#else
#define LOGV printf(__VA_ARGS__)
#define LOGD printf(__VA_ARGS__)
#define LOGI printf(__VA_ARGS__)
#define LOGE printf(__VA_ARGS__)
#define LOGW printf(__VA_ARGS__)

#endif

#else
#ifndef __log_mqtt__
#define LOGV(...)
#define LOGD(...)
#define LOGI(...)
#define LOGE(...)
#define LOGW(...)
#endif
#endif

//�?大包长度，请根据�?要自己调整，根据UDP规则，最�?64K,物联网设备建�?2K
#define K_BUF_SIZE 1024//1024 * 4

//等待数据返回的超时时间，通过session_get_value发�?�数据后，超过这个时间认为失�?
#define K_GET_VALUE_TIME_OUT  10000

//smartp 包含device函数
//#define SMART_CLINET

//smartp 包含app函数
//#define SMART_SERVER

//******************以下为系统默认�?�，请不要修�?******************
#ifndef LANSERVER_PORT
#define LANSERVER_PORT 9988
#endif

#ifndef LANClIENT_PORT
#define LANClIENT_PORT 12425
#endif

#define SCAN_INTERVAL 5000
#define OFFLINE_TIME 16000
#define DEFAULT_CRYPT_KEY  "AABBCCDD00112233"

#ifdef __cplusplus
extern "C"
{
#endif

uint32_t lan_time_get (void);
void msleep(long milliseconds);
uint8_t crc8(const uint8_t *A,uint16_t n);
uint8_t * to_hex_str(uint8_t* inMsg, uint8_t *outMsg, uint16_t len);
int hex_to_bytes(uint8_t *s, uint8_t *bits);


#ifdef __cplusplus
}
#endif

#endif /* lancommn_h */
