예제 #1
0
// modified by inamura on 2013-12-30
bool RequestSetAngularVelocityToPartsEvent::set(int packetNum, int seq, char *data, int n)
{
	char *p = data;

	{
		char *name = BINARY_GET_STRING_INCR(p);
		if (name != NULL) {
			m_data.agentName(name);
		}
		BINARY_FREE_STRING(name);
	}
	{
		char *name = BINARY_GET_STRING_INCR(p);
		if (name != NULL) {
			m_data.objectName(name);
		}
		BINARY_FREE_STRING(name);
	}

	double velocity = BINARY_GET_DOUBLE_INCR(p);
	m_data.angular_velocity(velocity);

	double max_ = BINARY_GET_DOUBLE_INCR(p);
	m_data.maxValue(max_);

	//double xAx = BINARY_GET_DOUBLE_INCR(p);
	//double yAx = BINARY_GET_DOUBLE_INCR(p);
	//double zAx = BINARY_GET_DOUBLE_INCR(p);

	return true;
}
예제 #2
0
bool RecvEntitiesEvent::set(int packetNum, int seq, char *data, int n)
{
	char *p = data;

	m_time = BINARY_GET_DOUBLE_INCR(p);

	for (;;) {
		int head = p - data;
		int left = n - head;
		if (left <= 0) {
			fprintf(stderr, "RecvEntitiesEvent : packet too small left = %d\n", left);
			return false;
		}
		
		if (CommData::isPacketEnd(p)) {
			break;
		}
		
		SimObj *obj = new SimObj();
		int r = obj->setBinary(p, left);
		if (r < 0) { return false; }
		push(obj);
		p += r;
	}
	return true;
}
예제 #3
0
bool ResultGetJointAngleEvent::set(int packetNum, int seq, char *data, int n)
{
	char *p = data;

	double angle = BINARY_GET_DOUBLE_INCR(p);
	m_data.angle(angle);
	return true;
}
예제 #4
0
bool RequestAddJointTorqueEvent::set(int packetNum, int seq, char *data, int n)
{
	char *p = data;

	{
		char *name = BINARY_GET_STRING_INCR(p);
		if (name != NULL) {
			m_data.agentName(name);
		}
		BINARY_FREE_STRING(name);
	}

	{
		char *name = BINARY_GET_STRING_INCR(p);
		if (name != NULL) {
			m_data.jointName(name);
		}
		BINARY_FREE_STRING(name);
	}
	double torque = BINARY_GET_DOUBLE_INCR(p);
	m_data.torque(torque);
	return true;
}