m_Networkeventmgr(eventmgr),
m_NetworkScene(NetworkScene),
m_subject(subject),
- m_frame_message_count (0),
+ m_frame_message_count (0),
m_IsUp(false),
- m_BodyList(NULL)
+ m_BodyList(NULL),
+ m_SubjectList(NULL)
{
}
bool result = false;
bool WasUp = m_IsUp;
- m_IsUp = false;
+// m_IsUp = false;
+
if (m_BodyList) {
m_BodyList->Release();
m_BodyList = NULL;
}
+ if (m_SubjectList) {
+ m_SubjectList->Release();
+ m_SubjectList = NULL;
+ }
+
STR_String toname=GetParent()->GetName();
STR_String subject = this->m_subject;
#endif
m_IsUp = true;
m_BodyList = new CListValue();
+ m_SubjectList = new CListValue();
}
vector<NG_NetworkMessage*>::iterator mesit;
{
// save the body
STR_String body = (*mesit)->GetMessageText();
+ // save the subject
+ STR_String messub = (*mesit)->GetSubject();
#ifdef NAN_NET_DEBUG
if (body) {
cout << "body [" << body << "]\n";
}
#endif
m_BodyList->Add(new CStringValue(body,"body"));
+ // Store Subject
+ m_SubjectList->Add(new CStringValue(messub,"subject"));
// free the message
(*mesit)->Release();
bool KX_NetworkMessageSensor::IsPositiveTrigger()
{
// printf("KX_NetworkMessageSensor IsPositiveTrigger\n");
- return m_IsUp;
+ //attempt to fix [ #3809 ] IPO Actuator does not work with some Sensors
+ //a better solution is to properly introduce separate Edge and Level triggering concept
+
+ return true;//m_IsUp;
}
/* --------------------------------------------------------------------- */
{"getSubject", (PyCFunction)
KX_NetworkMessageSensor::sPyGetSubject, METH_VARARGS,
GetSubject_doc},
+ {"getSubjects", (PyCFunction)
+ KX_NetworkMessageSensor::sPyGetSubjects, METH_VARARGS,
+ GetSubjects_doc},
{NULL,NULL} //Sentinel
};
-PyObject* KX_NetworkMessageSensor::_getattr(char* attr) {
+PyObject* KX_NetworkMessageSensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor); // implicit return!
}
Py_Return;
}
-// 4. Get the message subject
+// 4. Get the message subject: field of the message sensor
char KX_NetworkMessageSensor::GetSubject_doc[] =
"\tgetSubject()\n"
-"\tGet the subject of the message.\n";
+"\tGet the subject: field of the message sensor.\n";
PyObject* KX_NetworkMessageSensor::PyGetSubject(
PyObject* self,
Py_Return;
}
+// 5. Get the message subjects
+char KX_NetworkMessageSensor::GetSubjects_doc[] =
+"\tgetSubjects()\n"
+"\tGet list of message subjects.\n";
+
+PyObject* KX_NetworkMessageSensor::PyGetSubjects(
+ PyObject* self,
+ PyObject* args,
+ PyObject* kwds)
+{
+ if (m_SubjectList) {
+ return ((PyObject*) m_SubjectList->AddRef());
+ }
+
+ Py_Return;
+}