<div dir="ltr">Thanks, I actually just caught that myself as well!  I was unknowingly copying from a call to a subroutine or something of the sort then - totally new at this.<div><br></div><div>Changing my code to the following allowed it to compile and run:</div><div><br></div><div>write_success = WritePortUSB(0, 888, 16)<br><br>FWIW I also realized that I might need an additional function and call to configure the device (per the user guide):</div><div>Declare Function cbDConfigPort Lib "cbw32.dll" (ByVal BoardNum&, ByVal PortNum&, ByValDirection&) As Long</div><div>...</div><div>config_success = cbDConfigPort(0, 1, 1)<br></div><div><br></div><div>Now I just have to make sure I'm getting the port number correct - any tips on how to figure out what to use for that?  I'm resorting to trial and error for now and haven't had success generating the signals yet - I'm not sure if it's this or something else that's configured incorrectly, so I'd like to have more confidence that at least some of the arguments I'm using are correct.</div><div><br></div><div>Thanks for all your help!</div><div><br></div><div>AK</div><div><br>On Friday, March 7, 2014 3:14:06 PM UTC-5, McFarlane, David wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Annchen,
<br>
<br>Ah, the old "Subroutine vs. Function" distinction that is peculiar to 
<br>Visual Basic / E-Basic, and one of my pet peeves (rational languages 
<br>such as C do not make this useless distinction).  Here is the deal, 
<br>which you might never see documented elsewhere:
<br>
<br>- Subroutines *never* return a value, and their arguments must *not* 
<br>be enclosed in parentheses.
<br>
<br>- Functions *always* return a value, and their arguments *must* be 
<br>enclosed in parentheses.
<br>
<br>Sheesh!  (In C, for example, all subroutines are functions, functions 
<br>may be defined to either return a value or not, and if a function 
<br>does return a value you need not collect it in a variable -- isn't 
<br>that a lot better?)
<br>
<br>So try something like
<br>
<br>     Dim  rtnValue as Long  ' just because we need to take the returned value
<br>     rtnValue = WritePortUSB( 0, 1, 16 )
<br>
<br>Come to think of it, the MCC UL documentation should have shown this usage.
<br>
<br>You do not need to do anything with the return value, but VBA/E-Basic 
<br>usage *requires* that you store the function's return value to a 
<br>variable anyway.  In this case, though, the function should return a 
<br>meaningful success/error code, so you might want to do something with that.
<br>
<br>Good luck,
<br>-----
<br>David McFarlane
<br>E-Prime training 
<br>online:  <a href="http://psychology.msu.edu/Workshops_Courses/eprime.aspx" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;">http://psychology.msu.edu/<wbr>Workshops_Courses/eprime.aspx</a>
<br>Twitter:  @EPrimeMaster (<a href="https://twitter.com/EPrimeMaster" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;">https://twitter.com/<wbr>EPrimeMaster</a> )
<br>
<br>
<br>At 3/7/2014 01:59 PM Friday, Annchen Knodt wrote:
<br>>Hi David,
<br>>
<br>>Thanks for your response.  I was able to get a little further and am 
<br>>now fairly confident that my declare function should look like:
<br>>
<br>>Declare Function WritePortUSB Lib "cbw32.dll" Alias "cbDOut" (ByVal 
<br>>BoardNum&, ByVal PortNum&, ByVal DataValue%) As Long
<br>>(since per MCC documentation, the cbw32.dll file contains the 
<br>>"cbDOut" function for sending digital signals to the device)
<br>>
<br>>and my inline commands (eg to send signal 16 to the device through 
<br>>port 1, with board set to 0 since when I open MCC's instacal program 
<br>>I see that the device is labeled as Board #0) as follows:
<br>>
<br>>WritePortUSB 0, 1, 16
<br>>
<br>>The script will compile and run with the declare function, but once 
<br>>i include the WritePortUSB line of code I get a "missing parameter" 
<br>>error from eprime.
<br>>
<br>>Any idea what I might be missing here?  I'm not sure particularly 
<br>>what number I should be using for PortNum, but I tried several 
<br>>values with the same result.
<br>>
<br>>Thanks!!
<br>>
<br>>Annchen
<br>>
<br>>
<br>>On Thursday, March 6, 2014 12:09:02 PM UTC-5, McFarlane, David wrote:
<br>>Annchen,
<br>>
<br>>For the syntax & usage of the Declare statement, look at the Declare
<br>>topic in the E-Basic Help facility.  You might find even better
<br>>documentation for Declare in references for Microsoft Visual Basic or
<br>>Visual Basic for Applications.
<br>>
<br>>For the rest, you really do have to get that from MCC, they are
<br>>supposed to know and document which of their .dll files and functions
<br>>to use.  As I recall when I used their UL (almost 4 years ago now),
<br>>it came with extensive documentation and examples.  Remember that
<br>>E-Prime is just a derivative of MS VBA, so you should look at the
<br>>documentation & examples for Visual Basic.  In fact, next time you
<br>>talk to MCC staff, do *not* mention E-Prime, just tell them you want
<br>>to use their board with Visual Basic, and that should help orient 
<br>>them better.
<br>>
<br>>Best,
<br>>-----
<br>>David McFarlane
<br>>E-Prime training
<br>>online: 
<br>><<a href="http://psychology.msu.edu/Workshops_Courses/eprime.aspx" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;">http://psychology.msu.edu/<wbr>Workshops_Courses/eprime.aspx</a>><a href="http://psychology.msu.edu/Workshops_Courses/eprime.aspx" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;"><wbr>http://psychology.msu.edu/<wbr>Workshops_Courses/eprime.aspx</a> 
<br>>
<br>>Twitter:  @EPrimeMaster 
<br>>(<<a href="https://twitter.com/EPrimeMaster" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;">https://twitter.com/<wbr>EPrimeMaster</a>><a href="https://twitter.com/EPrimeMaster" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;">https://twitter.<wbr>com/EPrimeMaster</a> )
<br>>
<br>>/----
<br>>Stock reminder:  1) I do not work for PST.  2) PST's trained staff
<br>>take any and all questions at 
<br>><<a href="https://support.pstnet.com" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fsupport.pstnet.com\46sa\75D\46sntz\0751\46usg\75AFQjCNF5BfukPzW6lq7UCweMsMu7_9wJEQ';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fsupport.pstnet.com\46sa\75D\46sntz\0751\46usg\75AFQjCNF5BfukPzW6lq7UCweMsMu7_9wJEQ';return true;">https://support.pstnet.com</a>><a href="https://support.pstnet.com" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fsupport.pstnet.com\46sa\75D\46sntz\0751\46usg\75AFQjCNF5BfukPzW6lq7UCweMsMu7_9wJEQ';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fsupport.pstnet.com\46sa\75D\46sntz\0751\46usg\75AFQjCNF5BfukPzW6lq7UCweMsMu7_9wJEQ';return true;">h<wbr>ttps://support.pstnet.com</a> , and they
<br>>strive to respond to all requests in 24-48 hours, so make full use of
<br>>it.  3) In addition, PST offers several instructional videos on their
<br>>YouTube channel 
<br>>(<<a href="http://www.youtube.com/user/PSTNET" target="_blank" onmousedown="this.href='http://www.youtube.com/user/PSTNET';return true;" onclick="this.href='http://www.youtube.com/user/PSTNET';return true;">http://www.youtube.com/<wbr>user/PSTNET</a>><a href="http://www.youtube.com/user/PSTNET" target="_blank" onmousedown="this.href='http://www.youtube.com/user/PSTNET';return true;" onclick="this.href='http://www.youtube.com/user/PSTNET';return true;">http://www.<wbr>youtube.com/user/PSTNET</a> 
<br>>).  4) If you do
<br>>get an answer from PST staff, please extend the courtesy of posting
<br>>their reply back here for the sake of others.
<br>>\----
<br>>
<br>>
<br>>At 3/6/2014 11:54 AM Thursday, Annchen Knodt wrote:
<br>> >I've been referring to this older post for help getting E-prime to
<br>> >send output signals to a USB device: MCC USB-1208FS.  Since Eprime
<br>> >doesn't have any native functionality for communicating with a USB
<br>> >I'd like to try using the DLL the comes with the device's "Universal
<br>> >Library" installation as David suggests below.  However, I can't
<br>> >find any instructions for working with Eprime anywhere in the UL
<br>> >documentation (and the rep I chatted with at MCC help had never
<br>> >heard of Eprime), so I'm hoping that someone might be able to
<br>> >clarify two things for me:
<br>> >
<br>> >1) Which MCC DLL file to I link to in Eprime? (and what is the
<br>> >syntax of the Declare statement?)  The MCC rep said I should use
<br>> >cbw64.dll, but I'm not sure if he's right since he didn't really
<br>> >know what I was talking about
<br>> >2) What inline commands then do I use in Eprime to send the signal
<br>> >to the USB?  We had previously used WritePort with a different
<br>> >device that's been replaced with this USB
<br>> >
<br>> >Thanks!
<br>> >
<br>> >Annchen Knodt
<br>> >
<br>> >
<br>> >On Monday, May 31, 2010 6:20:18 PM UTC-4, David McFarlane wrote:
<br>> >Sara,
<br>> >
<br>> >Come to think of it, there is a way to send & receive data through USB
<br>> >using E-Prime, in fact I am doing that for a project now.  First go to
<br>> >Measurement Computing (referred to earlier) and get whatever I/O board
<br>> >suits your fancy, e.g., their USB-1024 ($100).  When that arrives,
<br>> >install the Universal Libray software that comes with it.  Then add the
<br>> >appropriate Declare statements in the User Script area of your EP
<br>> >program (see instructions that come with the MCC UL).  Now you can use
<br>> >MCC UL function calls from EP inline code to send & receive data through
<br>> >the USB port.
<br>> >
<br>> >Recognizing that the MCC UL essentially just adds a DLL to provide the
<br>> >USB support, with enough ingenuity you could take this even further by
<br>> >writing your own DLL to use from EP.  For that, you might want to take a
<br>> >look at "USB Complete" by Jan Axelson.
<br>> >
<br>> >Mind you, I am not advising you do any of this.  Just being an academic
<br>> >and pointing out the full range of possibilities.
<br>> >
<br>> >-- David McFarlane, Professional Faultfinder
<br>> >
<br>> >
<br>> >David McFarlane wrote:
<br>> > > Sara,
<br>> > >
<br>> > > Stock reminder:  1) I do not work for PST.  2) PST's trained staff
<br>> > > really does like to take any and all questions at
<br>> > >
<br>> > 
<br>> <<<a href="http://support.pstnet.com/e%2Dprime/support/login.asp" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsupport.pstnet.com%2Fe%252Dprime%2Fsupport%2Flogin.asp\46sa\75D\46sntz\0751\46usg\75AFQjCNGivKXvQfxYcucJztVk4KS8DCk8jQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsupport.pstnet.com%2Fe%252Dprime%2Fsupport%2Flogin.asp\46sa\75D\46sntz\0751\46usg\75AFQjCNGivKXvQfxYcucJztVk4KS8DCk8jQ';return true;">http://support.pstnet.com/e%<wbr>2Dprime/support/login.asp</a>><a href="http://support.pstnet.com/e%2Dprime/support/login.asp" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsupport.pstnet.com%2Fe%252Dprime%2Fsupport%2Flogin.asp\46sa\75D\46sntz\0751\46usg\75AFQjCNGivKXvQfxYcucJztVk4KS8DCk8jQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsupport.pstnet.com%2Fe%252Dprime%2Fsupport%2Flogin.asp\46sa\75D\46sntz\0751\46usg\75AFQjCNGivKXvQfxYcucJztVk4KS8DCk8jQ';return true;">http<wbr>://support.pstnet.com/e%<wbr>2Dprime/support/login.asp</a>><a href="http://support.pstnet.com/e%2Dprime/support/login.asp" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsupport.pstnet.com%2Fe%252Dprime%2Fsupport%2Flogin.asp\46sa\75D\46sntz\0751\46usg\75AFQjCNGivKXvQfxYcucJztVk4KS8DCk8jQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fsupport.pstnet.com%2Fe%252Dprime%2Fsupport%2Flogin.asp\46sa\75D\46sntz\0751\46usg\75AFQjCNGivKXvQfxYcucJztVk4KS8DCk8jQ';return true;">http<wbr>://support.pstnet.com/e%<wbr>2Dprime/support/login.asp</a> 
<br>>
<br>> > , and they strive
<br>> > > to respond to all requests in 24-48 hours -- this is pretty much their
<br>> > > substitute for proper documentation, so make full use of it.  3) If you
<br>> > > do get an answer from PST Web Support, please extend the courtesy of
<br>> > > posting their reply back here for the sake of others.
<br>> > >
<br>> > > That said, here is my take ...
<br>> > >
<br>> > > Unless PST has added something new to the latest release of EP2, E-Prime
<br>> > > simply has no facility for sending or receiving data through a USB port,
<br>> > > so you are just out of luck there.  But do not take my word for this,
<br>> > > please contact PST Web Support yourself and then report back here.
<br>> > >
<br>> > > Say, why not just install another parallel port?  Or, does your other
<br>> > > device need all 8 outputs from the parallel port?  If not, why not just
<br>> > > build a cable to send different wires to your different devices?  Just
<br>> > > take a look at the book "Parallel Port Complete" by Jan Axelson to get
<br>> > > some idea of how to make full use of the parallel port.  Or, skip the
<br>> > > parallel port and just install a real digital I/O card (e.g., from
<br>> > > <<<a href="http://www.mccdaq.com" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.mccdaq.com\46sa\75D\46sntz\0751\46usg\75AFQjCNEob8qL3KaS_c7RPr6ngccTgxBMgg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.mccdaq.com\46sa\75D\46sntz\0751\46usg\75AFQjCNEob8qL3KaS_c7RPr6ngccTgxBMgg';return true;">http://www.mccdaq.com</a>><a href="http://www.mccdaq.com" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.mccdaq.com\46sa\75D\46sntz\0751\46usg\75AFQjCNEob8qL3KaS_c7RPr6ngccTgxBMgg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.mccdaq.com\46sa\75D\46sntz\0751\46usg\75AFQjCNEob8qL3KaS_c7RPr6ngccTgxBMgg';return true;">http:/<wbr>/www.mccdaq.com</a>><a href="http://www.mccdaq.com" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.mccdaq.com\46sa\75D\46sntz\0751\46usg\75AFQjCNEob8qL3KaS_c7RPr6ngccTgxBMgg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.mccdaq.com\46sa\75D\46sntz\0751\46usg\75AFQjCNEob8qL3KaS_c7RPr6ngccTgxBMgg';return true;">http://www.<wbr>mccdaq.com</a> ).
<br>> > >
<br>> > > -- David McFarlane, Professional Faultfinder
<br>> > >
<br>> > >
<br>> > >> does anyone knows the scropt to open the USB port in order to trigger
<br>> > >> a TMS?
<br>> > >>
<br>> > >> please, let me know
<br>> > >> I have to send a trigger though the USB port, because the parallel
<br>> > >> port is used to trigger another device.
<br>> > >>
<br>> > >> thank you very much
<br>> > >> Sara
<br>
<br></blockquote></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups "E-Prime" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:e-prime+unsubscribe@googlegroups.com">e-prime+unsubscribe@googlegroups.com</a>.<br />
To post to this group, send email to <a href="mailto:e-prime@googlegroups.com">e-prime@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/e-prime/99bace4f-6343-4d5d-a6c1-57c8be890cd7%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/e-prime/99bace4f-6343-4d5d-a6c1-57c8be890cd7%40googlegroups.com</a>.<br />
For more options, visit <a href="https://groups.google.com/d/optout">https://groups.google.com/d/optout</a>.<br />