Read data serially from cr3000 datalogger in python

Thank you, I appreciate your help

Where did you get the idea to send b'Temp_C\r'? Do you have some kind of command specification for your device?

Barring that, in this situation I would hook up an oscilloscope to the serial bus and look at the traffic while the device’s own software is running, and try to reverse engineer whatever it’s doing. There isn’t much else to do without some kind of documentation specifying how to talk to the device.

To be clear, I don’t think you have a Python problem, but a CR3000 problem. You need to figure out how to get it to send the data you’re after. Just listening passively on the serial bus won’t get you there, because the device isn’t sending anything.

No, there is no documentation of CR3000 on python. I tried pycampbellcr1000 but it doesn’t work as well. I wrote Temp_C because it updates the temperature of thermocouple under this heading in its own software. Yes, I also believe that there is issue in CR3000 returning the data but I am wondering if it sends the data through the same serial bus for its own software then why I am unable to tap it through python. Doesn’t it mean it is sending but I can’t get it in python. I am just guessing, I might be wrong

Only one application at a time can access a serial port. If the CR3000’s own software is connected to it on e.g. COM4, pyserial should not be able to connect to the same port. If you can connect the the port with pyserial while the software is running, most likely you are not using the right port.

You could try using a serial port sniffer. This project looks interesting, but I haven’t tried it myself so I can’t say whether it would work for you. I can give it a try later with some serial devices I have at home.

No worries.

I’ve found this PDF document which you may or may not have seen.

If you’ve not seen it, then it could worth having a look.

Thank you! I appreciate your help.

Thank you, I will look into it.

didn’t work too well, unfortunately. It consumes incoming data from the port, preventing them from reaching the intended destination.

There other ways to do it, by setting up virtual serial ports and forwarding and logging traffic between the real and virtual port. But I don’t know how to do that on Windows, I’m afraid.

I think there is some protocol used by the datalogger’ software to communicate with it, if I get to know that, then I might be able to trigger the datalogger to send the data.