示例#1
0
void CQTSSAResultSubWidget::displayResult()
{

  assert(CCopasiRootContainer::getDatamodelList()->size() > 0);
  pTSSATask =
    dynamic_cast<CTSSATask *>((*(*CCopasiRootContainer::getDatamodelList())[0]->getTaskList())["Time Scale Separation Analysis"]);

  if (!pTSSATask) return;

  pProblem = dynamic_cast<CTSSAProblem*>(pTSSATask->getProblem());

  pModel = pProblem->getModel();

  pMethod = dynamic_cast<CTSSAMethod*>(pTSSATask->getMethod());

  QString a = FROM_UTF8(pModel->getTimeUnitName());

  mpSlider->setRange(1, pProblem->getStepNumber());

  mpSlider->setValue(mpSlider->minimum());

  mpBox1->clear();

  unsigned C_INT i;

  for (i = 0; i <  pMethod->getTableName().size(); i++)
    {
      mpBox1->insertItem(0, FROM_UTF8(pMethod->getTableName()[i]));
    }

  mpArrayWidget->switchToTable();
  mpSlider->setDisabled(false);

  changeInterval();
}
示例#2
0
setIntervalTimer changeInterval(setIntervalTimer timer, long ms, setIntervalFunction *callback, void *userData) {
	setIntervalTimer r = changeInterval(timer, ms);
	if (r != SET_INTERVAL_ERROR) {
		setIntervalTable[timer].callback = callback;
		setIntervalTable[timer].userData = userData;
	}
	return r;
}
int QTimer::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: timeout(); break;
        case 1: start((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 2: start(); break;
        case 3: stop(); break;
        case 4: changeInterval((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 5: { int _r = start((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])));
            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
        }
        _id -= 6;
    }
#ifndef QT_NO_PROPERTIES
      else if (_c == QMetaObject::ReadProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast< bool*>(_v) = isSingleShot(); break;
        case 1: *reinterpret_cast< int*>(_v) = interval(); break;
        case 2: *reinterpret_cast< bool*>(_v) = isActive(); break;
        }
        _id -= 3;
    } else if (_c == QMetaObject::WriteProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: setSingleShot(*reinterpret_cast< bool*>(_v)); break;
        case 1: setInterval(*reinterpret_cast< int*>(_v)); break;
        }
        _id -= 3;
    } else if (_c == QMetaObject::ResetProperty) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyDesignable) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyScriptable) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyStored) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyEditable) {
        _id -= 3;
    } else if (_c == QMetaObject::QueryPropertyUser) {
        _id -= 3;
    }
