1 #include "Subscriber.h"
7 Subscriber::Subscriber( QWidget *parent, const char *name )
8 : QWidget( parent, name )
13 recvCallBack(const ORTERecvInfo *info,void *vinstance, void *recvCallBackParam) {
14 BoxType *boxType=(BoxType*)vinstance;
15 Subscriber *s=(Subscriber*)recvCallBackParam;
18 switch (info->status) {
21 boxType->rectangle.top_left_x,
22 boxType->rectangle.top_left_y,
23 boxType->rectangle.bottom_right_x,
24 boxType->rectangle.bottom_right_y);
25 pthread_mutex_lock(&s->mutex);
26 s->m_mainFrm->ShapeColorRect(boxType->color,boxType->shape,boxType->color,rect);
27 pthread_mutex_unlock(&s->mutex);
30 // printf("deadline occured\n");
35 void Subscriber::Create(QString name, char eBlue,char eGreen,
36 char eRed,char eBlack,char eYellow )
39 NtpTimeAssembFromMs(minimumSeparationBlue, 0, 0);
41 NtpTimeAssembFromMs(minimumSeparationGreen, 0, 0);
43 NtpTimeAssembFromMs(minimumSeparationRed, 0, 0);
45 NtpTimeAssembFromMs(minimumSeparationBlack, 0, 0);
47 NtpTimeAssembFromMs(minimumSeparationYellow, 0, 0);
50 m_mainFrm = new MainForm;
51 Text = new QLabel( m_mainFrm, "Text" );
52 Text->setGeometry( QRect(10 , 0, 110, 15 ) );
53 Text->setText( trUtf8( "Minimum Separation : " ) );
54 MinSep = new QSlider(m_mainFrm, "str" );
55 MinSep->setGeometry( QRect( 120, 0, 130, 15 ) );
56 MinSep->setMaxValue( 10 );
57 MinSep->setOrientation( QSlider::Horizontal );
58 MinSep->setTickmarks( QSlider::NoMarks );
59 connect( MinSep, SIGNAL( valueChanged(int) ), this, SLOT(changeMinSep() ) );
66 strTitle="Subscriber : "+name;
67 m_mainFrm->setCaption(strTitle);
69 pthread_mutex_init(&mutex,NULL);
72 domain=ORTEDomainAppCreate(ORTE_DEFAULT_DOMAIN,NULL,NULL,ORTE_FALSE);
73 ORTETypeRegisterBoxType(domain);
75 NtpTimeAssembFromMs(deadline, 1, 0);
77 subBlue=ORTESubscriptionCreate(
85 &minimumSeparationBlue,
88 m_mainFrm->SetActiveObject(0);
91 subGreen=ORTESubscriptionCreate(
99 &minimumSeparationGreen,
102 m_mainFrm->SetActiveObject(1);
105 subRed=ORTESubscriptionCreate(
113 &minimumSeparationRed,
116 m_mainFrm->SetActiveObject(2);
119 subBlack=ORTESubscriptionCreate(
127 &minimumSeparationBlack,
130 m_mainFrm->SetActiveObject(3);
133 subYellow=ORTESubscriptionCreate(
141 &minimumSeparationYellow,
144 m_mainFrm->SetActiveObject(4);
150 void Subscriber::Destroy()
152 m_mainFrm->WantClose();
154 ORTEDomainAppDestroy(domain);
155 pthread_mutex_destroy(&mutex);
160 void Subscriber::changeMinSep()
164 // ORTESubscriptionPropertiesGet(subscriber,&sp);
165 // NtpTimeAssembFromMs(sp.minimumSeparation,MinSep->value(),0);
166 // ORTESubscriptionPropertiesSet(subscriber,&sp);
167 QString name=QString::number(MinSep->value());
168 if((MinSep->value())<10) name+=" ";
169 (this->strTitle).replace((this->strTitle).length()-3,2,name);
170 (this->m_mainFrm)->setCaption(this->strTitle);