ChimeraTK-DeviceAccess-TangoBackend 00.01.02
Loading...
Searching...
No Matches
TangoTestServerClass.cpp
Go to the documentation of this file.
1/*----- PROTECTED REGION ID(TangoTestServerClass.cpp) ENABLED START -----*/
2/* clang-format on */
3//=============================================================================
4//
5// file : TangoTestServerClass.cpp
6//
7// description : C++ source for the TangoTestServerClass.
8// A singleton class derived from DeviceClass.
9// It implements the command and attribute list
10// and all properties and methods required
11// by the TangoTestServer once per process.
12//
13// project : TangoTestServer
14//
15// This file is part of Tango device class.
16//
17// Tango is free software: you can redistribute it and/or modify
18// it under the terms of the GNU Lesser General Public License as published by
19// the Free Software Foundation, either version 3 of the License, or
20// (at your option) any later version.
21//
22// Tango is distributed in the hope that it will be useful,
23// but WITHOUT ANY WARRANTY; without even the implied warranty of
24// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25// GNU Lesser General Public License for more details.
26//
27// You should have received a copy of the GNU Lesser General Public License
28// along with Tango. If not, see <http://www.gnu.org/licenses/>.
29//
30//
31//
32//=============================================================================
33// This file is generated by POGO
34// (Program Obviously used to Generate tango Object)
35//=============================================================================
36
38/* clang-format off */
39/*----- PROTECTED REGION END -----*/ // TangoTestServerClass.cpp
40
41/*--------------------------------------------------------------------------------------------------------------------*/
46/*--------------------------------------------------------------------------------------------------------------------*/
47extern "C" {
48#ifdef _TG_WINDOWS_
49
50__declspec(dllexport)
51
52#endif
53
54 Tango::DeviceClass *_create_TangoTestServer_class(const char *name) {
56 }
57}
58
59namespace TangoTestServer_ns
60{
61//===================================================================
62// Initialize pointer for singleton pattern
63//===================================================================
64TangoTestServerClass *TangoTestServerClass::_instance = NULL;
65
66//===================================================================
67// Class constants
68//===================================================================
81/*--------------------------------------------------------------------------------------------------------------------*/
88/*--------------------------------------------------------------------------------------------------------------------*/
90{
91 TANGO_LOG_INFO << "Entering TangoTestServerClass constructor" << std::endl;
94
95 /*----- PROTECTED REGION ID(TangoTestServerClass::constructor) ENABLED START -----*/
96 /* clang-format on */
97 /* clang-format off */
98 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::constructor
99
100 TANGO_LOG_INFO << "Leaving TangoTestServerClass constructor" << std::endl;
101}
102
103/*--------------------------------------------------------------------------------------------------------------------*/
108/*--------------------------------------------------------------------------------------------------------------------*/
110{
111 /*----- PROTECTED REGION ID(TangoTestServerClass::destructor) ENABLED START -----*/
112 /* clang-format on */
113 /* clang-format off */
114 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::destructor
115
116 _instance = NULL;
117}
118
119
120/*--------------------------------------------------------------------------------------------------------------------*/
128/*--------------------------------------------------------------------------------------------------------------------*/
130{
131 if (_instance == NULL)
132 {
133 try
134 {
135 std::string s(name);
137 }
138 catch (std::bad_alloc &)
139 {
140 throw;
141 }
142 }
143 return _instance;
144}
145
146/*--------------------------------------------------------------------------------------------------------------------*/
152/*--------------------------------------------------------------------------------------------------------------------*/
154{
155 if (_instance == NULL)
156 {
157 std::cerr << "Class is not initialised !!" << std::endl;
158 exit(-1);
159 }
160 return _instance;
161}
162
163
164
165//===================================================================
166// Command execution method calls
167//===================================================================
168
169//===================================================================
170// Properties management
171//===================================================================
172/*--------------------------------------------------------------------------------------------------------------------*/
177/*--------------------------------------------------------------------------------------------------------------------*/
178Tango::DbDatum TangoTestServerClass::get_class_property(std::string &prop_name)
179{
180 for (unsigned int i=0 ; i<cl_prop.size() ; i++)
181 if (cl_prop[i].name == prop_name)
182 return cl_prop[i];
183 // if not found, returns an empty DbDatum
184 return Tango::DbDatum(prop_name);
185}
186
187/*--------------------------------------------------------------------------------------------------------------------*/
192/*--------------------------------------------------------------------------------------------------------------------*/
193Tango::DbDatum TangoTestServerClass::get_default_device_property(std::string &prop_name)
194{
195 for (unsigned int i=0 ; i<dev_def_prop.size() ; i++)
196 if (dev_def_prop[i].name == prop_name)
197 return dev_def_prop[i];
198 // if not found, return an empty DbDatum
199 return Tango::DbDatum(prop_name);
200}
201
202/*--------------------------------------------------------------------------------------------------------------------*/
207/*--------------------------------------------------------------------------------------------------------------------*/
208Tango::DbDatum TangoTestServerClass::get_default_class_property(std::string &prop_name)
209{
210 for (unsigned int i=0 ; i<cl_def_prop.size() ; i++)
211 if (cl_def_prop[i].name == prop_name)
212 return cl_def_prop[i];
213 // if not found, return an empty DbDatum
214 return Tango::DbDatum(prop_name);
215}
216
217
218/*--------------------------------------------------------------------------------------------------------------------*/
226/*--------------------------------------------------------------------------------------------------------------------*/
228{
229 std::string prop_name;
230 std::string prop_desc;
231 std::string prop_def;
232 std::vector<std::string> vect_data;
233
234 // Set Default Class Properties
235
236 // Set Default device Properties
237}
238
239/*--------------------------------------------------------------------------------------------------------------------*/
244/*--------------------------------------------------------------------------------------------------------------------*/
246{
247// First time, check if database used
248if (Tango::Util::_UseDb == false)
249 return;
250
251Tango::DbData data;
252std::string classname = get_name();
253std::string header;
254
255// Put title
256Tango::DbDatum title("ProjectTitle");
257std::string str_title("TangoTestServer");
258title << str_title;
259data.push_back(title);
260
261// Put Description
262Tango::DbDatum description("Description");
263std::vector<std::string> str_desc;
264str_desc.push_back("");
265description << str_desc;
266data.push_back(description);
267
268// Put inheritance
269Tango::DbDatum inher_datum("InheritedFrom");
270std::vector<std::string> inheritance;
271inheritance.push_back("TANGO_BASE_CLASS");
272inher_datum << inheritance;
273data.push_back(inher_datum);
274
275// Call database and and values
276get_db_class()->put_property(data);
277}
278
279//===================================================================
280// Factory methods
281//===================================================================
282
283/*--------------------------------------------------------------------------------------------------------------------*/
289/*--------------------------------------------------------------------------------------------------------------------*/
290void TangoTestServerClass::device_factory(const Tango::DevVarStringArray *devlist_ptr)
291{
292/*----- PROTECTED REGION ID(TangoTestServerClass::device_factory_before) ENABLED START -----*/
293 /* clang-format on */
294 // Add your own code
295 /* clang-format off */
296/*----- PROTECTED REGION END -----*/ // TangoTestServerClass::device_factory_before
297
298// Create devices and add it into the device list
299for (unsigned long i=0 ; i<devlist_ptr->length() ; i++)
300{
301 TANGO_LOG_DEBUG << "Device name : " << (*devlist_ptr)[i].in() << std::endl;
302 device_list.push_back(new TangoTestServer(this, (*devlist_ptr)[i]));
303}
304
305// Manage dynamic attributes if any
306erase_dynamic_attributes(devlist_ptr, get_class_attr()->get_attr_list());
307
308// Export devices to the outside world
309for (unsigned long i=1 ; i<=devlist_ptr->length() ; i++)
310{
311 // Add dynamic attributes if any
312 TangoTestServer *dev = static_cast<TangoTestServer *>(device_list[device_list.size()-i]);
313 dev->add_dynamic_attributes();
314
315 // Check before if database used.
316 if ((Tango::Util::_UseDb == true) && (Tango::Util::_FileDb == false))
317 export_device(dev);
318 else
319 export_device(dev, dev->get_name().c_str());
320}
321
322/*----- PROTECTED REGION ID(TangoTestServerClass::device_factory_after) ENABLED START -----*/
323 /* clang-format on */
324 // Add your own code
325 /* clang-format off */
326/*----- PROTECTED REGION END -----*/ // TangoTestServerClass::device_factory_after
327}
328/*--------------------------------------------------------------------------------------------------------------------*/
334/*--------------------------------------------------------------------------------------------------------------------*/
335void TangoTestServerClass::attribute_factory(std::vector<Tango::Attr *> &att_list)
336{
337 /*----- PROTECTED REGION ID(TangoTestServerClass::attribute_factory_before) ENABLED START -----*/
338 /* clang-format on */
339 {
340 auto* invalid = new FaultAttribute(Tango::AttrQuality::ATTR_INVALID, "InvalidValue");
341 Tango::UserDefaultAttrProp defaultProperty;
342 invalid->set_default_properties(defaultProperty);
343 invalid->set_disp_level(Tango::DispLevel::OPERATOR);
344 att_list.push_back(invalid);
345 }
346
347 {
348 auto* alarm = new FaultAttribute(Tango::AttrQuality::ATTR_ALARM, "AlarmValue");
349 Tango::UserDefaultAttrProp defaultProperty;
350 alarm->set_default_properties(defaultProperty);
351 alarm->set_disp_level(Tango::DispLevel::OPERATOR);
352 att_list.push_back(alarm);
353 }
354
355 {
356 auto* warning = new FaultAttribute(Tango::AttrQuality::ATTR_WARNING, "WarningValue");
357 Tango::UserDefaultAttrProp defaultProperty;
358 warning->set_default_properties(defaultProperty);
359 warning->set_disp_level(Tango::DispLevel::OPERATOR);
360 att_list.push_back(warning);
361 }
362
363 {
364 auto* changing = new FaultAttribute(Tango::AttrQuality::ATTR_CHANGING, "ChangingValue");
365 Tango::UserDefaultAttrProp defaultProperty;
366 changing->set_default_properties(defaultProperty);
367 changing->set_disp_level(Tango::DispLevel::OPERATOR);
368 att_list.push_back(changing);
369 }
370
371 // Add your own code
372 /* clang-format off */
373 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::attribute_factory_before
374 // Attribute : DoubleScalar
375 DoubleScalarAttrib *doublescalar = new DoubleScalarAttrib();
376 Tango::UserDefaultAttrProp doublescalar_prop;
377 // description not set for DoubleScalar
378 // label not set for DoubleScalar
379 // unit not set for DoubleScalar
380 // standard_unit not set for DoubleScalar
381 // display_unit not set for DoubleScalar
382 // format not set for DoubleScalar
383 // max_value not set for DoubleScalar
384 // min_value not set for DoubleScalar
385 // max_alarm not set for DoubleScalar
386 // min_alarm not set for DoubleScalar
387 // max_warning not set for DoubleScalar
388 // min_warning not set for DoubleScalar
389 // delta_t not set for DoubleScalar
390 // delta_val not set for DoubleScalar
391 doublescalar->set_default_properties(doublescalar_prop);
392 // Not Polled
393 doublescalar->set_disp_level(Tango::OPERATOR);
394 doublescalar->set_memorized();
395 doublescalar->set_memorized_init(true);
396 att_list.push_back(doublescalar);
397
398 // Attribute : DoubleRoScalar
399 DoubleRoScalarAttrib *doubleroscalar = new DoubleRoScalarAttrib();
400 Tango::UserDefaultAttrProp doubleroscalar_prop;
401 // description not set for DoubleRoScalar
402 // label not set for DoubleRoScalar
403 // unit not set for DoubleRoScalar
404 // standard_unit not set for DoubleRoScalar
405 // display_unit not set for DoubleRoScalar
406 // format not set for DoubleRoScalar
407 // max_value not set for DoubleRoScalar
408 // min_value not set for DoubleRoScalar
409 // max_alarm not set for DoubleRoScalar
410 // min_alarm not set for DoubleRoScalar
411 // max_warning not set for DoubleRoScalar
412 // min_warning not set for DoubleRoScalar
413 // delta_t not set for DoubleRoScalar
414 // delta_val not set for DoubleRoScalar
415 doubleroscalar->set_default_properties(doubleroscalar_prop);
416 // Not Polled
417 doubleroscalar->set_disp_level(Tango::OPERATOR);
418 // Not Memorized
419 att_list.push_back(doubleroscalar);
420
421 // Attribute : DoubleWoScalar
422 DoubleWoScalarAttrib *doublewoscalar = new DoubleWoScalarAttrib();
423 Tango::UserDefaultAttrProp doublewoscalar_prop;
424 // description not set for DoubleWoScalar
425 // label not set for DoubleWoScalar
426 // unit not set for DoubleWoScalar
427 // standard_unit not set for DoubleWoScalar
428 // display_unit not set for DoubleWoScalar
429 // format not set for DoubleWoScalar
430 // max_value not set for DoubleWoScalar
431 // min_value not set for DoubleWoScalar
432 // max_alarm not set for DoubleWoScalar
433 // min_alarm not set for DoubleWoScalar
434 // max_warning not set for DoubleWoScalar
435 // min_warning not set for DoubleWoScalar
436 // delta_t not set for DoubleWoScalar
437 // delta_val not set for DoubleWoScalar
438 doublewoscalar->set_default_properties(doublewoscalar_prop);
439 // Not Polled
440 doublewoscalar->set_disp_level(Tango::OPERATOR);
441 doublewoscalar->set_memorized();
442 doublewoscalar->set_memorized_init(true);
443 att_list.push_back(doublewoscalar);
444
445 // Attribute : FloatScalar
446 FloatScalarAttrib *floatscalar = new FloatScalarAttrib();
447 Tango::UserDefaultAttrProp floatscalar_prop;
448 // description not set for FloatScalar
449 // label not set for FloatScalar
450 // unit not set for FloatScalar
451 // standard_unit not set for FloatScalar
452 // display_unit not set for FloatScalar
453 // format not set for FloatScalar
454 // max_value not set for FloatScalar
455 // min_value not set for FloatScalar
456 // max_alarm not set for FloatScalar
457 // min_alarm not set for FloatScalar
458 // max_warning not set for FloatScalar
459 // min_warning not set for FloatScalar
460 // delta_t not set for FloatScalar
461 // delta_val not set for FloatScalar
462 floatscalar->set_default_properties(floatscalar_prop);
463 // Not Polled
464 floatscalar->set_disp_level(Tango::OPERATOR);
465 floatscalar->set_memorized();
466 floatscalar->set_memorized_init(true);
467 att_list.push_back(floatscalar);
468
469 // Attribute : FloatRoScalar
470 FloatRoScalarAttrib *floatroscalar = new FloatRoScalarAttrib();
471 Tango::UserDefaultAttrProp floatroscalar_prop;
472 // description not set for FloatRoScalar
473 // label not set for FloatRoScalar
474 // unit not set for FloatRoScalar
475 // standard_unit not set for FloatRoScalar
476 // display_unit not set for FloatRoScalar
477 // format not set for FloatRoScalar
478 // max_value not set for FloatRoScalar
479 // min_value not set for FloatRoScalar
480 // max_alarm not set for FloatRoScalar
481 // min_alarm not set for FloatRoScalar
482 // max_warning not set for FloatRoScalar
483 // min_warning not set for FloatRoScalar
484 // delta_t not set for FloatRoScalar
485 // delta_val not set for FloatRoScalar
486 floatroscalar->set_default_properties(floatroscalar_prop);
487 // Not Polled
488 floatroscalar->set_disp_level(Tango::OPERATOR);
489 // Not Memorized
490 att_list.push_back(floatroscalar);
491
492 // Attribute : FloatWoScalar
493 FloatWoScalarAttrib *floatwoscalar = new FloatWoScalarAttrib();
494 Tango::UserDefaultAttrProp floatwoscalar_prop;
495 // description not set for FloatWoScalar
496 // label not set for FloatWoScalar
497 // unit not set for FloatWoScalar
498 // standard_unit not set for FloatWoScalar
499 // display_unit not set for FloatWoScalar
500 // format not set for FloatWoScalar
501 // max_value not set for FloatWoScalar
502 // min_value not set for FloatWoScalar
503 // max_alarm not set for FloatWoScalar
504 // min_alarm not set for FloatWoScalar
505 // max_warning not set for FloatWoScalar
506 // min_warning not set for FloatWoScalar
507 // delta_t not set for FloatWoScalar
508 // delta_val not set for FloatWoScalar
509 floatwoscalar->set_default_properties(floatwoscalar_prop);
510 // Not Polled
511 floatwoscalar->set_disp_level(Tango::OPERATOR);
512 floatwoscalar->set_memorized();
513 floatwoscalar->set_memorized_init(true);
514 att_list.push_back(floatwoscalar);
515
516 // Attribute : IntScalar
517 IntScalarAttrib *intscalar = new IntScalarAttrib();
518 Tango::UserDefaultAttrProp intscalar_prop;
519 // description not set for IntScalar
520 // label not set for IntScalar
521 // unit not set for IntScalar
522 // standard_unit not set for IntScalar
523 // display_unit not set for IntScalar
524 // format not set for IntScalar
525 // max_value not set for IntScalar
526 // min_value not set for IntScalar
527 // max_alarm not set for IntScalar
528 // min_alarm not set for IntScalar
529 // max_warning not set for IntScalar
530 // min_warning not set for IntScalar
531 // delta_t not set for IntScalar
532 // delta_val not set for IntScalar
533 intscalar->set_default_properties(intscalar_prop);
534 // Not Polled
535 intscalar->set_disp_level(Tango::OPERATOR);
536 intscalar->set_memorized();
537 intscalar->set_memorized_init(true);
538 att_list.push_back(intscalar);
539
540 // Attribute : IntRoScalar
541 IntRoScalarAttrib *introscalar = new IntRoScalarAttrib();
542 Tango::UserDefaultAttrProp introscalar_prop;
543 // description not set for IntRoScalar
544 // label not set for IntRoScalar
545 // unit not set for IntRoScalar
546 // standard_unit not set for IntRoScalar
547 // display_unit not set for IntRoScalar
548 // format not set for IntRoScalar
549 // max_value not set for IntRoScalar
550 // min_value not set for IntRoScalar
551 // max_alarm not set for IntRoScalar
552 // min_alarm not set for IntRoScalar
553 // max_warning not set for IntRoScalar
554 // min_warning not set for IntRoScalar
555 // delta_t not set for IntRoScalar
556 // delta_val not set for IntRoScalar
557 introscalar->set_default_properties(introscalar_prop);
558 // Not Polled
559 introscalar->set_disp_level(Tango::OPERATOR);
560 // Not Memorized
561 att_list.push_back(introscalar);
562
563 // Attribute : IntWoScalar
564 IntWoScalarAttrib *intwoscalar = new IntWoScalarAttrib();
565 Tango::UserDefaultAttrProp intwoscalar_prop;
566 // description not set for IntWoScalar
567 // label not set for IntWoScalar
568 // unit not set for IntWoScalar
569 // standard_unit not set for IntWoScalar
570 // display_unit not set for IntWoScalar
571 // format not set for IntWoScalar
572 // max_value not set for IntWoScalar
573 // min_value not set for IntWoScalar
574 // max_alarm not set for IntWoScalar
575 // min_alarm not set for IntWoScalar
576 // max_warning not set for IntWoScalar
577 // min_warning not set for IntWoScalar
578 // delta_t not set for IntWoScalar
579 // delta_val not set for IntWoScalar
580 intwoscalar->set_default_properties(intwoscalar_prop);
581 // Not Polled
582 intwoscalar->set_disp_level(Tango::OPERATOR);
583 intwoscalar->set_memorized();
584 intwoscalar->set_memorized_init(true);
585 att_list.push_back(intwoscalar);
586
587 // Attribute : StringScalar
588 StringScalarAttrib *stringscalar = new StringScalarAttrib();
589 Tango::UserDefaultAttrProp stringscalar_prop;
590 // description not set for StringScalar
591 // label not set for StringScalar
592 // unit not set for StringScalar
593 // standard_unit not set for StringScalar
594 // display_unit not set for StringScalar
595 // format not set for StringScalar
596 // max_value not set for StringScalar
597 // min_value not set for StringScalar
598 // max_alarm not set for StringScalar
599 // min_alarm not set for StringScalar
600 // max_warning not set for StringScalar
601 // min_warning not set for StringScalar
602 // delta_t not set for StringScalar
603 // delta_val not set for StringScalar
604 stringscalar->set_default_properties(stringscalar_prop);
605 // Not Polled
606 stringscalar->set_disp_level(Tango::OPERATOR);
607 stringscalar->set_memorized();
608 stringscalar->set_memorized_init(true);
609 att_list.push_back(stringscalar);
610
611 // Attribute : StringRoScalar
612 StringRoScalarAttrib *stringroscalar = new StringRoScalarAttrib();
613 Tango::UserDefaultAttrProp stringroscalar_prop;
614 // description not set for StringRoScalar
615 // label not set for StringRoScalar
616 // unit not set for StringRoScalar
617 // standard_unit not set for StringRoScalar
618 // display_unit not set for StringRoScalar
619 // format not set for StringRoScalar
620 // max_value not set for StringRoScalar
621 // min_value not set for StringRoScalar
622 // max_alarm not set for StringRoScalar
623 // min_alarm not set for StringRoScalar
624 // max_warning not set for StringRoScalar
625 // min_warning not set for StringRoScalar
626 // delta_t not set for StringRoScalar
627 // delta_val not set for StringRoScalar
628 stringroscalar->set_default_properties(stringroscalar_prop);
629 // Not Polled
630 stringroscalar->set_disp_level(Tango::OPERATOR);
631 // Not Memorized
632 att_list.push_back(stringroscalar);
633
634 // Attribute : StringWoScalar
635 StringWoScalarAttrib *stringwoscalar = new StringWoScalarAttrib();
636 Tango::UserDefaultAttrProp stringwoscalar_prop;
637 // description not set for StringWoScalar
638 // label not set for StringWoScalar
639 // unit not set for StringWoScalar
640 // standard_unit not set for StringWoScalar
641 // display_unit not set for StringWoScalar
642 // format not set for StringWoScalar
643 // max_value not set for StringWoScalar
644 // min_value not set for StringWoScalar
645 // max_alarm not set for StringWoScalar
646 // min_alarm not set for StringWoScalar
647 // max_warning not set for StringWoScalar
648 // min_warning not set for StringWoScalar
649 // delta_t not set for StringWoScalar
650 // delta_val not set for StringWoScalar
651 stringwoscalar->set_default_properties(stringwoscalar_prop);
652 // Not Polled
653 stringwoscalar->set_disp_level(Tango::OPERATOR);
654 stringwoscalar->set_memorized();
655 stringwoscalar->set_memorized_init(true);
656 att_list.push_back(stringwoscalar);
657
658 // Attribute : BooleanScalar
659 BooleanScalarAttrib *booleanscalar = new BooleanScalarAttrib();
660 Tango::UserDefaultAttrProp booleanscalar_prop;
661 // description not set for BooleanScalar
662 // label not set for BooleanScalar
663 // unit not set for BooleanScalar
664 // standard_unit not set for BooleanScalar
665 // display_unit not set for BooleanScalar
666 // format not set for BooleanScalar
667 // max_value not set for BooleanScalar
668 // min_value not set for BooleanScalar
669 // max_alarm not set for BooleanScalar
670 // min_alarm not set for BooleanScalar
671 // max_warning not set for BooleanScalar
672 // min_warning not set for BooleanScalar
673 // delta_t not set for BooleanScalar
674 // delta_val not set for BooleanScalar
675 booleanscalar->set_default_properties(booleanscalar_prop);
676 // Not Polled
677 booleanscalar->set_disp_level(Tango::OPERATOR);
678 booleanscalar->set_memorized();
679 booleanscalar->set_memorized_init(true);
680 att_list.push_back(booleanscalar);
681
682 // Attribute : BooleanRoScalar
683 BooleanRoScalarAttrib *booleanroscalar = new BooleanRoScalarAttrib();
684 Tango::UserDefaultAttrProp booleanroscalar_prop;
685 // description not set for BooleanRoScalar
686 // label not set for BooleanRoScalar
687 // unit not set for BooleanRoScalar
688 // standard_unit not set for BooleanRoScalar
689 // display_unit not set for BooleanRoScalar
690 // format not set for BooleanRoScalar
691 // max_value not set for BooleanRoScalar
692 // min_value not set for BooleanRoScalar
693 // max_alarm not set for BooleanRoScalar
694 // min_alarm not set for BooleanRoScalar
695 // max_warning not set for BooleanRoScalar
696 // min_warning not set for BooleanRoScalar
697 // delta_t not set for BooleanRoScalar
698 // delta_val not set for BooleanRoScalar
699 booleanroscalar->set_default_properties(booleanroscalar_prop);
700 // Not Polled
701 booleanroscalar->set_disp_level(Tango::OPERATOR);
702 // Not Memorized
703 att_list.push_back(booleanroscalar);
704
705 // Attribute : BooleanWoScalar
706 BooleanWoScalarAttrib *booleanwoscalar = new BooleanWoScalarAttrib();
707 Tango::UserDefaultAttrProp booleanwoscalar_prop;
708 // description not set for BooleanWoScalar
709 // label not set for BooleanWoScalar
710 // unit not set for BooleanWoScalar
711 // standard_unit not set for BooleanWoScalar
712 // display_unit not set for BooleanWoScalar
713 // format not set for BooleanWoScalar
714 // max_value not set for BooleanWoScalar
715 // min_value not set for BooleanWoScalar
716 // max_alarm not set for BooleanWoScalar
717 // min_alarm not set for BooleanWoScalar
718 // max_warning not set for BooleanWoScalar
719 // min_warning not set for BooleanWoScalar
720 // delta_t not set for BooleanWoScalar
721 // delta_val not set for BooleanWoScalar
722 booleanwoscalar->set_default_properties(booleanwoscalar_prop);
723 // Not Polled
724 booleanwoscalar->set_disp_level(Tango::OPERATOR);
725 booleanwoscalar->set_memorized();
726 booleanwoscalar->set_memorized_init(false);
727 att_list.push_back(booleanwoscalar);
728
729 // Attribute : DoubleSpectrum
730 DoubleSpectrumAttrib *doublespectrum = new DoubleSpectrumAttrib();
731 Tango::UserDefaultAttrProp doublespectrum_prop;
732 // description not set for DoubleSpectrum
733 // label not set for DoubleSpectrum
734 // unit not set for DoubleSpectrum
735 // standard_unit not set for DoubleSpectrum
736 // display_unit not set for DoubleSpectrum
737 // format not set for DoubleSpectrum
738 // max_value not set for DoubleSpectrum
739 // min_value not set for DoubleSpectrum
740 // max_alarm not set for DoubleSpectrum
741 // min_alarm not set for DoubleSpectrum
742 // max_warning not set for DoubleSpectrum
743 // min_warning not set for DoubleSpectrum
744 // delta_t not set for DoubleSpectrum
745 // delta_val not set for DoubleSpectrum
746 doublespectrum->set_default_properties(doublespectrum_prop);
747 // Not Polled
748 doublespectrum->set_disp_level(Tango::OPERATOR);
749 // Not Memorized
750 att_list.push_back(doublespectrum);
751
752 // Attribute : DoubleRoSpectrum
753 DoubleRoSpectrumAttrib *doublerospectrum = new DoubleRoSpectrumAttrib();
754 Tango::UserDefaultAttrProp doublerospectrum_prop;
755 // description not set for DoubleRoSpectrum
756 // label not set for DoubleRoSpectrum
757 // unit not set for DoubleRoSpectrum
758 // standard_unit not set for DoubleRoSpectrum
759 // display_unit not set for DoubleRoSpectrum
760 // format not set for DoubleRoSpectrum
761 // max_value not set for DoubleRoSpectrum
762 // min_value not set for DoubleRoSpectrum
763 // max_alarm not set for DoubleRoSpectrum
764 // min_alarm not set for DoubleRoSpectrum
765 // max_warning not set for DoubleRoSpectrum
766 // min_warning not set for DoubleRoSpectrum
767 // delta_t not set for DoubleRoSpectrum
768 // delta_val not set for DoubleRoSpectrum
769 doublerospectrum->set_default_properties(doublerospectrum_prop);
770 // Not Polled
771 doublerospectrum->set_disp_level(Tango::OPERATOR);
772 // Not Memorized
773 att_list.push_back(doublerospectrum);
774
775 // Attribute : DoubleWoSpectrum
776 DoubleWoSpectrumAttrib *doublewospectrum = new DoubleWoSpectrumAttrib();
777 Tango::UserDefaultAttrProp doublewospectrum_prop;
778 // description not set for DoubleWoSpectrum
779 // label not set for DoubleWoSpectrum
780 // unit not set for DoubleWoSpectrum
781 // standard_unit not set for DoubleWoSpectrum
782 // display_unit not set for DoubleWoSpectrum
783 // format not set for DoubleWoSpectrum
784 // max_value not set for DoubleWoSpectrum
785 // min_value not set for DoubleWoSpectrum
786 // max_alarm not set for DoubleWoSpectrum
787 // min_alarm not set for DoubleWoSpectrum
788 // max_warning not set for DoubleWoSpectrum
789 // min_warning not set for DoubleWoSpectrum
790 // delta_t not set for DoubleWoSpectrum
791 // delta_val not set for DoubleWoSpectrum
792 doublewospectrum->set_default_properties(doublewospectrum_prop);
793 // Not Polled
794 doublewospectrum->set_disp_level(Tango::OPERATOR);
795 // Not Memorized
796 att_list.push_back(doublewospectrum);
797
798 // Attribute : FloatSpectrum
799 FloatSpectrumAttrib *floatspectrum = new FloatSpectrumAttrib();
800 Tango::UserDefaultAttrProp floatspectrum_prop;
801 // description not set for FloatSpectrum
802 // label not set for FloatSpectrum
803 // unit not set for FloatSpectrum
804 // standard_unit not set for FloatSpectrum
805 // display_unit not set for FloatSpectrum
806 // format not set for FloatSpectrum
807 // max_value not set for FloatSpectrum
808 // min_value not set for FloatSpectrum
809 // max_alarm not set for FloatSpectrum
810 // min_alarm not set for FloatSpectrum
811 // max_warning not set for FloatSpectrum
812 // min_warning not set for FloatSpectrum
813 // delta_t not set for FloatSpectrum
814 // delta_val not set for FloatSpectrum
815 floatspectrum->set_default_properties(floatspectrum_prop);
816 // Not Polled
817 floatspectrum->set_disp_level(Tango::OPERATOR);
818 // Not Memorized
819 att_list.push_back(floatspectrum);
820
821 // Attribute : FloatRoSpectrum
822 FloatRoSpectrumAttrib *floatrospectrum = new FloatRoSpectrumAttrib();
823 Tango::UserDefaultAttrProp floatrospectrum_prop;
824 // description not set for FloatRoSpectrum
825 // label not set for FloatRoSpectrum
826 // unit not set for FloatRoSpectrum
827 // standard_unit not set for FloatRoSpectrum
828 // display_unit not set for FloatRoSpectrum
829 // format not set for FloatRoSpectrum
830 // max_value not set for FloatRoSpectrum
831 // min_value not set for FloatRoSpectrum
832 // max_alarm not set for FloatRoSpectrum
833 // min_alarm not set for FloatRoSpectrum
834 // max_warning not set for FloatRoSpectrum
835 // min_warning not set for FloatRoSpectrum
836 // delta_t not set for FloatRoSpectrum
837 // delta_val not set for FloatRoSpectrum
838 floatrospectrum->set_default_properties(floatrospectrum_prop);
839 // Not Polled
840 floatrospectrum->set_disp_level(Tango::OPERATOR);
841 // Not Memorized
842 att_list.push_back(floatrospectrum);
843
844 // Attribute : FloatWoSpectrum
845 FloatWoSpectrumAttrib *floatwospectrum = new FloatWoSpectrumAttrib();
846 Tango::UserDefaultAttrProp floatwospectrum_prop;
847 // description not set for FloatWoSpectrum
848 // label not set for FloatWoSpectrum
849 // unit not set for FloatWoSpectrum
850 // standard_unit not set for FloatWoSpectrum
851 // display_unit not set for FloatWoSpectrum
852 // format not set for FloatWoSpectrum
853 // max_value not set for FloatWoSpectrum
854 // min_value not set for FloatWoSpectrum
855 // max_alarm not set for FloatWoSpectrum
856 // min_alarm not set for FloatWoSpectrum
857 // max_warning not set for FloatWoSpectrum
858 // min_warning not set for FloatWoSpectrum
859 // delta_t not set for FloatWoSpectrum
860 // delta_val not set for FloatWoSpectrum
861 floatwospectrum->set_default_properties(floatwospectrum_prop);
862 // Not Polled
863 floatwospectrum->set_disp_level(Tango::OPERATOR);
864 // Not Memorized
865 att_list.push_back(floatwospectrum);
866
867 // Attribute : IntSpectrum
868 IntSpectrumAttrib *intspectrum = new IntSpectrumAttrib();
869 Tango::UserDefaultAttrProp intspectrum_prop;
870 // description not set for IntSpectrum
871 // label not set for IntSpectrum
872 // unit not set for IntSpectrum
873 // standard_unit not set for IntSpectrum
874 // display_unit not set for IntSpectrum
875 // format not set for IntSpectrum
876 // max_value not set for IntSpectrum
877 // min_value not set for IntSpectrum
878 // max_alarm not set for IntSpectrum
879 // min_alarm not set for IntSpectrum
880 // max_warning not set for IntSpectrum
881 // min_warning not set for IntSpectrum
882 // delta_t not set for IntSpectrum
883 // delta_val not set for IntSpectrum
884 intspectrum->set_default_properties(intspectrum_prop);
885 // Not Polled
886 intspectrum->set_disp_level(Tango::OPERATOR);
887 // Not Memorized
888 att_list.push_back(intspectrum);
889
890 // Attribute : IntRoSpectrum
891 IntRoSpectrumAttrib *introspectrum = new IntRoSpectrumAttrib();
892 Tango::UserDefaultAttrProp introspectrum_prop;
893 // description not set for IntRoSpectrum
894 // label not set for IntRoSpectrum
895 // unit not set for IntRoSpectrum
896 // standard_unit not set for IntRoSpectrum
897 // display_unit not set for IntRoSpectrum
898 // format not set for IntRoSpectrum
899 // max_value not set for IntRoSpectrum
900 // min_value not set for IntRoSpectrum
901 // max_alarm not set for IntRoSpectrum
902 // min_alarm not set for IntRoSpectrum
903 // max_warning not set for IntRoSpectrum
904 // min_warning not set for IntRoSpectrum
905 // delta_t not set for IntRoSpectrum
906 // delta_val not set for IntRoSpectrum
907 introspectrum->set_default_properties(introspectrum_prop);
908 // Not Polled
909 introspectrum->set_disp_level(Tango::OPERATOR);
910 // Not Memorized
911 att_list.push_back(introspectrum);
912
913 // Attribute : IntWoSpectrum
914 IntWoSpectrumAttrib *intwospectrum = new IntWoSpectrumAttrib();
915 Tango::UserDefaultAttrProp intwospectrum_prop;
916 // description not set for IntWoSpectrum
917 // label not set for IntWoSpectrum
918 // unit not set for IntWoSpectrum
919 // standard_unit not set for IntWoSpectrum
920 // display_unit not set for IntWoSpectrum
921 // format not set for IntWoSpectrum
922 // max_value not set for IntWoSpectrum
923 // min_value not set for IntWoSpectrum
924 // max_alarm not set for IntWoSpectrum
925 // min_alarm not set for IntWoSpectrum
926 // max_warning not set for IntWoSpectrum
927 // min_warning not set for IntWoSpectrum
928 // delta_t not set for IntWoSpectrum
929 // delta_val not set for IntWoSpectrum
930 intwospectrum->set_default_properties(intwospectrum_prop);
931 // Not Polled
932 intwospectrum->set_disp_level(Tango::OPERATOR);
933 // Not Memorized
934 att_list.push_back(intwospectrum);
935
936 // Attribute : StringSpectrum
937 StringSpectrumAttrib *stringspectrum = new StringSpectrumAttrib();
938 Tango::UserDefaultAttrProp stringspectrum_prop;
939 // description not set for StringSpectrum
940 // label not set for StringSpectrum
941 // unit not set for StringSpectrum
942 // standard_unit not set for StringSpectrum
943 // display_unit not set for StringSpectrum
944 // format not set for StringSpectrum
945 // max_value not set for StringSpectrum
946 // min_value not set for StringSpectrum
947 // max_alarm not set for StringSpectrum
948 // min_alarm not set for StringSpectrum
949 // max_warning not set for StringSpectrum
950 // min_warning not set for StringSpectrum
951 // delta_t not set for StringSpectrum
952 // delta_val not set for StringSpectrum
953 stringspectrum->set_default_properties(stringspectrum_prop);
954 // Not Polled
955 stringspectrum->set_disp_level(Tango::OPERATOR);
956 // Not Memorized
957 att_list.push_back(stringspectrum);
958
959 // Attribute : StringRoSpectrum
960 StringRoSpectrumAttrib *stringrospectrum = new StringRoSpectrumAttrib();
961 Tango::UserDefaultAttrProp stringrospectrum_prop;
962 // description not set for StringRoSpectrum
963 // label not set for StringRoSpectrum
964 // unit not set for StringRoSpectrum
965 // standard_unit not set for StringRoSpectrum
966 // display_unit not set for StringRoSpectrum
967 // format not set for StringRoSpectrum
968 // max_value not set for StringRoSpectrum
969 // min_value not set for StringRoSpectrum
970 // max_alarm not set for StringRoSpectrum
971 // min_alarm not set for StringRoSpectrum
972 // max_warning not set for StringRoSpectrum
973 // min_warning not set for StringRoSpectrum
974 // delta_t not set for StringRoSpectrum
975 // delta_val not set for StringRoSpectrum
976 stringrospectrum->set_default_properties(stringrospectrum_prop);
977 // Not Polled
978 stringrospectrum->set_disp_level(Tango::OPERATOR);
979 // Not Memorized
980 att_list.push_back(stringrospectrum);
981
982 // Attribute : StringWoSpectrum
983 StringWoSpectrumAttrib *stringwospectrum = new StringWoSpectrumAttrib();
984 Tango::UserDefaultAttrProp stringwospectrum_prop;
985 // description not set for StringWoSpectrum
986 // label not set for StringWoSpectrum
987 // unit not set for StringWoSpectrum
988 // standard_unit not set for StringWoSpectrum
989 // display_unit not set for StringWoSpectrum
990 // format not set for StringWoSpectrum
991 // max_value not set for StringWoSpectrum
992 // min_value not set for StringWoSpectrum
993 // max_alarm not set for StringWoSpectrum
994 // min_alarm not set for StringWoSpectrum
995 // max_warning not set for StringWoSpectrum
996 // min_warning not set for StringWoSpectrum
997 // delta_t not set for StringWoSpectrum
998 // delta_val not set for StringWoSpectrum
999 stringwospectrum->set_default_properties(stringwospectrum_prop);
1000 // Not Polled
1001 stringwospectrum->set_disp_level(Tango::OPERATOR);
1002
1003
1004 att_list.push_back(stringwospectrum);
1005
1006 BooleanSpectrumAttrib *booleanspectrum = new BooleanSpectrumAttrib();
1007 Tango::UserDefaultAttrProp booleanspectrum_prop;
1008 // description not set for StringSpectrum
1009 // label not set for StringSpectrum
1010 // unit not set for StringSpectrum
1011 // standard_unit not set for StringSpectrum
1012 // display_unit not set for StringSpectrum
1013 // format not set for StringSpectrum
1014 // max_value not set for StringSpectrum
1015 // min_value not set for StringSpectrum
1016 // max_alarm not set for StringSpectrum
1017 // min_alarm not set for StringSpectrum
1018 // max_warning not set for StringSpectrum
1019 // min_warning not set for StringSpectrum
1020 // delta_t not set for StringSpectrum
1021 // delta_val not set for StringSpectrum
1022 booleanspectrum->set_default_properties(booleanspectrum_prop);
1023 // Not Polled
1024 booleanspectrum->set_disp_level(Tango::OPERATOR);
1025 // Not Memorized
1026 att_list.push_back(booleanspectrum);
1027
1028 // Create a list of static attributes
1029 create_static_attribute_list(get_class_attr()->get_attr_list());
1030 /*----- PROTECTED REGION ID(TangoTestServerClass::attribute_factory_after) ENABLED START -----*/
1031 /* clang-format on */
1032 // Add your own code
1033 /* clang-format off */
1034 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::attribute_factory_after
1035}
1036/*--------------------------------------------------------------------------------------------------------------------*/
1042/*--------------------------------------------------------------------------------------------------------------------*/
1044{
1045 /*----- PROTECTED REGION ID(TangoTestServerClass::pipe_factory_before) ENABLED START -----*/
1046 /* clang-format on */
1047 // Add your own code
1048 /* clang-format off */
1049 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::pipe_factory_before
1050 /*----- PROTECTED REGION ID(TangoTestServerClass::pipe_factory_after) ENABLED START -----*/
1051 /* clang-format on */
1052 // Add your own code
1053 /* clang-format off */
1054 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::pipe_factory_after
1055}
1056/*--------------------------------------------------------------------------------------------------------------------*/
1062/*--------------------------------------------------------------------------------------------------------------------*/
1064{
1065 /*----- PROTECTED REGION ID(TangoTestServerClass::command_factory_before) ENABLED START -----*/
1066 /* clang-format on */
1067 // Add your own code
1068 /* clang-format off */
1069 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::command_factory_before
1070
1071
1072 /*----- PROTECTED REGION ID(TangoTestServerClass::command_factory_after) ENABLED START -----*/
1073 /* clang-format on */
1074 // Add your own code
1075 /* clang-format off */
1076 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::command_factory_after
1077}
1078
1079//===================================================================
1080// Dynamic attributes related methods
1081//===================================================================
1082
1083/*--------------------------------------------------------------------------------------------------------------------*/
1090/*--------------------------------------------------------------------------------------------------------------------*/
1091void TangoTestServerClass::create_static_attribute_list(std::vector<Tango::Attr *> &att_list)
1092{
1093 for (unsigned long i=0 ; i<att_list.size() ; i++)
1094 {
1095 std::string att_name(att_list[i]->get_name());
1096 transform(att_name.begin(), att_name.end(), att_name.begin(), ::tolower);
1097 defaultAttList.push_back(att_name);
1098 }
1099
1100 TANGO_LOG_INFO << defaultAttList.size() << " attributes in default list" << std::endl;
1101
1102 /*----- PROTECTED REGION ID(TangoTestServerClass::create_static_att_list) ENABLED START -----*/
1103 /* clang-format on */
1104 /* clang-format off */
1105 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::create_static_att_list
1106}
1107
1108
1109/*--------------------------------------------------------------------------------------------------------------------*/
1117/*--------------------------------------------------------------------------------------------------------------------*/
1118void TangoTestServerClass::erase_dynamic_attributes(const Tango::DevVarStringArray *devlist_ptr, std::vector<Tango::Attr *> &att_list)
1119{
1120 Tango::Util *tg = Tango::Util::instance();
1121
1122 for (unsigned long i=0 ; i<devlist_ptr->length() ; i++)
1123 {
1124 Tango::DeviceImpl *dev_impl = tg->get_device_by_name(((std::string)(*devlist_ptr)[i]).c_str());
1125 TangoTestServer *dev = static_cast<TangoTestServer *> (dev_impl);
1126
1127 std::vector<Tango::Attribute *> &dev_att_list = dev->get_device_attr()->get_attribute_list();
1128 std::vector<Tango::Attribute *>::iterator ite_att;
1129 for (ite_att=dev_att_list.begin() ; ite_att != dev_att_list.end() ; ++ite_att)
1130 {
1131 std::string att_name((*ite_att)->get_name_lower());
1132 if ((att_name == "state") || (att_name == "status"))
1133 continue;
1134 std::vector<std::string>::iterator ite_str = find(defaultAttList.begin(), defaultAttList.end(), att_name);
1135 if (ite_str == defaultAttList.end())
1136 {
1137 TANGO_LOG_INFO << att_name << " is a UNWANTED dynamic attribute for device " << (*devlist_ptr)[i] << std::endl;
1138 Tango::Attribute &att = dev->get_device_attr()->get_attr_by_name(att_name.c_str());
1139 dev->remove_attribute(att_list[att.get_attr_idx()], true, false);
1140 --ite_att;
1141 }
1142 }
1143 }
1144 /*----- PROTECTED REGION ID(TangoTestServerClass::erase_dynamic_attributes) ENABLED START -----*/
1145 /* clang-format on */
1146 /* clang-format off */
1147 /*----- PROTECTED REGION END -----*/ // TangoTestServerClass::erase_dynamic_attributes
1148}
1149
1150/*--------------------------------------------------------------------------------------------------------------------*/
1155/*--------------------------------------------------------------------------------------------------------------------*/
1156Tango::Attr *TangoTestServerClass::get_attr_object_by_name(std::vector<Tango::Attr *> &att_list, std::string attname)
1157{
1158 std::vector<Tango::Attr *>::iterator it;
1159 for (it=att_list.begin() ; it<att_list.end() ; ++it)
1160 if ((*it)->get_name()==attname)
1161 return (*it);
1162 // Attr does not exist
1163 return NULL;
1164}
1165
1166
1167/*----- PROTECTED REGION ID(TangoTestServerClass::Additional Methods) ENABLED START -----*/
1168 /* clang-format on */
1169 /* clang-format off */
1170/*----- PROTECTED REGION END -----*/ // TangoTestServerClass::Additional Methods
1171} // namespace
#define TANGO_LOG_DEBUG
#define TANGO_LOG_INFO
Tango::DeviceClass * _create_TangoTestServer_class(const char *name)
Create TangoTestServerClass singleton and return it in a C function for Python usage.
The TangoTestServerClass singleton definition.
void attribute_factory(std::vector< Tango::Attr * > &)
static TangoTestServerClass * init(const char *)
method : TangoTestServerClass::init description : Create the object if not already done.
Tango::DbDatum get_default_class_property(std::string &)
Tango::DbDatum get_default_device_property(std::string &)
~TangoTestServerClass()
method : TangoTestServerClass::~TangoTestServerClass() description : destructor for the TangoTestServ...
TangoTestServerClass(std::string &)
method : TangoTestServerClass::TangoTestServerClass(std::string &s) description : constructor for the...
static TangoTestServerClass * instance()
method : TangoTestServerClass::instance description : Check if object already created,...
TangoTestServer class description: