Change so getPropertyAsync is properly replied to in obd2source 25/2525/1
authorMichael Carpenter <malcom2073@gmail.com>
Tue, 27 Nov 2012 00:04:36 +0000 (19:04 -0500)
committerKevron Rees <tripzero.kev@gmail.com>
Tue, 27 Nov 2012 01:00:16 +0000 (17:00 -0800)
plugins/obd2plugin/obd2source.cpp

index 3118265..9fd7631 100644 (file)
@@ -416,8 +416,21 @@ static int updateProperties(/*gpointer retval,*/ gpointer data)
        {
                ObdPid *reply = (ObdPid*)retval;
 
-               AbstractPropertyType* value = VehicleProperty::getPropertyTypeForPropertyNameValue(reply->property, reply->value);
-               src->updateProperty(reply->property, value);
+               
+               if (src->propertyReplyMap.find(reply->property) != src->propertyReplyMap.end())
+               {
+                       AsyncPropertyReply *newreply = src->propertyReplyMap[reply->property];
+                       AbstractPropertyType* value = VehicleProperty::getPropertyTypeForPropertyNameValue(reply->property, reply->value);
+                       newreply->value = value;
+                       newreply->success = true;
+                       newreply->completed(newreply);
+                       src->propertyReplyMap.erase(src->propertyReplyMap.find(reply->property));
+               }
+               else
+               {
+                       AbstractPropertyType* value = VehicleProperty::getPropertyTypeForPropertyNameValue(reply->property, reply->value);
+                       src->updateProperty(reply->property, value);
+               }
 
 
                /*if (reply->req == "05")