YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
FrameGrabberMsgsImpl.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023-2023 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
7
9#include <yarp/os/LogStream.h>
10#include <yarp/os/Os.h>
11
12namespace {
13YARP_LOG_COMPONENT(ICHATBOTMSGSIMPL, "yarp.devices.chatBot_nws_yarp.ChatBotRPC_CallbackHelper")
14}
15
16using namespace yarp::dev;
17using namespace yarp::sig;
18
20{
21 m_irgbvp = _irgbvp;
22 m_ictrls = _ictrls;
23 m_ictrls1394 = _ictrls1394;
24 m_iframegrabimg = _iframegrabimg;
25 m_iframegrabimgraw = _iframegrabimgraw;
26}
27
29{
30 std::lock_guard <std::mutex> lg(m_mutex);
32
33 // interface check
34 if (!m_irgbvp)
35 {
36 response.ret = ReturnValue::return_code::return_value_error_not_ready;
37 return response;
38 }
39
40 int w = m_irgbvp->getRgbWidth();
41 if(w <= 0)
42 {
43 yCError(ICHATBOTMSGSIMPL) << "Could not perform getRgbWidth()";
44 response.ret = ReturnValue::return_code::return_value_error_generic;
45 return response;
46 }
47
48 response.ret = ReturnValue_ok;
49 response.width = w;
50
51 return response;
52}
53
55{
56 std::lock_guard<std::mutex> lg(m_mutex);
58
59 // interface check
60 if (!m_irgbvp) {
61 response.ret = ReturnValue::return_code::return_value_error_not_ready;
62 return response;
63 }
64
65 int h = m_irgbvp->getRgbHeight();
66 if (h <= 0) {
67 yCError(ICHATBOTMSGSIMPL) << "Could not perform getRgbHeight()";
68 response.ret = ReturnValue::return_code::return_value_error_generic;
69 return response;
70 }
71
72 response.ret = ReturnValue_ok;
73 response.height = h;
74
75 return response;
76}
77
79{
80 std::lock_guard<std::mutex> lg(m_mutex);
82
83 // interface check
84 if (!m_irgbvp) {
85 response.ret = ReturnValue::return_code::return_value_error_not_ready;
86 return response;
87 }
88
89 std::vector<CameraConfig> cfgs;
90 auto ret = m_irgbvp->getRgbSupportedConfigurations(cfgs);
91
92 if (ret)
93 {
94 response.ret = ret;
95 response.configuration = cfgs;
96 return response;
97 }
98
99 response.ret = ret;
100 return response;
101}
102
104{
105 std::lock_guard<std::mutex> lg(m_mutex);
107
108 // interface check
109 if (!m_irgbvp) {
110 response.ret = ReturnValue::return_code::return_value_error_not_ready;
111 return response;
112 }
113
114 int w = 0;
115 int h = 0;
116 auto ret = m_irgbvp->getRgbResolution(w,h);
117
118 if (ret) {
119 response.ret = ret;
120 response.width = w;
121 response.height = h;
122 return response;
123 }
124
125 response.ret = ret;
126 return response;
127}
128
129ReturnValue FrameGrabberMsgsImpl::setRgbResolutionRPC(const std::int32_t width, const std::int32_t height)
130{
131 std::lock_guard<std::mutex> lg(m_mutex);
132
133 // interface check
134 if (!m_irgbvp) {
135 return ReturnValue::return_code::return_value_error_not_ready;
136 }
137
138 auto ret = m_irgbvp->setRgbResolution(width, height);
139 if (!ret) {
140 yCError(ICHATBOTMSGSIMPL) << "Could not do setRgbResolutionRPC()";
141 return ret;
142 }
143
144 return ReturnValue_ok;
145}
146
148{
149 std::lock_guard<std::mutex> lg(m_mutex);
151
152 // interface check
153 if (!m_irgbvp) {
154 response.ret = ReturnValue::return_code::return_value_error_not_ready;
155 return response;
156 }
157
158 double hfov = 0;
159 double vfov = 0;
160 auto ret = m_irgbvp->getRgbFOV(hfov, vfov);
161
162 if (ret) {
163 response.ret = ret;
164 response.horizontalFov = hfov;
165 response.verticalFOV = vfov;
166 return response;
167 }
168
169 response.ret = ret;
170 return response;
171}
172
173yarp::dev::ReturnValue FrameGrabberMsgsImpl::setRgbFOVRPC(const double horizontalFov, const double verticalFov)
174{
175 std::lock_guard<std::mutex> lg(m_mutex);
176
177 // interface check
178 if (!m_irgbvp) {
179 return ReturnValue::return_code::return_value_error_not_ready;
180 }
181
182 auto ret = m_irgbvp->setRgbFOV(horizontalFov, verticalFov);
183 if (!ret) {
184 yCError(ICHATBOTMSGSIMPL) << "Could not do setRgbFOVRPC()";
185 return ret;
186 }
187
188 return ReturnValue_ok;
189}
190
192{
193 std::lock_guard<std::mutex> lg(m_mutex);
195
196 // interface check
197 if (!m_irgbvp) {
198 response.ret = ReturnValue::return_code::return_value_error_not_ready;
199 return response;
200 }
201
202 yarp::os::Property intrinsic;
203 auto ret = m_irgbvp->getRgbIntrinsicParam(intrinsic);
204
205 if (ret) {
206 response.ret = ret;
207 response.params = intrinsic;
208 return response;
209 }
210
211 response.ret = ret;
212 return response;
213}
214
216{
217 std::lock_guard<std::mutex> lg(m_mutex);
219
220 // interface check
221 if (!m_irgbvp) {
222 response.ret = ReturnValue::return_code::return_value_error_not_ready;
223 return response;
224 }
225
226 bool mir=false;
227 auto ret = m_irgbvp->getRgbMirroring(mir);
228
229 if (ret) {
230 response.ret = ret;
231 response.mirror = mir;
232 return response;
233 }
234
235 response.ret = ret;
236 return response;
237}
238
240{
241 std::lock_guard<std::mutex> lg(m_mutex);
242
243 // interface check
244 if (!m_irgbvp) {
245 return ReturnValue::return_code::return_value_error_not_ready;
246 }
247
248 auto ret = m_irgbvp->setRgbMirroring(mirror);
249 if (!ret) {
250 yCError(ICHATBOTMSGSIMPL) << "Could not do setRgbMirroringRPC()";
251 return ret;
252 }
253
254 return ReturnValue_ok;
255}
256
258{
259 std::lock_guard<std::mutex> lg(m_mutex);
261
262 // interface check
263 if (!m_ictrls) {
264 response.ret = ReturnValue::return_code::return_value_error_not_ready;
265 return response;
266 }
267
269 auto ret = m_ictrls->getCameraDescription(cam);
270
271 if (ret) {
272 response.ret = ret;
273 response.camera.busType = cam.busType;
275 return response;
276 }
277
278 response.ret = ret;
279 return response;
280}
281
283{
284 std::lock_guard<std::mutex> lg(m_mutex);
286
287 // interface check
288 if (!m_ictrls) {
289 response.ret = ReturnValue::return_code::return_value_error_not_ready;
290 return response;
291 }
292
293 bool hasfeat = false;
294 auto ret = m_ictrls->hasFeature((yarp::dev::cameraFeature_id_t)feature, hasfeat);
295
296 if (ret) {
297 response.ret = ret;
298 response.hasFeature = hasfeat;
299 return response;
300 }
301
302 response.ret = ret;
303 return response;
304}
305
307{
308 std::lock_guard<std::mutex> lg(m_mutex);
309
310 // interface check
311 if (!m_ictrls) {
312 return ReturnValue::return_code::return_value_error_not_ready;
313 }
314
315 auto ret = m_ictrls->setFeature((yarp::dev::cameraFeature_id_t)feature, value);
316 if (!ret) {
317 yCError(ICHATBOTMSGSIMPL) << "Could not do setFeature1RPC()";
318 return ret;
319 }
320
321 return ReturnValue_ok;
322}
323
325{
326 std::lock_guard<std::mutex> lg(m_mutex);
328
329 // interface check
330 if (!m_ictrls) {
331 response.ret = ReturnValue::return_code::return_value_error_not_ready;
332 return response;
333 }
334
335 double value = 0;
336 auto ret = m_ictrls->getFeature((yarp::dev::cameraFeature_id_t)feature, value);
337
338 if (ret) {
339 response.ret = ret;
340 response.value = value;
341 return response;
342 }
343
344 response.ret = ret;
345 return response;
346}
347
348yarp::dev::ReturnValue FrameGrabberMsgsImpl::setFeature2RPC(const std::int32_t feature, const double value1, const double value2)
349{
350 std::lock_guard<std::mutex> lg(m_mutex);
351
352 // interface check
353 if (!m_ictrls) {
354 return ReturnValue::return_code::return_value_error_not_ready;
355 }
356
357 auto ret = m_ictrls->setFeature((yarp::dev::cameraFeature_id_t)feature, value1, value2);
358 if (!ret) {
359 yCError(ICHATBOTMSGSIMPL) << "Could not do setFeature2RPC()";
360 return ret;
361 }
362
363 return ReturnValue_ok;
364}
365
367{
368 std::lock_guard<std::mutex> lg(m_mutex);
370
371 // interface check
372 if (!m_ictrls) {
373 response.ret = ReturnValue::return_code::return_value_error_not_ready;
374 return response;
375 }
376
377 double value1 = 0;
378 double value2 = 0;
379 auto ret = m_ictrls->getFeature((yarp::dev::cameraFeature_id_t)feature, value1, value2);
380
381 if (ret) {
382 response.ret = ret;
383 response.value1 = value1;
384 response.value2 = value2;
385 return response;
386 }
387
388 response.ret = ret;
389 return response;
390}
391
393{
394 std::lock_guard<std::mutex> lg(m_mutex);
396
397 //interface check
398 if (!m_ictrls) {
399 response.ret = ReturnValue::return_code::return_value_error_not_ready;
400 return response;
401 }
402
403 bool hasonoff = false;
404 auto ret = m_ictrls->hasOnOff((yarp::dev::cameraFeature_id_t)feature, hasonoff);
405
406 if (ret) {
407 response.ret = ret;
408 response.HasOnOff = hasonoff;
409 return response;
410 }
411
412 response.ret = ret;
413 return response;
414}
415
417{
418 std::lock_guard<std::mutex> lg(m_mutex);
419
420 // interface check
421 if (!m_ictrls) {
422 return ReturnValue::return_code::return_value_error_not_ready;
423 }
424
425 auto ret = m_ictrls->setActive((yarp::dev::cameraFeature_id_t)feature, onoff);
426 if (!ret) {
427 yCError(ICHATBOTMSGSIMPL) << "Could not do setActiveRPC()";
428 return ret;
429 }
430
431 return ReturnValue_ok;
432}
433
435{
436 std::lock_guard<std::mutex> lg(m_mutex);
438
439 if (!m_ictrls) {
440 response.ret = ReturnValue::return_code::return_value_error_not_ready;
441 return response;
442 }
443
444 bool isActive = false;
446
447 if (ret) {
448 response.ret = ret;
449 response.isActive = isActive;
450 return response;
451 }
452
453 response.ret = ret;
454 return response;
455}
456
458{
459 std::lock_guard<std::mutex> lg(m_mutex);
461
462 if (!m_ictrls) {
463 response.ret = ReturnValue::return_code::return_value_error_not_ready;
464 return response;
465 }
466
467 bool hasauto = false;
468 auto ret = m_ictrls->hasAuto((yarp::dev::cameraFeature_id_t)feature, hasauto);
469
470 if (ret) {
471 response.ret = ret;
472 response.hasAuto = hasauto;
473 return response;
474 }
475
476 response.ret = ret;
477 return response;
478}
479
481{
482 std::lock_guard<std::mutex> lg(m_mutex);
484
485 // interface check
486 if (!m_ictrls) {
487 response.ret = ReturnValue::return_code::return_value_error_not_ready;
488 return response;
489 }
490
491 bool hasManual = false;
493
494 if (ret) {
495 response.ret = ret;
496 response.hasManual = hasManual;
497 return response;
498 }
499
500 response.ret = ret;
501 return response;
502}
503
505{
506 std::lock_guard<std::mutex> lg(m_mutex);
508
509 // interface check
510 if (!m_ictrls) {
511 response.ret = ReturnValue::return_code::return_value_error_not_ready;
512 return response;
513 }
514
515 bool hasOnePush = false;
517
518 if (ret) {
519 response.ret = ret;
520 response.hasOnePush = hasOnePush;
521 return response;
522 }
523
524 response.ret = ret;
525 return response;
526}
527
529{
530 std::lock_guard<std::mutex> lg(m_mutex);
531
532 // interface check
533 if (!m_ictrls) {
534 return ReturnValue::return_code::return_value_error_not_ready;
535 }
536
538 if (!ret) {
539 yCError(ICHATBOTMSGSIMPL) << "Could not do setModeRPC()";
540 return ret;
541 }
542
543 return ReturnValue_ok;
544}
545
547{
548 std::lock_guard<std::mutex> lg(m_mutex);
550
551 // interface check
552 if (!m_ictrls) {
553 response.ret = ReturnValue::return_code::return_value_error_not_ready;
554 return response;
555 }
556
559
560 if (ret) {
561 response.ret = ret;
562 response.mode = mode;
563 return response;
564 }
565
566 response.ret = ret;
567 return response;
568}
569
571{
572 std::lock_guard<std::mutex> lg(m_mutex);
573
574 // interface check
575 if (!m_ictrls) {
576 return ReturnValue::return_code::return_value_error_not_ready;
577 }
578
580 if (!ret) {
581 yCError(ICHATBOTMSGSIMPL) << "Could not do setOnePushRPC()";
582 return ret;
583 }
584
585 return ReturnValue_ok;
586}
587
589{
590 std::lock_guard<std::mutex> lg(m_mutex);
592
593 // interface check
594 if (!m_ictrls1394) {
595 response.ret = ReturnValue::return_code::return_value_error_not_ready;
596 return response;
597 }
598
599 unsigned int val;
600 auto ret = m_ictrls1394->getVideoModeMaskDC1394(val);
601
602 if (ret) {
603 response.ret = ret;
604 response.val = val;
605 return response;
606 }
607
608 response.ret = ret;
609 return response;
610}
611
613{
614 std::lock_guard<std::mutex> lg(m_mutex);
616
617 // interface check
618 if (!m_ictrls1394) {
619 response.ret = ReturnValue::return_code::return_value_error_not_ready;
620 return response;
621 }
622
623 unsigned int val;
624 auto ret = m_ictrls1394->getVideoModeDC1394(val);
625
626 if (ret) {
627 response.ret = ret;
628 response.val = val;
629 return response;
630 }
631
632 response.ret = ret;
633 return response;
634}
635
637{
638 std::lock_guard<std::mutex> lg(m_mutex);
639
640 // interface check
641 if (!m_ictrls1394) {
642 return ReturnValue::return_code::return_value_error_not_ready;
643 }
644
645 auto ret = m_ictrls1394->setVideoModeDC1394(videomode);
646 if (!ret) {
647 yCError(ICHATBOTMSGSIMPL) << "Could not do setVideoModeDC1394RPC()";
648 return ret;
649 }
650
651 return ReturnValue_ok;
652}
653
655{
656 std::lock_guard<std::mutex> lg(m_mutex);
658
659 // interface check
660 if (!m_ictrls1394) {
661 response.ret = ReturnValue::return_code::return_value_error_not_ready;
662 return response;
663 }
664
665 unsigned int val;
666 auto ret = m_ictrls1394->getFPSMaskDC1394(val);
667
668 if (ret) {
669 response.ret = ret;
670 response.val = val;
671 return response;
672 }
673
674 response.ret = ret;
675 return response;
676}
677
679{
680 std::lock_guard<std::mutex> lg(m_mutex);
682
683 // interface check
684 if (!m_ictrls1394) {
685 response.ret = ReturnValue::return_code::return_value_error_not_ready;
686 return response;
687 }
688
689 unsigned int val;
690 auto ret = m_ictrls1394->getFPSDC1394(val);
691
692 if (ret) {
693 response.ret = ret;
694 response.fps = val;
695 return response;
696 }
697
698 response.ret = ret;
699 return response;
700}
701
703{
704 std::lock_guard<std::mutex> lg(m_mutex);
705
706 // interface check
707 if (!m_ictrls1394) {
708 return ReturnValue::return_code::return_value_error_not_ready;
709 }
710
711 auto ret = m_ictrls1394->setFPSDC1394(fps);
712 if (!ret) {
713 yCError(ICHATBOTMSGSIMPL) << "Could not do setFPSDC1394RPC()";
714 return ret;
715 }
716
717 return ReturnValue_ok;
718}
719
721{
722 std::lock_guard<std::mutex> lg(m_mutex);
724
725 // interface check
726 if (!m_ictrls1394) {
727 response.ret = ReturnValue::return_code::return_value_error_not_ready;
728 return response;
729 }
730
731 unsigned int val = 0;
732 auto ret = m_ictrls1394->getISOSpeedDC1394(val);
733
734 if (ret) {
735 response.ret = ret;
736 response.speed = val;
737 return response;
738 }
739
740 response.ret = ret;
741 return response;
742}
743
745{
746 std::lock_guard<std::mutex> lg(m_mutex);
747
748 // interface check
749 if (!m_ictrls1394) {
750 return ReturnValue::return_code::return_value_error_not_ready;
751 }
752
753 auto ret = m_ictrls1394->setISOSpeedDC1394(speed);
754 if (!ret) {
755 yCError(ICHATBOTMSGSIMPL) << "Could not do setISOSpeedDC1394RPC()";
756 return ret;
757 }
758
759 return ReturnValue_ok;
760}
761
763{
764 std::lock_guard<std::mutex> lg(m_mutex);
766
767 // interface check
768 if (!m_ictrls1394) {
769 response.ret = ReturnValue::return_code::return_value_error_not_ready;
770 return response;
771 }
772
773 unsigned int val = 0;
774 auto ret = m_ictrls1394->getColorCodingDC1394(val);
775
776 if (ret) {
777 response.ret = ret;
778 response.val = val;
779 return response;
780 }
781
782 response.ret = ret;
783 return response;
784}
785
787{
788 std::lock_guard<std::mutex> lg(m_mutex);
790
791 // interface check
792 if (!m_ictrls1394) {
793 response.ret = ReturnValue::return_code::return_value_error_not_ready;
794 return response;
795 }
796
797 unsigned int val = 0;
798 auto ret = m_ictrls1394->getColorCodingDC1394(val);
799
800 if (ret) {
801 response.ret = ret;
802 response.val = val;
803 return response;
804 }
805
806 response.ret = ret;
807 return response;
808}
809
811{
812 std::lock_guard<std::mutex> lg(m_mutex);
813
814 // interface check
815 if (!m_ictrls1394) {
816 return ReturnValue::return_code::return_value_error_not_ready;
817 }
818
819 auto ret = m_ictrls1394->setColorCodingDC1394(coding);
820 if (!ret) {
821 yCError(ICHATBOTMSGSIMPL) << "Could not do setColorCodingDC1394RPC()";
822 return ret;
823 }
824
825 return ReturnValue_ok;
826}
827
829{
830 std::lock_guard<std::mutex> lg(m_mutex);
832
833 // interface check
834 if (!m_ictrls1394) {
835 response.ret = ReturnValue::return_code::return_value_error_not_ready;
836 return response;
837 }
838
839 unsigned int xdim = 0;
840 unsigned int ydim = 0;
841 unsigned int xstep = 0;
842 unsigned int ystep = 0;
843 unsigned int xoffstep = 0;
844 unsigned int yoffstep = 0;
845 auto ret = m_ictrls1394->getFormat7MaxWindowDC1394(xdim, ydim, xstep, ystep, xoffstep, yoffstep);
846
847 if (ret) {
848 response.ret = ret;
849 response.xdim = xdim;
850 response.ydim = ydim;
851 response.xstep = xstep;
852 response.ystep = ystep;
853 response.xoffstep = xoffstep;
854 response.yoffstep = yoffstep;
855 return response;
856 }
857
858 response.ret = ret;
859 return response;
860}
861
863{
864 std::lock_guard<std::mutex> lg(m_mutex);
866
867 // interface check
868 if (!m_ictrls1394) {
869 response.ret = ReturnValue::return_code::return_value_error_not_ready;
870 return response;
871 }
872
873 unsigned int xdim = 0;
874 unsigned int ydim = 0;
875 int x = 0;
876 int y = 0;
877 auto ret = m_ictrls1394->getFormat7WindowDC1394(xdim,ydim, x,y);
878
879 if (ret) {
880 response.ret = ret;
881 response.x0 = x;
882 response.y0 = y;
883 response.xdim = xdim;
884 response.ydim = ydim;
885 return response;
886 }
887
888 response.ret = ret;
889 return response;
890}
891
892yarp::dev::ReturnValue FrameGrabberMsgsImpl::setFormat7WindowDC1394RPC(const std::int32_t xdim, const std::int32_t ydim, const std::int32_t x0, const std::int32_t y0)
893{
894 std::lock_guard<std::mutex> lg(m_mutex);
895
896 // interface check
897 if (!m_ictrls1394) {
898 return ReturnValue::return_code::return_value_error_not_ready;
899 }
900
901 auto ret = m_ictrls1394->setFormat7WindowDC1394(xdim,ydim,x0,y0);
902 if (!ret) {
903 yCError(ICHATBOTMSGSIMPL) << "Could not do setFormat7WindowDC1394RPC()";
904 return ret;
905 }
906
907 return ReturnValue_ok;
908}
909
911{
912 std::lock_guard<std::mutex> lg(m_mutex);
913
914 // interface check
915 if (!m_ictrls1394) {
916 return ReturnValue::return_code::return_value_error_not_ready;
917 }
918
919 auto ret = m_ictrls1394->setOperationModeDC1394(b1394b);
920 if (!ret) {
921 yCError(ICHATBOTMSGSIMPL) << "Could not do setOperationModeDC1394RPC()";
922 return ret;
923 }
924
925 return ReturnValue_ok;
926}
927
929{
930 std::lock_guard<std::mutex> lg(m_mutex);
932
933 // interface check
934 if (!m_ictrls1394) {
935 response.ret = ReturnValue::return_code::return_value_error_not_ready;
936 return response;
937 }
938
939 bool b1394 = false;
940 auto ret = m_ictrls1394->getOperationModeDC1394(b1394);
941
942 if (ret) {
943 response.ret = ret;
944 response.b1394b = b1394;
945 return response;
946 }
947
948 response.ret = ret;
949 return response;
950}
951
953{
954 std::lock_guard<std::mutex> lg(m_mutex);
955
956 // interface check
957 if (!m_ictrls1394) {
958 return ReturnValue::return_code::return_value_error_not_ready;
959 }
960
961 auto ret = m_ictrls1394->setTransmissionDC1394(bTxON);
962 if (!ret) {
963 yCError(ICHATBOTMSGSIMPL) << "Could not do setTransmissionDC1394RPC()";
964 return ret;
965 }
966
967 return ReturnValue_ok;
968}
969
971{
972 std::lock_guard<std::mutex> lg(m_mutex);
974
975 // interface check
976 if (!m_ictrls1394) {
977 response.ret = ReturnValue::return_code::return_value_error_not_ready;
978 return response;
979 }
980
981 bool txon = false;
982 auto ret = m_ictrls1394->getTransmissionDC1394(txon);
983
984 if (ret) {
985 response.ret = ret;
986 response.bTxON = txon;
987 return response;
988 }
989
990 response.ret = ret;
991 return response;
992}
993
995{
996 std::lock_guard<std::mutex> lg(m_mutex);
997
998 // interface check
999 if (!m_ictrls1394) {
1000 return ReturnValue::return_code::return_value_error_not_ready;
1001 }
1002
1003 auto ret = m_ictrls1394->setBroadcastDC1394(onoff);
1004 if (!ret) {
1005 yCError(ICHATBOTMSGSIMPL) << "Could not do setBroadcastDC1394RPC()";
1006 return ret;
1007 }
1008
1009 return ReturnValue_ok;
1010}
1011
1013{
1014 std::lock_guard<std::mutex> lg(m_mutex);
1015
1016 // interface check
1017 if (!m_ictrls1394) {
1018 return ReturnValue::return_code::return_value_error_not_ready;
1019 }
1020
1021 auto ret = m_ictrls1394->setDefaultsDC1394();
1022 if (!ret) {
1023 yCError(ICHATBOTMSGSIMPL) << "Could not do setDefaultsDC1394RPC()";
1024 return ret;
1025 }
1026
1027 return ReturnValue_ok;
1028}
1029
1031{
1032 std::lock_guard<std::mutex> lg(m_mutex);
1033
1034 // interface check
1035 if (!m_ictrls1394) {
1036 return ReturnValue::return_code::return_value_error_not_ready;
1037 }
1038
1039 auto ret = m_ictrls1394->setResetDC1394();
1040 if (!ret) {
1041 yCError(ICHATBOTMSGSIMPL) << "Could not do setResetDC1394RPC()";
1042 return ret;
1043 }
1044
1045 return ReturnValue_ok;
1046}
1047
1049{
1050 std::lock_guard<std::mutex> lg(m_mutex);
1051
1052 // interface check
1053 if (!m_ictrls1394) {
1054 return ReturnValue::return_code::return_value_error_not_ready;
1055 }
1056
1057 auto ret = m_ictrls1394->setPowerDC1394(onoff);
1058 if (!ret) {
1059 yCError(ICHATBOTMSGSIMPL) << "Could not do setPowerDC1394RPC()";
1060 return ret;
1061 }
1062
1063 return ReturnValue_ok;
1064}
1065
1067{
1068 std::lock_guard<std::mutex> lg(m_mutex);
1069
1070 // interface check
1071 if (!m_ictrls1394) {
1072 return ReturnValue::return_code::return_value_error_not_ready;
1073 }
1074
1075 auto ret = m_ictrls1394->setCaptureDC1394(bON);
1076 if (!ret) {
1077 yCError(ICHATBOTMSGSIMPL) << "Could not do setCaptureDC1394RPC()";
1078 return ret;
1079 }
1080
1081 return ReturnValue_ok;
1082}
1083
1085{
1086 std::lock_guard<std::mutex> lg(m_mutex);
1088
1089 // interface check
1090 if (!m_ictrls1394) {
1091 response.ret = ReturnValue::return_code::return_value_error_not_ready;
1092 return response;
1093 }
1094
1095 unsigned int bpp=0;
1096 auto ret = m_ictrls1394->getBytesPerPacketDC1394(bpp);
1097
1098 if (ret) {
1099 response.ret = ret;
1100 response.bpp = bpp;
1101 return response;
1102 }
1103
1104 response.ret = ret;
1105 return response;
1106}
1107
1109{
1110 std::lock_guard<std::mutex> lg(m_mutex);
1111
1112 // interface check
1113 if (!m_ictrls1394) {
1114 return ReturnValue::return_code::return_value_error_not_ready;
1115 }
1116
1117 auto ret = m_ictrls1394->setBytesPerPacketDC1394(bpp);
1118 if (!ret) {
1119 yCError(ICHATBOTMSGSIMPL) << "Could not do setBytesPerPacketDC1394RPC()";
1120 return ret;
1121 }
1122
1123 return ReturnValue_ok;
1124}
1125
1126//----------------
1127
1129{
1130 std::lock_guard<std::mutex> lg(m_mutex);
1132
1133 if (m_iframegrabimg)
1134 {
1135 int height = m_iframegrabimg->height();
1136 response.ret = ReturnValue_ok;
1137 response.val = height;
1138 return response;
1139 }
1140
1141 if (m_iframegrabimgraw)
1142 {
1143 int height = m_iframegrabimgraw->height();
1144 response.ret = ReturnValue_ok;
1145 response.val = height;
1146 return response;
1147 }
1148
1149 //no available interfaces
1150 response.val = 0;
1151 response.ret = ReturnValue::return_code::return_value_error_not_ready;
1152 return response;
1153}
1154
1156{
1157 std::lock_guard<std::mutex> lg(m_mutex);
1159
1160 if (m_iframegrabimg) {
1161 int width = m_iframegrabimg->width();
1162 response.ret = ReturnValue_ok;
1163 response.val = width;
1164 return response;
1165 }
1166
1167 if (m_iframegrabimgraw) {
1168 int width = m_iframegrabimgraw->width();
1169 response.ret = ReturnValue_ok;
1170 response.val = width;
1171 return response;
1172 }
1173
1174 // no available interfaces
1175 response.val = 0;
1176 response.ret = ReturnValue::return_code::return_value_error_not_ready;
1177 return response;
1178}
1179
1181{
1182 std::lock_guard<std::mutex> lg(m_mutex);
1184
1185 if (m_iframegrabimg) {
1186 FlexImage fimage;
1188 auto ret = m_iframegrabimg->getImage(image);
1189 response.ret = ret;
1190 if (ret) {response.fImage.swap(image);}
1191 return response;
1192 }
1193
1194 if (m_iframegrabimgraw) {
1195 FlexImage fimage;
1197 auto ret = m_iframegrabimgraw->getImage(image);
1198 response.ret = ret;
1199 if (ret) {response.fImage.swap(image);}
1200 return response;
1201 }
1202
1203 // no available interfaces
1204 response.fImage.zero();
1205 response.ret = ReturnValue::return_code::return_value_error_not_ready;
1206 return response;
1207}
1208
1210{
1211 std::lock_guard<std::mutex> lg(m_mutex);
1213
1214 std::vector<yarp::dev::vertex_t> vv;
1215 vv.resize(vs.size());
1216 for (size_t i = 0; i < vs.size(); i++) {
1217 vv[i] = vs[i];
1218 }
1219
1220 if (m_iframegrabimg) {
1221 FlexImage fimage;
1223 vv.resize(vs.size());
1224 auto ret = m_iframegrabimg->getImageCrop(type, vv, image);
1225 response.ret = ret;
1226 if (ret) {response.fImage.swap(image);}
1227 return response;
1228 }
1229
1230 if (m_iframegrabimgraw) {
1231 FlexImage fimage;
1233 auto ret = m_iframegrabimgraw->getImageCrop(type, vv, image);
1234 response.ret = ret;
1235 if (ret) {response.fImage.swap(image);}
1236 return response;
1237 }
1238
1239 // no available interfaces
1240 response.fImage.zero();
1241 response.ret = ReturnValue::return_code::return_value_error_not_ready;
1242 return response;
1243}
FeatureMode mode
bool ret
#define ReturnValue_ok
Definition ReturnValue.h:80
virtual IFrameGrabberControlMsgs_return_getMode getModeRPC(const std::int32_t feature) override
virtual IFrameGrabberControlDC1394Msgs_return_getTransmissionDC1394 getTransmissionDC1394RPC() override
virtual IFrameGrabberImageOf_return_getWidth getWidthRPC() override
virtual IRGBVisualParamsMsgs_return_getRgbHeight getRgbHeightRPC() override
virtual yarp::dev::ReturnValue setISOSpeedDC1394RPC(const std::int32_t speed) override
virtual IFrameGrabberControlDC1394Msgs_return_getISOSpeedDC1394 getISOSpeedDC1394RPC() override
virtual IRGBVisualParamsMsgs_return_getRgbWidth getRgbWidthRPC() override
virtual yarp::dev::ReturnValue setModeRPC(const std::int32_t feature, const yarp::dev::FeatureMode mode) override
virtual IFrameGrabberControlDC1394Msgs_return_getFPSDC1394 getFPSDC1394RPC() override
virtual yarp::dev::ReturnValue setVideoModeDC1394RPC(const std::int32_t videomode) override
virtual IFrameGrabberControlMsgs_return_hasFeature hasFeatureRPC(const std::int32_t feature) override
virtual IFrameGrabberImageOf_return_getImage getImageRPC() override
virtual yarp::dev::ReturnValue setRgbMirroringRPC(const bool mirror) override
virtual yarp::dev::ReturnValue setBroadcastDC1394RPC(const bool onoff) override
virtual IFrameGrabberControlDC1394Msgs_return_getVideoModeDC1394 getVideoModeDC1394RPC() override
virtual yarp::dev::ReturnValue setPowerDC1394RPC(const bool onoff) override
virtual IRGBVisualParamsMsgs_return_getRgbMirroring getRgbMirroringRPC() override
virtual IFrameGrabberControlMsgs_return_hasOnOff hasOnOffRPC(const std::int32_t feature) override
virtual IFrameGrabberControlMsgs_return_hasAuto hasAutoRPC(const std::int32_t feature) override
virtual yarp::dev::ReturnValue setBytesPerPacketDC1394RPC(const std::int32_t bpp) override
virtual yarp::dev::ReturnValue setColorCodingDC1394RPC(const std::int32_t coding) override
virtual IFrameGrabberControlDC1394Msgs_return_getBytesPerPacketDC1394 getBytesPerPacketDC1394RPC() override
virtual IFrameGrabberControlMsgs_return_getActive getActiveRPC(const std::int32_t feature) override
virtual yarp::dev::ReturnValue setResetDC1394RPC() override
virtual IFrameGrabberControlDC1394Msgs_return_getVideoModeMaskDC1394 getVideoModeMaskDC1394RPC() override
virtual IFrameGrabberControlDC1394Msgs_return_getFormat7WindowDC1394 getFormat7WindowDC1394RPC() override
virtual yarp::dev::ReturnValue setDefaultsDC1394RPC() override
virtual IFrameGrabberControlDC1394Msgs_return_getFormat7MaxWindowDC1394 getFormat7MaxWindowDC1394RPC() override
virtual yarp::dev::ReturnValue setCaptureDC1394RPC(const bool bON) override
virtual IRGBVisualParamsMsgs_return_getRgbSupportedCfg getRgbSupportedConfigurationsRPC() override
virtual IFrameGrabberControlMsgs_return_getCameraDescription getCameraDescriptionRPC() override
virtual yarp::dev::ReturnValue setFormat7WindowDC1394RPC(const std::int32_t xdim, const std::int32_t ydim, const std::int32_t x0, const std::int32_t y0) override
virtual IRGBVisualParamsMsgs_return_getRgbFOV getRgbFOVRPC() override
virtual IFrameGrabberControlMsgs_return_hasManual hasManualRPC(const std::int32_t feature) override
virtual yarp::dev::ReturnValue setActiveRPC(const std::int32_t feature, const bool onoff) override
virtual IFrameGrabberControlDC1394Msgs_return_getColorCodingMaskDC1394 getColorCodingMaskDC1394RPC(const std::int32_t videomode) override
virtual IFrameGrabberControlDC1394Msgs_return_getColorCodingDC1394 getColorCodingDC1394RPC() override
virtual yarp::dev::ReturnValue setFPSDC1394RPC(const std::int32_t fps) override
virtual IFrameGrabberControlMsgs_return_getFeature2 getFeature2RPC(const std::int32_t feature) override
virtual IFrameGrabberControlMsgs_return_hasOnePush hasOnePushRPC(const std::int32_t feature) override
virtual IRGBVisualParamsMsgs_return_getRgbIntrinsicParam getRgbIntrinsicParamRPC() override
virtual yarp::dev::ReturnValue setOperationModeDC1394RPC(const bool b1394b) override
virtual IFrameGrabberImageOf_return_getImageCrop getImageCropRPC(const yarp::dev::cropType_id_t type, const std::vector< yarp::dev::vertex_t > &vertices) override
virtual IFrameGrabberImageOf_return_getHeight getHeightRPC() override
virtual yarp::dev::ReturnValue setFeature2RPC(const std::int32_t feature, const double value1, const double value2) override
virtual IFrameGrabberControlMsgs_return_getFeature1 getFeature1RPC(const std::int32_t feature) override
virtual IFrameGrabberControlDC1394Msgs_return_getFPSMaskDC1394 getFPSMaskDC1394RPC() override
virtual yarp::dev::ReturnValue setFeature1RPC(const std::int32_t feature, const double value) override
virtual yarp::dev::ReturnValue setRgbFOVRPC(const double horizontalFov, const double verticalFov) override
virtual IFrameGrabberControlDC1394Msgs_return_getOperationModeDC1394 getOperationModeDC1394RPC() override
virtual yarp::dev::ReturnValue setTransmissionDC1394RPC(const bool bTxON) override
virtual yarp::dev::ReturnValue setOnePushRPC(const std::int32_t feature) override
FrameGrabberMsgsImpl(yarp::dev::IRgbVisualParams *_irgbvp, yarp::dev::IFrameGrabberControls *_ictrls, yarp::dev::IFrameGrabberControlsDC1394 *_ictrls1394, yarp::dev::IFrameGrabberImage *_iframegrabimg, yarp::dev::IFrameGrabberImageRaw *_iframegrabimgraw)
virtual yarp::dev::ReturnValue setRgbResolutionRPC(const std::int32_t width, const std::int32_t height) override
virtual IRGBVisualParamsMsgs_return_getRgbResolution getRgbResolutionRPC() override
yarp::dev::BusType busType
std::string deviceDescription
Control interface for frame grabber devices that conform to the 1394-based Digital Camera Specificati...
virtual yarp::dev::ReturnValue getFPSMaskDC1394(unsigned int &val)=0
virtual yarp::dev::ReturnValue setBytesPerPacketDC1394(unsigned int bpp)=0
virtual yarp::dev::ReturnValue setColorCodingDC1394(int coding)=0
virtual yarp::dev::ReturnValue getBytesPerPacketDC1394(unsigned int &bpp)=0
virtual yarp::dev::ReturnValue setOperationModeDC1394(bool b1394b)=0
virtual yarp::dev::ReturnValue getFPSDC1394(unsigned int &val)=0
virtual yarp::dev::ReturnValue getVideoModeDC1394(unsigned int &val)=0
virtual yarp::dev::ReturnValue setTransmissionDC1394(bool bTxON)=0
virtual yarp::dev::ReturnValue setBroadcastDC1394(bool onoff)=0
virtual yarp::dev::ReturnValue getColorCodingDC1394(unsigned int &val)=0
virtual yarp::dev::ReturnValue setISOSpeedDC1394(int speed)=0
virtual yarp::dev::ReturnValue getFormat7MaxWindowDC1394(unsigned int &xdim, unsigned int &ydim, unsigned int &xstep, unsigned int &ystep, unsigned int &xoffstep, unsigned int &yoffstep)=0
virtual yarp::dev::ReturnValue getOperationModeDC1394(bool &b1394)=0
virtual yarp::dev::ReturnValue getISOSpeedDC1394(unsigned int &val)=0
virtual yarp::dev::ReturnValue setFPSDC1394(int fps)=0
virtual yarp::dev::ReturnValue setResetDC1394()=0
virtual yarp::dev::ReturnValue getFormat7WindowDC1394(unsigned int &xdim, unsigned int &ydim, int &x0, int &y0)=0
virtual yarp::dev::ReturnValue setVideoModeDC1394(int video_mode)=0
virtual yarp::dev::ReturnValue setFormat7WindowDC1394(unsigned int xdim, unsigned int ydim, int x0, int y0)=0
virtual yarp::dev::ReturnValue setCaptureDC1394(bool bON)=0
virtual yarp::dev::ReturnValue setPowerDC1394(bool onoff)=0
virtual yarp::dev::ReturnValue getTransmissionDC1394(bool &bTxON)=0
virtual yarp::dev::ReturnValue getVideoModeMaskDC1394(unsigned int &val)=0
virtual yarp::dev::ReturnValue setDefaultsDC1394()=0
Control interface for frame grabber devices.
virtual yarp::dev::ReturnValue setFeature(cameraFeature_id_t feature, double value)=0
Set the requested feature to a value (saturation, brightness ... )
virtual yarp::dev::ReturnValue hasOnOff(cameraFeature_id_t feature, bool &HasOnOff)=0
Check if the camera has the ability to turn on/off the requested feature.
virtual yarp::dev::ReturnValue getMode(cameraFeature_id_t feature, FeatureMode &mode)=0
Get the current mode for the feature.
virtual yarp::dev::ReturnValue hasManual(cameraFeature_id_t feature, bool &hasManual)=0
Check if the requested feature has the 'manual' mode.
virtual yarp::dev::ReturnValue setOnePush(cameraFeature_id_t feature)=0
Set the requested feature to a value (saturation, brightness ... )
virtual yarp::dev::ReturnValue getCameraDescription(CameraDescriptor &camera)=0
Get a basic description of the camera hw.
virtual yarp::dev::ReturnValue hasOnePush(cameraFeature_id_t feature, bool &hasOnePush)=0
Check if the requested feature has the 'onePush' mode.
virtual yarp::dev::ReturnValue getActive(cameraFeature_id_t feature, bool &isActive)=0
Get the current status of the feature, on or off.
virtual yarp::dev::ReturnValue hasAuto(cameraFeature_id_t feature, bool &hasAuto)=0
Check if the requested feature has the 'auto' mode.
virtual yarp::dev::ReturnValue setActive(cameraFeature_id_t feature, bool onoff)=0
Set the requested feature on or off.
virtual yarp::dev::ReturnValue setMode(cameraFeature_id_t feature, FeatureMode mode)=0
Set the requested mode for the feature.
virtual yarp::dev::ReturnValue hasFeature(cameraFeature_id_t, bool &hasFeature)=0
Check if camera has the requested feature (saturation, brightness ... )
virtual yarp::dev::ReturnValue getFeature(cameraFeature_id_t feature, double &value)=0
Get the current value for the requested feature.
virtual int width() const =0
Return the width of each frame.
virtual int height() const =0
Return the height of each frame.
virtual yarp::dev::ReturnValue getImageCrop(yarp::dev::cropType_id_t cropType, std::vector< vertex_t > vertices, ImageType &image)
Get a crop of the image from the frame grabber.
virtual yarp::dev::ReturnValue getImage(ImageType &image)=0
Get an image from the frame grabber.
An interface for retrieving intrinsic parameter from a rgb camera.
virtual yarp::dev::ReturnValue setRgbFOV(double horizontalFov, double verticalFov)=0
Set the field of view (FOV) of the rgb camera.
virtual yarp::dev::ReturnValue setRgbMirroring(bool mirror)=0
Set the mirroring setting of the sensor.
virtual yarp::dev::ReturnValue getRgbIntrinsicParam(yarp::os::Property &intrinsic)=0
Get the intrinsic parameters of the rgb camera.
virtual yarp::dev::ReturnValue getRgbFOV(double &horizontalFov, double &verticalFov)=0
Get the field of view (FOV) of the rgb camera.
virtual yarp::dev::ReturnValue getRgbSupportedConfigurations(std::vector< yarp::dev::CameraConfig > &configurations)=0
Get the possible configurations of the camera.
virtual int getRgbHeight()=0
Return the height of each frame.
virtual yarp::dev::ReturnValue getRgbMirroring(bool &mirror)=0
Get the mirroring setting of the sensor.
virtual yarp::dev::ReturnValue setRgbResolution(int width, int height)=0
Set the resolution of the rgb image from the camera.
virtual yarp::dev::ReturnValue getRgbResolution(int &width, int &height)=0
Get the resolution of the rgb image from the camera.
virtual int getRgbWidth()=0
Return the width of each frame.
A class for storing options and configuration information.
Definition Property.h:33
Image class with user control of representation details.
Definition Image.h:361
Typed image class.
Definition Image.h:603
bool swap(Image &alt)
swap operator.
Definition Image.cpp:659
void resize(size_t imgWidth, size_t imgHeight)
Reallocate an image to be of a desired size, throwing away its current contents.
Definition Image.cpp:387
void zero()
Set all pixels to 0.
Definition Image.cpp:380
#define yCError(component,...)
#define YARP_LOG_COMPONENT(name,...)
For streams capable of holding different kinds of content, check what they actually have.