56 lines
977 B
C
56 lines
977 B
C
|
|
#include <string.h>
|
|
#include <rtthread.h>
|
|
|
|
#include "chrg_pkg.h"
|
|
#include "chrg_utils.h"
|
|
|
|
int chrg_pkg_encode (eIDX_ID id, rt_uint8_t cmd, rt_uint8_t *data_in,
|
|
rt_uint8_t len_in, rt_uint8_t *data_out, rt_uint16_t *len_out)
|
|
{
|
|
if ((RT_NULL == data_in)||(RT_NULL == data_out)||(0 == len_in)) {
|
|
return -1;
|
|
}
|
|
|
|
data_out[0] = 5+len_in;
|
|
data_out[1] = 0x00;
|
|
data_out[2] = id;
|
|
data_out[3] = cmd;
|
|
memcpy(&data_out[4], data_in, len_in);
|
|
data_out[len_in+4] = calc_crc8(data_out, len_in+4);
|
|
|
|
*len_out = 5+len_in;
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int chrg_pkg_decode (eIDX_ID id, rt_uint8_t *data)
|
|
{
|
|
|
|
return 0;
|
|
}
|
|
|
|
int chrg_pkg_send (eIDX_TTY idx, rt_uint8_t *data, rt_uint16_t len)
|
|
{
|
|
rt_ssize_t ret = -1;
|
|
struct chrg_tty_t *pTTY = RT_NULL;
|
|
|
|
switch (idx) {
|
|
case IDX_TTY_NORTH:
|
|
// pTTY = chrgnorth.tty;
|
|
break;
|
|
case IDX_TTY_SOUTH:
|
|
// pTTY = chrgsouth.tty;
|
|
break;
|
|
}
|
|
|
|
if ((RT_NULL != pTTY)&&(RT_NULL != pTTY->dev)) {
|
|
ret = rt_device_write(pTTY->dev, 0, data, len);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
|