Closed Pratyush-das closed 5 months ago
Hey @Pratyush-das, we have not managed to dig into the UDP support. Contributor @pledna might help with this.
Hello, sorry i'm late to the party, This isn't as much an issue in the UDP, looking at the code we can clearly see that it is utilized a TCP PMU and not UDP as shown below
## PMU configuration ## pmu = Pmu(ip="10.10.114.22", port=1410) #original port config
it is using a TCP socket and not UDP, now that i got my UDP parenting out of the way :) , as it is using a TCP socket with the default data_rate of 30 FPS I'd recommend changing the DataRate to 1000FPS because of the delay present in here:
it MIGHT be it, you're receiving data at ONE THOUSAND FRAMES and sending it at :
rr_list = [5, 10, 25, 50, 100] # list of available RR as per standard
at a maximum of 100 FPS and then there is another sleep on that last if, so it seems that you're receiving 1000FPS and sending only 100 so increasing the queue A LOT. but I'm not sure I'd check all sleeps (and if you commented out that sleep i commented in another issue) and the ReportingRates. Also I'd try making a minimal example with receiving all the 1000 FPS and sending them at 1000FPS without sleeps/delay.
So to reminisce queue theory, your faucet is producing 1000fps and your sink is sinking 100FPS so when you stop after 1s you'd 900 frames in the queue unsent, and that would be sent (in this case) until there is nothing in the queue anymore. and 900 frames at 100FPS is 9 s so you can see that if you sample a minute where this is going, a looooong time posting data after closing.
Also as a question why are you designing a pmu with a 1000fps frame rate? That's A LOT of data to be transmitted, it doesn't feel post-processing by your code you already receive all data processed, then why such a high frame-rate? (as food for thought) I know that the Recursive algorithm can produce a lot of data but should you send EVERY single frame it produces? Did you consider a post processing filter?
Hi all, I am essentially using the RandomPMU code to send values to a PDC. The values the PMU sends are not random, but are coming from another source through UDP. The UDP socket receives the values (24 bytes/packet) at a rate of 1packet per ms. i.e. 1000 FPS. However, the pyPMU instance is supposed to send whatever value it has at that moment and then move on. I am seeing that even when I stop sending data, the PMU continues to send data to the PDC for minutes. Why is that? What am I doing wrong here?