]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/tossim/tossim_wrap.cxx
Merge devel code into the trunk.
[tinyos-2.x.git] / tos / lib / tossim / tossim_wrap.cxx
diff --git a/tos/lib/tossim/tossim_wrap.cxx b/tos/lib/tossim/tossim_wrap.cxx
new file mode 100644 (file)
index 0000000..6eb304a
--- /dev/null
@@ -0,0 +1,3435 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.21
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+#define SWIGPYTHON
+
+#ifdef __cplusplus
+template<class T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};                                                    
+#endif
+
+
+#include "Python.h"
+
+/*************************************************************** -*- c -*-
+ * python/precommon.swg
+ *
+ * Rename all exported symbols from common.swg, to avoid symbol
+ * clashes if multiple interpreters are included
+ *
+ ************************************************************************/
+
+#define SWIG_TypeRegister    SWIG_Python_TypeRegister
+#define SWIG_TypeCheck       SWIG_Python_TypeCheck
+#define SWIG_TypeCast        SWIG_Python_TypeCast
+#define SWIG_TypeDynamicCast SWIG_Python_TypeDynamicCast
+#define SWIG_TypeName        SWIG_Python_TypeName
+#define SWIG_TypeQuery       SWIG_Python_TypeQuery
+#define SWIG_TypeClientData  SWIG_Python_TypeClientData
+#define SWIG_PackData        SWIG_Python_PackData 
+#define SWIG_UnpackData      SWIG_Python_UnpackData 
+
+
+/***********************************************************************
+ * common.swg
+ *
+ *     This file contains generic SWIG runtime support for pointer
+ *     type checking as well as a few commonly used macros to control
+ *     external linkage.
+ *
+ * Author : David Beazley (beazley@cs.uchicago.edu)
+ *
+ * Copyright (c) 1999-2000, The University of Chicago
+ * 
+ * This file may be freely redistributed without license or fee provided
+ * this copyright message remains intact.
+ ************************************************************************/
+
+#include <string.h>
+
+#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#  if defined(_MSC_VER) || defined(__GNUC__)
+#    if defined(STATIC_LINKED)
+#      define SWIGEXPORT(a) a
+#      define SWIGIMPORT(a) extern a
+#    else
+#      define SWIGEXPORT(a) __declspec(dllexport) a
+#      define SWIGIMPORT(a) extern a
+#    endif
+#  else
+#    if defined(__BORLANDC__)
+#      define SWIGEXPORT(a) a _export
+#      define SWIGIMPORT(a) a _export
+#    else
+#      define SWIGEXPORT(a) a
+#      define SWIGIMPORT(a) a
+#    endif
+#  endif
+#else
+#  define SWIGEXPORT(a) a
+#  define SWIGIMPORT(a) a
+#endif
+
+#ifdef SWIG_GLOBAL
+#  define SWIGRUNTIME(a) SWIGEXPORT(a)
+#else
+#  define SWIGRUNTIME(a) static a
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void *(*swig_converter_func)(void *);
+typedef struct swig_type_info *(*swig_dycast_func)(void **);
+
+typedef struct swig_type_info {
+  const char             *name;
+  swig_converter_func     converter;
+  const char             *str;
+  void                   *clientdata;
+  swig_dycast_func        dcast;
+  struct swig_type_info  *next;
+  struct swig_type_info  *prev;
+} swig_type_info;
+
+#ifdef SWIG_NOINCLUDE
+
+SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);
+SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
+SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
+SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
+SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
+SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
+SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
+SWIGIMPORT(char *)           SWIG_PackData(char *, void *, int);
+SWIGIMPORT(char *)           SWIG_UnpackData(char *, void *, int);
+
+#else
+
+static swig_type_info *swig_type_list = 0;
+
+/* Register a type mapping with the type-checking */
+SWIGRUNTIME(swig_type_info *)
+SWIG_TypeRegister(swig_type_info *ti) {
+  swig_type_info *tc, *head, *ret, *next;
+  /* Check to see if this type has already been registered */
+  tc = swig_type_list;
+  while (tc) {
+    if (strcmp(tc->name, ti->name) == 0) {
+      /* Already exists in the table.  Just add additional types to the list */
+      if (tc->clientdata) ti->clientdata = tc->clientdata;
+      head = tc;
+      next = tc->next;
+      goto l1;
+    }
+    tc = tc->prev;
+  }
+  head = ti;
+  next = 0;
+
+  /* Place in list */
+  ti->prev = swig_type_list;
+  swig_type_list = ti;
+
+  /* Build linked lists */
+  l1:
+  ret = head;
+  tc = ti + 1;
+  /* Patch up the rest of the links */
+  while (tc->name) {
+    head->next = tc;
+    tc->prev = head;
+    head = tc;
+    tc++;
+  }
+  if (next) next->prev = head;
+  head->next = next;
+  return ret;
+}
+
+/* Check the typename */
+SWIGRUNTIME(swig_type_info *) 
+SWIG_TypeCheck(char *c, swig_type_info *ty) {
+  swig_type_info *s;
+  if (!ty) return 0;        /* Void pointer */
+  s = ty->next;             /* First element always just a name */
+  do {
+    if (strcmp(s->name,c) == 0) {
+      if (s == ty->next) return s;
+      /* Move s to the top of the linked list */
+      s->prev->next = s->next;
+      if (s->next) {
+        s->next->prev = s->prev;
+      }
+      /* Insert s as second element in the list */
+      s->next = ty->next;
+      if (ty->next) ty->next->prev = s;
+      ty->next = s;
+      s->prev = ty;
+      return s;
+    }
+    s = s->next;
+  } while (s && (s != ty->next));
+  return 0;
+}
+
+/* Cast a pointer up an inheritance hierarchy */
+SWIGRUNTIME(void *) 
+SWIG_TypeCast(swig_type_info *ty, void *ptr) {
+  if ((!ty) || (!ty->converter)) return ptr;
+  return (*ty->converter)(ptr);
+}
+
+/* Dynamic pointer casting. Down an inheritance hierarchy */
+SWIGRUNTIME(swig_type_info *) 
+SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
+  swig_type_info *lastty = ty;
+  if (!ty || !ty->dcast) return ty;
+  while (ty && (ty->dcast)) {
+    ty = (*ty->dcast)(ptr);
+    if (ty) lastty = ty;
+  }
+  return lastty;
+}
+
+/* Return the name associated with this type */
+SWIGRUNTIME(const char *)
+SWIG_TypeName(const swig_type_info *ty) {
+  return ty->name;
+}
+
+/* Search for a swig_type_info structure */
+SWIGRUNTIME(swig_type_info *)
+SWIG_TypeQuery(const char *name) {
+  swig_type_info *ty = swig_type_list;
+  while (ty) {
+    if (ty->str && (strcmp(name,ty->str) == 0)) return ty;
+    if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
+    ty = ty->prev;
+  }
+  return 0;
+}
+
+/* Set the clientdata field for a type */
+SWIGRUNTIME(void)
+SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
+  swig_type_info *tc, *equiv;
+  if (ti->clientdata == clientdata) return;
+  ti->clientdata = clientdata;
+  equiv = ti->next;
+  while (equiv) {
+    if (!equiv->converter) {
+      tc = swig_type_list;
+      while (tc) {
+        if ((strcmp(tc->name, equiv->name) == 0))
+          SWIG_TypeClientData(tc,clientdata);
+        tc = tc->prev;
+      }
+    }
+    equiv = equiv->next;
+  }
+}
+
+/* Pack binary data into a string */
+SWIGRUNTIME(char *)
+SWIG_PackData(char *c, void *ptr, int sz) {
+  static char hex[17] = "0123456789abcdef";
+  int i;
+  unsigned char *u = (unsigned char *) ptr;
+  register unsigned char uu;
+  for (i = 0; i < sz; i++,u++) {
+    uu = *u;
+    *(c++) = hex[(uu & 0xf0) >> 4];
+    *(c++) = hex[uu & 0xf];
+  }
+  return c;
+}
+
+/* Unpack binary data from a string */
+SWIGRUNTIME(char *)
+SWIG_UnpackData(char *c, void *ptr, int sz) {
+  register unsigned char uu = 0;
+  register int d;
+  unsigned char *u = (unsigned char *) ptr;
+  int i;
+  for (i = 0; i < sz; i++, u++) {
+    d = *(c++);
+    if ((d >= '0') && (d <= '9'))
+      uu = ((d - '0') << 4);
+    else if ((d >= 'a') && (d <= 'f'))
+      uu = ((d - ('a'-10)) << 4);
+    d = *(c++);
+    if ((d >= '0') && (d <= '9'))
+      uu |= (d - '0');
+    else if ((d >= 'a') && (d <= 'f'))
+      uu |= (d - ('a'-10));
+    *u = uu;
+  }
+  return c;
+}
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/***********************************************************************
+ * python.swg
+ *
+ *     This file contains the runtime support for Python modules
+ *     and includes code for managing global variables and pointer
+ *     type checking.
+ *
+ * Author : David Beazley (beazley@cs.uchicago.edu)
+ ************************************************************************/
+
+#include "Python.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SWIG_PY_INT     1
+#define SWIG_PY_FLOAT   2
+#define SWIG_PY_STRING  3
+#define SWIG_PY_POINTER 4
+#define SWIG_PY_BINARY  5
+
+/* Flags for pointer conversion */
+
+#define SWIG_POINTER_EXCEPTION     0x1
+#define SWIG_POINTER_DISOWN        0x2
+
+/* Exception handling in wrappers */
+#define SWIG_fail   goto fail
+
+/* Constant information structure */
+typedef struct swig_const_info {
+    int type;
+    char *name;
+    long lvalue;
+    double dvalue;
+    void   *pvalue;
+    swig_type_info **ptype;
+} swig_const_info;
+
+/* Common SWIG API */
+#define SWIG_ConvertPtr(obj, pp, type, flags) \
+  SWIG_Python_ConvertPtr(obj, pp, type, flags)
+#define SWIG_NewPointerObj(p, type, flags) \
+  SWIG_Python_NewPointerObj(p, type, flags)
+#define SWIG_MustGetPtr(p, type, argnum, flags) \
+  SWIG_Python_MustGetPtr(p, type, argnum, flags)
+
+/* Python-specific SWIG API */
+#define SWIG_newvarlink() \
+  SWIG_Python_newvarlink()
+#define SWIG_addvarlink(p, name, get_attr, set_attr) \
+  SWIG_Python_addvarlink(p, name, get_attr, set_attr)
+#define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) \
+  SWIG_Python_ConvertPacked(obj, ptr, sz, ty, flags)
+#define SWIG_NewPackedObj(ptr, sz, type) \
+  SWIG_Python_NewPackedObj(ptr, sz, type)
+#define SWIG_InstallConstants(d, constants) \
+  SWIG_Python_InstallConstants(d, constants)
+
+#ifdef SWIG_NOINCLUDE
+
+SWIGIMPORT(int)               SWIG_Python_ConvertPtr(PyObject *, void **, swig_type_info *, int);
+SWIGIMPORT(PyObject *)        SWIG_Python_NewPointerObj(void *, swig_type_info *,int own);
+SWIGIMPORT(void *)            SWIG_Python_MustGetPtr(PyObject *, swig_type_info *, int, int);
+SWIGIMPORT(PyObject *)        SWIG_Python_newvarlink(void);
+SWIGIMPORT(void)              SWIG_Python_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
+SWIGIMPORT(int)               SWIG_Python_ConvertPacked(PyObject *, void *, int sz, swig_type_info *, int);
+SWIGIMPORT(PyObject *)        SWIG_Python_NewPackedObj(void *, int sz, swig_type_info *);
+SWIGIMPORT(void)              SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]);
+
+#else
+
+/* -----------------------------------------------------------------------------
+ * global variable support code.
+ * ----------------------------------------------------------------------------- */
+
+typedef struct swig_globalvar {   
+  char       *name;                  /* Name of global variable */
+  PyObject *(*get_attr)(void);       /* Return the current value */
+  int       (*set_attr)(PyObject *); /* Set the value */
+  struct swig_globalvar *next;
+} swig_globalvar;
+
+typedef struct swig_varlinkobject {
+  PyObject_HEAD
+  swig_globalvar *vars;
+} swig_varlinkobject;
+
+static PyObject *
+swig_varlink_repr(swig_varlinkobject *v) {
+  v = v;
+  return PyString_FromString("<Global variables>");
+}
+
+static int
+swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) {
+  swig_globalvar  *var;
+  flags = flags;
+  fprintf(fp,"Global variables { ");
+  for (var = v->vars; var; var=var->next) {
+    fprintf(fp,"%s", var->name);
+    if (var->next) fprintf(fp,", ");
+  }
+  fprintf(fp," }\n");
+  return 0;
+}
+
+static PyObject *
+swig_varlink_getattr(swig_varlinkobject *v, char *n) {
+  swig_globalvar *var = v->vars;
+  while (var) {
+    if (strcmp(var->name,n) == 0) {
+      return (*var->get_attr)();
+    }
+    var = var->next;
+  }
+  PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+  return NULL;
+}
+
+static int
+swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
+  swig_globalvar *var = v->vars;
+  while (var) {
+    if (strcmp(var->name,n) == 0) {
+      return (*var->set_attr)(p);
+    }
+    var = var->next;
+  }
+  PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+  return 1;
+}
+
+statichere PyTypeObject varlinktype = {
+  PyObject_HEAD_INIT(0)              
+  0,
+  (char *)"swigvarlink",              /* Type name    */
+  sizeof(swig_varlinkobject),         /* Basic size   */
+  0,                                  /* Itemsize     */
+  0,                                  /* Deallocator  */ 
+  (printfunc) swig_varlink_print,     /* Print        */
+  (getattrfunc) swig_varlink_getattr, /* get attr     */
+  (setattrfunc) swig_varlink_setattr, /* Set attr     */
+  0,                                  /* tp_compare   */
+  (reprfunc) swig_varlink_repr,       /* tp_repr      */    
+  0,                                  /* tp_as_number */
+  0,                                  /* tp_as_mapping*/
+  0,                                  /* tp_hash      */
+};
+
+/* Create a variable linking object for use later */
+SWIGRUNTIME(PyObject *)
+SWIG_Python_newvarlink(void) {
+  swig_varlinkobject *result = 0;
+  result = PyMem_NEW(swig_varlinkobject,1);
+  varlinktype.ob_type = &PyType_Type;    /* Patch varlinktype into a PyType */
+  result->ob_type = &varlinktype;
+  result->vars = 0;
+  result->ob_refcnt = 0;
+  Py_XINCREF((PyObject *) result);
+  return ((PyObject*) result);
+}
+
+SWIGRUNTIME(void)
+SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
+  swig_varlinkobject *v;
+  swig_globalvar *gv;
+  v= (swig_varlinkobject *) p;
+  gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
+  gv->name = (char *) malloc(strlen(name)+1);
+  strcpy(gv->name,name);
+  gv->get_attr = get_attr;
+  gv->set_attr = set_attr;
+  gv->next = v->vars;
+  v->vars = gv;
+}
+
+/* Convert a pointer value */
+SWIGRUNTIME(int)
+SWIG_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) {
+  swig_type_info *tc;
+  char  *c = 0;
+  static PyObject *SWIG_this = 0;
+  int    newref = 0;
+  PyObject  *pyobj = 0;
+
+  if (!obj) return 0;
+  if (obj == Py_None) {
+    *ptr = 0;
+    return 0;
+  }
+#ifdef SWIG_COBJECT_TYPES
+  if (!(PyCObject_Check(obj))) {
+    if (!SWIG_this)
+      SWIG_this = PyString_FromString("this");
+    pyobj = obj;
+    obj = PyObject_GetAttr(obj,SWIG_this);
+    newref = 1;
+    if (!obj) goto type_error;
+    if (!PyCObject_Check(obj)) {
+      Py_DECREF(obj);
+      goto type_error;
+    }
+  }  
+  *ptr = PyCObject_AsVoidPtr(obj);
+  c = (char *) PyCObject_GetDesc(obj);
+  if (newref) Py_DECREF(obj);
+  goto cobject;
+#else
+  if (!(PyString_Check(obj))) {
+    if (!SWIG_this)
+      SWIG_this = PyString_FromString("this");
+    pyobj = obj;
+    obj = PyObject_GetAttr(obj,SWIG_this);
+    newref = 1;
+    if (!obj) goto type_error;
+    if (!PyString_Check(obj)) {
+      Py_DECREF(obj);
+      goto type_error;
+    }
+  } 
+  c = PyString_AsString(obj);
+  /* Pointer values must start with leading underscore */
+  if (*c != '_') {
+    *ptr = (void *) 0;
+    if (strcmp(c,"NULL") == 0) {
+      if (newref) { Py_DECREF(obj); }
+      return 0;
+    } else {
+      if (newref) { Py_DECREF(obj); }
+      goto type_error;
+    }
+  }
+  c++;
+  c = SWIG_UnpackData(c,ptr,sizeof(void *));
+  if (newref) { Py_DECREF(obj); }
+#endif
+
+#ifdef SWIG_COBJECT_TYPES
+cobject:
+#endif
+
+  if (ty) {
+    tc = SWIG_TypeCheck(c,ty);
+    if (!tc) goto type_error;
+    *ptr = SWIG_TypeCast(tc,(void*) *ptr);
+  }
+
+  if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) {
+    PyObject *zero = PyInt_FromLong(0);
+    PyObject_SetAttrString(pyobj,(char*)"thisown",zero);
+    Py_DECREF(zero);
+  }
+  return 0;
+
+type_error:
+  if (flags & SWIG_POINTER_EXCEPTION) {
+    if (ty && c) {
+      char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c));
+      sprintf(temp,"Type error. Got %s, expected %s", c, ty->name);
+      PyErr_SetString(PyExc_TypeError, temp);
+      free((char *) temp);
+    } else {
+      PyErr_SetString(PyExc_TypeError,"Expected a pointer");
+    }
+  }
+  return -1;
+}
+
+/* Convert a pointer value, signal an exception on a type mismatch */
+SWIGRUNTIME(void *)
+SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
+  void *result;
+  SWIG_Python_ConvertPtr(obj, &result, ty, flags | SWIG_POINTER_EXCEPTION);
+  return result;
+}
+
+/* Convert a packed value value */
+SWIGRUNTIME(int)
+SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) {
+  swig_type_info *tc;
+  char  *c = 0;
+
+  if ((!obj) || (!PyString_Check(obj))) goto type_error;
+  c = PyString_AsString(obj);
+  /* Pointer values must start with leading underscore */
+  if (*c != '_') goto type_error;
+  c++;
+  c = SWIG_UnpackData(c,ptr,sz);
+  if (ty) {
+    tc = SWIG_TypeCheck(c,ty);
+    if (!tc) goto type_error;
+  }
+  return 0;
+
+type_error:
+
+  if (flags) {
+    if (ty && c) {
+      char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c));
+      sprintf(temp,"Type error. Got %s, expected %s", c, ty->name);
+      PyErr_SetString(PyExc_TypeError, temp);
+      free((char *) temp);
+    } else {
+      PyErr_SetString(PyExc_TypeError,"Expected a pointer");
+    }
+  }
+  return -1;
+}
+
+/* Create a new pointer object */
+SWIGRUNTIME(PyObject *)
+SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) {
+  PyObject *robj;
+  if (!ptr) {
+    Py_INCREF(Py_None);
+    return Py_None;
+  }
+#ifdef SWIG_COBJECT_TYPES
+  robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL);
+#else
+  {
+    char result[1024];
+    char *r = result;
+    *(r++) = '_';
+    r = SWIG_PackData(r,&ptr,sizeof(void *));
+    strcpy(r,type->name);
+    robj = PyString_FromString(result);
+  }
+#endif
+  if (!robj || (robj == Py_None)) return robj;
+  if (type->clientdata) {
+    PyObject *inst;
+    PyObject *args = Py_BuildValue((char*)"(O)", robj);
+    Py_DECREF(robj);
+    inst = PyObject_CallObject((PyObject *) type->clientdata, args);
+    Py_DECREF(args);
+    if (inst) {
+      if (own) {
+        PyObject *n = PyInt_FromLong(1);
+        PyObject_SetAttrString(inst,(char*)"thisown",n);
+        Py_DECREF(n);
+      }
+      robj = inst;
+    }
+  }
+  return robj;
+}
+
+SWIGRUNTIME(PyObject *)
+SWIG_Python_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
+  char result[1024];
+  char *r = result;
+  if ((2*sz + 1 + strlen(type->name)) > 1000) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,ptr,sz);
+  strcpy(r,type->name);
+  return PyString_FromString(result);
+}
+
+/* Install Constants */
+SWIGRUNTIME(void)
+SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
+  int i;
+  PyObject *obj;
+  for (i = 0; constants[i].type; i++) {
+    switch(constants[i].type) {
+    case SWIG_PY_INT:
+      obj = PyInt_FromLong(constants[i].lvalue);
+      break;
+    case SWIG_PY_FLOAT:
+      obj = PyFloat_FromDouble(constants[i].dvalue);
+      break;
+    case SWIG_PY_STRING:
+      obj = PyString_FromString((char *) constants[i].pvalue);
+      break;
+    case SWIG_PY_POINTER:
+      obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
+      break;
+    case SWIG_PY_BINARY:
+      obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
+      break;
+    default:
+      obj = 0;
+      break;
+    }
+    if (obj) {
+      PyDict_SetItemString(d,constants[i].name,obj);
+      Py_DECREF(obj);
+    }
+  }
+}
+
+#endif
+
+/* Contract support */
+
+#define SWIG_contract_assert(expr, msg) if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else
+
+#ifdef __cplusplus
+}
+#endif
+
+
+/* -------- TYPES TABLE (BEGIN) -------- */
+
+#define  SWIGTYPE_p_Radio swig_types[0] 
+#define  SWIGTYPE_p_nesc_app_t swig_types[1] 
+#define  SWIGTYPE_p_FILE swig_types[2] 
+#define  SWIGTYPE_p_MAC swig_types[3] 
+#define  SWIGTYPE_p_Packet swig_types[4] 
+#define  SWIGTYPE_p_Variable swig_types[5] 
+#define  SWIGTYPE_p_Tossim swig_types[6] 
+#define  SWIGTYPE_p_variable_string_t swig_types[7] 
+#define  SWIGTYPE_p_Mote swig_types[8] 
+#define  SWIGTYPE_p_p_char swig_types[9] 
+#define  SWIGTYPE_p_int swig_types[10] 
+static swig_type_info *swig_types[12];
+
+/* -------- TYPES TABLE (END) -------- */
+
+
+/*-----------------------------------------------
+              @(target):= _TOSSIM.so
+  ------------------------------------------------*/
+#define SWIG_init    init_TOSSIM
+
+#define SWIG_name    "_TOSSIM"
+
+#include <memory.h>
+#include <tossim.h>
+
+enum {
+  PRIMITIVE_INTEGER      = 0,
+  PRIMITIVE_FLOAT   = 1,
+  PRIMITIVE_UNKNOWN = 2
+};
+
+int lengthOfType(char* type) {
+  if (strcmp(type, "uint8_t") == 0) {
+    return sizeof(uint8_t);
+  }
+  else if (strcmp(type, "uint16_t") == 0) {
+    return sizeof(uint16_t);
+  }
+  else if (strcmp(type, "uint32_t") == 0) {
+    return sizeof(uint32_t);
+  }
+  else if (strcmp(type, "int8_t") == 0) {
+    return sizeof(int8_t);
+  }
+  else if (strcmp(type, "int16_t") == 0) {
+    return sizeof(int16_t);
+  }
+  else if (strcmp(type, "int32_t") == 0) {
+    return sizeof(int32_t);
+  }
+  else if (strcmp(type, "char") == 0) {
+    return sizeof(char);
+  }
+  else if (strcmp(type, "short") == 0) {
+    return sizeof(short);
+  }
+  else if (strcmp(type, "int") == 0) {
+    return sizeof(int);
+  }
+  else if (strcmp(type, "long") == 0) {
+    return sizeof(long);
+  }
+  else if (strcmp(type, "unsigned char") == 0) {
+    return sizeof(unsigned char);
+  }
+  else if (strcmp(type, "unsigned short") == 0) {
+    return sizeof(unsigned short);
+  }
+  else if (strcmp(type, "unsigned int") == 0) {
+    return sizeof(unsigned int);
+  }
+  else if (strcmp(type, "unsigned long") == 0) {
+    return sizeof(unsigned long);
+  }
+  else if (strcmp(type, "float") == 0) {
+    return sizeof(float);
+  }
+  else if (strcmp(type, "double") == 0) {
+    return sizeof(double);
+  }
+  else {
+    return 1;
+  }
+}
+
+int memoryToPrimitive(char* type, char* ptr, long* lval, double* dval) {
+  if (strcmp(type, "uint8_t") == 0) {
+    uint8_t val;
+    memcpy(&val, ptr, sizeof(uint8_t));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "uint16_t") == 0) {
+    uint16_t val;
+    memcpy(&val, ptr, sizeof(uint16_t));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "uint32_t") == 0) {
+    uint32_t val;
+    memcpy(&val, ptr, sizeof(uint32_t));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "int8_t") == 0) {
+    int8_t val;
+    memcpy(&val, ptr, sizeof(int8_t));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "int16_t") == 0) {
+    int16_t val;
+    memcpy(&val, ptr, sizeof(int16_t));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "int32_t") == 0) {
+    int32_t val;
+    memcpy(&val, ptr, sizeof(int32_t));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "char") == 0) {
+    long val;
+    memcpy(&val, ptr, sizeof(char));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "short") == 0) {
+    short val;
+    memcpy(&val, ptr, sizeof(short));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "int") == 0) {
+    int val;
+    memcpy(&val, ptr, sizeof(int));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "long") == 0) {
+    long val;
+    memcpy(&val, ptr, sizeof(long));
+    *lval = val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "unsigned char") == 0) {
+    unsigned char val;
+    memcpy(&val, ptr, sizeof(unsigned char));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "unsigned short") == 0) {
+    unsigned short val;
+    memcpy(&val, ptr, sizeof(unsigned short));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "unsigned int") == 0) {
+    unsigned int val;
+    memcpy(&val, ptr, sizeof(unsigned int));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "unsigned long") == 0) {
+    unsigned long val;
+    memcpy(&val, ptr, sizeof(unsigned long));
+    *lval = (long)val;
+    return PRIMITIVE_INTEGER;
+  }
+  else if (strcmp(type, "float") == 0) {
+    float val;
+    memcpy(&val, ptr, sizeof(float));
+    *dval = (double)val;
+    return PRIMITIVE_FLOAT;
+  }
+  else if (strcmp(type, "double") == 0) {
+    double val;
+    memcpy(&val, ptr, sizeof(double));
+    *dval = val;
+    return PRIMITIVE_FLOAT;
+  }
+  else {
+    return PRIMITIVE_UNKNOWN;
+  }
+}
+
+PyObject* valueFromScalar(char* type, char* ptr, int len) {
+  long lval;
+  double dval;
+  int rval = memoryToPrimitive(type, ptr, &lval, &dval);
+  switch(rval) {
+    case PRIMITIVE_INTEGER:
+      return PyInt_FromLong(lval);
+    case PRIMITIVE_FLOAT:
+      return PyFloat_FromDouble(dval);
+    case PRIMITIVE_UNKNOWN:
+    default:
+      return PyString_FromStringAndSize(ptr, len);
+  }
+}
+
+PyObject* listFromArray(char* type, char* ptr, int len) {
+  long lval;
+  double dval;
+  int elementLen = lengthOfType(type);
+  PyObject* list = PyList_New(0);
+  //printf("Generating list of %s\n", type);
+  for (char* tmpPtr = ptr; tmpPtr < ptr + len; tmpPtr += elementLen) {
+    PyList_Append(list, valueFromScalar(type, tmpPtr, elementLen));    
+  }
+  return list;
+}
+
+
+#include <mac.h>
+
+
+#include <radio.h>
+
+
+#include <packet.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+static PyObject *_wrap_new_MAC(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *result;
+    
+    if(!PyArg_ParseTuple(args,(char *)":new_MAC")) goto fail;
+    result = (MAC *)new MAC();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_MAC, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_MAC(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_MAC",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_initHigh(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_initHigh",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->initHigh();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_initLow(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_initLow",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->initLow();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_high(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_high",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->high();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_low(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_low",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->low();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_symbolsPerSec(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_symbolsPerSec",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->symbolsPerSec();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_bitsPerSymbol(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_bitsPerSymbol",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->bitsPerSymbol();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_preambleLength(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_preambleLength",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->preambleLength();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_exponentBase(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_exponentBase",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->exponentBase();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_maxIterations(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_maxIterations",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->maxIterations();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_minFreeSamples(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_minFreeSamples",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->minFreeSamples();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_rxtxDelay(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_rxtxDelay",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->rxtxDelay();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_ackTime(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:MAC_ackTime",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->ackTime();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setInitHigh(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setInitHigh",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setInitHigh(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setInitLow(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setInitLow",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setInitLow(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setHigh(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setHigh",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setHigh(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setLow(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setLow",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setLow(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setSymbolsPerSec(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setSymbolsPerSec",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setSymbolsPerSec(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setBitsBerSymbol(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setBitsBerSymbol",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setBitsBerSymbol(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setPreambleLength(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setPreambleLength",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setPreambleLength(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setExponentBase(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setExponentBase",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setExponentBase(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setMaxIterations(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setMaxIterations",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setMaxIterations(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setMinFreeSamples(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setMinFreeSamples",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setMinFreeSamples(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setRxtxDelay(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setRxtxDelay",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setRxtxDelay(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_MAC_setAckTime(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    MAC *arg1 = (MAC *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:MAC_setAckTime",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_MAC,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setAckTime(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * MAC_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_MAC, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyObject *_wrap_new_Radio(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *result;
+    
+    if(!PyArg_ParseTuple(args,(char *)":new_Radio")) goto fail;
+    result = (Radio *)new Radio();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Radio, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_Radio(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *arg1 = (Radio *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_Radio",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Radio,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Radio_add(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *arg1 = (Radio *) 0 ;
+    int arg2 ;
+    int arg3 ;
+    double arg4 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oiid:Radio_add",&obj0,&arg2,&arg3,&arg4)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Radio,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->add(arg2,arg3,arg4);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Radio_gain(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *arg1 = (Radio *) 0 ;
+    int arg2 ;
+    int arg3 ;
+    double result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oii:Radio_gain",&obj0,&arg2,&arg3)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Radio,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (double)(arg1)->gain(arg2,arg3);
+    
+    resultobj = PyFloat_FromDouble(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Radio_connected(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *arg1 = (Radio *) 0 ;
+    int arg2 ;
+    int arg3 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oii:Radio_connected",&obj0,&arg2,&arg3)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Radio,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (bool)(arg1)->connected(arg2,arg3);
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Radio_remove(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *arg1 = (Radio *) 0 ;
+    int arg2 ;
+    int arg3 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oii:Radio_remove",&obj0,&arg2,&arg3)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Radio,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->remove(arg2,arg3);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Radio_setNoise(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *arg1 = (Radio *) 0 ;
+    int arg2 ;
+    double arg3 ;
+    double arg4 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oidd:Radio_setNoise",&obj0,&arg2,&arg3,&arg4)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Radio,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setNoise(arg2,arg3,arg4);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Radio_setSensitivity(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Radio *arg1 = (Radio *) 0 ;
+    double arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Od:Radio_setSensitivity",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Radio,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setSensitivity(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * Radio_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_Radio, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyObject *_wrap_new_Packet(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *result;
+    
+    if(!PyArg_ParseTuple(args,(char *)":new_Packet")) goto fail;
+    result = (Packet *)new Packet();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Packet, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_Packet(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_Packet",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_setDestination(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:Packet_setDestination",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setDestination(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_destination(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Packet_destination",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->destination();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_setLength(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:Packet_setLength",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setLength(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_length(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Packet_length",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->length();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_setType(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:Packet_setType",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setType(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_type(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Packet_type",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->type();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_data(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    char *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Packet_data",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (char *)(arg1)->data();
+    
+    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_setData(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    char *arg2 ;
+    int arg3 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:Packet_setData",&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    {
+        arg2 = (char *) PyString_AsString(obj1);
+        arg3 = (int) PyString_Size(obj1);
+    }
+    (arg1)->setData(arg2,arg3);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_maxLength(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Packet_maxLength",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int)(arg1)->maxLength();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_setStrength(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:Packet_setStrength",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->setStrength(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_deliver(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int arg2 ;
+    long long arg3 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj2 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OiO:Packet_deliver",&obj0,&arg2,&obj2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    arg3 = (long long) PyLong_AsLongLong(obj2);
+    if (PyErr_Occurred()) SWIG_fail;
+    (arg1)->deliver(arg2,arg3);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Packet_deliverNow(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Packet *arg1 = (Packet *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:Packet_deliverNow",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Packet,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->deliverNow(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * Packet_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_Packet, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyObject *_wrap_variable_string_t_type_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    char *arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Os:variable_string_t_type_set",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    {
+        if (arg1->type) delete [] arg1->type;
+        if (arg2) {
+            arg1->type = (char *) (new char[strlen(arg2)+1]);
+            strcpy((char *) arg1->type,arg2);
+        } else {
+            arg1->type = 0;
+        }
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_variable_string_t_type_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    char *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:variable_string_t_type_get",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (char *) ((arg1)->type);
+    
+    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_variable_string_t_ptr_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    char *arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Os:variable_string_t_ptr_set",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    {
+        if (arg1->ptr) delete [] arg1->ptr;
+        if (arg2) {
+            arg1->ptr = (char *) (new char[strlen(arg2)+1]);
+            strcpy((char *) arg1->ptr,arg2);
+        } else {
+            arg1->ptr = 0;
+        }
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_variable_string_t_ptr_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    char *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:variable_string_t_ptr_get",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (char *) ((arg1)->ptr);
+    
+    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_variable_string_t_len_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:variable_string_t_len_set",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    if (arg1) (arg1)->len = arg2;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_variable_string_t_len_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:variable_string_t_len_get",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int) ((arg1)->len);
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_variable_string_t_isArray_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:variable_string_t_isArray_set",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    if (arg1) (arg1)->isArray = arg2;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_variable_string_t_isArray_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:variable_string_t_isArray_get",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (int) ((arg1)->isArray);
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_new_variable_string_t(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *result;
+    
+    if(!PyArg_ParseTuple(args,(char *)":new_variable_string_t")) goto fail;
+    result = (variable_string_t *)new variable_string_t();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_variable_string_t, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_variable_string_t(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    variable_string_t *arg1 = (variable_string_t *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_variable_string_t",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_variable_string_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * variable_string_t_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_variable_string_t, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyObject *_wrap_nesc_app_t_numVariables_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    int arg2 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Oi:nesc_app_t_numVariables_set",&obj0,&arg2)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    if (arg1) (arg1)->numVariables = arg2;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_nesc_app_t_numVariables_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:nesc_app_t_numVariables_get",&obj0)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    result = (int) ((arg1)->numVariables);
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_nesc_app_t_variableNames_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    char **arg2 = (char **) 0 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:nesc_app_t_variableNames_set",&obj0,&obj1)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_p_char,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    if (arg1) (arg1)->variableNames = arg2;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_nesc_app_t_variableNames_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    char **result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:nesc_app_t_variableNames_get",&obj0)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    result = (char **) ((arg1)->variableNames);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_p_char, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_nesc_app_t_variableTypes_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    char **arg2 = (char **) 0 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:nesc_app_t_variableTypes_set",&obj0,&obj1)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_p_char,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    if (arg1) (arg1)->variableTypes = arg2;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_nesc_app_t_variableTypes_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    char **result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:nesc_app_t_variableTypes_get",&obj0)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    result = (char **) ((arg1)->variableTypes);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_p_char, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_nesc_app_t_variableArray_set(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    int *arg2 = (int *) 0 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:nesc_app_t_variableArray_set",&obj0,&obj1)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_int,SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN )) == -1) SWIG_fail;
+    if (arg1) (arg1)->variableArray = arg2;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_nesc_app_t_variableArray_get(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    int *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:nesc_app_t_variableArray_get",&obj0)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    result = (int *) ((arg1)->variableArray);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_int, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_new_nesc_app_t(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *result;
+    
+    if(!PyArg_ParseTuple(args,(char *)":new_nesc_app_t")) goto fail;
+    result = (nesc_app_t *)new nesc_app_t();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_nesc_app_t, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_nesc_app_t(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_nesc_app_t",&obj0)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * nesc_app_t_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_nesc_app_t, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyObject *_wrap_new_Variable(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    char *arg1 ;
+    char *arg2 ;
+    int arg3 ;
+    int arg4 ;
+    Variable *result;
+    
+    if(!PyArg_ParseTuple(args,(char *)"ssii:new_Variable",&arg1,&arg2,&arg3,&arg4)) goto fail;
+    result = (Variable *)new Variable(arg1,arg2,arg3,arg4);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Variable, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_Variable(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Variable *arg1 = (Variable *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_Variable",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Variable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Variable_getData(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Variable *arg1 = (Variable *) 0 ;
+    variable_string_t result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Variable_getData",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Variable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (arg1)->getData();
+    
+    {
+        if ((&result)->isArray) {
+            //printf("Generating array %s\n", (&result)->type);
+            resultobj = listFromArray  ((&result)->type, (&result)->ptr, (&result)->len);
+        }
+        else {
+            //printf("Generating scalar %s\n", (&result)->type);
+            resultobj = valueFromScalar((&result)->type, (&result)->ptr, (&result)->len);
+        }
+        if (resultobj == NULL) {
+            PyErr_SetString(PyExc_RuntimeError, "Error generating Python type from TinyOS variable.");
+        }
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * Variable_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_Variable, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyObject *_wrap_new_Mote(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    Mote *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:new_Mote",&obj0)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    result = (Mote *)new Mote(arg1);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Mote, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_Mote(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_Mote",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_id(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    unsigned long result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Mote_id",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (unsigned long)(arg1)->id();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_euid(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    long long result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Mote_euid",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (long long)(arg1)->euid();
+    
+    resultobj = PyLong_FromLongLong(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_setEuid(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    long long arg2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:Mote_setEuid",&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    arg2 = (long long) PyLong_AsLongLong(obj1);
+    if (PyErr_Occurred()) SWIG_fail;
+    (arg1)->setEuid(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_bootTime(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    long long result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Mote_bootTime",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (long long)(arg1)->bootTime();
+    
+    resultobj = PyLong_FromLongLong(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_bootAtTime(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    long long arg2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:Mote_bootAtTime",&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    arg2 = (long long) PyLong_AsLongLong(obj1);
+    if (PyErr_Occurred()) SWIG_fail;
+    (arg1)->bootAtTime(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_isOn(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Mote_isOn",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (bool)(arg1)->isOn();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_turnOff(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Mote_turnOff",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->turnOff();
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_turnOn(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Mote_turnOn",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->turnOn();
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Mote_getVariable(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Mote *arg1 = (Mote *) 0 ;
+    char *arg2 ;
+    Variable *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"Os:Mote_getVariable",&obj0,&arg2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Mote,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (Variable *)(arg1)->getVariable(arg2);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Variable, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * Mote_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_Mote, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyObject *_wrap_new_Tossim(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    nesc_app_t *arg1 = (nesc_app_t *) 0 ;
+    Tossim *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:new_Tossim",&obj0)) goto fail;
+    {
+        if (!PyList_Check(obj0)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a list as a parameter.");
+            return NULL;
+        }
+        else {
+            int size = PyList_Size(obj0);
+            int i = 0;
+            nesc_app_t* app;
+            
+            if (size % 3 != 0) {
+                PyErr_SetString(PyExc_RuntimeError, "List must have 2*N elements.");
+                return NULL;
+            }
+            
+            app = (nesc_app_t*)malloc(sizeof(nesc_app_t));
+            
+            app->numVariables = size / 3;
+            app->variableNames = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableTypes = (char**)malloc(sizeof(char*) * app->numVariables);
+            app->variableArray = (int*)malloc(sizeof(int) * app->numVariables);
+            
+            memset(app->variableNames, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableTypes, 0, sizeof(char*) * app->numVariables);
+            memset(app->variableArray, 0, sizeof(int) * app->numVariables);
+            
+            for (i = 0; i < app->numVariables; i++) {
+                PyObject* name = PyList_GetItem(obj0, 3 * i);
+                PyObject* array = PyList_GetItem(obj0, (3 * i) + 1);
+                PyObject* format = PyList_GetItem(obj0, (3 * i) + 2);
+                if (PyString_Check(name) && PyString_Check(format)) {
+                    app->variableNames[i] = PyString_AsString(name);
+                    app->variableTypes[i] = PyString_AsString(format);
+                    if (strcmp(PyString_AsString(array), "array") == 0) {
+                        app->variableArray[i] = 1;
+                        //printf("%s is an array\n", PyString_AsString(name));
+                    }
+                    else {
+                        app->variableArray[i] = 0;
+                        //printf("%s is a scalar\n", PyString_AsString(name));
+                    }
+                }
+                else {
+                    app->variableNames[i] = "<bad string>";
+                    app->variableTypes[i] = "<bad string>";
+                }
+            }
+            
+            arg1 = app;
+        }
+    }
+    result = (Tossim *)new Tossim(arg1);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Tossim, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_delete_Tossim(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:delete_Tossim",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    delete arg1;
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_init(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_init",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    (arg1)->init();
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_time(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    long long result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_time",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (long long)(arg1)->time();
+    
+    resultobj = PyLong_FromLongLong(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_ticksPerSecond(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    long long result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_ticksPerSecond",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (long long)(arg1)->ticksPerSecond();
+    
+    resultobj = PyLong_FromLongLong(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_setTime(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    long long arg2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:Tossim_setTime",&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    arg2 = (long long) PyLong_AsLongLong(obj1);
+    if (PyErr_Occurred()) SWIG_fail;
+    (arg1)->setTime(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_timeStr(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    char *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_timeStr",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (char *)(arg1)->timeStr();
+    
+    resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)"");
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_currentNode(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    Mote *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_currentNode",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (Mote *)(arg1)->currentNode();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Mote, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_getNode(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    unsigned long arg2 ;
+    Mote *result;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:Tossim_getNode",&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    arg2 = (unsigned long) PyInt_AsLong(obj1);
+    if (PyErr_Occurred()) SWIG_fail;
+    result = (Mote *)(arg1)->getNode(arg2);
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Mote, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_setCurrentNode(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    unsigned long arg2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OO:Tossim_setCurrentNode",&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    arg2 = (unsigned long) PyInt_AsLong(obj1);
+    if (PyErr_Occurred()) SWIG_fail;
+    (arg1)->setCurrentNode(arg2);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_addChannel(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    char *arg2 ;
+    FILE *arg3 = (FILE *) 0 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj2 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OsO:Tossim_addChannel",&obj0,&arg2,&obj2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    {
+        if (!PyFile_Check(obj2)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a file as a parameter.");
+            return NULL;
+        }
+        arg3 = PyFile_AsFile(obj2);
+    }
+    (arg1)->addChannel(arg2,arg3);
+    
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_removeChannel(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    char *arg2 ;
+    FILE *arg3 = (FILE *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    PyObject * obj2 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"OsO:Tossim_removeChannel",&obj0,&arg2,&obj2)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    {
+        if (!PyFile_Check(obj2)) {
+            PyErr_SetString(PyExc_TypeError, "Requires a file as a parameter.");
+            return NULL;
+        }
+        arg3 = PyFile_AsFile(obj2);
+    }
+    result = (bool)(arg1)->removeChannel(arg2,arg3);
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_runNextEvent(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_runNextEvent",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (bool)(arg1)->runNextEvent();
+    
+    resultobj = PyInt_FromLong((long)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_mac(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    MAC *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_mac",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (MAC *)(arg1)->mac();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_MAC, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_radio(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    Radio *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_radio",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (Radio *)(arg1)->radio();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Radio, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Tossim_newPacket(PyObject *self, PyObject *args) {
+    PyObject *resultobj;
+    Tossim *arg1 = (Tossim *) 0 ;
+    Packet *result;
+    PyObject * obj0 = 0 ;
+    
+    if(!PyArg_ParseTuple(args,(char *)"O:Tossim_newPacket",&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_Tossim,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+    result = (Packet *)(arg1)->newPacket();
+    
+    resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Packet, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * Tossim_swigregister(PyObject *self, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_Tossim, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
+static PyMethodDef SwigMethods[] = {
+        { (char *)"new_MAC", _wrap_new_MAC, METH_VARARGS },
+        { (char *)"delete_MAC", _wrap_delete_MAC, METH_VARARGS },
+        { (char *)"MAC_initHigh", _wrap_MAC_initHigh, METH_VARARGS },
+        { (char *)"MAC_initLow", _wrap_MAC_initLow, METH_VARARGS },
+        { (char *)"MAC_high", _wrap_MAC_high, METH_VARARGS },
+        { (char *)"MAC_low", _wrap_MAC_low, METH_VARARGS },
+        { (char *)"MAC_symbolsPerSec", _wrap_MAC_symbolsPerSec, METH_VARARGS },
+        { (char *)"MAC_bitsPerSymbol", _wrap_MAC_bitsPerSymbol, METH_VARARGS },
+        { (char *)"MAC_preambleLength", _wrap_MAC_preambleLength, METH_VARARGS },
+        { (char *)"MAC_exponentBase", _wrap_MAC_exponentBase, METH_VARARGS },
+        { (char *)"MAC_maxIterations", _wrap_MAC_maxIterations, METH_VARARGS },
+        { (char *)"MAC_minFreeSamples", _wrap_MAC_minFreeSamples, METH_VARARGS },
+        { (char *)"MAC_rxtxDelay", _wrap_MAC_rxtxDelay, METH_VARARGS },
+        { (char *)"MAC_ackTime", _wrap_MAC_ackTime, METH_VARARGS },
+        { (char *)"MAC_setInitHigh", _wrap_MAC_setInitHigh, METH_VARARGS },
+        { (char *)"MAC_setInitLow", _wrap_MAC_setInitLow, METH_VARARGS },
+        { (char *)"MAC_setHigh", _wrap_MAC_setHigh, METH_VARARGS },
+        { (char *)"MAC_setLow", _wrap_MAC_setLow, METH_VARARGS },
+        { (char *)"MAC_setSymbolsPerSec", _wrap_MAC_setSymbolsPerSec, METH_VARARGS },
+        { (char *)"MAC_setBitsBerSymbol", _wrap_MAC_setBitsBerSymbol, METH_VARARGS },
+        { (char *)"MAC_setPreambleLength", _wrap_MAC_setPreambleLength, METH_VARARGS },
+        { (char *)"MAC_setExponentBase", _wrap_MAC_setExponentBase, METH_VARARGS },
+        { (char *)"MAC_setMaxIterations", _wrap_MAC_setMaxIterations, METH_VARARGS },
+        { (char *)"MAC_setMinFreeSamples", _wrap_MAC_setMinFreeSamples, METH_VARARGS },
+        { (char *)"MAC_setRxtxDelay", _wrap_MAC_setRxtxDelay, METH_VARARGS },
+        { (char *)"MAC_setAckTime", _wrap_MAC_setAckTime, METH_VARARGS },
+        { (char *)"MAC_swigregister", MAC_swigregister, METH_VARARGS },
+        { (char *)"new_Radio", _wrap_new_Radio, METH_VARARGS },
+        { (char *)"delete_Radio", _wrap_delete_Radio, METH_VARARGS },
+        { (char *)"Radio_add", _wrap_Radio_add, METH_VARARGS },
+        { (char *)"Radio_gain", _wrap_Radio_gain, METH_VARARGS },
+        { (char *)"Radio_connected", _wrap_Radio_connected, METH_VARARGS },
+        { (char *)"Radio_remove", _wrap_Radio_remove, METH_VARARGS },
+        { (char *)"Radio_setNoise", _wrap_Radio_setNoise, METH_VARARGS },
+        { (char *)"Radio_setSensitivity", _wrap_Radio_setSensitivity, METH_VARARGS },
+        { (char *)"Radio_swigregister", Radio_swigregister, METH_VARARGS },
+        { (char *)"new_Packet", _wrap_new_Packet, METH_VARARGS },
+        { (char *)"delete_Packet", _wrap_delete_Packet, METH_VARARGS },
+        { (char *)"Packet_setDestination", _wrap_Packet_setDestination, METH_VARARGS },
+        { (char *)"Packet_destination", _wrap_Packet_destination, METH_VARARGS },
+        { (char *)"Packet_setLength", _wrap_Packet_setLength, METH_VARARGS },
+        { (char *)"Packet_length", _wrap_Packet_length, METH_VARARGS },
+        { (char *)"Packet_setType", _wrap_Packet_setType, METH_VARARGS },
+        { (char *)"Packet_type", _wrap_Packet_type, METH_VARARGS },
+        { (char *)"Packet_data", _wrap_Packet_data, METH_VARARGS },
+        { (char *)"Packet_setData", _wrap_Packet_setData, METH_VARARGS },
+        { (char *)"Packet_maxLength", _wrap_Packet_maxLength, METH_VARARGS },
+        { (char *)"Packet_setStrength", _wrap_Packet_setStrength, METH_VARARGS },
+        { (char *)"Packet_deliver", _wrap_Packet_deliver, METH_VARARGS },
+        { (char *)"Packet_deliverNow", _wrap_Packet_deliverNow, METH_VARARGS },
+        { (char *)"Packet_swigregister", Packet_swigregister, METH_VARARGS },
+        { (char *)"variable_string_t_type_set", _wrap_variable_string_t_type_set, METH_VARARGS },
+        { (char *)"variable_string_t_type_get", _wrap_variable_string_t_type_get, METH_VARARGS },
+        { (char *)"variable_string_t_ptr_set", _wrap_variable_string_t_ptr_set, METH_VARARGS },
+        { (char *)"variable_string_t_ptr_get", _wrap_variable_string_t_ptr_get, METH_VARARGS },
+        { (char *)"variable_string_t_len_set", _wrap_variable_string_t_len_set, METH_VARARGS },
+        { (char *)"variable_string_t_len_get", _wrap_variable_string_t_len_get, METH_VARARGS },
+        { (char *)"variable_string_t_isArray_set", _wrap_variable_string_t_isArray_set, METH_VARARGS },
+        { (char *)"variable_string_t_isArray_get", _wrap_variable_string_t_isArray_get, METH_VARARGS },
+        { (char *)"new_variable_string_t", _wrap_new_variable_string_t, METH_VARARGS },
+        { (char *)"delete_variable_string_t", _wrap_delete_variable_string_t, METH_VARARGS },
+        { (char *)"variable_string_t_swigregister", variable_string_t_swigregister, METH_VARARGS },
+        { (char *)"nesc_app_t_numVariables_set", _wrap_nesc_app_t_numVariables_set, METH_VARARGS },
+        { (char *)"nesc_app_t_numVariables_get", _wrap_nesc_app_t_numVariables_get, METH_VARARGS },
+        { (char *)"nesc_app_t_variableNames_set", _wrap_nesc_app_t_variableNames_set, METH_VARARGS },
+        { (char *)"nesc_app_t_variableNames_get", _wrap_nesc_app_t_variableNames_get, METH_VARARGS },
+        { (char *)"nesc_app_t_variableTypes_set", _wrap_nesc_app_t_variableTypes_set, METH_VARARGS },
+        { (char *)"nesc_app_t_variableTypes_get", _wrap_nesc_app_t_variableTypes_get, METH_VARARGS },
+        { (char *)"nesc_app_t_variableArray_set", _wrap_nesc_app_t_variableArray_set, METH_VARARGS },
+        { (char *)"nesc_app_t_variableArray_get", _wrap_nesc_app_t_variableArray_get, METH_VARARGS },
+        { (char *)"new_nesc_app_t", _wrap_new_nesc_app_t, METH_VARARGS },
+        { (char *)"delete_nesc_app_t", _wrap_delete_nesc_app_t, METH_VARARGS },
+        { (char *)"nesc_app_t_swigregister", nesc_app_t_swigregister, METH_VARARGS },
+        { (char *)"new_Variable", _wrap_new_Variable, METH_VARARGS },
+        { (char *)"delete_Variable", _wrap_delete_Variable, METH_VARARGS },
+        { (char *)"Variable_getData", _wrap_Variable_getData, METH_VARARGS },
+        { (char *)"Variable_swigregister", Variable_swigregister, METH_VARARGS },
+        { (char *)"new_Mote", _wrap_new_Mote, METH_VARARGS },
+        { (char *)"delete_Mote", _wrap_delete_Mote, METH_VARARGS },
+        { (char *)"Mote_id", _wrap_Mote_id, METH_VARARGS },
+        { (char *)"Mote_euid", _wrap_Mote_euid, METH_VARARGS },
+        { (char *)"Mote_setEuid", _wrap_Mote_setEuid, METH_VARARGS },
+        { (char *)"Mote_bootTime", _wrap_Mote_bootTime, METH_VARARGS },
+        { (char *)"Mote_bootAtTime", _wrap_Mote_bootAtTime, METH_VARARGS },
+        { (char *)"Mote_isOn", _wrap_Mote_isOn, METH_VARARGS },
+        { (char *)"Mote_turnOff", _wrap_Mote_turnOff, METH_VARARGS },
+        { (char *)"Mote_turnOn", _wrap_Mote_turnOn, METH_VARARGS },
+        { (char *)"Mote_getVariable", _wrap_Mote_getVariable, METH_VARARGS },
+        { (char *)"Mote_swigregister", Mote_swigregister, METH_VARARGS },
+        { (char *)"new_Tossim", _wrap_new_Tossim, METH_VARARGS },
+        { (char *)"delete_Tossim", _wrap_delete_Tossim, METH_VARARGS },
+        { (char *)"Tossim_init", _wrap_Tossim_init, METH_VARARGS },
+        { (char *)"Tossim_time", _wrap_Tossim_time, METH_VARARGS },
+        { (char *)"Tossim_ticksPerSecond", _wrap_Tossim_ticksPerSecond, METH_VARARGS },
+        { (char *)"Tossim_setTime", _wrap_Tossim_setTime, METH_VARARGS },
+        { (char *)"Tossim_timeStr", _wrap_Tossim_timeStr, METH_VARARGS },
+        { (char *)"Tossim_currentNode", _wrap_Tossim_currentNode, METH_VARARGS },
+        { (char *)"Tossim_getNode", _wrap_Tossim_getNode, METH_VARARGS },
+        { (char *)"Tossim_setCurrentNode", _wrap_Tossim_setCurrentNode, METH_VARARGS },
+        { (char *)"Tossim_addChannel", _wrap_Tossim_addChannel, METH_VARARGS },
+        { (char *)"Tossim_removeChannel", _wrap_Tossim_removeChannel, METH_VARARGS },
+        { (char *)"Tossim_runNextEvent", _wrap_Tossim_runNextEvent, METH_VARARGS },
+        { (char *)"Tossim_mac", _wrap_Tossim_mac, METH_VARARGS },
+        { (char *)"Tossim_radio", _wrap_Tossim_radio, METH_VARARGS },
+        { (char *)"Tossim_newPacket", _wrap_Tossim_newPacket, METH_VARARGS },
+        { (char *)"Tossim_swigregister", Tossim_swigregister, METH_VARARGS },
+        { NULL, NULL }
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
+
+static swig_type_info _swigt__p_Radio[] = {{"_p_Radio", 0, "Radio *", 0},{"_p_Radio"},{0}};
+static swig_type_info _swigt__p_nesc_app_t[] = {{"_p_nesc_app_t", 0, "nesc_app_t *", 0},{"_p_nesc_app_t"},{0}};
+static swig_type_info _swigt__p_FILE[] = {{"_p_FILE", 0, "FILE *", 0},{"_p_FILE"},{0}};
+static swig_type_info _swigt__p_MAC[] = {{"_p_MAC", 0, "MAC *", 0},{"_p_MAC"},{0}};
+static swig_type_info _swigt__p_Packet[] = {{"_p_Packet", 0, "Packet *", 0},{"_p_Packet"},{0}};
+static swig_type_info _swigt__p_Variable[] = {{"_p_Variable", 0, "Variable *", 0},{"_p_Variable"},{0}};
+static swig_type_info _swigt__p_Tossim[] = {{"_p_Tossim", 0, "Tossim *", 0},{"_p_Tossim"},{0}};
+static swig_type_info _swigt__p_variable_string_t[] = {{"_p_variable_string_t", 0, "variable_string_t *", 0},{"_p_variable_string_t"},{0}};
+static swig_type_info _swigt__p_Mote[] = {{"_p_Mote", 0, "Mote *", 0},{"_p_Mote"},{0}};
+static swig_type_info _swigt__p_p_char[] = {{"_p_p_char", 0, "char **", 0},{"_p_p_char"},{0}};
+static swig_type_info _swigt__p_int[] = {{"_p_int", 0, "int *", 0},{"_p_int"},{0}};
+
+static swig_type_info *swig_types_initial[] = {
+_swigt__p_Radio, 
+_swigt__p_nesc_app_t, 
+_swigt__p_FILE, 
+_swigt__p_MAC, 
+_swigt__p_Packet, 
+_swigt__p_Variable, 
+_swigt__p_Tossim, 
+_swigt__p_variable_string_t, 
+_swigt__p_Mote, 
+_swigt__p_p_char, 
+_swigt__p_int, 
+0
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
+
+static swig_const_info swig_const_table[] = {
+{0}};
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+extern "C"
+#endif
+SWIGEXPORT(void) SWIG_init(void) {
+    static PyObject *SWIG_globals = 0; 
+    static int       typeinit = 0;
+    PyObject *m, *d;
+    int       i;
+    if (!SWIG_globals) SWIG_globals = SWIG_newvarlink();
+    m = Py_InitModule((char *) SWIG_name, SwigMethods);
+    d = PyModule_GetDict(m);
+    
+    if (!typeinit) {
+        for (i = 0; swig_types_initial[i]; i++) {
+            swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
+        }
+        typeinit = 1;
+    }
+    SWIG_InstallConstants(d,swig_const_table);
+    
+}
+