I appreciate you forwarding this to me.  However, I find most of what is
described is above my head; also it may require Windows I do not have.

I  have been distracted by another issue for a while now, but that is
solved, so I intend to get back to the DMM shortly.  The last effort I put
into it was using some of the Python code I found.  It seemed to acquire
data correctly most of the  time, except randomly the first data field was
empty, or at least equal to zero.  I hope to test for that problem and
perhaps that will be a work-around.  I will relate my progress when I  have
something definitive.

-Denis

On Tue, Mar 6, 2018 at 12:09 PM, wes <p...@the-wes.com> wrote:

> Today I chanced upon "USPPcap" - a utility designed to capture traffic on
> USB ports.
>
> http://desowin.org/usbpcap/tour.html
>
> It seems to me, since the Windows-based software for this thing works well,
> and you have a USB->serial adapter, this utility could potentially be used
> to monitor the traffic on a successful meter read, which could then be used
> to re-create those steps in whatever other environment you'd like to use.
>
> -wes
>
> On Sun, Jan 7, 2018 at 5:13 PM, Denis Heidtmann <denis.heidtm...@gmail.com
> >
> wrote:
>
> > The meter schematic I have shows two opto-isolators connected to the
> serial
> > pins.  The output from the meter is an emitter follower driving the RxD
> pin
> > and the emitter resistor connected to RTS.  The collector is connected to
> > DTR.  The input to the meter drives an LED in series with a 3.3K
> resistor,
> > TxD (+) to GND .  Does this explain the RTS being driven low?
> >
> > The protocol I have seen documented is:
> >
> > data format: 7n2 at 600 baud (7 bits, no parity, 2 stop bits).
> > Control lines:
> >    DTR and RTS lines are used to power the TX line: RTS is clear
> >    for -12 supply; DTR is set for +12 supply. Data transmission is
> >    solicited sending whatever character to the RX line.
> > Data string format:
> >    MAS-345 sends a 14 bytes string with:
> >          <mode>< ><sign><value>< ><units><return>
> >    <mode>:  two bytes with the oerating mode: DC, AC, OH, CA, TE ...
> >    <sign>:  one byte with - or space
> >    <value>: five bytes with four digits and one decimal dot.
> >    <units>: four bytes with the units: mV, A, kOhm, nF ...
> >    <return>: '\r'
> >    One space is inserted between <mode> and <sign>, one between
> >    <value> and <units>.
> > The data string (without the '\r') is sent to the output device.
> >
> > The changes I made to the code to get some results were line 116 timeout
> > changed from 0.1 to 3.0 and  commented out 129,  self.s.setTimeout(1)
> since
> > it generated an error msg. indicating serial had no such object.   These
> > changes gave me output if the meter was set at dc volts, otherwise an
> > instruction to change it to dc volts.   Later I changed line 56 to make
> > debug = True.  This gave me a listing of the what was coming from the
> meter
> > (repeatedly), matching the above listing.
> >
> > So for starters I need to get it to poll the meter no more rapidly than
> > 1/sec.  But I guess even in its wounded condition I could try to see if
> it
> > will work with the usb-serial adapter.
> >
> > -Denis
> >
> > On Sun, Jan 7, 2018 at 2:18 PM, Denis Heidtmann <
> denis.heidtm...@gmail.com
> > >
> > wrote:
> >
> > > My goal is to be able to get data from the dmm using my laptop, which
> has
> > > only USB.  I have an RS-232--USB adapter.  Eventually I want to make
> the
> > > choices more friendly.
> > >
> > > Later today I will study the details of your observations.  The
> protocol
> > I
> > > have seen described elsewhere says the host needs to send a single byte
> > > (H?) to get the dmm to send one reading.  I had to change two time
> values
> > > and remove the setTimeout line to get it to work.  At present it locks
> > the
> > > meter for some time.  I expect that is because the host is sending
> bytes
> > > too fast, causing the meter to try to respond before it is ready, a
> > > difficulty I saw referenced in another description of how to deal with
> > this
> > > meter.
> > >
> > > Thanks for looking at the code.
> > >
> > > -Denis
> > >
> > > On Sun, Jan 7, 2018 at 12:35 PM, Galen Seitz <gal...@seitzassoc.com>
> > > wrote:
> > >
> > >> On 01/07/18 10:04, Denis Heidtmann wrote:
> > >> >>
> > >> >> On Mon, Jan 1, 2018 at 11:46 AM, Denis Heidtmann <
> > >> >> denis.heidtm...@gmail.com>
> > >> >> wrote:
> > >> >>
> > >> >>> I am looking into ways to examine the serial traffic to/from my
> dmm.
> > >> >>
> > >> > <snip>
> > >> >
> > >> > I found a python script intended to interface with the mas-345:
> > >> > https://github.com/markrages/py_test_interface
> > >> > https://github.com/markrages/py_test_interface/blob/master/
> mas345.py
> > >> >
> > >> > I gave it a try on my desktop (which has a serial port).  To get it
> to
> > >> run
> > >> > I changed a couple of parameters and commented out one that was
> > >> generating
> > >> > a no-such-parameter error.  Then I put it into debug mode so I could
> > see
> > >> > the traffic from the meter.  The good news is it appears that the
> > meter
> > >> > does report values as the documented protocol indicates.  How the
> > >> > communication is done is buried in the "serial" Python module.
> Someone
> > >> who
> > >> > understands Python could learn from this; I cannot.
> > >>
> > >> I've used the python serial module a few times.  Looking at that
> code, I
> > >> see a few things that strike me as unusual.  First is RTS is
> > >> cleared(line 125).  Normally both DTR and RTS would be set during
> serial
> > >> communication.  The second thing is that the meter apparently requires
> > >> the host to send 14 null characters(line 138) in order to cause it to
> > >> send its measurement data.  Finally, requiring two stop bits(line 117)
> > >> is unusual.  (Note that two stop bits and seven bit data is equivalent
> > >> to one stop bit and including a mark parity bit in eight bit data.)
> > >>
> > >> Since its working with the python script, I suggest you continue using
> > >> python.  It's not as hard as it might at first appear.  I don't recall
> > >> your goal for this, but if you look at lines 169-197, I think you'll
> > >> begin to see how it might be modified to suit you.
> > >>
> > >> galen
> > >> --
> > >> Galen Seitz
> > >> gal...@seitzassoc.com
> > >> _______________________________________________
> > >> PLUG mailing list
> > >> PLUG@pdxlinux.org
> > >> http://lists.pdxlinux.org/mailman/listinfo/plug
> > >>
> > >
> > >
> > _______________________________________________
> > PLUG mailing list
> > PLUG@pdxlinux.org
> > http://lists.pdxlinux.org/mailman/listinfo/plug
> >
> _______________________________________________
> PLUG mailing list
> PLUG@pdxlinux.org
> http://lists.pdxlinux.org/mailman/listinfo/plug
>
_______________________________________________
PLUG mailing list
PLUG@pdxlinux.org
http://lists.pdxlinux.org/mailman/listinfo/plug

Reply via email to