Battery Logging with Example Script
Battery Logging with Example Script
I am trying to implement a way to log battery levels for a swarm. I was trying to reference the basiclog.py and how they implement it with a stabilizer. Is this possible if so is there an example script on how to log battery levels for a swarm?
Re: Battery Logging with Example Script
Hi!
I am not sure there is a example, but you should be able to do it with the Swarm class, with something like (untestedd, might not work):
Regards
Jonas
I am not sure there is a example, but you should be able to do it with the Swarm class, with something like (untestedd, might not work):
Code: Select all
uris = [
uri1,
uri2,
...,
uriN
]
cflib.crtp.init_drivers()
def setup_logging(scf):
config = LogConfig(name='pm', period_in_ms=500)
config.add_variable('pm.vbat', 'float')
scf.cf.log.add_config(config)
def callback(timestamp, data, config):
print(f'[{scf.cf.link_uri}: {timestamp}][{logconf.name}]: ', end='')
for name, value in data.items():
print(f'{name}: {value:3.3f} ', end='')
print()
config.data.received_cb.add_callback(callback)
factory = CachedCfFactory(rw_cache='./cache')
with Swarm(uris, factory=factory) as swarm:
self.parallell_safe(setup_logging)
time.sleep(100)
Jonas
Re: Battery Logging with Example Script
Hi I tried writing a variation of that code you posted to get a swarm to ready battery levels but it was unable to do so. I am getting a weird python syntax error (new to python) so if you could help me out that would be cool
My code is shared https://pastebin.com/1rmBeLxr as I got banned from posting before because of the length of my code I think.
Basically my issue is that my method when I call swarm.parallel it would not recognize the method I defined. I used the method you created above. Thanks in advance.
My code is shared https://pastebin.com/1rmBeLxr as I got banned from posting before because of the length of my code I think.
Basically my issue is that my method when I call swarm.parallel it would not recognize the method I defined. I used the method you created above. Thanks in advance.
Re: Battery Logging with Example Script
Hi, could you please paste the error you receive?
Re: Battery Logging with Example Script
This is the error I am getting when trying to run the code for my two crazyflie drones. I feel like this is a really simple python syntax thing that I am not getting. I don't really understand why when I call swarm.parallel_safe(setup_logging) it is unable to find the method that we defined already in the LoggingExample class. Any clarification would be grateful to debug this problem. Thanks.
Last edited by undays on Thu Nov 11, 2021 4:04 am, edited 1 time in total.
Re: Battery Logging with Example Script
https://imgur.com/gallery/GUmEO0C sorry this is the link I don't know why the image does not load.
Re: Battery Logging with Example Script
Hi,
It should probably be le.setup_logging.
It should probably be le.setup_logging.
Re: Battery Logging with Example Script
I am trying to print simultaneously the battery levels of my 2 drones. The code I have and am using is linked here https://pastebin.com/NiMuAZkP
I am trying to work through my GetBattery method which would display the battery however to my attempts, it seems to only display the first URI0 CrazyFlie's values. Any idea on how I can approach this to print out the battery level for my swarm? I am using the basiclog.py LoggingExample class to add variables which I will also include in this link here https://pastebin.com/4uYEs4sJ
Thanks.
I am trying to work through my GetBattery method which would display the battery however to my attempts, it seems to only display the first URI0 CrazyFlie's values. Any idea on how I can approach this to print out the battery level for my swarm? I am using the basiclog.py LoggingExample class to add variables which I will also include in this link here https://pastebin.com/4uYEs4sJ
Thanks.
Re: Battery Logging with Example Script
This is more of a Python question unfortunately, you will have to keep learning and dig at it!
But, I would say, maybe a better approach would be to set up asynchronous logging callbacks (see this guide: https://www.bitcraze.io/documentation/r ... log_param/) for each of your Crazyflies and handle the battery displaying in those callbacks?
Good luck!
But, I would say, maybe a better approach would be to set up asynchronous logging callbacks (see this guide: https://www.bitcraze.io/documentation/r ... log_param/) for each of your Crazyflies and handle the battery displaying in those callbacks?
Good luck!
Re: Battery Logging with Example Script
ah yes, it finally worked out thanks for your guidance. I also am curious about the value I am recording, they are in intervals of 10%? Is the CrazyFlie limitation only able to read the battery level in output intervals of 10%? I am currently using pm.batteryLevel to retrieve the data regarding battery life. Thanks.