USB port TMS

Annchen Knodt aknodt at gmail.com
Fri Mar 7 20:40:20 UTC 2014


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.

Changing my code to the following allowed it to compile and run:

write_success = WritePortUSB(0, 888, 16)

FWIW I also realized that I might need an additional function and call to 
configure the device (per the user guide):
Declare Function cbDConfigPort Lib "cbw32.dll" (ByVal BoardNum&, ByVal 
PortNum&, ByValDirection&) As Long
...
config_success = cbDConfigPort(0, 1, 1)

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.

Thanks for all your help!

AK

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

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com.
To post to this group, send email to e-prime at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/e-prime/99bace4f-6343-4d5d-a6c1-57c8be890cd7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.linguistlist.org/pipermail/eprime/attachments/20140307/983930c9/attachment.htm>


More information about the Eprime mailing list