statusreq->statusStr = "connected";
g_async_queue_push(privStatusQueue,statusreq);
}
+ else
+ {
+ StatusMessage *statusreq = new StatusMessage();
+ statusreq->statusStr = "disconnected";
+ g_async_queue_push(privStatusQueue,statusreq);
+ }
}
else if (req->req == "connectifnot")
statusreq->statusStr = "connected";
g_async_queue_push(privStatusQueue,statusreq);
}
+ else
+ {
+ StatusMessage *statusreq = new StatusMessage();
+ statusreq->statusStr = "disconnected";
+ g_async_queue_push(privStatusQueue,statusreq);
+ }
}
}
else if (req->req == "setportandbaud")
if (propertyReplyMap.find(property) != propertyReplyMap.end())
{
propertyReplyMap[property]->value = value;
+ propertyReplyMap[property]->success = true;
propertyReplyMap[property]->completed(propertyReplyMap[property]);
propertyReplyMap.erase(property);
}
void OBD2Source::getPropertyAsync(AsyncPropertyReply *reply)
{
DebugOut(5) << __SMALLFILE__ <<":"<< __LINE__ << "getPropertyAsync requested for " << reply->property << endl;
- propertyReplyMap[reply->property] = reply;
+
VehicleProperty::Property property = reply->property;
return;
}
+ propertyReplyMap[reply->property] = reply;
+
ObdPid* requ = obd2AmbInstance->createPidforProperty(property);
g_async_queue_push(singleShotQueue,requ);
CommandRequest *req = new CommandRequest();
{
AsyncPropertyReply* reply = new AsyncPropertyReply (request);
+
+
if(request.property == Obd2Connected)
{
+ propertyReplyMap[reply->property] = reply;
+ reply->success = true;
+
if(request.value->value<bool>() == true)
{
CommandRequest *req = new CommandRequest();
g_async_queue_push(commandQueue,req);
}
- reply->success = true;
}
else
{
reply->success = false;
- }
+ try
+ {
+ reply->completed(reply);
+ }
+ catch (...)
+ {
- try
- {
- /// TODO: this doesn't seem right:
- reply->value = request.value;
- reply->completed(reply);
+ }
}
- catch (...)
- {
- }
+
return reply;
}