以前のリビジョンの文書です
BG96 の GPS により位置情報を取得し、BG96 の TCP/IP stack を利用して SORACOM Harvest に UDP でデータをアップロードする、というサンプルです。
PPP を利用しないため接続までの時間が短くなり、電池駆動に有利となります。
Github から取得します。
branch は両方共 XG-50/BG96-GPS-Harvest となっています。
apps/xg50/gps_bg96/bg96_task.c
で、
を行っています。
以下に示す関数を使用することで、BG96 の TCP/IP スタックを用いて通信を行うことができます。
#include "libserial.h" char *bg96_path = "/dev/ttyS2"; task->ser = serial_open(bg96_path, 115200, 0);
int bg96_send_AT_command(serial_t *ser, const char *cmd) bg96_send_AT_command(task->ser, "AT+CFUN=4\r\n"); sleep(2); bg96_send_AT_command(task->ser, "AT+CFUN=1\r\n"); sleep(1); bg96_send_AT_command(task->ser, "AT+CGATT?\r\n"); sleep(1);
static int bg96_echo_off(serial_t *ser); res = bg96_echo_off(task->ser);
static int bg96_setup_apn(serial_t *ser, int cid, char *apn, char *user, char *password) res = bg96_setup_apn(task->ser, 1, config->apn, config->user, config->password);
static int bg96_sync_clock(serial_t *ser) res = bg96_sync_clock(task->ser);
static int bg96_connect(serial_t *ser) /* activate PDP context */ res = bg96_connect(task->ser);
static int bg96_disconnect(serial_t *ser) printf("! %s: open socket failed -> RESET\n", __FUNCTION__); bg96_disconnect(task->ser);