示例#1
0
int main(int argc, char ** argv)
{
	xbee_open((char *)PORT);

	//char * buf =  "\x7E\x00\x04\x08\x01\x4D\x59\x50";

	//char * buf = "\x7E\x00\x10\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x00\x00\x22\x44\x8A";
	//char * buf = "\x7E\x00\x04\x08\x01\x4A\x4E\x5E";
	//char * buf = "\x7E\x00\x04\x08\x01\x57\x52\x4D";
	//write(xbee->fd, buf, 8); 
	//
	//xbee_send_data("\x22", 1, 0, 0);
	
	//struct at_command * at = malloc(sizeof(struct xbee_atcommand));
	//at->at_cmd = "MY";
	//at->at_cmd = 0x4D59;

	xbee_send_atcommand("MY", "", 0);
	//xbee_send_atwr(xbee->fd, "JN", "\x01", 0);

	struct xbee_rawframe * frame = malloc(sizeof(struct xbee_rawframe));
	xbee_read(frame);

	xbee_print_frame((uint8_t *)frame);

	free(frame);
	
	
	/* Closing file descriptor */
	xbee_close();
	return 0;
}
示例#2
0
文件: main.c 项目: wuwx/simba
static int test_frame_as_string(struct harness_t *harness_p)
{
    struct xbee_frame_t frame;

    /* AT Command - parameter read. */
    frame.type = XBEE_FRAME_TYPE_AT_COMMAND;
    frame.data.buf[0] = 0x01;
    frame.data.buf[1] = 'D';
    frame.data.buf[2] = 'L';
    frame.data.size = 3;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(&queue,
                             "AT Command(frame_id=0x01, at_command='DL')\r\n",
                             NULL), ==, 44);

    /* AT Command - parameter write. */
    frame.type = XBEE_FRAME_TYPE_AT_COMMAND;
    frame.data.buf[0] = 0x02;
    frame.data.buf[1] = 'D';
    frame.data.buf[2] = 'L';
    frame.data.buf[3] = 0x01;
    frame.data.buf[4] = 0x02;
    frame.data.buf[5] = 0x03;
    frame.data.buf[6] = 0x04;
    frame.data.size = 7;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(
                  &queue,
                  "AT Command(frame_id=0x02, at_command='DL', "
                  "parameter=0x01020304)\r\n",
                  NULL), ==, 66);

    /* RX Packet: 64-bit Address frame. */
    frame.type = XBEE_FRAME_TYPE_RX_PACKET_64_BIT_ADDRESS;
    frame.data.buf[0] = 0x12;
    frame.data.buf[1] = 0x34;
    frame.data.buf[2] = 0x56;
    frame.data.buf[3] = 0x78;
    frame.data.buf[4] = 0x9a;
    frame.data.buf[5] = 0xbc;
    frame.data.buf[6] = 0xde;
    frame.data.buf[7] = 0xf0;
    frame.data.buf[8] = 0x28;
    frame.data.buf[9] = 0x04;
    frame.data.buf[10] = 0x01;
    frame.data.buf[11] = 0x02;
    frame.data.buf[12] = 0x03;
    frame.data.size = 13;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(
                  &queue,
                  "RX Packet: 64-bit Address(address=0x123456789abcdef0, "
                  "rssi=-40 dBm, options=[adddress_broadcast=0, "
                  "pan_broadcast=1], data=0x010203)\r\n",
                  NULL), ==, 133);

    /* RX Packet: 16-bit Address frame. */
    frame.type = XBEE_FRAME_TYPE_RX_PACKET_16_BIT_ADDRESS;
    frame.data.buf[0] = 0x12;
    frame.data.buf[1] = 0x34;
    frame.data.buf[2] = 0x28;
    frame.data.buf[3] = 0x02;
    frame.data.buf[4] = 0x01;
    frame.data.buf[5] = 0x02;
    frame.data.buf[6] = 0x03;
    frame.data.size = 7;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(
                  &queue,
                  "RX Packet: 16-bit Address(address=0x1234, rssi=-40 dBm, "
                  "options=[adddress_broadcast=1, pan_broadcast=0], "
                  "data=0x010203)\r\n",
                  NULL), ==, 121);

    /* AT Command Response - parameter read. */
    frame.type = XBEE_FRAME_TYPE_AT_COMMAND_RESPONSE;
    frame.data.buf[0] = 0x03;
    frame.data.buf[1] = 'D';
    frame.data.buf[2] = 'L';
    frame.data.buf[3] = 0x00;
    frame.data.buf[4] = 0x04;
    frame.data.buf[5] = 0x03;
    frame.data.buf[6] = 0x02;
    frame.data.buf[7] = 0x01;
    frame.data.size = 8;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(
                  &queue,
                  "AT Command Response(frame_id=0x03, at_command='DL', "
                  "status='OK', data=0x04030201)\r\n",
                  NULL), ==, 83);

    /* AT Command Response - parameter write. */
    frame.type = XBEE_FRAME_TYPE_AT_COMMAND_RESPONSE;
    frame.data.buf[0] = 0x03;
    frame.data.buf[1] = 'D';
    frame.data.buf[2] = 'L';
    frame.data.buf[3] = 0x00;
    frame.data.size = 4;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(
                  &queue,
                  "AT Command Response(frame_id=0x03, at_command='DL', "
                  "status='OK')\r\n",
                  NULL), ==, 66);

    /* TX status. */
    frame.type = XBEE_FRAME_TYPE_TX_STATUS;
    frame.data.buf[0] = 0xff;
    frame.data.buf[1] = 0x00;
    frame.data.size = 2;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(&queue,
                             "TX Status(frame_id=0xff, status='Standard')\r\n",
                             NULL), ==, 45);

    /* Modem status. */
    frame.type = XBEE_FRAME_TYPE_MODEM_STATUS;
    frame.data.buf[0] = 0x00;
    frame.data.size = 1;

    BTASSERT(xbee_print_frame(&queue, &frame) == 0);
    BTASSERTI(harness_expect(&queue,
                             "Modem Status(status='Hardware reset')\r\n",
                             NULL), ==, 39);

    /* Unknown frame type. */
    frame.type = 0xff;
    frame.data.buf[0] = 'f';
    frame.data.buf[1] = 'o';
    frame.data.buf[2] = 'o';
    frame.data.size = 3;

    BTASSERT(xbee_print_frame(&queue, &frame) == -EINVAL);
    BTASSERTI(harness_expect(&queue,
                             "frame_type=0xff(\r\n"
                             "00000000: 66 6f 6f                  "
                             "                      'foo'\r\n"
                             ")\r\n",
                             NULL), ==, 86);

    return (0);
}