/wavejet/trunk/wavejet.prj |
---|
0,0 → 1,459 |
[Project Header] |
Version = 1301 |
Pathname = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet.prj" |
CVI Dir = "/c/program files (x86)/national instruments/cvi2013" |
CVI Shared Dir = "/C/Program Files (x86)/National Instruments/Shared/CVI" |
CVI Pub Local Dir = "/C/ProgramData/National Instruments/CVI2013" |
CVI Pub Global Dir = "/C/ProgramData/National Instruments/CVI" |
IVI Standard Root Dir = "/C/Program Files (x86)/IVI Foundation/IVI" |
VXIplug&play Framework Dir = "/C/Program Files (x86)/IVI Foundation/VISA/winnt" |
IVI Standard Root 64-bit Dir = "/C/Program Files/IVI Foundation/IVI" |
VXIplug&play Framework 64-bit Dir = "/C/Program Files/IVI Foundation/VISA/win64" |
Number of Files = 5 |
Target Type = "Executable" |
Flags = 16 |
Copied From Locked InstrDrv Directory = False |
Copied from VXIPNP Directory = False |
Locked InstrDrv Name = "" |
Don't Display Deploy InstrDrv Dialog = False |
[Folders] |
Instrument Files Folder Not Added Yet = True |
Folder 0 = "Source Files" |
FolderEx 0 = "Source Files" |
Folder 1 = "Include Files" |
FolderEx 1 = "Include Files" |
Folder 2 = "User Interface Files" |
FolderEx 2 = "User Interface Files" |
Folder 3 = "Library Files" |
FolderEx 3 = "Library Files" |
[File 0001] |
File Type = "CSource" |
Res Id = 1 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "lecroy_tcp.c" |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/lecroy_tcp.c" |
Exclude = False |
Compile Into Object File = False |
Project Flags = 0 |
Folder = "Source Files" |
Folder Id = 0 |
[File 0002] |
File Type = "CSource" |
Res Id = 2 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "wavejet.c" |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet.c" |
Exclude = False |
Compile Into Object File = False |
Project Flags = 0 |
Folder = "Source Files" |
Folder Id = 0 |
[File 0003] |
File Type = "Include" |
Res Id = 3 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "lecroy_tcp.h" |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/lecroy_tcp.h" |
Exclude = False |
Project Flags = 0 |
Folder = "Include Files" |
Folder Id = 1 |
[File 0004] |
File Type = "User Interface Resource" |
Res Id = 4 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "wavejet_ui.uir" |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet_ui.uir" |
Exclude = False |
Project Flags = 0 |
Folder = "User Interface Files" |
Folder Id = 2 |
[File 0005] |
File Type = "Library" |
Res Id = 5 |
Path Is Rel = True |
Path Rel To = "CVI" |
Path Rel To Override = "CVI" |
Path Rel Path = "sdk/lib/msvc/WS2_32.Lib" |
Path = "/c/Program Files (x86)/National Instruments/CVI2013/sdk/lib/msvc/WS2_32.Lib" |
Exclude = False |
Project Flags = 0 |
Folder = "Library Files" |
Folder Id = 3 |
[Custom Build Configs] |
Num Custom Build Configs = 0 |
[Default Build Config Debug] |
Config Name = "Debug" |
Is 64-Bit = False |
Is Release = False |
Default Calling Convention = "cdecl" |
Optimization Level = "No optimizations" |
Require Prototypes = True |
Show Warning IDs in Build Output = False |
Selected Warning Level = "None" |
Warning List None = "4,9,84,105,106,107,108,109,110" |
Warning List Common = "" |
Warning List Extended = "" |
Warning List All = "" |
Warning Mode = 0 |
Enable Unreferenced Identifiers Warning = False |
Enable Pointer Mismatch Warning = False |
Enable Unreachable Code Warning = False |
Enable Assignment In Conditional Warning = False |
Uninitialized Locals Compile Warning = "Aggressive" |
Require Return Values = True |
Enable C99 Extensions = False |
Enable OpenMP Extensions = False |
Stack Size = 250000 |
Stack Reserve = 1048576 |
Stack Commit = 4096 |
Image Base Address = 4194304 |
Image Base Address x64 = 4194304 |
Compiler Defines = "/DWIN32_LEAN_AND_MEAN" |
Sign = False |
Sign Store = "" |
Sign Certificate = "" |
Sign Timestamp URL = "" |
Sign URL = "" |
Manifest Embed = False |
Icon File Is Rel = False |
Icon File = "" |
Application Title = "" |
Use IVI Subdirectories for Import Libraries = False |
Use VXIPNP Subdirectories for Import Libraries = False |
Use Dflt Import Lib Base Name = True |
Where to Copy DLL = "Do not copy" |
Custom Directory to Copy DLL Is Rel = False |
Custom Directory to Copy DLL = "" |
Generate Source Documentation = "None" |
Runtime Support = "Full Runtime Support" |
Runtime Binding = "Shared" |
Embed Project .UIRs = False |
Generate Map File = False |
Embed Timestamp = True |
Create Console Application = False |
Using LoadExternalModule = True |
DLL Exports = "Include File Symbols" |
Register ActiveX Server = False |
Numeric File Version = "1,0,0,0" |
Numeric Prod Version = "1,0,0,0" |
Comments = "" |
Comments Ex = "" |
Company Name = "" |
Company Name Ex = "%company" |
File Description = "wavejet_dbg (Debug x86)" |
File Description Ex = "%application (%rel_dbg %arch)" |
File Version = "1.0" |
File Version Ex = "%f1.%f2" |
Internal Name = "wavejet_dbg" |
Internal Name Ex = "%basename" |
Legal Copyright = "Copyright © 2014" |
Legal Copyright Ex = "Copyright © %company %Y" |
Legal Trademarks = "" |
Legal Trademarks Ex = "" |
Original Filename = "wavejet_dbg.exe" |
Original Filename Ex = "%filename" |
Private Build = "" |
Private Build Ex = "" |
Product Name = " wavejet_dbg" |
Product Name Ex = "%company %application" |
Product Version = "1.0" |
Product Version Ex = "%p1.%p2" |
Special Build = "" |
Special Build Ex = "" |
Add Type Lib To DLL = False |
Include Type Lib Help Links = False |
TLB Help Style = "HLP" |
Type Lib FP File Is Rel = False |
Type Lib FP File = "" |
[Default Build Config Release] |
Config Name = "Release" |
Is 64-Bit = False |
Is Release = True |
Default Calling Convention = "cdecl" |
Optimization Level = "No optimizations" |
Require Prototypes = True |
Show Warning IDs in Build Output = False |
Selected Warning Level = "None" |
Warning List None = "4,9,84,105,106,107,108,109,110" |
Warning List Common = "" |
Warning List Extended = "" |
Warning List All = "" |
Warning Mode = 0 |
Enable Unreferenced Identifiers Warning = False |
Enable Pointer Mismatch Warning = False |
Enable Unreachable Code Warning = False |
Enable Assignment In Conditional Warning = False |
Uninitialized Locals Compile Warning = "Aggressive" |
Require Return Values = True |
Enable C99 Extensions = False |
Enable OpenMP Extensions = False |
Stack Size = 250000 |
Stack Reserve = 1048576 |
Stack Commit = 4096 |
Image Base Address = 4194304 |
Image Base Address x64 = 4194304 |
Compiler Defines = "/DWIN32_LEAN_AND_MEAN" |
Sign = False |
Sign Store = "" |
Sign Certificate = "" |
Sign Timestamp URL = "" |
Sign URL = "" |
Manifest Embed = False |
Icon File Is Rel = False |
Icon File = "" |
Application Title = "" |
Use IVI Subdirectories for Import Libraries = False |
Use VXIPNP Subdirectories for Import Libraries = False |
Use Dflt Import Lib Base Name = True |
Where to Copy DLL = "Do not copy" |
Custom Directory to Copy DLL Is Rel = False |
Custom Directory to Copy DLL = "" |
Generate Source Documentation = "None" |
Runtime Support = "Full Runtime Support" |
Runtime Binding = "Shared" |
Embed Project .UIRs = False |
Generate Map File = False |
Embed Timestamp = True |
Create Console Application = False |
Using LoadExternalModule = True |
DLL Exports = "Include File Symbols" |
Register ActiveX Server = False |
Add Type Lib To DLL = False |
Include Type Lib Help Links = False |
TLB Help Style = "HLP" |
Type Lib FP File Is Rel = False |
Type Lib FP File = "" |
[Default Build Config Debug64] |
Config Name = "Debug64" |
Is 64-Bit = True |
Is Release = False |
Default Calling Convention = "cdecl" |
Optimization Level = "No optimizations" |
Require Prototypes = True |
Show Warning IDs in Build Output = False |
Selected Warning Level = "None" |
Warning List None = "4,9,84,105,106,107,108,109,110" |
Warning List Common = "" |
Warning List Extended = "" |
Warning List All = "" |
Warning Mode = 0 |
Enable Unreferenced Identifiers Warning = False |
Enable Pointer Mismatch Warning = False |
Enable Unreachable Code Warning = False |
Enable Assignment In Conditional Warning = False |
Uninitialized Locals Compile Warning = "Aggressive" |
Require Return Values = True |
Enable C99 Extensions = False |
Enable OpenMP Extensions = False |
Stack Size = 250000 |
Stack Reserve = 1048576 |
Stack Commit = 4096 |
Image Base Address = 4194304 |
Image Base Address x64 = 4194304 |
Compiler Defines = "/DWIN32_LEAN_AND_MEAN" |
Sign = False |
Sign Store = "" |
Sign Certificate = "" |
Sign Timestamp URL = "" |
Sign URL = "" |
Manifest Embed = False |
Icon File Is Rel = False |
Icon File = "" |
Application Title = "" |
Use IVI Subdirectories for Import Libraries = False |
Use VXIPNP Subdirectories for Import Libraries = False |
Use Dflt Import Lib Base Name = True |
Where to Copy DLL = "Do not copy" |
Custom Directory to Copy DLL Is Rel = False |
Custom Directory to Copy DLL = "" |
Generate Source Documentation = "None" |
Runtime Support = "Full Runtime Support" |
Runtime Binding = "Shared" |
Embed Project .UIRs = False |
Generate Map File = False |
Embed Timestamp = True |
Create Console Application = False |
Using LoadExternalModule = True |
DLL Exports = "Include File Symbols" |
Register ActiveX Server = False |
Add Type Lib To DLL = False |
Include Type Lib Help Links = False |
TLB Help Style = "HLP" |
Type Lib FP File Is Rel = False |
Type Lib FP File = "" |
[Default Build Config Release64] |
Config Name = "Release64" |
Is 64-Bit = True |
Is Release = True |
Default Calling Convention = "cdecl" |
Optimization Level = "No optimizations" |
Require Prototypes = True |
Show Warning IDs in Build Output = False |
Selected Warning Level = "None" |
Warning List None = "4,9,84,105,106,107,108,109,110" |
Warning List Common = "" |
Warning List Extended = "" |
Warning List All = "" |
Warning Mode = 0 |
Enable Unreferenced Identifiers Warning = False |
Enable Pointer Mismatch Warning = False |
Enable Unreachable Code Warning = False |
Enable Assignment In Conditional Warning = False |
Uninitialized Locals Compile Warning = "Aggressive" |
Require Return Values = True |
Enable C99 Extensions = False |
Enable OpenMP Extensions = False |
Stack Size = 250000 |
Stack Reserve = 1048576 |
Stack Commit = 4096 |
Image Base Address = 4194304 |
Image Base Address x64 = 4194304 |
Compiler Defines = "/DWIN32_LEAN_AND_MEAN" |
Sign = False |
Sign Store = "" |
Sign Certificate = "" |
Sign Timestamp URL = "" |
Sign URL = "" |
Manifest Embed = False |
Icon File Is Rel = False |
Icon File = "" |
Application Title = "" |
Use IVI Subdirectories for Import Libraries = False |
Use VXIPNP Subdirectories for Import Libraries = False |
Use Dflt Import Lib Base Name = True |
Where to Copy DLL = "Do not copy" |
Custom Directory to Copy DLL Is Rel = False |
Custom Directory to Copy DLL = "" |
Generate Source Documentation = "None" |
Runtime Support = "Full Runtime Support" |
Runtime Binding = "Shared" |
Embed Project .UIRs = False |
Generate Map File = False |
Embed Timestamp = True |
Create Console Application = False |
Using LoadExternalModule = True |
DLL Exports = "Include File Symbols" |
Register ActiveX Server = False |
Add Type Lib To DLL = False |
Include Type Lib Help Links = False |
TLB Help Style = "HLP" |
Type Lib FP File Is Rel = False |
Type Lib FP File = "" |
[Compiler Options] |
Default Calling Convention = "cdecl" |
Require Prototypes = True |
Require Return Values = True |
Enable Pointer Mismatch Warning = False |
Enable Unreachable Code Warning = False |
Enable Unreferenced Identifiers Warning = False |
Enable Assignment In Conditional Warning = False |
O Option Compatible With 5.0 = False |
Enable C99 Extensions = False |
Uninitialized Locals Compile Warning = "Conservative" |
Precompile Prefix Header = False |
Prefix Header File = "" |
[Run Options] |
Stack Size = 250000 |
Stack Commit = 4096 |
Image Base Address = 4194304 |
Image Base Address x64 = 4194304 |
[Compiler Defines] |
Compiler Defines = "/DWIN32_LEAN_AND_MEAN" |
[Create Executable] |
Executable File_Debug Is Rel = True |
Executable File_Debug Rel To = "Project" |
Executable File_Debug Rel Path = "wavejet_dbg.exe" |
Executable File_Debug = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet_dbg.exe" |
Executable File_Release Is Rel = True |
Executable File_Release Rel To = "Project" |
Executable File_Release Rel Path = "wavejet.exe" |
Executable File_Release = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet.exe" |
Executable File_Debug64 Is Rel = True |
Executable File_Debug64 Rel To = "Project" |
Executable File_Debug64 Rel Path = "wavejet.exe" |
Executable File_Debug64 = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet.exe" |
Executable File_Release64 Is Rel = True |
Executable File_Release64 Rel To = "Project" |
Executable File_Release64 Rel Path = "wavejet.exe" |
Executable File_Release64 = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet.exe" |
Icon File Is Rel = False |
Icon File = "" |
Application Title = "" |
DLL Exports = "Include File Symbols" |
Use IVI Subdirectories for Import Libraries = False |
Use VXIPNP Subdirectories for Import Libraries = False |
Use Dflt Import Lib Base Name = True |
Where to Copy DLL = "Do not copy" |
Custom Directory to Copy DLL Is Rel = False |
Custom Directory to Copy DLL = "" |
Generate Source Documentation = "None" |
Add Type Lib To DLL = False |
Include Type Lib Help Links = False |
TLB Help Style = "HLP" |
Type Lib FP File Is Rel = False |
Type Lib FP File = "" |
Type Lib Guid = "" |
Runtime Support = "Full Runtime Support" |
Instrument Driver Support Only = False |
Embed Project .UIRs = False |
Generate Map File = False |
[External Compiler Support] |
UIR Callbacks File Option = 0 |
Using LoadExternalModule = False |
Create Project Symbols File = True |
UIR Callbacks Obj File Is Rel = False |
UIR Callbacks Obj File = "" |
Project Symbols H File Is Rel = False |
Project Symbols H File = "" |
Project Symbols Obj File Is Rel = False |
Project Symbols Obj File = "" |
[ActiveX Server Options] |
Specification File Is Rel = False |
Specification File = "" |
Source File Is Rel = False |
Source File = "" |
Include File Is Rel = False |
Include File = "" |
IDL File Is Rel = False |
IDL File = "" |
Register ActiveX Server = False |
[Signing Info] |
Sign = False |
Sign Debug Build = False |
Store = "" |
Certificate = "" |
Timestamp URL = "" |
URL = "" |
[Manifest Info] |
Embed = False |
[tpcSection] |
tpcEnabled = 0 |
tpcOverrideEnvironment = 0 |
tpcEnabled x64 = 0 |
tpcOverrideEnvironment x64 = 0 |
/wavejet/trunk/wavejet.cws |
---|
0,0 → 1,183 |
[Workspace Header] |
Version = 1301 |
Pathname = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet.cws" |
CVI Dir = "/c/program files (x86)/national instruments/cvi2013" |
CVI Shared Dir = "/C/Program Files (x86)/National Instruments/Shared/CVI" |
CVI Pub Local Dir = "/C/ProgramData/National Instruments/CVI2013" |
CVI Pub Global Dir = "/C/ProgramData/National Instruments/CVI" |
IVI Standard Root Dir = "/C/Program Files (x86)/IVI Foundation/IVI" |
IVI Standard Root 64-bit Dir = "/C/Program Files/IVI Foundation/IVI" |
VXIplug&play Framework Dir = "/C/Program Files (x86)/IVI Foundation/VISA/winnt" |
VXIplug&play Framework 64-bit Dir = "/C/Program Files/IVI Foundation/VISA/win64" |
Number of Projects = 1 |
Active Project = 1 |
Project 0001 = "wavejet.prj" |
Project 0001 Folder Library Files Collapsed = True |
Project 0001 FolderId 3 Collapsed = True |
Drag Bar Left = 198 |
Window Top = 23 |
Window Left = 7 |
Window Bottom = 761 |
Window Right = 1359 |
Maximized = False |
Maximized Children = True |
Max32 Number Of Errors = 20 |
Track Include File Dependencies = True |
Prompt For Missing Includes = True |
Stop On First Error File = False |
Bring Up Err Win At Start = True |
Bring Up Err Win For Errors = False |
Save Changes Before Running = "Always" |
Save Changes Before Compiling = "Always" |
Hide Windows = False |
Break At First Statement = False |
Sort Type = "File Name" |
Number of Opened Files = 3 |
Window Confinement Region Enabled = True |
MainColumnWidth = 181 |
FileDateColumnWidth = 70 |
FileSizeColumnWidth = 70 |
[Project Header 0001] |
Version = 1301 |
Don't Update DistKit = False |
Platform Code = 4 |
Build Configuration = "Debug" |
Warn User If Debugging Release = 1 |
Batch Build Release = False |
Batch Build Debug = False |
[File 0001] |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet.c" |
File Type = "CSource" |
Disk Date = 3489996894 |
In Projects = "1," |
Window Top = 24 |
Window Left = 8 |
Window Height = -16281 |
Window Z-Order = 2 |
Source Window State = "1,126,127,127,0,0,0,0,3,80,0,0,0,0,0,25,117,0,126,25,349,683,1,0," |
[File 0002] |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/lecroy_tcp.c" |
File Type = "CSource" |
Disk Date = 3452418921 |
In Projects = "1," |
Window Top = 112 |
Window Left = 56 |
Window Height = -16281 |
Window Z-Order = 3 |
Source Window State = "1,0,0,0,0,0,0,0,0,80,0,0,0,0,0,25,0,0,233,28,349,683,1,0," |
[File 0003] |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/wavejet_ui.uir" |
File Type = "User Interface Resource" |
Disk Date = 3489996985 |
In Projects = "1," |
Window Top = 46 |
Window Left = 20 |
Window Height = 349 |
Window Width = 683 |
Window Z-Order = 1 |
[File 0004] |
Path = "/c/SAMO/Programi/NI/cvi/wavejet/lecroy_tcp.h" |
File Type = "Include" |
Disk Date = 3452279829 |
In Projects = "1," |
Source Window State = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0," |
[File 0005] |
Path = "/c/program files (x86)/national instruments/cvi2013/sdk/lib/msvc/WS2_32.Lib" |
File Type = "Library" |
Disk Date = 3472621200 |
In Projects = "1," |
[Default Build Config 0001 Debug] |
Generate Browse Info = True |
Enable Uninitialized Locals Runtime Warning = True |
Batch Build = False |
Profile = "Disabled" |
Debugging Level = "Standard" |
Execution Trace = "Disabled" |
Command Line Args = "" |
Working Directory = "" |
Environment Options = "" |
External Process Path = "" |
[Default Build Config 0001 Release] |
Generate Browse Info = True |
Enable Uninitialized Locals Runtime Warning = True |
Batch Build = False |
Profile = "Disabled" |
Debugging Level = "Standard" |
Execution Trace = "Disabled" |
Command Line Args = "" |
Working Directory = "" |
Environment Options = "" |
External Process Path = "" |
[Default Build Config 0001 Debug64] |
Generate Browse Info = True |
Enable Uninitialized Locals Runtime Warning = True |
Batch Build = False |
Profile = "Disabled" |
Debugging Level = "Standard" |
Execution Trace = "Disabled" |
Command Line Args = "" |
Working Directory = "" |
Environment Options = "" |
External Process Path = "" |
[Default Build Config 0001 Release64] |
Generate Browse Info = True |
Enable Uninitialized Locals Runtime Warning = True |
Batch Build = False |
Profile = "Disabled" |
Debugging Level = "Standard" |
Execution Trace = "Disabled" |
Command Line Args = "" |
Working Directory = "" |
Environment Options = "" |
External Process Path = "" |
[Build Dependencies 0001] |
Number of Dependencies = 0 |
[Build Options 0001] |
Generate Browse Info = True |
Enable Uninitialized Locals Runtime Warning = True |
Execution Trace = "Disabled" |
Profile = "Disabled" |
Debugging Level = "Standard" |
Break On Library Errors = True |
Break On First Chance Exceptions = False |
[Execution Target 0001] |
Execution Target Address = "Local desktop computer" |
Execution Target Port = 0 |
Execution Target Type = 0 |
[SCC Options 0001] |
Use global settings = True |
SCC Provider = "" |
SCC Project = "" |
Local Path = "" |
Auxiliary Path = "" |
Perform Same Action For .h File As For .uir File = "Ask" |
Perform Same Action For .cds File As For .prj File = "Ask" |
Username = "" |
Comment = "" |
Use Default Username = False |
Use Default Comment = False |
Suppress CVI Error Messages = False |
Always show confirmation dialog = True |
[DLL Debugging Support 0001] |
External Process Path = "" |
[Command Line Args 0001] |
Command Line Args = "" |
Working Directory = "" |
Environment Options = "" |
/wavejet/trunk/wavejet_ui.uir |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/wavejet/trunk/lecroy_tcp.c |
---|
0,0 → 1,300 |
/************************************************************************** |
lecroy_tcp.c |
Version 1.00 |
Copyright (C) 2003 Steve D. Sharples |
This program is free software; you can redistribute it and/or |
modify it under the terms of the GNU General Public License |
as published by the Free Software Foundation; either version 2 |
of the License, or (at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
The author's email address is steve.sharples@nottingham.ac.uk |
*************************************************************************** |
Libraries for communicating with a LeCroy scope (and perhaps other things) |
via TCP/IP. Based on "net_con.cpp" by LeCroy, also using bits of code from |
an ariticle in October 2001 issue of "Linux Magazine" see: |
http://www.linux-mag.com/2001-10/compile_01.html |
The original "net_con.cpp" code was Copyright 1998 LeCroy Corporation, and |
written by Ricardo Palacio. This code was passed on to me (Steve |
Sharples) by LeCroy so that I could write drivers to communicate with my |
new LT584L DSO from my Linux machine. LeCroy corporation have agreed to |
allow the release of the UNIX/Linux code (since it is based on their code) |
under the GNU General Public License in the hope that it will be useful |
to others. THEY (LECROY) OBVIOUSLY CANNOT SUPPORT THIS CODE, although if |
I were them I'd be starting to think seriously about supporting the Linux/ |
UNIX architectures. |
See "lecroy_tcp.h" for additional comments and usage |
**************************************************************************/ |
// modified for LabWindows CVI by Samo 23. 5. 2013 |
#include <ansi_c.h> |
#include <stdlib.h> |
#include <winsock2.h> |
#include "lecroy_tcp.h" |
//#define DEBUG |
static WSADATA WSA_data; |
static BOOL LECROY_TCP_connected_flag = FALSE; |
typedef struct { /* defines LeCroy VICP protocol (TCP header) */ |
unsigned char bEOI_Flag; |
unsigned char reserved[3]; |
int iLength; |
} LECROY_TCP_HEADER; |
int LECROY_TCP_write(int sockfd, char *buf) { |
LECROY_TCP_HEADER header; |
int result, bytes_more, bytes_xferd,tmp; |
char *idxPtr; |
BOOL eoi_flag = TRUE; |
int len = strlen(buf); |
if (LECROY_TCP_connected_flag != TRUE) return -1; |
#ifdef DEBUG |
printf("Sending %s\n",buf); |
#endif |
/* set the header info */ |
header.bEOI_Flag = LECROY_DATA_FLAG; |
/* following line retained because the original "write" function |
contained an extra argument of eoi_flag, which I've set to |
be always TRUE */ |
header.bEOI_Flag |= (eoi_flag)? LECROY_EOI_FLAG:0; |
header.reserved[0] = 1; /* see LeCroy documentation about these */ |
header.reserved[1] = 0; |
header.reserved[2] = 0; |
header.iLength = htonl(len); |
/* write the header first */ |
//tmp=write(sockfd, (char *) &header, sizeof(LECROY_TCP_HEADER)); |
tmp=send(sockfd, (char *) &header, sizeof(LECROY_TCP_HEADER),0); |
if (tmp!=sizeof(LECROY_TCP_HEADER)) { |
printf("Could not write the header successfully, returned: %d\n",tmp); |
return -1; |
} |
bytes_more = len; |
idxPtr = buf; |
bytes_xferd = 0; |
while (1) { |
/* then write the rest of the block */ |
idxPtr = buf + bytes_xferd; |
//result=write (sockfd, (char *) idxPtr, bytes_more); |
result=send (sockfd, (char *) idxPtr, bytes_more,0); |
if (result<0) { |
printf("Could not write the rest of the block successfully, returned: %d\n",tmp); |
return -1; |
} |
bytes_xferd += result; |
bytes_more -= result; |
if (bytes_more <= 0) break; |
} |
return 0; |
} |
int LECROY_TCP_read(int sockfd, char *buf, int len, int allowable_time) { |
LECROY_TCP_HEADER header; |
char tmpStr[512]; |
int result, accum, space_left, bytes_more, buf_count; |
char *idxPtr; |
fd_set rfds; |
struct timeval tval; |
tval.tv_sec = allowable_time; |
tval.tv_usec = 0; |
if (LECROY_TCP_connected_flag != TRUE) return -1; |
FD_ZERO(&rfds); |
FD_SET(sockfd, &rfds); |
if (buf==NULL) return -1; |
memset(buf, 0, len); |
buf_count = 0; |
space_left = len; |
while (1) { |
/* block here until data is received of timeout expires */ |
result = select((sockfd+1), &rfds, NULL, NULL, &tval); |
if (result < 0) { |
LECROY_TCP_disconnect(sockfd); |
printf("Read timeout\n"); |
return -1; |
} |
/* get the header info first */ |
accum = 0; |
while (1) { |
memset(&header, 0, sizeof(LECROY_TCP_HEADER)); |
if ((result = recv(sockfd, (char *) &header + accum, sizeof(header) - accum, 0)) < 0) { |
LECROY_TCP_disconnect(sockfd); |
printf("Unable to receive header info from the server.\n"); |
return -1; |
} |
accum += result; |
if (accum>=sizeof(header)) break; |
} |
header.iLength = ntohl(header.iLength); |
if (header.iLength < 1) return 0; |
/* only read to len amount */ |
if (header.iLength > space_left) { |
header.iLength = space_left; |
sprintf(tmpStr, "Read buffer size (%d bytes) is too small\n", len); |
printf(tmpStr); |
} |
/* read the rest of the block */ |
accum = 0; |
while (1) { |
idxPtr = buf + (buf_count + accum); |
bytes_more = header.iLength - accum; |
if ((space_left-accum) < LECROY_TCP_MINIMUM_PACKET_SIZE) { |
LECROY_TCP_disconnect(sockfd); |
printf("Read buffer needs to be adjusted, must be minimum of %d bytes\n", |
LECROY_TCP_MINIMUM_PACKET_SIZE); |
return -1; |
} |
if ((result = recv(sockfd, (char *) idxPtr, (bytes_more>2048)?2048:bytes_more,0)) < 0) { |
LECROY_TCP_disconnect(sockfd); |
printf("Unable to receive data from the server.\n"); |
return -1; |
} |
accum += result; |
if (accum >= header.iLength) break; |
if ((accum + buf_count) >= len) break; |
} |
buf_count += accum; |
space_left -= accum; |
if (header.bEOI_Flag & LECROY_EOI_FLAG) break; |
if (space_left <= 0) break; |
} |
#ifdef DEBUG |
printf("Received %s\n",buf); |
#endif |
return 0; |
} |
int LECROY_TCP_connect(char *ip_address, int allowable_delay) { |
int sockfd; |
int tmp; |
const int disable=1; |
struct sockaddr_in addr; |
/* bomb out if we've already connected. At time of coding, many LeCroy |
instruments (including my own scope) can support only one client at |
a time */ |
if (LECROY_TCP_connected_flag==TRUE) { |
printf("ERROR! lecroy_tcp: LECROY_TCP_connected_flag==TRUE!\n"); |
return -2; |
} |
tmp=WSAStartup(2,&WSA_data); |
if (tmp!=0) { |
printf("ERROR! Socket library ...!\n"); |
return -1; |
} |
//printf("Socket library ...\n"); |
sockfd = socket (PF_INET, SOCK_STREAM, 0); |
/* Clear out the address struct. */ |
/* not sure this is entirely necessary.... */ |
// samo bzero (&addr, sizeof (addr)); |
/* Initialize the values of the address struct including |
port number and IP address. */ |
addr.sin_family = AF_INET; |
addr.sin_port = htons (LECROY_SERVER_PORT); |
addr.sin_addr.s_addr = inet_addr(ip_address); |
/* The following two lines are necessary so that the program doesn't |
hang around waiting forever if the scope is turned off. You'd |
think there would be something you could set in the socket options, |
wouldn't you? Well, there is, but to quote the socket(7) man pages: |
------------------------------------------------------------------------------ |
SOCKET OPTIONS |
SO_RCVTIMEO and SO_SNDTIMEO |
Specify the sending or receiving timeouts until reporting an |
error. They are fixed to a protocol specific setting in Linux |
and cannot be read or written. Their functionality can be emu- |
lated using alarm(2) or setitimer(2). |
------------------------------------------------------------------------------ |
So, a timer is set with alarm(), and SIGALRM is caught by the |
"LECROY_TCP_bored_now(int sig)" function. Upon successful |
connection, however, the alarm is cancelled with "alarm(0)" */ |
// samo signal(SIGALRM,LECROY_TCP_bored_now); |
// samo alarm(allowable_delay); |
/* Connect to the server. */ |
tmp=connect(sockfd, (struct sockaddr *)&addr, sizeof (addr)); |
// samo alarm(0); |
if (tmp<0){ |
tmp=WSACleanup(); |
printf("ERROR! lecroy_tcp: could not connect to the scope!\n"); |
return -1; |
} |
LECROY_TCP_connected_flag=TRUE; |
/* Ok, now we're all connected */ |
/* THE FOLLOWING LINE IS ARCHITECTURE DEPENDENT |
and is not at all necessary to make a connection and may be |
safely removed */ |
LECROY_TCP_write(sockfd,"CORD LO\n"); |
/* It sets the 16-bit word transfer byte order to LSB,MSB (ie native |
Intel format). This makes things easier to interpret, so it's a |
sufficiently-useful thing to add in the connect function. Can be |
commented out obviously. For motorola-based systems, use: |
LECROY_TCP_write(sockfd,"CORD HI\n"); |
Obviously there'll be some way of working out at compile-time, but |
I don't know how! --- sds, 6/5/03 */ |
return sockfd; |
} |
/* |
void LECROY_TCP_bored_now(int sig) { |
printf("Well, I got bored waiting to connect, so I'm going to quit. Bye!\n"); |
exit(1); |
} |
*/ |
int LECROY_TCP_disconnect(int sockfd) { |
if (LECROY_TCP_connected_flag !=TRUE) return -1; |
closesocket(sockfd); |
WSACleanup(); |
LECROY_TCP_connected_flag=FALSE; |
return 0; |
} |
/wavejet/trunk/wavejet.c |
---|
0,0 → 1,303 |
#include <formatio.h> |
#include <userint.h> |
#include <ansi_c.h> |
#include <utility.h> |
#include <tcpsupp.h> |
#include <cvirte.h> |
#include "lecroy_tcp.h" |
#include "wavejet_ui.h" |
//#define SCOPE_IP "192.168.1.11" |
#define MAX_TCP_CONNECT 5 /* time in secs to get a connection */ |
#define MAX_TCP_READ 3 /* time in secs to wait for the DSO |
to respond to a read request */ |
#define MAX_ST 512 /* maximum message string. no picked from thin air */ |
#define MAX_THREADS 10 |
static int sockfd; |
static int p1h, pID, rID, tfID; |
static int poolHandle = 0; |
int CVICALLBACK cb_timer (int panel, int control, int event, void *callbackData, |
int eventData1, int eventData2) |
{ |
QueueUserEvent (9000, p1h, P1_TIMER); |
return (0); |
} |
/* |
int CVICALLBACK daq_run(void *functionData) |
{ |
return (0); |
} |
*/ |
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
LPSTR lpszCmdLine, int nCmdShow) |
{ |
int i; |
int status,connected,displen; |
int refon; |
int tmpindex,tmpint; |
int p1_tra[5]={P1_TRA_1,P1_TRA_2,P1_TRA_3,P1_TRA_4,0}; |
int p1_vdiv[5]={P1_VDIV_1,P1_VDIV_2,P1_VDIV_3,P1_VDIV_4,0}; |
int p1_bwl[5]={P1_BWL_1,P1_BWL_2,P1_BWL_3,P1_BWL_4,0}; |
float tmpfloat; |
char ip_address[50],tmpstr[100]; |
char outbuf[MAX_ST],inbuf[MAX_ST]; |
char display[500000],imgfn[300],ftyp[10]; |
FILE *imgfp; |
connected=0; |
if (InitCVIRTE (hInstance, 0, 0) == 0) |
return -1; /* out of memory */ |
SetSleepPolicy(VAL_SLEEP_MORE); |
CmtNewThreadPool (MAX_THREADS, &poolHandle); |
SetStdioWindowOptions (1000, 0, 0); |
SetStdioWindowSize (150, 600); |
SetStdioWindowPosition (100, 20); |
if ((p1h = LoadPanel (0, "wavejet_ui.uir", P1)) < 0) return -1; |
DisplayPanel (p1h); |
// SetCtrlAttribute (p1h, P1_PLCH, ATTR_MAX_VALUE, NCH-1); |
QueueUserEvent (1000, p1h, P1_IPF); |
do { |
GetUserEvent (1, &pID, &rID); |
switch (rID) { |
case P1_UPDATE: |
if (!connected) break; |
sprintf(outbuf,"TSCRN? BMP\n"); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, display, sizeof(display), MAX_TCP_READ); |
sscanf(display,"# %1d %8d",&status,&displen); |
imgfp = fopen ("tmp.bmp", "wb"); |
status = fwrite (&display[10], 1, displen, imgfp); |
status = fclose (imgfp); |
status = DisplayImageFile (p1h, P1_DISPLAY, "tmp.bmp"); |
break; |
case P1_DSAV: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_DSAV, tmpstr); |
sprintf(ftyp,"*.%s",tmpstr); |
StringLowerCase (ftyp); |
status = FileSelectPopup ("", ftyp, ftyp,"Hard copy", VAL_SAVE_BUTTON, |
0, 1, 1, 1, imgfn); |
if (status<1) break; |
sprintf(outbuf,"TSCRN? %s\n",tmpstr); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, display, sizeof(display), MAX_TCP_READ); |
sscanf(display,"# %1d %8d",&status,&displen); |
imgfp = fopen (imgfn, "wb"); |
status = fwrite (&display[10], 1, displen, imgfp); |
status = fclose (imgfp); |
break; |
case P1_GET_SETUP: |
if (!connected) break; |
break; |
case P1_TIMER: |
//ntics+=1; |
GetCtrlVal (p1h, P1_REFRESH, &refon); |
if (refon) QueueUserEvent (9000, p1h, P1_UPDATE); |
break; |
case P1_REFRESH: |
break; |
/* |
case P1_DAQ: |
GetCtrlVal (p1h, P1_DAQ, &daq_on); |
if (daq_on) { |
CmtScheduleThreadPoolFunction (poolHandle, daq_run, (void *)&dummy, &tfID); |
} else { |
CmtWaitForThreadPoolFunctionCompletion (poolHandle, tfID, |
OPT_TP_PROCESS_EVENTS_WHILE_WAITING); |
CmtReleaseThreadPoolFunctionID (poolHandle, tfID); |
} |
break; |
*/ |
case P1_IPF: |
status = GetCtrlVal (p1h, P1_IPF, ip_address); |
status = SetCtrlVal (p1h, P1_IP, ip_address); |
break; |
case P1_CONNECT: |
if (connected) { |
strcpy(outbuf,"GTL\n"); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_disconnect(sockfd); |
status = SetCtrlVal (p1h, P1_ID, ""); |
connected=0; |
}else{ |
status = GetCtrlVal (p1h, P1_IP, ip_address); |
sockfd=LECROY_TCP_connect(ip_address, MAX_TCP_CONNECT); |
if (sockfd<0) { |
//printf("\nCould not connect to the scope on IP: %s\n",ip_address); |
status = SetCtrlVal (p1h, P1_ID, "Could not connect!"); |
status = SetCtrlVal (p1h, P1_CONNECT, 0); |
break; |
}else{ |
connected=1; |
strcpy(outbuf,"*idn?\n"); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
status = SetCtrlVal (p1h, P1_ID, inbuf); |
for (i=0;i<4;i++) { |
sprintf(outbuf,"C%1d:TRA?\n",i+1); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
if (FindPattern (inbuf, 0, 2, "ON", 1, 0)) { |
status = SetCtrlVal (p1h, p1_tra[i], 0); |
}else{ |
status = SetCtrlVal (p1h, p1_tra[i], 1); |
} |
sprintf(outbuf,"C%1d:VDIV?\n",i+1); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
sscanf(inbuf,"%g",&tmpfloat); |
status = SetCtrlVal (p1h, p1_vdiv[i], tmpfloat); |
sprintf(outbuf,"C%1d:BWL?\n",i+1); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
sscanf(inbuf,"%s",tmpstr); |
status = SetCtrlVal (p1h, p1_bwl[i], tmpstr); |
} |
sprintf(outbuf,"PERS?\n"); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
sscanf(inbuf,"%s",tmpstr); |
status = SetCtrlVal (p1h, P1_PERS, tmpstr); |
sprintf(outbuf,"TSRC?\n"); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
sscanf(inbuf,"%s",tmpstr); |
status = SetCtrlVal (p1h, P1_TSRC, tmpstr); |
sprintf(outbuf,"TSLP?\n"); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
sscanf(inbuf,"%s",tmpstr); |
status = SetCtrlVal (p1h, P1_TSLP, tmpstr); |
} |
} |
break; |
// vertical |
case P1_TRA_1: |
case P1_TRA_2: |
case P1_TRA_3: |
case P1_TRA_4: |
for (i=0;i<4;i++) { |
if (rID==p1_tra[i]) { |
status = GetCtrlVal (p1h, p1_tra[i], &tmpint); |
if (tmpint) { |
sprintf(outbuf,"C%1d:TRA ON\n",i+1); |
}else{ |
sprintf(outbuf,"C%1d:TRA OFF\n",i+1); |
} |
LECROY_TCP_write(sockfd, outbuf); |
} |
} |
break; |
case P1_VDIV_1: |
case P1_VDIV_2: |
case P1_VDIV_3: |
case P1_VDIV_4: |
for (i=0;i<4;i++) { |
if (rID==p1_vdiv[i]) { |
status = GetCtrlVal (p1h, p1_vdiv[i], &tmpfloat); |
sprintf(outbuf,"C%1d:VDIV %.3f\n",i+1,tmpfloat); |
LECROY_TCP_write(sockfd, outbuf); |
} |
} |
break; |
case P1_BWL_1: |
case P1_BWL_2: |
case P1_BWL_3: |
case P1_BWL_4: |
for (i=0;i<4;i++) { |
if (rID==p1_bwl[i]) { |
status = GetCtrlVal (p1h, p1_bwl[i], tmpstr); |
sprintf(outbuf,"C%1d:BWL %s\n",i+1,tmpstr); |
LECROY_TCP_write(sockfd, outbuf); |
} |
} |
break; |
// horizontal |
case P1_TDIV: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_TDIV, tmpstr); |
sprintf(outbuf,"TDIV %s\n",tmpstr); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
case P1_PERS: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_PERS, tmpstr); |
sprintf(outbuf,"PERS %s\n",tmpstr); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
// trigger |
case P1_TLVL: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_TLVL, &tmpfloat); |
sprintf(outbuf,"TLVL %f\n",tmpfloat); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
case P1_TRDL: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_TRDL, &tmpfloat); |
sprintf(outbuf,"TRDL %.2E\n",tmpfloat); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
case P1_TSLP: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_TSLP, tmpstr); |
sprintf(outbuf,"TSLP %s\n",tmpstr); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
case P1_TSRC: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_TSRC, tmpstr); |
sprintf(outbuf,"TSRC %s\n",tmpstr); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
case P1_TRMD: |
if (!connected) break; |
status = GetCtrlVal (p1h, P1_TRMD, tmpstr); |
sprintf(outbuf,"TRMD %s\n",tmpstr); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
case P1_TEST: |
if (!connected) break; |
strcpy(outbuf,"GTL\n"); |
LECROY_TCP_write(sockfd, outbuf); |
break; |
//case P1_GET_SETUP: |
// break; |
default: |
break; |
} |
} while ((rID != P1_EXIT)); |
if (connected) { |
strcpy(outbuf,"GTL\n"); |
LECROY_TCP_write(sockfd, outbuf); |
LECROY_TCP_disconnect(sockfd); |
} |
DiscardPanel (p1h); |
CmtDiscardThreadPool (poolHandle); |
return 0; |
} |
/wavejet/trunk/wavejet_ui.h |
---|
0,0 → 1,75 |
/**************************************************************************/ |
/* LabWindows/CVI User Interface Resource (UIR) Include File */ |
/* Copyright (c) National Instruments 2014. All Rights Reserved. */ |
/* */ |
/* WARNING: Do not add to, delete from, or otherwise modify the contents */ |
/* of this include file. */ |
/**************************************************************************/ |
#include <userint.h> |
#ifdef __cplusplus |
extern "C" { |
#endif |
/* Panels and Controls: */ |
#define P1 1 |
#define P1_EXIT 2 /* control type: command, callback function: (none) */ |
#define P1_UPDATE 3 /* control type: command, callback function: (none) */ |
#define P1_IP 4 /* control type: string, callback function: (none) */ |
#define P1_ID 5 /* control type: string, callback function: (none) */ |
#define P1_GET_SETUP 6 /* control type: command, callback function: (none) */ |
#define P1_REFRESH 7 /* control type: radioButton, callback function: (none) */ |
#define P1_CONNECT 8 /* control type: textButton, callback function: (none) */ |
#define P1_TEST 9 /* control type: command, callback function: (none) */ |
#define P1_TSRC 10 /* control type: ring, callback function: (none) */ |
#define P1_TDIVx 11 /* control type: numeric, callback function: (none) */ |
#define P1_TRDL 12 /* control type: numeric, callback function: (none) */ |
#define P1_OFST_1 13 /* control type: numeric, callback function: (none) */ |
#define P1_TLVL 14 /* control type: numeric, callback function: (none) */ |
#define P1_TDIV 15 /* control type: ring, callback function: (none) */ |
#define P1_TSLP 16 /* control type: slide, callback function: (none) */ |
#define P1_TEXT1 17 /* control type: textBox, callback function: (none) */ |
#define P1_TRMD 18 /* control type: ring, callback function: (none) */ |
#define P1_DSAV 19 /* control type: ring, callback function: (none) */ |
#define P1_PERS 20 /* control type: ring, callback function: (none) */ |
#define P1_TRA_4 21 /* control type: radioButton, callback function: (none) */ |
#define P1_TRA_3 22 /* control type: radioButton, callback function: (none) */ |
#define P1_TRA_2 23 /* control type: radioButton, callback function: (none) */ |
#define P1_TRA_1 24 /* control type: radioButton, callback function: (none) */ |
#define P1_BWL_4 25 /* control type: ring, callback function: (none) */ |
#define P1_BWL_3 26 /* control type: ring, callback function: (none) */ |
#define P1_BWL_2 27 /* control type: ring, callback function: (none) */ |
#define P1_VDIV_4 28 /* control type: ring, callback function: (none) */ |
#define P1_VDIV_3 29 /* control type: ring, callback function: (none) */ |
#define P1_VDIV_2 30 /* control type: ring, callback function: (none) */ |
#define P1_VDIV_1 31 /* control type: ring, callback function: (none) */ |
#define P1_BWL_1 32 /* control type: ring, callback function: (none) */ |
#define P1_IPF 33 /* control type: ring, callback function: (none) */ |
#define P1_DISPLAY 34 /* control type: picture, callback function: (none) */ |
#define P1_DEC1 35 /* control type: deco, callback function: (none) */ |
#define P1_TIMER 36 /* control type: timer, callback function: cb_timer */ |
#define P1_DECO_VERT 37 /* control type: deco, callback function: (none) */ |
#define P1_DECO_TRIG 38 /* control type: deco, callback function: (none) */ |
#define P1_DECO_HOR 39 /* control type: deco, callback function: (none) */ |
/* Control Arrays: */ |
/* (no control arrays in the resource file) */ |
/* Menu Bars, Menus, and Menu Items: */ |
/* (no menu bars in the resource file) */ |
/* Callback Prototypes: */ |
int CVICALLBACK cb_timer(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
#ifdef __cplusplus |
} |
#endif |
/wavejet/trunk/lecroy_example.c |
---|
0,0 → 1,76 |
/************************************************************************** |
lecroy_example.c |
Version 1.00 |
Copyright (C) 2003 Steve D. Sharples |
This program is free software; you can redistribute it and/or |
modify it under the terms of the GNU General Public License |
as published by the Free Software Foundation; either version 2 |
of the License, or (at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
The author's email address is steve.sharples@nottingham.ac.uk |
*************************************************************************** |
Example program that demonstrates communication via TCP/IP with an ethernet- |
enabled LeCroy DSO. Based on the main() function of "net_con.cpp" written |
by LeCroy. |
See "lecroy_tcp.c" and "lecroy_tcp.h" for additional comments and usage |
**************************************************************************/ |
#include "lecroy_tcp.h" |
#include <stdio.h> |
#include <string.h> |
using namespace std; |
#define MAX_ST 512 /* maximum message string. no picked from thin air */ |
int main () |
{ |
char ip_address[50]; |
int sockfd; |
char outbuf[MAX_ST]; |
char inbuf[MAX_ST]; |
float fvalue; |
int ivalue; |
/* OUR_SCOPE_IP is #define'd in lecroy_tcp.h, so is MAX_TCP_CONNECT */ |
sprintf(ip_address, OUR_SCOPE_IP); |
printf("\nlecroy_example: about to connect to DSO...\n"); |
/* how to "set up the scope for ethernet communication" */ |
sockfd=LECROY_TCP_connect(ip_address, MAX_TCP_CONNECT); |
if (sockfd<0) { |
printf("\nCould not connect to the scope on IP: %s\n",ip_address); |
return 1; |
} |
printf("....connected.\n"); |
/* example of writing to the scope) */ |
strcpy(outbuf,"*idn?\n"); |
LECROY_TCP_write(sockfd, outbuf); |
printf ("Request to scope:\n%s\n", outbuf); |
/* example of getting the raw data back from the scope */ |
LECROY_TCP_read(sockfd, inbuf, sizeof(inbuf), MAX_TCP_READ); |
printf ("Scope returned:\n%s\n", inbuf); |
LECROY_TCP_disconnect(sockfd); |
printf("Successfully disconnected... bye!\n"); |
return 0; |
} |
/wavejet/trunk/lecroy_tcp.h |
---|
0,0 → 1,52 |
/************************************************************************** |
lecroy_tcp.h |
Version 1.00 |
Copyright (C) 2003 Steve D. Sharples |
Based on "net_con.h" by LeCroy |
See "lecroy_tcp.c" for additional comments and usage |
This program is free software; you can redistribute it and/or |
modify it under the terms of the GNU General Public License |
as published by the Free Software Foundation; either version 2 |
of the License, or (at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
The author's email address is steve.sharples@nottingham.ac.uk |
**************************************************************************/ |
/* stick your own I.P. address here. Of course, you don't have to use |
this constant, it's just handy */ |
//#define OUR_SCOPE_IP "172.25.1.2" |
#define LECROY_SERVER_PORT 1861 /* as defined by LeCroy */ |
#define CMD_BUF_LEN 8192 |
#define BOOL int |
#define TRUE 1 |
#define FALSE 0 |
//void LECROY_TCP_bored_now(int); /* catch signal routine */ |
int LECROY_TCP_write(int, char *); |
int LECROY_TCP_read(int, char *, int, int); |
int LECROY_TCP_connect(char *, int); |
int LECROY_TCP_disconnect(int); |
#define LECROY_EOI_FLAG 0x01 |
#define LECROY_SRQ_FLAG 0x08 |
#define LECROY_CLEAR_FLAG 0x10 |
#define LECROY_LOCKOUT_FLAG 0x20 |
#define LECROY_REMOTE_FLAG 0x40 |
#define LECROY_DATA_FLAG 0x80 |
#define LECROY_READ_TIME_OUT 10 |
#define LECROY_TCP_MINIMUM_PACKET_SIZE 64 |
/wavejet/trunk/wj300a-rcm-e.pdf |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |