[Ovmsdev] Reading config in OvmsVehicleXXXInit
ovms at soko.cc
Sun Jul 26 15:15:37 HKT 2020
OK, understood. So the "My" in "MyConfig" is not for the vehicle, its a
global thing, correct?
I wasn't sure as no other vehicle has multiple vehicle types. But as it
is OK i will implement two VWeUP.
On 25.07.2020 20:31, Michael Balzer wrote:
> the config store isn't available in the early boot stage when the system
> classes get initialized. It's availability is signaled by the
> "config.mounted" event (quite some time later, vehicles shouldn't even
> depend on it during their instantiation).
> So you cannot read the configuration during the vehicle factory init phase.
> But you can choose to register both vehicles as separate types, which
> would IMO make perfect sense. The user won't change the connection type,
> and the capabilities of the OBD version will probably be extended and
> different from the Komfort CAN version. If the differences are going to
> be huge, the OBD2 e-Up will essentially be another vehicle in the OVMS view.
> ESP_LOGI(TAG, "Registering Vehicle: VW e-Up (9000)");
> MyVehicleFactory.RegisterVehicle<VWeUpT26a>("VWUP.T26", "VW e-Up
> (Komfort CAN)");
> MyVehicleFactory.RegisterVehicle<VWeUpObd>("VWUP.OBD", "VW e-Up (OBD2)");
> The connection type web configuration as it's currently done only makes
> sense if you handle the differences dynamically within the vehicle base
> Am 25.07.20 um 18:25 schrieb Soko:
>> Hey guys,
>> I'd like to keep the sources for the T26A and OBD version for the VW
>> e-up separated.
>> With my little understanding of the OVMS framework I've created one
>> (abstract) class for the vehicle with the web-interface stuff.
>> Then two derived classes, one for OBD one for T26A.
>> Now I try to register those two different classes depending on the
>> int how_connected = MyConfig.GetParamValueInt("vwup",
>> "how_connected", CONN_OBD);
>> ESP_LOGI(TAG, "Registering Vehicle: VW e-Up (9000).
>> how_connected=%d", how_connected);
>> if (how_connected == CONN_T26A)
>> MyVehicleFactory.RegisterVehicle<VWeUpT26a>("VWUP", "VW e-Up");
>> MyVehicleFactory.RegisterVehicle<VWeUpObd>("VWUP", "VW e-Up");
>> I know already that this only gets called during reboot as the
>> log-message doesn't show up when I change the vehicle. But it seems
>> that MyConfig isn't really the correct/same instance (?) as I'm
>> getting inside my classes. Because the web-interface shows
>> how_connected=CONN_T26A, but here it is always CONN_OBD (default value).
>> How do I do this properly?
>> Or is it even a better idea to do two separate vehicles??
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
More information about the OvmsDev