YARP
Yet Another Robot Platform
OdometryData.cpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 
6 // Autogenerated by Thrift Compiler (0.14.1-yarped)
7 //
8 // This is an automatically generated file.
9 // It could get re-generated if the ALLOW_IDL_GENERATION flag is on.
10 
11 #include <yarp/dev/OdometryData.h>
12 
13 namespace yarp {
14 namespace dev {
15 
16 // Default constructor
18  WirePortable(),
19  odom_x(0),
20  odom_y(0),
21  odom_theta(0),
22  base_vel_x(0),
23  base_vel_y(0),
24  base_vel_theta(0),
25  odom_vel_x(0),
26  odom_vel_y(0),
27  odom_vel_theta(0)
28 {
29 }
30 
31 // Constructor with field values
32 OdometryData::OdometryData(const double odom_x,
33  const double odom_y,
34  const double odom_theta,
35  const double base_vel_x,
36  const double base_vel_y,
37  const double base_vel_theta,
38  const double odom_vel_x,
39  const double odom_vel_y,
40  const double odom_vel_theta) :
41  WirePortable(),
42  odom_x(odom_x),
43  odom_y(odom_y),
44  odom_theta(odom_theta),
45  base_vel_x(base_vel_x),
46  base_vel_y(base_vel_y),
47  base_vel_theta(base_vel_theta),
48  odom_vel_x(odom_vel_x),
49  odom_vel_y(odom_vel_y),
50  odom_vel_theta(odom_vel_theta)
51 {
52 }
53 
54 // Read structure on a Wire
56 {
57  if (!read_odom_x(reader)) {
58  return false;
59  }
60  if (!read_odom_y(reader)) {
61  return false;
62  }
63  if (!read_odom_theta(reader)) {
64  return false;
65  }
66  if (!read_base_vel_x(reader)) {
67  return false;
68  }
69  if (!read_base_vel_y(reader)) {
70  return false;
71  }
72  if (!read_base_vel_theta(reader)) {
73  return false;
74  }
75  if (!read_odom_vel_x(reader)) {
76  return false;
77  }
78  if (!read_odom_vel_y(reader)) {
79  return false;
80  }
81  if (!read_odom_vel_theta(reader)) {
82  return false;
83  }
84  return !reader.isError();
85 }
86 
87 // Read structure on a Connection
89 {
90  yarp::os::idl::WireReader reader(connection);
91  if (!reader.readListHeader(9)) {
92  return false;
93  }
94  return read(reader);
95 }
96 
97 // Write structure on a Wire
99 {
100  if (!write_odom_x(writer)) {
101  return false;
102  }
103  if (!write_odom_y(writer)) {
104  return false;
105  }
106  if (!write_odom_theta(writer)) {
107  return false;
108  }
109  if (!write_base_vel_x(writer)) {
110  return false;
111  }
112  if (!write_base_vel_y(writer)) {
113  return false;
114  }
115  if (!write_base_vel_theta(writer)) {
116  return false;
117  }
118  if (!write_odom_vel_x(writer)) {
119  return false;
120  }
121  if (!write_odom_vel_y(writer)) {
122  return false;
123  }
124  if (!write_odom_vel_theta(writer)) {
125  return false;
126  }
127  return !writer.isError();
128 }
129 
130 // Write structure on a Connection
132 {
133  yarp::os::idl::WireWriter writer(connection);
134  if (!writer.writeListHeader(9)) {
135  return false;
136  }
137  return write(writer);
138 }
139 
140 // Convert to a printable string
141 std::string OdometryData::toString() const
142 {
144  b.read(*this);
145  return b.toString();
146 }
147 
148 // Editor: default constructor
150 {
151  group = 0;
152  obj_owned = true;
153  obj = new OdometryData;
154  dirty_flags(false);
155  yarp().setOwner(*this);
156 }
157 
158 // Editor: constructor with base class
160 {
161  group = 0;
162  obj_owned = false;
163  edit(obj, false);
164  yarp().setOwner(*this);
165 }
166 
167 // Editor: destructor
169 {
170  if (obj_owned) {
171  delete obj;
172  }
173 }
174 
175 // Editor: edit
177 {
178  if (obj_owned) {
179  delete this->obj;
180  }
181  this->obj = &obj;
182  obj_owned = false;
183  dirty_flags(dirty);
184  return true;
185 }
186 
187 // Editor: validity check
189 {
190  return obj != nullptr;
191 }
192 
193 // Editor: state
195 {
196  return *obj;
197 }
198 
199 // Editor: grouping begin
201 {
202  group++;
203 }
204 
205 // Editor: grouping end
207 {
208  group--;
209  if (group == 0 && is_dirty) {
210  communicate();
211  }
212 }
213 // Editor: odom_x setter
215 {
216  will_set_odom_x();
217  obj->odom_x = odom_x;
218  mark_dirty_odom_x();
219  communicate();
220  did_set_odom_x();
221 }
222 
223 // Editor: odom_x getter
225 {
226  return obj->odom_x;
227 }
228 
229 // Editor: odom_x will_set
231 {
232  return true;
233 }
234 
235 // Editor: odom_x did_set
237 {
238  return true;
239 }
240 
241 // Editor: odom_y setter
243 {
244  will_set_odom_y();
245  obj->odom_y = odom_y;
246  mark_dirty_odom_y();
247  communicate();
248  did_set_odom_y();
249 }
250 
251 // Editor: odom_y getter
253 {
254  return obj->odom_y;
255 }
256 
257 // Editor: odom_y will_set
259 {
260  return true;
261 }
262 
263 // Editor: odom_y did_set
265 {
266  return true;
267 }
268 
269 // Editor: odom_theta setter
271 {
272  will_set_odom_theta();
273  obj->odom_theta = odom_theta;
274  mark_dirty_odom_theta();
275  communicate();
276  did_set_odom_theta();
277 }
278 
279 // Editor: odom_theta getter
281 {
282  return obj->odom_theta;
283 }
284 
285 // Editor: odom_theta will_set
287 {
288  return true;
289 }
290 
291 // Editor: odom_theta did_set
293 {
294  return true;
295 }
296 
297 // Editor: base_vel_x setter
299 {
300  will_set_base_vel_x();
301  obj->base_vel_x = base_vel_x;
302  mark_dirty_base_vel_x();
303  communicate();
304  did_set_base_vel_x();
305 }
306 
307 // Editor: base_vel_x getter
309 {
310  return obj->base_vel_x;
311 }
312 
313 // Editor: base_vel_x will_set
315 {
316  return true;
317 }
318 
319 // Editor: base_vel_x did_set
321 {
322  return true;
323 }
324 
325 // Editor: base_vel_y setter
327 {
328  will_set_base_vel_y();
329  obj->base_vel_y = base_vel_y;
330  mark_dirty_base_vel_y();
331  communicate();
332  did_set_base_vel_y();
333 }
334 
335 // Editor: base_vel_y getter
337 {
338  return obj->base_vel_y;
339 }
340 
341 // Editor: base_vel_y will_set
343 {
344  return true;
345 }
346 
347 // Editor: base_vel_y did_set
349 {
350  return true;
351 }
352 
353 // Editor: base_vel_theta setter
355 {
356  will_set_base_vel_theta();
357  obj->base_vel_theta = base_vel_theta;
358  mark_dirty_base_vel_theta();
359  communicate();
360  did_set_base_vel_theta();
361 }
362 
363 // Editor: base_vel_theta getter
365 {
366  return obj->base_vel_theta;
367 }
368 
369 // Editor: base_vel_theta will_set
371 {
372  return true;
373 }
374 
375 // Editor: base_vel_theta did_set
377 {
378  return true;
379 }
380 
381 // Editor: odom_vel_x setter
383 {
384  will_set_odom_vel_x();
385  obj->odom_vel_x = odom_vel_x;
386  mark_dirty_odom_vel_x();
387  communicate();
388  did_set_odom_vel_x();
389 }
390 
391 // Editor: odom_vel_x getter
393 {
394  return obj->odom_vel_x;
395 }
396 
397 // Editor: odom_vel_x will_set
399 {
400  return true;
401 }
402 
403 // Editor: odom_vel_x did_set
405 {
406  return true;
407 }
408 
409 // Editor: odom_vel_y setter
411 {
412  will_set_odom_vel_y();
413  obj->odom_vel_y = odom_vel_y;
414  mark_dirty_odom_vel_y();
415  communicate();
416  did_set_odom_vel_y();
417 }
418 
419 // Editor: odom_vel_y getter
421 {
422  return obj->odom_vel_y;
423 }
424 
425 // Editor: odom_vel_y will_set
427 {
428  return true;
429 }
430 
431 // Editor: odom_vel_y did_set
433 {
434  return true;
435 }
436 
437 // Editor: odom_vel_theta setter
439 {
440  will_set_odom_vel_theta();
441  obj->odom_vel_theta = odom_vel_theta;
442  mark_dirty_odom_vel_theta();
443  communicate();
444  did_set_odom_vel_theta();
445 }
446 
447 // Editor: odom_vel_theta getter
449 {
450  return obj->odom_vel_theta;
451 }
452 
453 // Editor: odom_vel_theta will_set
455 {
456  return true;
457 }
458 
459 // Editor: odom_vel_theta did_set
461 {
462  return true;
463 }
464 
465 // Editor: clean
467 {
468  dirty_flags(false);
469 }
470 
471 // Editor: read
473 {
474  if (!isValid()) {
475  return false;
476  }
477  yarp::os::idl::WireReader reader(connection);
478  reader.expectAccept();
479  if (!reader.readListHeader()) {
480  return false;
481  }
482  int len = reader.getLength();
483  if (len == 0) {
484  yarp::os::idl::WireWriter writer(reader);
485  if (writer.isNull()) {
486  return true;
487  }
488  if (!writer.writeListHeader(1)) {
489  return false;
490  }
491  writer.writeString("send: 'help' or 'patch (param1 val1) (param2 val2)'");
492  return true;
493  }
494  std::string tag;
495  if (!reader.readString(tag)) {
496  return false;
497  }
498  if (tag == "help") {
499  yarp::os::idl::WireWriter writer(reader);
500  if (writer.isNull()) {
501  return true;
502  }
503  if (!writer.writeListHeader(2)) {
504  return false;
505  }
506  if (!writer.writeTag("many", 1, 0)) {
507  return false;
508  }
509  if (reader.getLength() > 0) {
510  std::string field;
511  if (!reader.readString(field)) {
512  return false;
513  }
514  if (field == "odom_x") {
515  if (!writer.writeListHeader(2)) {
516  return false;
517  }
518  if (!writer.writeString("double odom_x")) {
519  return false;
520  }
521  if (!writer.writeString("position of the robot [m], expressed in the world reference frame")) {
522  return false;
523  }
524  }
525  if (field == "odom_y") {
526  if (!writer.writeListHeader(2)) {
527  return false;
528  }
529  if (!writer.writeString("double odom_y")) {
530  return false;
531  }
532  if (!writer.writeString("position of the robot [m], expressed in the world reference frame")) {
533  return false;
534  }
535  }
536  if (field == "odom_theta") {
537  if (!writer.writeListHeader(2)) {
538  return false;
539  }
540  if (!writer.writeString("double odom_theta")) {
541  return false;
542  }
543  if (!writer.writeString("orientation the robot [deg], expressed in the world reference frame")) {
544  return false;
545  }
546  }
547  if (field == "base_vel_x") {
548  if (!writer.writeListHeader(2)) {
549  return false;
550  }
551  if (!writer.writeString("double base_vel_x")) {
552  return false;
553  }
554  if (!writer.writeString("velocity of the robot [m/s] expressed in the robot reference frame")) {
555  return false;
556  }
557  }
558  if (field == "base_vel_y") {
559  if (!writer.writeListHeader(2)) {
560  return false;
561  }
562  if (!writer.writeString("double base_vel_y")) {
563  return false;
564  }
565  if (!writer.writeString("velocity of the robot [m/s] expressed in the robot reference frame")) {
566  return false;
567  }
568  }
569  if (field == "base_vel_theta") {
570  if (!writer.writeListHeader(2)) {
571  return false;
572  }
573  if (!writer.writeString("double base_vel_theta")) {
574  return false;
575  }
576  if (!writer.writeString("angular velocity of the robot [deg/s] expressed in the robot reference frame")) {
577  return false;
578  }
579  }
580  if (field == "odom_vel_x") {
581  if (!writer.writeListHeader(2)) {
582  return false;
583  }
584  if (!writer.writeString("double odom_vel_x")) {
585  return false;
586  }
587  if (!writer.writeString("velocity of the robot [m/s] expressed in the world reference frame")) {
588  return false;
589  }
590  }
591  if (field == "odom_vel_y") {
592  if (!writer.writeListHeader(2)) {
593  return false;
594  }
595  if (!writer.writeString("double odom_vel_y")) {
596  return false;
597  }
598  if (!writer.writeString("velocity of the robot [m/s] expressed in the world reference frame")) {
599  return false;
600  }
601  }
602  if (field == "odom_vel_theta") {
603  if (!writer.writeListHeader(2)) {
604  return false;
605  }
606  if (!writer.writeString("double odom_vel_theta")) {
607  return false;
608  }
609  if (!writer.writeString("angular velocity of the robot [deg/s] expressed in the world reference frame")) {
610  return false;
611  }
612  }
613  }
614  if (!writer.writeListHeader(10)) {
615  return false;
616  }
617  writer.writeString("*** Available fields:");
618  writer.writeString("odom_x");
619  writer.writeString("odom_y");
620  writer.writeString("odom_theta");
621  writer.writeString("base_vel_x");
622  writer.writeString("base_vel_y");
623  writer.writeString("base_vel_theta");
624  writer.writeString("odom_vel_x");
625  writer.writeString("odom_vel_y");
626  writer.writeString("odom_vel_theta");
627  return true;
628  }
629  bool nested = true;
630  bool have_act = false;
631  if (tag != "patch") {
632  if (((len - 1) % 2) != 0) {
633  return false;
634  }
635  len = 1 + ((len - 1) / 2);
636  nested = false;
637  have_act = true;
638  }
639  for (int i = 1; i < len; ++i) {
640  if (nested && !reader.readListHeader(3)) {
641  return false;
642  }
643  std::string act;
644  std::string key;
645  if (have_act) {
646  act = tag;
647  } else if (!reader.readString(act)) {
648  return false;
649  }
650  if (!reader.readString(key)) {
651  return false;
652  }
653  if (key == "odom_x") {
654  will_set_odom_x();
655  if (!obj->nested_read_odom_x(reader)) {
656  return false;
657  }
658  did_set_odom_x();
659  } else if (key == "odom_y") {
660  will_set_odom_y();
661  if (!obj->nested_read_odom_y(reader)) {
662  return false;
663  }
664  did_set_odom_y();
665  } else if (key == "odom_theta") {
666  will_set_odom_theta();
667  if (!obj->nested_read_odom_theta(reader)) {
668  return false;
669  }
670  did_set_odom_theta();
671  } else if (key == "base_vel_x") {
672  will_set_base_vel_x();
673  if (!obj->nested_read_base_vel_x(reader)) {
674  return false;
675  }
676  did_set_base_vel_x();
677  } else if (key == "base_vel_y") {
678  will_set_base_vel_y();
679  if (!obj->nested_read_base_vel_y(reader)) {
680  return false;
681  }
682  did_set_base_vel_y();
683  } else if (key == "base_vel_theta") {
684  will_set_base_vel_theta();
685  if (!obj->nested_read_base_vel_theta(reader)) {
686  return false;
687  }
688  did_set_base_vel_theta();
689  } else if (key == "odom_vel_x") {
690  will_set_odom_vel_x();
691  if (!obj->nested_read_odom_vel_x(reader)) {
692  return false;
693  }
694  did_set_odom_vel_x();
695  } else if (key == "odom_vel_y") {
696  will_set_odom_vel_y();
697  if (!obj->nested_read_odom_vel_y(reader)) {
698  return false;
699  }
700  did_set_odom_vel_y();
701  } else if (key == "odom_vel_theta") {
702  will_set_odom_vel_theta();
703  if (!obj->nested_read_odom_vel_theta(reader)) {
704  return false;
705  }
706  did_set_odom_vel_theta();
707  } else {
708  // would be useful to have a fallback here
709  }
710  }
711  reader.accept();
712  yarp::os::idl::WireWriter writer(reader);
713  if (writer.isNull()) {
714  return true;
715  }
716  writer.writeListHeader(1);
717  writer.writeVocab32('o', 'k');
718  return true;
719 }
720 
721 // Editor: write
723 {
724  if (!isValid()) {
725  return false;
726  }
727  yarp::os::idl::WireWriter writer(connection);
728  if (!writer.writeListHeader(dirty_count + 1)) {
729  return false;
730  }
731  if (!writer.writeString("patch")) {
732  return false;
733  }
734  if (is_dirty_odom_x) {
735  if (!writer.writeListHeader(3)) {
736  return false;
737  }
738  if (!writer.writeString("set")) {
739  return false;
740  }
741  if (!writer.writeString("odom_x")) {
742  return false;
743  }
744  if (!obj->nested_write_odom_x(writer)) {
745  return false;
746  }
747  }
748  if (is_dirty_odom_y) {
749  if (!writer.writeListHeader(3)) {
750  return false;
751  }
752  if (!writer.writeString("set")) {
753  return false;
754  }
755  if (!writer.writeString("odom_y")) {
756  return false;
757  }
758  if (!obj->nested_write_odom_y(writer)) {
759  return false;
760  }
761  }
762  if (is_dirty_odom_theta) {
763  if (!writer.writeListHeader(3)) {
764  return false;
765  }
766  if (!writer.writeString("set")) {
767  return false;
768  }
769  if (!writer.writeString("odom_theta")) {
770  return false;
771  }
772  if (!obj->nested_write_odom_theta(writer)) {
773  return false;
774  }
775  }
776  if (is_dirty_base_vel_x) {
777  if (!writer.writeListHeader(3)) {
778  return false;
779  }
780  if (!writer.writeString("set")) {
781  return false;
782  }
783  if (!writer.writeString("base_vel_x")) {
784  return false;
785  }
786  if (!obj->nested_write_base_vel_x(writer)) {
787  return false;
788  }
789  }
790  if (is_dirty_base_vel_y) {
791  if (!writer.writeListHeader(3)) {
792  return false;
793  }
794  if (!writer.writeString("set")) {
795  return false;
796  }
797  if (!writer.writeString("base_vel_y")) {
798  return false;
799  }
800  if (!obj->nested_write_base_vel_y(writer)) {
801  return false;
802  }
803  }
804  if (is_dirty_base_vel_theta) {
805  if (!writer.writeListHeader(3)) {
806  return false;
807  }
808  if (!writer.writeString("set")) {
809  return false;
810  }
811  if (!writer.writeString("base_vel_theta")) {
812  return false;
813  }
814  if (!obj->nested_write_base_vel_theta(writer)) {
815  return false;
816  }
817  }
818  if (is_dirty_odom_vel_x) {
819  if (!writer.writeListHeader(3)) {
820  return false;
821  }
822  if (!writer.writeString("set")) {
823  return false;
824  }
825  if (!writer.writeString("odom_vel_x")) {
826  return false;
827  }
828  if (!obj->nested_write_odom_vel_x(writer)) {
829  return false;
830  }
831  }
832  if (is_dirty_odom_vel_y) {
833  if (!writer.writeListHeader(3)) {
834  return false;
835  }
836  if (!writer.writeString("set")) {
837  return false;
838  }
839  if (!writer.writeString("odom_vel_y")) {
840  return false;
841  }
842  if (!obj->nested_write_odom_vel_y(writer)) {
843  return false;
844  }
845  }
846  if (is_dirty_odom_vel_theta) {
847  if (!writer.writeListHeader(3)) {
848  return false;
849  }
850  if (!writer.writeString("set")) {
851  return false;
852  }
853  if (!writer.writeString("odom_vel_theta")) {
854  return false;
855  }
856  if (!obj->nested_write_odom_vel_theta(writer)) {
857  return false;
858  }
859  }
860  return !writer.isError();
861 }
862 
863 // Editor: send if possible
864 void OdometryData::Editor::communicate()
865 {
866  if (group != 0) {
867  return;
868  }
869  if (yarp().canWrite()) {
870  yarp().write(*this);
871  clean();
872  }
873 }
874 
875 // Editor: mark dirty overall
876 void OdometryData::Editor::mark_dirty()
877 {
878  is_dirty = true;
879 }
880 
881 // Editor: odom_x mark_dirty
882 void OdometryData::Editor::mark_dirty_odom_x()
883 {
884  if (is_dirty_odom_x) {
885  return;
886  }
887  dirty_count++;
888  is_dirty_odom_x = true;
889  mark_dirty();
890 }
891 
892 // Editor: odom_y mark_dirty
893 void OdometryData::Editor::mark_dirty_odom_y()
894 {
895  if (is_dirty_odom_y) {
896  return;
897  }
898  dirty_count++;
899  is_dirty_odom_y = true;
900  mark_dirty();
901 }
902 
903 // Editor: odom_theta mark_dirty
904 void OdometryData::Editor::mark_dirty_odom_theta()
905 {
906  if (is_dirty_odom_theta) {
907  return;
908  }
909  dirty_count++;
910  is_dirty_odom_theta = true;
911  mark_dirty();
912 }
913 
914 // Editor: base_vel_x mark_dirty
915 void OdometryData::Editor::mark_dirty_base_vel_x()
916 {
917  if (is_dirty_base_vel_x) {
918  return;
919  }
920  dirty_count++;
921  is_dirty_base_vel_x = true;
922  mark_dirty();
923 }
924 
925 // Editor: base_vel_y mark_dirty
926 void OdometryData::Editor::mark_dirty_base_vel_y()
927 {
928  if (is_dirty_base_vel_y) {
929  return;
930  }
931  dirty_count++;
932  is_dirty_base_vel_y = true;
933  mark_dirty();
934 }
935 
936 // Editor: base_vel_theta mark_dirty
937 void OdometryData::Editor::mark_dirty_base_vel_theta()
938 {
939  if (is_dirty_base_vel_theta) {
940  return;
941  }
942  dirty_count++;
943  is_dirty_base_vel_theta = true;
944  mark_dirty();
945 }
946 
947 // Editor: odom_vel_x mark_dirty
948 void OdometryData::Editor::mark_dirty_odom_vel_x()
949 {
950  if (is_dirty_odom_vel_x) {
951  return;
952  }
953  dirty_count++;
954  is_dirty_odom_vel_x = true;
955  mark_dirty();
956 }
957 
958 // Editor: odom_vel_y mark_dirty
959 void OdometryData::Editor::mark_dirty_odom_vel_y()
960 {
961  if (is_dirty_odom_vel_y) {
962  return;
963  }
964  dirty_count++;
965  is_dirty_odom_vel_y = true;
966  mark_dirty();
967 }
968 
969 // Editor: odom_vel_theta mark_dirty
970 void OdometryData::Editor::mark_dirty_odom_vel_theta()
971 {
972  if (is_dirty_odom_vel_theta) {
973  return;
974  }
975  dirty_count++;
976  is_dirty_odom_vel_theta = true;
977  mark_dirty();
978 }
979 
980 // Editor: dirty_flags
981 void OdometryData::Editor::dirty_flags(bool flag)
982 {
983  is_dirty = flag;
984  is_dirty_odom_x = flag;
985  is_dirty_odom_y = flag;
986  is_dirty_odom_theta = flag;
987  is_dirty_base_vel_x = flag;
988  is_dirty_base_vel_y = flag;
989  is_dirty_base_vel_theta = flag;
990  is_dirty_odom_vel_x = flag;
991  is_dirty_odom_vel_y = flag;
992  is_dirty_odom_vel_theta = flag;
993  dirty_count = flag ? 9 : 0;
994 }
995 
996 // read odom_x field
997 bool OdometryData::read_odom_x(yarp::os::idl::WireReader& reader)
998 {
999  if (!reader.readFloat64(odom_x)) {
1000  reader.fail();
1001  return false;
1002  }
1003  return true;
1004 }
1005 
1006 // write odom_x field
1007 bool OdometryData::write_odom_x(const yarp::os::idl::WireWriter& writer) const
1008 {
1009  if (!writer.writeFloat64(odom_x)) {
1010  return false;
1011  }
1012  return true;
1013 }
1014 
1015 // read (nested) odom_x field
1016 bool OdometryData::nested_read_odom_x(yarp::os::idl::WireReader& reader)
1017 {
1018  if (!reader.readFloat64(odom_x)) {
1019  reader.fail();
1020  return false;
1021  }
1022  return true;
1023 }
1024 
1025 // write (nested) odom_x field
1026 bool OdometryData::nested_write_odom_x(const yarp::os::idl::WireWriter& writer) const
1027 {
1028  if (!writer.writeFloat64(odom_x)) {
1029  return false;
1030  }
1031  return true;
1032 }
1033 
1034 // read odom_y field
1035 bool OdometryData::read_odom_y(yarp::os::idl::WireReader& reader)
1036 {
1037  if (!reader.readFloat64(odom_y)) {
1038  reader.fail();
1039  return false;
1040  }
1041  return true;
1042 }
1043 
1044 // write odom_y field
1045 bool OdometryData::write_odom_y(const yarp::os::idl::WireWriter& writer) const
1046 {
1047  if (!writer.writeFloat64(odom_y)) {
1048  return false;
1049  }
1050  return true;
1051 }
1052 
1053 // read (nested) odom_y field
1054 bool OdometryData::nested_read_odom_y(yarp::os::idl::WireReader& reader)
1055 {
1056  if (!reader.readFloat64(odom_y)) {
1057  reader.fail();
1058  return false;
1059  }
1060  return true;
1061 }
1062 
1063 // write (nested) odom_y field
1064 bool OdometryData::nested_write_odom_y(const yarp::os::idl::WireWriter& writer) const
1065 {
1066  if (!writer.writeFloat64(odom_y)) {
1067  return false;
1068  }
1069  return true;
1070 }
1071 
1072 // read odom_theta field
1073 bool OdometryData::read_odom_theta(yarp::os::idl::WireReader& reader)
1074 {
1075  if (!reader.readFloat64(odom_theta)) {
1076  reader.fail();
1077  return false;
1078  }
1079  return true;
1080 }
1081 
1082 // write odom_theta field
1083 bool OdometryData::write_odom_theta(const yarp::os::idl::WireWriter& writer) const
1084 {
1085  if (!writer.writeFloat64(odom_theta)) {
1086  return false;
1087  }
1088  return true;
1089 }
1090 
1091 // read (nested) odom_theta field
1092 bool OdometryData::nested_read_odom_theta(yarp::os::idl::WireReader& reader)
1093 {
1094  if (!reader.readFloat64(odom_theta)) {
1095  reader.fail();
1096  return false;
1097  }
1098  return true;
1099 }
1100 
1101 // write (nested) odom_theta field
1102 bool OdometryData::nested_write_odom_theta(const yarp::os::idl::WireWriter& writer) const
1103 {
1104  if (!writer.writeFloat64(odom_theta)) {
1105  return false;
1106  }
1107  return true;
1108 }
1109 
1110 // read base_vel_x field
1111 bool OdometryData::read_base_vel_x(yarp::os::idl::WireReader& reader)
1112 {
1113  if (!reader.readFloat64(base_vel_x)) {
1114  reader.fail();
1115  return false;
1116  }
1117  return true;
1118 }
1119 
1120 // write base_vel_x field
1121 bool OdometryData::write_base_vel_x(const yarp::os::idl::WireWriter& writer) const
1122 {
1123  if (!writer.writeFloat64(base_vel_x)) {
1124  return false;
1125  }
1126  return true;
1127 }
1128 
1129 // read (nested) base_vel_x field
1130 bool OdometryData::nested_read_base_vel_x(yarp::os::idl::WireReader& reader)
1131 {
1132  if (!reader.readFloat64(base_vel_x)) {
1133  reader.fail();
1134  return false;
1135  }
1136  return true;
1137 }
1138 
1139 // write (nested) base_vel_x field
1140 bool OdometryData::nested_write_base_vel_x(const yarp::os::idl::WireWriter& writer) const
1141 {
1142  if (!writer.writeFloat64(base_vel_x)) {
1143  return false;
1144  }
1145  return true;
1146 }
1147 
1148 // read base_vel_y field
1149 bool OdometryData::read_base_vel_y(yarp::os::idl::WireReader& reader)
1150 {
1151  if (!reader.readFloat64(base_vel_y)) {
1152  reader.fail();
1153  return false;
1154  }
1155  return true;
1156 }
1157 
1158 // write base_vel_y field
1159 bool OdometryData::write_base_vel_y(const yarp::os::idl::WireWriter& writer) const
1160 {
1161  if (!writer.writeFloat64(base_vel_y)) {
1162  return false;
1163  }
1164  return true;
1165 }
1166 
1167 // read (nested) base_vel_y field
1168 bool OdometryData::nested_read_base_vel_y(yarp::os::idl::WireReader& reader)
1169 {
1170  if (!reader.readFloat64(base_vel_y)) {
1171  reader.fail();
1172  return false;
1173  }
1174  return true;
1175 }
1176 
1177 // write (nested) base_vel_y field
1178 bool OdometryData::nested_write_base_vel_y(const yarp::os::idl::WireWriter& writer) const
1179 {
1180  if (!writer.writeFloat64(base_vel_y)) {
1181  return false;
1182  }
1183  return true;
1184 }
1185 
1186 // read base_vel_theta field
1187 bool OdometryData::read_base_vel_theta(yarp::os::idl::WireReader& reader)
1188 {
1189  if (!reader.readFloat64(base_vel_theta)) {
1190  reader.fail();
1191  return false;
1192  }
1193  return true;
1194 }
1195 
1196 // write base_vel_theta field
1197 bool OdometryData::write_base_vel_theta(const yarp::os::idl::WireWriter& writer) const
1198 {
1199  if (!writer.writeFloat64(base_vel_theta)) {
1200  return false;
1201  }
1202  return true;
1203 }
1204 
1205 // read (nested) base_vel_theta field
1206 bool OdometryData::nested_read_base_vel_theta(yarp::os::idl::WireReader& reader)
1207 {
1208  if (!reader.readFloat64(base_vel_theta)) {
1209  reader.fail();
1210  return false;
1211  }
1212  return true;
1213 }
1214 
1215 // write (nested) base_vel_theta field
1216 bool OdometryData::nested_write_base_vel_theta(const yarp::os::idl::WireWriter& writer) const
1217 {
1218  if (!writer.writeFloat64(base_vel_theta)) {
1219  return false;
1220  }
1221  return true;
1222 }
1223 
1224 // read odom_vel_x field
1225 bool OdometryData::read_odom_vel_x(yarp::os::idl::WireReader& reader)
1226 {
1227  if (!reader.readFloat64(odom_vel_x)) {
1228  reader.fail();
1229  return false;
1230  }
1231  return true;
1232 }
1233 
1234 // write odom_vel_x field
1235 bool OdometryData::write_odom_vel_x(const yarp::os::idl::WireWriter& writer) const
1236 {
1237  if (!writer.writeFloat64(odom_vel_x)) {
1238  return false;
1239  }
1240  return true;
1241 }
1242 
1243 // read (nested) odom_vel_x field
1244 bool OdometryData::nested_read_odom_vel_x(yarp::os::idl::WireReader& reader)
1245 {
1246  if (!reader.readFloat64(odom_vel_x)) {
1247  reader.fail();
1248  return false;
1249  }
1250  return true;
1251 }
1252 
1253 // write (nested) odom_vel_x field
1254 bool OdometryData::nested_write_odom_vel_x(const yarp::os::idl::WireWriter& writer) const
1255 {
1256  if (!writer.writeFloat64(odom_vel_x)) {
1257  return false;
1258  }
1259  return true;
1260 }
1261 
1262 // read odom_vel_y field
1263 bool OdometryData::read_odom_vel_y(yarp::os::idl::WireReader& reader)
1264 {
1265  if (!reader.readFloat64(odom_vel_y)) {
1266  reader.fail();
1267  return false;
1268  }
1269  return true;
1270 }
1271 
1272 // write odom_vel_y field
1273 bool OdometryData::write_odom_vel_y(const yarp::os::idl::WireWriter& writer) const
1274 {
1275  if (!writer.writeFloat64(odom_vel_y)) {
1276  return false;
1277  }
1278  return true;
1279 }
1280 
1281 // read (nested) odom_vel_y field
1282 bool OdometryData::nested_read_odom_vel_y(yarp::os::idl::WireReader& reader)
1283 {
1284  if (!reader.readFloat64(odom_vel_y)) {
1285  reader.fail();
1286  return false;
1287  }
1288  return true;
1289 }
1290 
1291 // write (nested) odom_vel_y field
1292 bool OdometryData::nested_write_odom_vel_y(const yarp::os::idl::WireWriter& writer) const
1293 {
1294  if (!writer.writeFloat64(odom_vel_y)) {
1295  return false;
1296  }
1297  return true;
1298 }
1299 
1300 // read odom_vel_theta field
1301 bool OdometryData::read_odom_vel_theta(yarp::os::idl::WireReader& reader)
1302 {
1303  if (!reader.readFloat64(odom_vel_theta)) {
1304  reader.fail();
1305  return false;
1306  }
1307  return true;
1308 }
1309 
1310 // write odom_vel_theta field
1311 bool OdometryData::write_odom_vel_theta(const yarp::os::idl::WireWriter& writer) const
1312 {
1313  if (!writer.writeFloat64(odom_vel_theta)) {
1314  return false;
1315  }
1316  return true;
1317 }
1318 
1319 // read (nested) odom_vel_theta field
1320 bool OdometryData::nested_read_odom_vel_theta(yarp::os::idl::WireReader& reader)
1321 {
1322  if (!reader.readFloat64(odom_vel_theta)) {
1323  reader.fail();
1324  return false;
1325  }
1326  return true;
1327 }
1328 
1329 // write (nested) odom_vel_theta field
1330 bool OdometryData::nested_write_odom_vel_theta(const yarp::os::idl::WireWriter& writer) const
1331 {
1332  if (!writer.writeFloat64(odom_vel_theta)) {
1333  return false;
1334  }
1335  return true;
1336 }
1337 
1338 } // namespace yarp
1339 } // namespace dev
void set_odom_theta(const double odom_theta)
void set_odom_vel_theta(const double odom_vel_theta)
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
void set_odom_x(const double odom_x)
void set_base_vel_theta(const double base_vel_theta)
void set_base_vel_y(const double base_vel_y)
void set_odom_vel_y(const double odom_vel_y)
void set_odom_y(const double odom_y)
void set_odom_vel_x(const double odom_vel_x)
bool edit(OdometryData &obj, bool dirty=true)
void set_base_vel_x(const double base_vel_x)
double base_vel_x
velocity of the robot [m/s] expressed in the robot reference frame
Definition: OdometryData.h:42
double odom_vel_y
velocity of the robot [m/s] expressed in the world reference frame
Definition: OdometryData.h:58
double base_vel_theta
angular velocity of the robot [deg/s] expressed in the robot reference frame
Definition: OdometryData.h:50
double odom_vel_theta
angular velocity of the robot [deg/s] expressed in the world reference frame
Definition: OdometryData.h:62
double base_vel_y
velocity of the robot [m/s] expressed in the robot reference frame
Definition: OdometryData.h:46
bool read(yarp::os::idl::WireReader &reader) override
double odom_x
position of the robot [m], expressed in the world reference frame
Definition: OdometryData.h:30
std::string toString() const
double odom_y
position of the robot [m], expressed in the world reference frame
Definition: OdometryData.h:34
double odom_theta
orientation the robot [deg], expressed in the world reference frame
Definition: OdometryData.h:38
double odom_vel_x
velocity of the robot [m/s] expressed in the world reference frame
Definition: OdometryData.h:54
bool write(const yarp::os::idl::WireWriter &writer) const override
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:74
bool read(ConnectionReader &reader) override
Set the bottle's value based on input from a network connection.
Definition: Bottle.cpp:240
std::string toString() const override
Gives a human-readable textual representation of the bottle.
Definition: Bottle.cpp:211
An interface for reading from a network connection.
An interface for writing to a network connection.
yarp::os::WireLink & yarp()
Get YARP state associated with this object.
Definition: Wire.h:29
IDL-friendly connection reader.
Definition: WireReader.h:30
bool readString(std::string &str, bool *is_vocab=nullptr)
Definition: WireReader.cpp:382
bool readFloat64(yarp::conf::float64_t &x)
Definition: WireReader.cpp:277
IDL-friendly connection writer.
Definition: WireWriter.h:30
bool writeVocab32(yarp::conf::vocab32_t x) const
Definition: WireWriter.cpp:141
bool writeListHeader(int len) const
Definition: WireWriter.cpp:206
bool writeTag(const char *tag, int split, int len) const
Definition: WireWriter.cpp:164
bool writeFloat64(yarp::conf::float64_t x) const
Definition: WireWriter.cpp:114
bool writeString(const std::string &tag) const
Definition: WireWriter.cpp:189
bool isValid()
Check if time is valid (non-zero).
Definition: Time.cpp:314
The main, catch-all namespace for YARP.
Definition: dirs.h:16