Commit 7d7a2f6a authored by Alois SCHLOEGL's avatar Alois SCHLOEGL
Browse files

* replace Use1432.{lib,dll}, and compile from source

  the code from https://github.com/schloegl/ced1401 was used and adapted.
parent 5a609ed4
......@@ -10,28 +10,20 @@ If not stated otherwise, all copyrights are with:
Copyright (C) 2011-2021 Peter Jonas, Institute of Science and Technology, Austria
```
This code is provided under the GPLv3 license (see COPYING).
The Copyright does not apply to these files (instructions for downloading these from the vendor are shown further below):
This code is provided under the GPLv3 license (see COPYING). The GPL license does not apply to these files:
```
.\UserIgor\XOP_Axon\FP_Mc700Tg\MultiClampBroadcastMsg.hpp
.\UserIgor\XOP_Axon\FP_Mc700Tg\MCTelegraphs.h
.\UserIgor\XOP_Dll\AxMultiClampMsg.dll
.\UserIgor\XOP_Dll\Use1432.dll
.\UserIgor\XOP_Ced\FPulseCed\Use1432.lib
.\UserIgor\XOP_Ced\FPulseCed\Cfs.h
.\UserIgor\XOP_Ced\FPulseCed\Cfs.c
.\UserIgor\XOP_Ced\FPulseCed\Use1401.h
.\UserIgor\XOP_Ced\FPulseCed\MACHINE.H
```
These files can be also obtained by installing [Installer of MC700B](http://axograph.com/installers/MultiClamp_2_1_0_16.exe). These files are then located at (C:\Program Files (x86)\Molecular Devices\MultiClamp 700B Commander).
This repository is setup mainly for documentation purpose, no active development or support is provided.
# Installing FPulse
## Installing FPulse
* Prerequisites are
- MS Windows (7 or later)
- IgorPro 6.20+
......@@ -61,7 +53,7 @@ FPulse will be installed in C:\UserIgor\FPulse, which contains also the ```unins
```
# Build requirements
## Build requirements
### Igor XOP toolkit
......@@ -108,31 +100,6 @@ According to [this documentation](https://docs.microsoft.com/en-us/cpp/build/ref
You might also need to adapt the path in the "*.rc" files. (When you rebuild the project, the compiler will point you to the line).
### Files from _Axon Instruments_ and _Cambridge Electronic Devices (CED)_
These files are currently also in the [repository](https://git.ist.ac.at/jonasgroup/FPulse/-/tree/master):
```
.\UserIgor\XOP_Axon\FP_Mc700Tg\MultiClampBroadcastMsg.hpp
.\UserIgor\XOP_Axon\FP_Mc700Tg\MCTelegraphs.h
.\UserIgor\XOP_Dll\AxMultiClampMsg.dll
.\UserIgor\XOP_Dll\Use1432.dll
.\UserIgor\XOP_Ced\FPulseCed\Use1432.lib
.\UserIgor\XOP_Ced\FPulseCed\Cfs.h
.\UserIgor\XOP_Ced\FPulseCed\Cfs.c
.\UserIgor\XOP_Ced\FPulseCed\Use1401.h
.\UserIgor\XOP_Ced\FPulseCed\MACHINE.H
```
So from a technical reason you might not need them. But you might need them for legal reasons, or in case we are now allowed to redistribute them.
* Download, and install [1401 Windows Installer](http://ced.co.uk/files/winsupp.exe) in the default location (C:\1401\), and extract C:\1401\utils\Use1432.dll these files
* Download and install [Installer of MC700B](http://axograph.com/installers/MultiClamp_2_1_0_16.exe), in the default location (C:\Program Files (x86)\Molecular Devices\MultiClamp 700B Commander), and extract AxMultiClampMsg.dll from
# Contact
In case of questions concerning FPulse, you can contact any of these:
......
This diff is collapsed.
......@@ -179,6 +179,7 @@
<ClInclude Include="..\Cfs.h" />
<ClInclude Include="..\Machine.h" />
<ClInclude Include="..\Use1401.h" />
<ClInclude Include="..\use14_ioc.h" />
<ClInclude Include="FPulseCed.h" />
<ClInclude Include="XopMain.h" />
</ItemGroup>
......@@ -186,12 +187,12 @@
<ClCompile Include="..\Cfs.c" />
<ClCompile Include="..\FPulseCed.c" />
<ClCompile Include="..\FPulseCfs.c" />
<ClCompile Include="..\use1401.c" />
<ClCompile Include="..\XopMain.c" />
</ItemGroup>
<ItemGroup>
<Library Include="..\..\..\..\..\XOP Toolkit 6\IgorXOPs6\XOPSupport\IGOR.lib" />
<Library Include="..\..\..\..\..\XOP Toolkit 6\IgorXOPs6\XOPSupport\VC2015\XOPSupport.lib" />
<Library Include="..\Use1432.lib" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
......
......@@ -11,10 +11,10 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="FPulseCed.rc">
<ResourceCompile Include="..\FPulseCedWinCustom.rc">
<Filter>Source Files</Filter>
</ResourceCompile>
<ResourceCompile Include="..\FPulseCedWinCustom.rc">
<ResourceCompile Include="FPulseCed.rc">
<Filter>Source Files</Filter>
</ResourceCompile>
</ItemGroup>
......@@ -34,6 +34,9 @@
<ClInclude Include="..\Cfs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\use14_ioc.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\FPulseCed.c">
......@@ -48,10 +51,12 @@
<ClCompile Include="..\Cfs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\use1401.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Library Include="..\..\..\..\..\XOP Toolkit 6\IgorXOPs6\XOPSupport\IGOR.lib" />
<Library Include="..\..\..\..\..\XOP Toolkit 6\IgorXOPs6\XOPSupport\VC2015\XOPSupport.lib" />
<Library Include="..\Use1432.lib" />
</ItemGroup>
</Project>
\ No newline at end of file
This diff is collapsed.
/* use14_ioc.h
** definitions of use1401 module stuff that is shared between use1401 and the driver.
** Copyright (C) Cambridge Electronic Design Limited 2010
** Author Greg P Smith
************************************************************************************/
#ifndef __USE14_IOC_H__
#define __USE14_IOC_H__
#define MAX_TRANSAREAS 8 /* The number of transfer areas supported by driver */
#define i386
#include "winioctl.h" /* needed so we can access driver */
/*
** Defines for IOCTL functions to ask driver to perform. These must be matched
** in both use1401 and in the driver. The IOCTL code contains a command
** identifier, plus other information about the device, the type of access
** with which the file must have been opened, and the type of buffering.
** The IOCTL function codes from 0x80 to 0xFF are for developer use.
*/
#define FILE_DEVICE_CED1401 0x8001
#define FNNUMBASE 0x800
#define U14_OPEN1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_CLOSE1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+1, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_SENDSTRING CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+2, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_RESET1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+3, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETCHAR CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+4, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_SENDCHAR CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+5, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_STAT1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+6, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_LINECOUNT CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+7, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETSTRING CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+8, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_REGCALLBACK CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+9, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETMONITORBUF CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+10, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_SETTRANSFER CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+11, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_UNSETTRANSFER CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+12, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_SETTRANSEVENT CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+13, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETOUTBUFSPACE CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+14, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETBASEADDRESS CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+15, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETDRIVERREVISION CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+16, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETTRANSFER CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+17, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_KILLIO1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+18, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_BLKTRANSSTATE CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+19, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_BYTECOUNT CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+20, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_ZEROBLOCKCOUNT CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+21, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_STOPCIRCULAR CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+22, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_STATEOF1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+23, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_REGISTERS1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+24, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GRAB1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+25, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_FREE1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+26, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_STEP1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+27, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_SET1401REGISTERS CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+28, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_STEPTILL1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+29, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_SETORIN CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+30, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_STARTSELFTEST CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+31, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_CHECKSELFTEST CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+32, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_TYPEOF1401 CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+33, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_TRANSFERFLAGS CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+34, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_DBGPEEK CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+35, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_DBGPOKE CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+36, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_DBGRAMPDATA CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+37, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_DBGRAMPADDR CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+38, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_DBGGETDATA CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+39, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_DBGSTOPLOOP CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+40, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_FULLRESET CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+41, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_SETCIRCULAR CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+42, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_GETCIRCBLK CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+43, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define U14_FREECIRCBLK CTL_CODE( FILE_DEVICE_CED1401, \
FNNUMBASE+44, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
//--------------- Structures that are shared with the driver -------------
#pragma pack(1)
typedef struct /* used for get/set standard 1401 registers */
{
short sPC;
char A;
char X;
char Y;
char stat;
char rubbish;
} T1401REGISTERS;
typedef union /* to communicate with 1401 driver status & control funcs */
{
char chrs[22];
short ints[11];
long longs[5];
T1401REGISTERS registers;
} TCSBLOCK;
typedef TCSBLOCK* LPTCSBLOCK;
typedef struct paramBlk
{
short sState;
TCSBLOCK csBlock;
} PARAMBLK;
typedef PARAMBLK* PPARAMBLK;
typedef struct TransferDesc /* Structure and type for SetTransArea */
{
WORD wArea; /* number of transfer area to set up */
void FAR * lpvBuff; /* address of transfer area */
DWORD dwLength; /* length of area to set up */
short eSize; /* size to move (for swapping on MAC) */
} TRANSFERDESC;
typedef TRANSFERDESC FAR * LPTRANSFERDESC;
/* This is the structure used to set up a transfer area */
typedef struct VXTransferDesc /* use1401.c and use1432x.x use only */
{
WORD wArea; /* number of transfer area to set up */
WORD wAddrSel; /* 16 bit selector for area */
DWORD dwAddrOfs; /* 32 bit offset for area start */
DWORD dwLength; /* length of area to set up */
} VXTRANSFERDESC;
#pragma pack()
#endif
\ No newline at end of file
......@@ -61,7 +61,8 @@ GOTO INSTALL
ECHO === Install DLLs and remove CFS32.dll, (need elevated permissions) ===
del /Q C:\Windows\SysWOW64\CFS32.dll
copy %SRCDIR%UserIgor\XOP_Dll\Use1432.dll C:\Windows\SysWOW64\
del /Q C:\Windows\SysWOW64\Use1432.dll
REM copy %SRCDIR%UserIgor\XOP_Dll\Use1432.dll C:\Windows\SysWOW64\
copy %SRCDIR%UserIgor\XOP_Dll\AxMultiClampMsg.dll C:\Windows\SysWOW64\
ECHO === Create Links for Igor ===
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment