Exemplo n.º 1
0
void
Comm::add_to_module ()
{
  if (comm_module == NULL)
    initcomm();

  if (comm_module != NULL) {
    PyObject *comm = PyComm_new(this);
    PyModule_AddObject(comm_module, "inst", comm);
  }
}
Exemplo n.º 2
0
void
Comm::add_to_module ()
{
  if (comm_module == NULL) {
    if (!c_init_comm()) {
      cerr << "Comm module failed to initialize the backend" << endl;
      PyErr_Print();
    }
  }

  if (comm_module != NULL) {
    PyObject *comm = PyComm_new(this);
    PyModule_AddObject(comm_module, "inst", comm);
  }
}
Exemplo n.º 3
0
bool
c_init_comm (void)
{
  if (!Py_IsInitialized())
    Py_Initialize();

  if (PyType_Ready(&PyCommType) < 0
#ifdef USE_PYTHON_GC
      || PyType_Ready(&PyGameControllerType) < 0
#endif 
      ) {
    fprintf(stderr, "Error creating Comm Python class type\n");
    if (PyErr_Occurred())
      PyErr_Print();
    else
      fprintf(stderr, "But no error available!\n");
    return false;
  }
  
  comm_module = Py_InitModule3("_comm", module_methods,
      "Container module for Comm proxy class to C++");

  if (comm_module == NULL) {
    fprintf(stderr, "Error initializing Comm Python module\n");
    return false;
  }

  Py_INCREF(&PyCommType);
  PyModule_AddObject(comm_module, "Comm", (PyObject *)&PyCommType);

#ifdef USE_PYTHON_GC
  Py_INCREF(&PyGameControllerType);
  PyModule_AddObject(comm_module, "GameController",
      (PyObject *)&PyGameControllerType);
#endif

  PyModule_AddObject(comm_module, "STATE_INITIAL",
      PyInt_FromLong(STATE_INITIAL));
  PyModule_AddObject(comm_module, "STATE_SET",
      PyInt_FromLong(STATE_SET));
  PyModule_AddObject(comm_module, "STATE_READY",
      PyInt_FromLong(STATE_READY));
  PyModule_AddObject(comm_module, "STATE_PLAYING",
      PyInt_FromLong(STATE_PLAYING));
  PyModule_AddObject(comm_module, "STATE_FINISHED",
      PyInt_FromLong(STATE_FINISHED));

  PyModule_AddObject(comm_module, "PENALTY_NONE",
      PyInt_FromLong(PENALTY_NONE));
  PyModule_AddObject(comm_module, "PENALTY_BALL_HOLDING",
      PyInt_FromLong(PENALTY_BALL_HOLDING));
  PyModule_AddObject(comm_module, "PENALTY_GOALIE_PUSHING",
      PyInt_FromLong(PENALTY_GOALIE_PUSHING));
  PyModule_AddObject(comm_module, "PENALTY_PLAYER_PUSHING",
      PyInt_FromLong(PENALTY_PLAYER_PUSHING));
  PyModule_AddObject(comm_module, "PENALTY_ILLEGAL_DEFENDER",
      PyInt_FromLong(PENALTY_ILLEGAL_DEFENDER));
  PyModule_AddObject(comm_module, "PENALTY_ILLEGAL_DEFENSE",
      PyInt_FromLong(PENALTY_ILLEGAL_DEFENSE));
  PyModule_AddObject(comm_module, "PENALTY_OBSTRUCTION",
      PyInt_FromLong(PENALTY_OBSTRUCTION));
  PyModule_AddObject(comm_module, "PENALTY_REQ_FOR_PICKUP",
      PyInt_FromLong(PENALTY_REQ_FOR_PICKUP));
  PyModule_AddObject(comm_module, "PENALTY_LEAVING",
      PyInt_FromLong(PENALTY_LEAVING));
  PyModule_AddObject(comm_module, "PENALTY_DAMAGE",
      PyInt_FromLong(PENALTY_DAMAGE));
  PyModule_AddObject(comm_module, "PENALTY_MANUAL",
      PyInt_FromLong(PENALTY_MANUAL));

#ifdef USE_PYCOMM_FAKE_BACKEND
  Sensors *s = new Sensors();
  Vision *v = new Vision(new NaoPose(s), new Profiler(&micro_time));
  PyObject *pcomm = PyComm_new(new Comm(s, v));
  PyModule_AddObject(comm_module, "inst", pcomm);
#endif
  
  return true;
}