-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Could the topic be related to the issue of subscriptions not providing updates for arrays? #15
Comments
Hi @sanyakamra thank you for reporting. I think you found a bug Here is what I did, started databroker
run two clients like
In the first client
In the second client
Results in
That looks good, however in this case: first client
second client
results in the subscription not being triggered, even though the value is set, as can be confirmed by manually
Can you confirm this @argerus ? Maybe fix it/assign somebody who can fix it or point out where things are going wrong? @sanyakamra Generally for your usecase it is not very "convenient" yet to work with such signal "groups" that belong together. To avoid running into race conditions (because even when you subscribe the "branch", you still would need to manually "get" the related values/wait for them during subscription. To make sure there is is less chance of having an inconsistent view in databroker, it is recommended to SET those values all at once, i.e. when using our python sdk doing something like
this at least reduces the chances of "unfortunate accidents". So those combined things are currently working well either for very slow updates (i.e. you update a position every few seconds, but the updates of all values are coming in short order, so it is easy to get what belongs together), OR you update things very fast (take the posiiton example, if lat/long etc would be updated every 10 ms or so, they would not change much, and "grouping" things together from a few different timeslots does not hurt/evens out (just like sampling things at slightly different timeslots). |
@SebastianSchildt I can reproduce the issue with the steps you provided. However, I also tested the same steps with the databroker-cli and there it is working fine. So while we have an issue here, the issue might be part of the sdk and not of the databroker itself. I will create a ticket over here for the scenario you described: Steps I did:
Start a Databroker Start a Databroker CLI and subscribe to Vehicle.OBD
Start a second Databroker CLI and publish new values for Vehicle.OBD.DTCList
Check first Databroker CLI for update
Update:
|
I assume this is fixed in Head @erikbosch Should we make a new release of SDK (docker and pyi) then close here? |
@SebastianSchildt - yes, I did some tests and even created a pypi pre-release at https://pypi.org/project/kuksa-client/0.4.3a1/ that @sanyakamra can test out, but noticed a small regression if using the deprecated Kuksa Server that needs to be fixed: eclipse-kuksa/kuksa-python-sdk#29 |
Hello,
For my use case, I'll take cues from the GNSS location example, such as:
Topics:
I'm exploring a workaround where a parent signal, such as GNSS location, would have child signals like latitude and longitude. Whenever there's an update on either latitude or longitude, subscribing to the parent signal would automatically provide updates on the child signals. This would make it easier to process the data together or establish a dependency between child and parent signals.
However, when the topic datatype is string[], it doesn't provide updates when I subscribe to the parent node. Strangely, it works fine if the datatype is string, uint, or any other type, but not an array.
Do you have any other suggestions or workarounds that might be worth considering?
The text was updated successfully, but these errors were encountered: