<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>Need to supply (char*) argument</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-gb"><FONT SIZE=2>Sorry if this is a bit simple but any help welcome.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"><FONT SIZE=2>I am adding some C++ code to Python.&nbsp; From Python I want to be able to read</FONT></SPAN><SPAN LANG="en-gb"><FONT SIZE=2></FONT></SPAN><SPAN LANG="en-gb"> <FONT SIZE=2>data from a target device, over USB.&nbsp; My software does all the hard work and I have a class:<BR>
</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"><FONT SIZE=2>typedef unsigned</FONT></SPAN><SPAN LANG="en-gb"> <FONT SIZE=2>__int8</FONT></SPAN><SPAN LANG="en-gb">&nbsp;<FONT SIZE=2> u8;</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"><FONT SIZE=2>typedef unsigned</FONT></SPAN><SPAN LANG="en-gb"> <FONT SIZE=2>__int16</FONT></SPAN><SPAN LANG="en-gb"><FONT SIZE=2> u</FONT></SPAN><SPAN LANG="en-gb"><FONT SIZE=2>16</FONT></SPAN><SPAN LANG="en-gb"><FONT SIZE=2>;</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"><FONT SIZE=2>typedef int ErrorT;</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"><BR>
<FONT SIZE=2>class ViperUsbC<BR>
&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp; public:<BR>
&nbsp;&nbsp;&nbsp; // snip snip<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></SPAN><SPAN LANG="en-gb"><FONT SIZE=2>ErrorT</FONT></SPAN><SPAN LANG="en-gb"><FONT SIZE=2></FONT></SPAN><SPAN LANG="en-gb"> <FONT SIZE=2>ReadSlaveMemory(u8 Slave, u16 Offset, u8* pData, u16 Length);<BR>
&nbsp;&nbsp;&nbsp; // Snip,snip<BR>
&nbsp;&nbsp;&nbsp; };<BR>
<BR>
I use swigwin-1.3.34 to wrap it into a module called SHIP.<BR>
<BR>
In Python, I have:<BR>
<BR>
import SHIP<BR>
ViperUsb = SHIP.ViperUsbC()<BR>
Slave =7<BR>
Offset = 0<BR>
Length = 64<BR>
Buffer = 'a' * Length<BR>
print &quot;type(Buffer)=%s&quot; % type(Buffer)<BR>
print &quot;len(Buffer)=%s&quot; % len(Buffer)<BR>
Result = ViperUsb.ReadSlaveMemory(Slave, Offset, Buffer, Length);<BR>
<BR>
That fails with:<BR>
<BR>
type(Buffer)=&lt;type 'str'&gt;<BR>
len(Buffer)=64<BR>
<BR>
Traceback (most recent call last):<BR>
&nbsp; File &quot;H:\Husky\HostPC\V1\SHIP\test1.py&quot;, line 1970, in -toplevel-<BR>
&nbsp;&nbsp;&nbsp; ViperTests()<BR>
&nbsp; File &quot;H:\Husky\HostPC\V1\SHIP\test1.py&quot;, line 1884, in ViperTests<BR>
&nbsp;&nbsp;&nbsp; Result = ViperUsb.ReadSlaveMemory(Slave, Offset, Buffer, Length);<BR>
&nbsp; File &quot;H:\Husky\HostPC\V1\SHIP\Release\SHIP.py&quot;, line 1757, in<BR>
ReadSlaveMemory<BR>
&nbsp;&nbsp;&nbsp; def ReadSlaveMemory(*args): return<BR>
_SHIP.ViperUsbC_ReadSlaveMemory(*args)<BR>
TypeError: in method 'ViperUsbC_ReadSlaveMemory', argument 4 of type 'u8 *'<BR>
<BR>
<BR>
How do I provide a buffer into which to read the data?&nbsp; It would not be intolerable to provide another layer using %extend, but I feel sure this should be automagic.<BR>
<BR>
Thanks in advance<BR>
&nbsp;&nbsp;&nbsp; Bill<BR>
<BR>
PS This is a very small part of a much larger project so I cannot supply complete source code.</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><A NAME=""><SPAN LANG="en-gb"><FONT SIZE=2 FACE="Arial">~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,,~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,,~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,</FONT></SPAN></A></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Privileged/Confidential information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message, and please notify us immediately. Please advise immediately if you or your employer does not consent to Internet e-mail for messages of this kind.</FONT></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Opinions, conclusions and other information expressed in this message are not given or endorsed by my firm or employer unless otherwise indicated by an authorised representative independent of this message.</FONT></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Although we utilise the most up to date virus checking procedures you should carry out your own virus check before opening any attachment. We accept no liability for any loss or damage which may be caused by software viruses.</FONT></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"><FONT SIZE=2 FACE="Arial">~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,,~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,,~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,,.~*&quot;&quot;*~.,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Bill Davy, Synectix Limited, 12 King Alfred Way, Cheltenham, GL52 6QP, England</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Registered Office: as above Registered in England and Wales No 2946363</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Telephone: +44 (0)1242 254411, Mobile: +44 (0)7866 451568, Fax: +44 (0)1242 256611</FONT></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Work: <A HREF="mailto:Bill@SynectixLtd.com">mailto:Bill@SynectixLtd.com</A></FONT></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Home: <A HREF="mailto:Bill@XchelSys.co.uk">mailto:Bill@XchelSys.co.uk</A></FONT></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><FONT SIZE=1 FACE="Courier New">Web: <A HREF="http://www.synectixltd.com/">http://www.synectixltd.com/</A></FONT></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-gb"></SPAN></P>

</BODY>
</HTML>