ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / Examples / common / com_server.c
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Examples/common/com_server.c b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Examples/common/com_server.c
new file mode 100644 (file)
index 0000000..aaf6c56
--- /dev/null
@@ -0,0 +1,82 @@
+// ----------------------------------------------
+//
+//  Author : <sylvain.gaeremynck\@parrot.fr>
+//  Date   : 15/01/2007
+//
+//  Parrot Video SDK : Examples/common
+//
+// ---------------------------------------------- 
+
+#include "common.h"
+
+#include <Com/com.h>
+#include <Api/error.h>
+#include <VP_Os/vp_os_print.h>
+
+#include "com_server.h"
+
+static com_config_t config;
+static com_socket_t srv;
+static com_socket_t clt;
+static Read         read;
+static Write        write;
+
+C_RESULT init_com_server(void)
+{
+  config.connection       = COM_BLUETOOTH;
+  config.localAdapterName = DEVICENAME;
+  config.localIpAddress   = SERVERHOST;
+  config.localIpSubmask   = SUBMASK;
+
+  if(FAILED(com_init(&config)))
+    return C_FAIL;
+
+  return C_OK;
+}
+
+C_RESULT run_com_server(COM_PROTOCOL protocol)
+{
+  srv.socket    = COM_SERVER;
+  srv.protocol  = protocol;
+
+  if(protocol == COM_RFCOMM)
+  {
+    srv.scn = BTADDR_SCN;
+  }
+  else if(protocol == COM_BNEP)
+  {
+    srv.port        = BTADDR_PORT;
+    srv.serverHost  = SERVERHOST;
+  }
+  else
+    return C_FAIL;
+
+  if(FAILED(com_open(&srv,&read,&write)))
+    return C_FAIL;
+
+  com_passKey(PIN_CODE);
+  if(FAILED(com_accept(&srv,&clt)))
+    return C_FAIL;
+
+  return C_OK;
+}
+
+C_RESULT shutdown_com_server(void)
+{
+  com_close(&clt);
+  com_close(&srv);
+
+  com_shutdown();
+
+  return C_OK;
+}
+
+C_RESULT read_server(int8_t* buffer, int32_t* size)
+{
+  return read(&clt,buffer,size);
+}
+
+C_RESULT write_server(const int8_t* buffer, int32_t* size)
+{
+  return write(&clt,buffer,size);
+}