35 {
36 T obj_ptr = (T)PyCapsule_GetPointer(pyobj, type_ptr.c_str());
37 if (obj_ptr == nullptr) {
38 AERROR <<
"PyObjectToPtr failed,type->" << type_ptr <<
"pyobj: " << pyobj;
39 }
40 return obj_ptr;
41}
42
45 return PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
46}
47
49 PyObject* pyobj_param = nullptr;
50 if (!PyArg_ParseTuple(args, const_cast<char*>("O:cyber_delete_PyParameter"),
51 &pyobj_param)) {
52 Py_INCREF(Py_None);
53 return Py_None;
54 }
55
57 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
58 if (nullptr == pyparameter) {
59 AERROR <<
"cyber_delete_PyParameter:parameter ptr is null!";
60 Py_INCREF(Py_None);
61 return Py_None;
62 }
63 delete pyparameter;
64 Py_INCREF(Py_None);
65 return Py_None;
66}
67
69 char* name = nullptr;
70 Py_ssize_t len = 0;
71 int64_t int_value = 0;
72 if (!PyArg_ParseTuple(args,
73 const_cast<char*>("s#L:cyber_new_PyParameter_int"),
74 &name, &len, &int_value)) {
75 AERROR <<
"cyber_new_PyParameter_int parsetuple failed!";
76 Py_INCREF(Py_None);
77 return Py_None;
78 }
79
81 return PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
82}
83
85 char* name = nullptr;
86 Py_ssize_t len = 0;
87 double double_value = 0;
88 if (!PyArg_ParseTuple(args,
89 const_cast<char*>("s#d:cyber_new_PyParameter_double"),
90 &name, &len, &double_value)) {
91 AERROR <<
"cyber_new_PyParameter_double parsetuple failed!";
92 Py_INCREF(Py_None);
93 return Py_None;
94 }
95
97 new PyParameter(std::string(name, len), double_value);
98 return PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
99}
100
102 char* name = nullptr;
103 char* string_param = nullptr;
104 if (!PyArg_ParseTuple(args,
105 const_cast<char*>("ss:cyber_new_PyParameter_string"),
106 &name, &string_param)) {
107 AERROR <<
"cyber_new_PyParameter_string parsetuple failed!";
108 Py_INCREF(Py_None);
109 return Py_None;
110 }
111
113 new PyParameter(std::string(name), std::string(string_param));
114 return PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
115}
116
118 PyObject* pyobj_param = nullptr;
119 if (!PyArg_ParseTuple(args,
120 const_cast<char*>("O:cyber_PyParameter_type_name"),
121 &pyobj_param)) {
122 AERROR <<
"cyber_PyParameter_type_name failed!";
124 }
125
127 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
128 if (nullptr == param) {
129 AERROR <<
"cyber_PyParameter_type_name ptr is null!";
131 }
132
133 const std::string type = param->
type_name();
135}
136
138 PyObject* pyobj_param = nullptr;
139 if (!PyArg_ParseTuple(args,
140 const_cast<char*>("O:cyber_PyParameter_descriptor"),
141 &pyobj_param)) {
142 AERROR <<
"cyber_PyParameter_descriptor failed!";
144 }
145
147 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
148 if (nullptr == param) {
149 AERROR <<
"cyber_PyParameter_descriptor ptr is null!";
151 }
152
155}
156
158 PyObject* pyobj_param = nullptr;
159 if (!PyArg_ParseTuple(args, const_cast<char*>("O:cyber_PyParameter_name"),
160 &pyobj_param)) {
161 AERROR <<
"cyber_PyParameter_name failed!";
163 }
164
166 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
167 if (nullptr == param) {
168 AERROR <<
"cyber_PyParameter_name ptr is null!";
170 }
171
172 const std::string name = param->
name();
174}
175
177 PyObject* pyobj_param = nullptr;
178 if (!PyArg_ParseTuple(args,
179 const_cast<char*>("O:cyber_PyParameter_debug_string"),
180 &pyobj_param)) {
181 AERROR <<
"cyber_PyParameter_debug_string failed!";
183 }
184
186 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
187 if (nullptr == param) {
188 AERROR <<
"cyber_PyParameter_debug_string ptr is null!";
190 }
191
194}
195
197 PyObject* pyobj_param = nullptr;
198 if (!PyArg_ParseTuple(args,
199 const_cast<char*>("O:cyber_PyParameter_as_string"),
200 &pyobj_param)) {
201 AERROR <<
"cyber_PyParameter_as_string failed!";
203 }
204
206 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
207 if (nullptr == param) {
208 AERROR <<
"cyber_PyParameter_as_string ptr is null!";
210 }
211
212 std::string debug_string = param->
as_string();
214}
215
217 PyObject* pyobj_param = nullptr;
218 if (!PyArg_ParseTuple(args,
219 const_cast<char*>("O:cyber_PyParameter_as_double"),
220 &pyobj_param)) {
221 AERROR <<
"cyber_PyParameter_as_double failed!";
222 return PyFloat_FromDouble(0.0);
223 }
224
226 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
227 if (nullptr == param) {
228 AERROR <<
"cyber_PyParameter_as_double ptr is null!";
229 return PyFloat_FromDouble(0.0);
230 }
231
232 double dTemp = param->as_double();
233 return PyFloat_FromDouble(dTemp);
234}
235
237 PyObject* pyobj_param = nullptr;
238 if (!PyArg_ParseTuple(args, const_cast<char*>("O:cyber_PyParameter_as_int64"),
239 &pyobj_param)) {
240 AERROR <<
"cyber_PyParameter_as_int64 failed!";
241 return PyLong_FromLongLong(0);
242 }
243
245 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameter"));
246 if (nullptr == param) {
247 AERROR <<
"cyber_PyParameter_as_int64 ptr is null!";
248 return PyLong_FromLongLong(0);
249 }
250
251 int64_t lTemp = param->as_int64();
252 return PyLong_FromLongLong(lTemp);
253}
254
255
257 PyObject* pyobj_node = nullptr;
258 char* service_node_name = nullptr;
259 Py_ssize_t len = 0;
260 if (!PyArg_ParseTuple(args,
261 const_cast<char*>("Os#:cyber_new_PyParameterClient"),
262 &pyobj_node, &service_node_name, &len)) {
263 AERROR <<
"cyber_new_PyParameterClient parsetuple failed!";
264 Py_INCREF(Py_None);
265 return Py_None;
266 }
267
268 PyNode* pynode = PyObjectToPtr<PyNode*>(pyobj_node,
"apollo_cyber_pynode");
269 if (nullptr == pynode) {
270 AERROR <<
"pynode ptr is null!";
271 Py_INCREF(Py_None);
272 return Py_None;
273 }
274
276 if (nullptr == node) {
277 AERROR <<
"node ptr is null!";
278 Py_INCREF(Py_None);
279 return Py_None;
280 }
281
284 return PyCapsule_New(pyparameter_clt, "apollo_cybertron_pyparameterclient",
285 nullptr);
286}
287
289 PyObject* pyobj_param = nullptr;
290 if (!PyArg_ParseTuple(args,
291 const_cast<char*>("O:cyber_delete_PyParameterClient"),
292 &pyobj_param)) {
293 AERROR <<
"cyber_delete_PyParameterClient parsetuple failed!";
294 Py_INCREF(Py_None);
295 return Py_None;
296 }
297
299 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameterclient"));
300 if (nullptr == pyparameter_clt) {
301 AERROR <<
"cyber_delete_PyParameterClient:pyparameter_clt ptr is null!";
302 Py_INCREF(Py_None);
303 return Py_None;
304 }
305 delete pyparameter_clt;
306 Py_INCREF(Py_None);
307 return Py_None;
308}
309
311 PyObject* pyobj_param_clt = nullptr;
312 PyObject* pyobj_param = nullptr;
313 if (!PyArg_ParseTuple(args,
314 const_cast<char*>("OO:cyber_PyParameter_set_parameter"),
315 &pyobj_param_clt, &pyobj_param)) {
316 AERROR <<
"cyber_PyParameter_set_parameter parsetuple failed!";
317 Py_RETURN_FALSE;
318 }
319
321 pyobj_param_clt, "apollo_cybertron_pyparameterclient");
322 if (nullptr == pyparam_clt) {
323 AERROR <<
"pyparam_clt ptr is null!";
324 Py_RETURN_FALSE;
325 }
326
328 PyObjectToPtr<PyParameter*>(pyobj_param, "apollo_cybertron_pyparameter");
329 if (nullptr == pyparam) {
330 AERROR <<
"pyparam ptr is null!";
331 Py_RETURN_FALSE;
332 }
333
335 Py_RETURN_FALSE;
336 } else {
337 Py_RETURN_TRUE;
338 }
339}
340
342 char* name = nullptr;
343 Py_ssize_t len = 0;
344 PyObject* pyobj_param_clt = nullptr;
345 if (!PyArg_ParseTuple(
346 args, const_cast<char*>("Os#:cyber_PyParameter_get_parameter"),
347 &pyobj_param_clt, &name, &len)) {
348 AERROR <<
"cyber_PyParameter_get_parameter parsetuple failed!";
349 Py_INCREF(Py_None);
350 return Py_None;
351 }
353 pyobj_param_clt, "apollo_cybertron_pyparameterclient");
354 if (nullptr == pyparam_clt) {
355 AERROR <<
"pyparam_clt ptr is null!";
356 Py_INCREF(Py_None);
357 return Py_None;
358 }
359
361 std::string str_param = std::string(name, len);
363 AERROR <<
"pyparam_clt get_parameter is false!";
364 Py_INCREF(Py_None);
365 return Py_None;
366 }
367
369 return PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
370}
371
373 PyObject* args) {
374 PyObject* pyobj_param_clt = nullptr;
375 if (!PyArg_ParseTuple(
376 args, const_cast<char*>("O:cyber_PyParameter_clt_get_parameter_list"),
377 &pyobj_param_clt)) {
379 << "cyber_PyParameter_clt_get_parameter_list:PyArg_ParseTuple failed!";
380 Py_INCREF(Py_None);
381 return Py_None;
382 }
383
385 pyobj_param_clt, "apollo_cybertron_pyparameterclient"));
386 if (nullptr == pyparam_clt) {
387 AERROR <<
"cyber_PyParameter_clt_get_parameter_list pyparam_clt is null!";
388 Py_INCREF(Py_None);
389 return Py_None;
390 }
391
392 std::vector<Parameter> param_list;
394
395 PyObject* pyobj_list = PyList_New(param_list.size());
396 size_t pos = 0;
397 for (auto& param : param_list) {
400 PyObject* pyobj_param =
401 PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
402 PyList_SetItem(pyobj_list, pos, pyobj_param);
403 pos++;
404 }
405
406 return pyobj_list;
407}
408
409
411 PyObject* pyobj_node = nullptr;
412 if (!PyArg_ParseTuple(args,
413 const_cast<char*>("O:cyber_new_PyParameterServer"),
414 &pyobj_node)) {
415 AERROR <<
"cyber_new_PyParameterServer parsetuple failed!";
416 Py_INCREF(Py_None);
417 return Py_None;
418 }
419
420 PyNode* pynode = PyObjectToPtr<PyNode*>(pyobj_node,
"apollo_cyber_pynode");
421 if (nullptr == pynode) {
422 AERROR <<
"pynode ptr is null!";
423 Py_INCREF(Py_None);
424 return Py_None;
425 }
426
428 if (nullptr == node) {
429 AERROR <<
"node ptr is null!";
430 Py_INCREF(Py_None);
431 return Py_None;
432 }
433
435 return PyCapsule_New(pyparameter_srv, "apollo_cybertron_pyparameterserver",
436 nullptr);
437}
438
440 PyObject* pyobj_param = nullptr;
441 if (!PyArg_ParseTuple(args,
442 const_cast<char*>("O:cyber_delete_PyParameterServer"),
443 &pyobj_param)) {
444 AERROR <<
"cyber_delete_PyParameterServer parsetuple failed!";
445 Py_INCREF(Py_None);
446 return Py_None;
447 }
448
450 PyCapsule_GetPointer(pyobj_param, "apollo_cybertron_pyparameterserver"));
451 if (nullptr == pyparameter_srv) {
452 AERROR <<
"cyber_delete_PyParameterServer:pyparameter_srv ptr is null!";
453 Py_INCREF(Py_None);
454 return Py_None;
455 }
456 delete pyparameter_srv;
457 Py_INCREF(Py_None);
458 return Py_None;
459}
460
462 PyObject* pyobj_param_srv = nullptr;
463 PyObject* pyobj_param = nullptr;
464 if (!PyArg_ParseTuple(args,
465 const_cast<char*>("OO:cyber_PyParameter_set_parameter"),
466 &pyobj_param_srv, &pyobj_param)) {
467 AERROR <<
"cyber_PyParameter_set_parameter parsetuple failed!";
468 Py_INCREF(Py_None);
469 return Py_None;
470 }
471
473 pyobj_param_srv, "apollo_cybertron_pyparameterserver");
474 if (nullptr == pyparam_srv) {
475 AERROR <<
"pyparam_srv ptr is null!";
476 Py_INCREF(Py_None);
477 return Py_None;
478 }
479
481 PyObjectToPtr<PyParameter*>(pyobj_param, "apollo_cybertron_pyparameter");
482 if (nullptr == pyparam) {
483 AERROR <<
"pyparam ptr is null!";
484 Py_INCREF(Py_None);
485 return Py_None;
486 }
487
489 Py_INCREF(Py_None);
490 return Py_None;
491}
492
494 char* name = nullptr;
495 Py_ssize_t len = 0;
496 PyObject* pyobj_param_srv = nullptr;
497 if (!PyArg_ParseTuple(
498 args, const_cast<char*>("Os#:cyber_PyParameter_get_parameter"),
499 &pyobj_param_srv, &name, &len)) {
500 AERROR <<
"cyber_PyParameter_get_parameter parsetuple failed!";
501 Py_INCREF(Py_None);
502 return Py_None;
503 }
505 pyobj_param_srv, "apollo_cybertron_pyparameterserver");
506 if (nullptr == pyparam_srv) {
507 AERROR <<
"pyparam_srv ptr is null!";
508 Py_INCREF(Py_None);
509 return Py_None;
510 }
511
513 std::string str_param = std::string(name, len);
515 AERROR <<
"pyparam_srv get_parameter is false!";
516 Py_INCREF(Py_None);
517 return Py_None;
518 }
519
521 return PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
522}
523
525 PyObject* args) {
526 PyObject* pyobj_param_srv = nullptr;
527 if (!PyArg_ParseTuple(
528 args, const_cast<char*>("O:cyber_PyParameter_srv_get_parameter_list"),
529 &pyobj_param_srv)) {
531 << "cyber_PyParameter_srv_get_parameter_list:PyArg_ParseTuple failed!";
532 Py_INCREF(Py_None);
533 return Py_None;
534 }
535
537 pyobj_param_srv, "apollo_cybertron_pyparameterserver"));
538 if (nullptr == pyparam_srv) {
539 AERROR <<
"cyber_PyParameter_srv_get_parameter_list pyparam_srv is null!";
540 Py_INCREF(Py_None);
541 return Py_None;
542 }
543
544 std::vector<Parameter> param_list;
546
547 PyObject* pyobj_list = PyList_New(param_list.size());
548 size_t pos = 0;
549 for (auto& param : param_list) {
552 PyObject* pyobj_param =
553 PyCapsule_New(pyparameter, "apollo_cybertron_pyparameter", nullptr);
554 PyList_SetItem(pyobj_list, pos, pyobj_param);
555 pos++;
556 }
557
558 return pyobj_list;
559}
560
561static PyMethodDef _cyber_parameter_methods[] = {
571 ""},
575
578 ""},
580 METH_VARARGS, ""},
582 METH_VARARGS, ""},
583 {"PyParameter_clt_get_parameter_list",
585
588 ""},
590 METH_VARARGS, ""},
592 METH_VARARGS, ""},
593 {"PyParameter_srv_get_parameter_list",
595
596 {nullptr, nullptr, 0, nullptr}
597};
598
601 static struct PyModuleDef module_def = {
602 PyModuleDef_HEAD_INIT,
603 "_cyber_parameter_wrapper",
604 "CyberParameter module",
605 -1,
606 _cyber_parameter_methods,
607 nullptr,
608 nullptr,
609 nullptr,
610 nullptr,
611 };
612
613 return PyModule_Create(&module_def);
614}
A Parameter holds an apollo::cyber::proto::Param, It's more human-readable, you can use basic-value t...
std::shared_ptr< Node > get_node()
bool list_parameters(std::vector< Parameter > *parameters)
bool set_parameter(const Parameter ¶meter)
bool get_parameter(const std::string ¶m_name, Parameter *parameter)
bool get_parameter(const std::string ¶m_name, Parameter *parameter)
void list_parameters(std::vector< Parameter > *parameters)
void set_parameter(const Parameter ¶meter)
std::string debug_string()
PyObject * cyber_PyParameter_as_int64(PyObject *self, PyObject *args)
PyObject * cyber_new_PyParameter_double(PyObject *self, PyObject *args)
PyObject * cyber_delete_PyParameterServer(PyObject *self, PyObject *args)
PyObject * cyber_delete_PyParameter(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_as_string(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_clt_get_parameter_list(PyObject *self, PyObject *args)
#define PYOBJECT_NULL_STRING
PyObject * cyber_PyParameter_name(PyObject *self, PyObject *args)
PyObject * cyber_delete_PyParameterClient(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_as_double(PyObject *self, PyObject *args)
PyMODINIT_FUNC PyInit__cyber_parameter_wrapper(void)
Init function of this module
PyObject * cyber_new_PyParameterClient(PyObject *self, PyObject *args)
PyObject * cyber_new_PyParameter_string(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_debug_string(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_srv_get_parameter_list(PyObject *self, PyObject *args)
#define C_STR_TO_PY_BYTES(cstr)
PyObject * cyber_PyParameter_type_name(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_clt_set_parameter(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_srv_get_parameter(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_srv_set_parameter(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_descriptor(PyObject *self, PyObject *args)
PyObject * cyber_PyParameter_clt_get_parameter(PyObject *self, PyObject *args)
PyObject * cyber_new_PyParameter_noparam(PyObject *self, PyObject *args)
PyObject * cyber_new_PyParameter_int(PyObject *self, PyObject *args)
PyObject * cyber_new_PyParameterServer(PyObject *self, PyObject *args)