#endif // QT_NO_PROPERTIES
    return _id;
}
示例#4
0
int main(int argc, char **argv)
{
	printf("Dummy TM client for GRASP, version %s\n",version);
	printf("Press '?' for runtime help\n");
	fflush(stdout);

	// default to localhost
	const char *server_name= DEFAULT_SERVER;
	u16 port = DEFAULT_PORT;
	int retval;
	u32 addr;
	int socket_type = SOCK_STREAM;
	struct sockaddr_in server;
	WSADATA wsaData;
	SOCKET  conn_socket;

	if (argc >1)
	{
		for(int i=1; i<argc; i++)
		{
			if ((argv[i][0] == '-') || (argv[i][0] == '/'))
			{
				switch(tolower(argv[i][1]))
				{
				case 'n':
					server_name = argv[++i];
					break;
				case 'p':
					port = atoi(argv[++i]);
					break;
				default:
					Usage(argv[0]);
					break;
				}
			}
			else
				Usage(argv[0]);
		}
	}


	if ((retval = WSAStartup(0x202, &wsaData)) != 0)
	{
		fprintf(stderr,"Client: WSAStartup() failed with error %d\n", retval);
		fprintf(stderr, "Press <Return> to continue. " );
		_getch();
		WSACleanup();
		return -1;
	}
	else
	{
		printf("Client: WSAStartup() is OK.\n");
		fflush(stdout);
	}

	if (port == 0)
	{
		Usage(argv[0]);
	}

	{ // Convert nnn.nnn address to a usable one
		addr = inet_addr(server_name);

		if(addr==INADDR_NONE)
		{
			fprintf(stderr,"Client: problem interpreting IP address.\n");
			fprintf(stderr, "Press <Return> to continue. " );
			_getch();
			WSACleanup();
			exit(1);
		}
	}

	// Copy the resolved information into the sockaddr_in structure

	memset(&server, 0, sizeof(server));
	memcpy(&(server.sin_addr), &addr, 4);
	server.sin_family = AF_INET;
	server.sin_port = htons(port);

	conn_socket = socket(AF_INET, socket_type, 0); /* Open a socket */

	if (conn_socket <0 )
	{
		fprintf(stderr,"Client: Error Opening socket: Error %d\n", WSAGetLastError());
		fprintf(stderr, "Press <Return> to continue. " );
		_getch();
		WSACleanup();
		return -1;
	}
	else
	{
		printf("Client: socket() is OK.\n");
		fflush(stdout);
	}
	// Set TCP_NODELAY to reduce jitter
	s32 flag = 1;
	setsockopt(conn_socket,            /* socket affected */
		IPPROTO_TCP,     /* set option at TCP level */
		TCP_NODELAY,     /* name of option */
		(sz *) &flag,  /* the cast is historical
					   cruft */
					   sizeof(s32));    /* length of option value */

	printf("Client: Client connecting to: %s.\n", server_name);
	fflush(stdout);

	if (connect(conn_socket, (struct sockaddr*)&server, sizeof(server)) == SOCKET_ERROR)

	{
		fprintf(stderr,"Client: connect() failed: %d\n", WSAGetLastError());
		fprintf(stderr, "Press <Return> to continue. " );
		_getch();
		WSACleanup();
		return -1;
	}
	else
	{
		printf("Client: connect() is OK.\n");
		fflush(stdout);
	}

	// Initialize timer stuff
	QueryPerformanceFrequency(&pfreq);
	QueryPerformanceCounter(&ptime);
	hk_expiry = ptime.QuadPart;
	rt_expiry = ptime.QuadPart;
	cam_expiry = ptime.QuadPart;
	timeBeginPeriod(1); // Increase windows timer resolution

	while(!exit_req)
	{
		if( _kbhit() )
		{
			int c = _getch();
			switch(c)
			{
			case 'h':
			case 'H':
				if(manual_mode)
				{
					sendHK(conn_socket);
				}
				else
				{
					auto_hk=!auto_hk;
					printf("Housekeeping TM is %s\n",auto_hk ? "ON" : "OFF");
					fflush(stdout);
					if(auto_hk)
					{
						hk_expiry = ptime.QuadPart;
					}
				}
				break;
			case 'r':
			case 'R':
				if(manual_mode)
				{
					sendRT(conn_socket);
				}
				else
				{
					auto_rt=!auto_rt;
					printf("Real time TM is %s\n",auto_rt ? "ON" : "OFF");
					fflush(stdout);
					if(auto_rt)
					{
						rt_expiry = ptime.QuadPart;
					}
				}
				break;
			case 'c':
			case 'C':
				if(manual_mode)
				{
					sendCam(conn_socket);
				}
				else
				{
					auto_cam=!auto_cam;
					printf("CAM trigger transmission is %s\n",auto_cam ? "ON" : "OFF");
					fflush(stdout);
					if(auto_cam)
					{
						cam_expiry = ptime.QuadPart;
					}
				}
				break;
			case 's':
			case 'S':
				printStatus();
				break;
			case 'm':
			case 'M':
				manual_mode=!manual_mode;
				printf("Mode is %s\n",manual_mode ? "MANUAL" : "AUTO");
				fflush(stdout);
				hk_expiry= ptime.QuadPart;
				rt_expiry= ptime.QuadPart;
				cam_expiry= ptime.QuadPart;
				break;
			case 'i':
			case 'I':
				changeInterval();
				QueryPerformanceCounter(&ptime);
				hk_expiry= ptime.QuadPart;
				rt_expiry= ptime.QuadPart;
				cam_expiry= ptime.QuadPart;
				break;
			case 'v':
			case 'V':
				verbosity = (verbosity+1)%4;
				printf("Verbosity level is %u\n",verbosity);
				fflush(stdout);
				break;
			case 'q':
			case 'Q':
				exit_req=true;
				break;
			default:
				printHelp();
				break;
			}
		}

		// Update current time
		QueryPerformanceCounter(&ptime);

		if(!manual_mode)
		{
			// Transmit auto generated packets if their time is due

			if(auto_hk && (hk_expiry<=ptime.QuadPart))
			{
				sendHK(conn_socket);
				hk_expiry += (LONGLONG)(hk_period * pfreq.QuadPart);
			}
			if(auto_rt && (rt_expiry<=ptime.QuadPart))
			{
				sendRT(conn_socket);
				rt_expiry += (LONGLONG)(rt_period * pfreq.QuadPart);
			}
			if(auto_cam && (cam_expiry<=ptime.QuadPart))
			{
				sendCam(conn_socket);
				cam_expiry += (LONGLONG)(cam_period * pfreq.QuadPart);
			}
		}

		Sleep(1);

	}

	// Clean up
	timeEndPeriod(1U);
	closesocket(conn_socket);
	WSACleanup();



	return 0;

}
示例#5
0
void LifeTimer::setSpeed( int speed )
{
    interval = MAXSPEED - speed; 
    if ( isActive() )
	changeInterval( interval );
}