- •Important Information
- •Warranty
- •Copyright
- •Trademarks
- •Organization of This Manual
- •Conventions Used in This Manual
- •Related Documentation
- •Customer Communication
- •Introduction
- •Classes of External Code
- •Supported Languages
- •Macintosh
- •Microsoft Windows 3.1
- •Microsoft Windows 95 and Windows NT
- •Solaris
- •Steps for Creating a CIN
- •1. Place the CIN on a Block Diagram
- •2. Add Input and Output Terminals to the CIN
- •Input-Output Terminals
- •Output-Only Terminals
- •3. Wire the Inputs and Outputs to the CIN
- •4. Create .c File
- •Special Macintosh Considerations
- •5. Compile the CIN Source Code
- •Macintosh
- •THINK C for 68K (Versions 5-7)
- •Symantec C++ 8.0 for Power Macintosh
- •Metrowerks CodeWarrior for 68K
- •Metrowerks CodeWarrior for Power Macintosh
- •Microsoft Windows 3.x
- •Watcom C Compiler
- •Microsoft Windows 95 and Windows NT
- •Microsoft SDK C/C++ Compiler
- •Visual C++ for Windows 95 or Windows NT
- •Solaris 1.x
- •Solaris 2.x
- •6. Load the CIN Object Code
- •LabVIEW Manager Routines
- •Online Reference
- •Pointers as Parameters
- •Debugging External Code
- •DbgPrintf
- •Debugging CINs Under Windows 95 and Windows NT
- •Debugging CINs Under Sun or Solaris
- •Debugging CINs Under HP-UX
- •Introduction
- •CIN .c File
- •How LabVIEW Passes Fixed Sized Data to CINs
- •Scalar Numerics
- •Scalar Booleans
- •Refnums
- •Clusters of Scalars
- •Return Value for CIN Routines
- •Examples with Scalars
- •1. Place the CIN on the Block Diagram
- •2. Add Two Input and Output Terminals to the CIN
- •3. Wire the Inputs and Outputs to the CIN
- •4. Create the CIN Source Code
- •5. Compile the CIN Source Code
- •Macintosh
- •THINK C for 68K and Symantec C++
- •Microsoft Windows 3.x
- •Watcom C Compiler
- •Microsoft Windows 95 and Windows NT
- •Microsoft SDK Compiler
- •Microsoft Visual C++ Compiler
- •Solaris 1.x, Solaris 2.x, and HP-UX
- •6. Load the CIN Object Code
- •Comparing Two Numbers, Producing a Boolean Scalar
- •How LabVIEW Passes Variably Sized Data to CINs
- •Alignment Considerations
- •Arrays and Strings
- •Paths (Path)
- •Clusters Containing Variably Sized Data
- •Resizing Arrays and Strings
- •SetCINArraySize
- •NumericArrayResize
- •Examples with Variably Sized Data
- •Concatenating Two Strings
- •Working with Clusters
- •CIN Routines
- •Data Spaces and Code Resources
- •CIN Routines: The Basic Case
- •Loading a VI
- •Unloading a VI
- •Loading a New Resource into the CIN
- •Compiling a VI
- •Running a VI
- •Saving a VI
- •Aborting a VI
- •Multiple References to the Same CIN
- •Reentrancy
- •Code Globals and CIN Data Space Globals
- •Examples
- •Using Code Globals
- •Using CIN Data Space Globals
- •Calling a Windows 3.1 Dynamic Link Library
- •Calling a 16-Bit DLL
- •1. Load the DLL
- •2. Get the address of the desired function
- •3. Describe the function
- •4. Call the function
- •Example: A CIN that Displays a Dialog Box
- •The Block Diagram
- •The CIN Code
- •Compiling the CIN
- •Optimization
- •Introduction
- •Creating Shared External Subroutines
- •External Subroutine
- •Macintosh
- •THINK C Compiler and CodeWarrior 68K Compiler
- •MPW Compiler
- •Solaris 1.x, Solaris 2.x, and HP-UX
- •Calling Code
- •Macintosh
- •THINK C Compiler
- •CodeWarrior 68K Compiler
- •MPW Compiler
- •Solaris 1.x, Solaris 2.x, and HP-UX
- •Simple Example
- •External Subroutine Example
- •Compiling the External Subroutine
- •Macintosh
- •THINK C Compiler and CodeWarrior 68K Compiler
- •MPW Compiler
- •Microsoft Windows 3.1
- •Watcom C Compiler
- •Microsoft Windows 95 and Windows NT
- •Solaris 1.x, Solaris 2.x, and HP-UX
- •Calling Code
- •Compiling the Calling Code
- •Macintosh
- •THINK C Compiler
- •CodeWarrior 68K Compiler
- •MPW Compiler
- •Microsoft Windows 3.1
- •Watcom C Compiler
- •Microsoft Windows 95 and Windows NT
- •Solaris 1.x, Solaris 2.x, and HP-UX
- •Introduction
- •Basic Data Types
- •Scalar Data Types
- •Booleans
- •Numerics
- •Complex Numbers
- •char Data Type
- •Dynamic Data Types
- •Arrays
- •Strings
- •C-Style Strings (CStr)
- •Pascal-Style Strings (PStr)
- •LabVIEW Strings (LStr)
- •Concatenated Pascal String (CPStr)
- •Paths (Path)
- •Memory-Related Types
- •Constants
- •Memory Manager
- •Memory Allocation
- •Static Memory Allocation
- •Dynamic Memory Allocation: Pointers and Handles
- •Memory Zones
- •Using Pointers and Handles
- •Simple Example
- •Reference to the Memory Manager
- •Memory Manager Data Structures
- •File Manager
- •Introduction
- •Identifying Files and Directories
- •Path Specifications
- •Conventional Path Specifications
- •Empty Path Specifications
- •LabVIEW Path Specification
- •File Descriptors
- •File Refnums
- •Support Manager
- •Allocating and Releasing Handles
- •Allocating and Releasing Pointers
- •Manipulating Properties of Handles
- •AZHLock
- •AZHPurge
- •AZHNoPurge
- •AZHUnlock
- •Memory Utilities
- •ClearMem
- •MoveBlock
- •SwapBlock
- •Handle and Pointer Verification
- •Memory Zone Utilities
- •File Manager Data Structures
- •File/Directory Information Record
- •File Type Record
- •Path Data Type
- •Permissions
- •Volume Information Record
- •File Manager Functions
- •Performing Basic File Operations
- •FCreate
- •FCreateAlways
- •FMClose
- •FMOpen
- •FMRead
- •FMWrite
- •Positioning the Current Position Mark
- •FMSeek
- •FMTell
- •Positioning the End-Of-File Mark
- •FGetEOF
- •FSetEOF
- •Flushing File Data to Disk
- •FFlush
- •FExists
- •FGetAccessRights
- •FGetInfo
- •FGetVolInfo
- •FSetAccessRights
- •FSetInfo
- •Getting Default Access Rights Information
- •FGetDefGroup
- •FListDir
- •FNewDir
- •Copying Files
- •FCopy
- •Moving and Deleting Files and Directories
- •FMove
- •FRemove
- •Locking a File Range
- •FLockOrUnlockRange
- •Matching Filenames with Patterns
- •FStrFitsPat
- •Creating Paths
- •FAddPath
- •FAppendName
- •FAppPath
- •FEmptyPath
- •FMakePath
- •FNotAPath
- •FRelPath
- •Disposing Paths
- •FDisposePath
- •Duplicating Paths
- •FPathCpy
- •FPathToPath
- •Extracting Information from a Path
- •FDepth
- •FDirName
- •FName
- •FNamePtr
- •FVolName
- •FArrToPath
- •FFlattenPath
- •FPathToArr
- •FPathToAZString
- •FPathToDSString
- •FStringToPath
- •FTextToPath
- •FUnFlattenPath
- •Comparing Paths
- •FIsAPath
- •FIsAPathOrNotAPath
- •FIsEmptyPath
- •FPathCmp
- •Determining a Path Type
- •FGetPathType
- •FIsAPathOfType
- •FSetPathType
- •Manipulating File Refnums
- •FDisposeRefNum
- •FIsARefNum
- •FNewRefNum
- •FRefNumToFD
- •FRefNumToPath
- •Byte Manipulation Operations
- •Mathematical Operations
- •For THINK C Users
- •RandomGen
- •String Manipulation
- •BlockCmp
- •CPStrCmp
- •CPStrIndex
- •CPStrInsert
- •CPStrRemove
- •CPStrReplace
- •CPStrSize
- •CToPStr
- •HexChar
- •IsAlpha
- •IsDigit
- •IsLower
- •IsUpper
- •LStrCmp
- •LToPStr
- •PPStrCaseCmp
- •PPStrCmp
- •PStrCaseCmp
- •PStrCat
- •PStrCmp
- •PStrCpy
- •PStrNCpy
- •PToCStr
- •PToLStr
- •StrCat
- •StrCmp
- •StrCpy
- •StrLen
- •StrNCaseCmp
- •StrNCmp
- •StrNCpy
- •ToLower
- •ToUpper
- •Utility Functions
- •BinSearch
- •QSort
- •Time Functions
- •ASCIITime
- •DateCString
- •DateToSecs
- •MilliSecs
- •SecsToDate
- •TimeCString
- •TimeInSecs
- •Microsoft Windows 3.1, Windows 95, and Windows NT
- •Macintosh
- •How do I debug my CIN?
- •Can LabVIEW be used to call a DLL in Windows?
- •Glossary
- •Index
Chapter 8 Support Manager Functions
Time Functions
ASCIITime
syntax |
CStr |
ASCIITime(secs); |
ASCIITime returns a pointer to a string representing the date and time of day corresponding to t seconds after January 1, 1904, 12:00 AM, GMT. This function uses the same date format as that returned by the DateCString function using a mode of 2. The date is followed by a space, and the time is in the same format as that returned by the TimeCString function using a mode of 0. As an example, this function might return Tuesday, Dec 22, 1992 5:30. On the SPARCstation, this function accounts for international conventions for representing dates.
Parameter |
Type |
Description |
secs |
uInt32 |
Seconds since the January 1, 1904, 12:00 AM, |
|
|
GMT. |
returns The date and time as a C string.
DateCString
syntax CStr DateCString(secs, fmt);
Note: This function was formerly called DateString.
DateCString returns a pointer to a string representing the date corresponding to t seconds after January 1, 1904, 12:00 AM, GMT. On the SPARCstation, this function accounts for international conventions for representing dates.
Parameter |
Type |
Description |
|
secs |
uInt32 |
Seconds since January 1, 1904, 12:00 AM, GMT. |
|
fmt |
int32 |
Code describing the format for the returned string. |
|
|
|
This parameter determines the format of the |
|
|
|
returned date string and can have the following |
|
|
|
values. |
|
|
|
Fmt |
Meaning |
|
|
0 |
Return the date in short date format, mm/ |
|
|
|
dd/yy, where mm is a number between 1 |
|
|
|
and 12 representing the current month, dd |
|
|
|
is the current day of the month (1 through |
© National Instruments Corporation |
8-27 |
LabVIEW Code Interface Reference Manual |
Chapter 8 Support Manager Functions
31), and yy is the last two digits of the corresponding year. An example is 12/31/ 92.
1Return the date in long date format, dayName, MonthName, DayOfMonth,
LongYear. An example is Thursday, December 31, 1992.
2Return the date in abbreviated date format,
AbbrevDayName, AbbrevMonthName, DayOfMonth, LongYear. An example is Thu, Dec 31, 1992.
returns The date as a C string.
DateToSecs
syntax uInt32 DateToSecs(dateRecordP);
DateToSecs converts from a time described using the DateRec data structure to the number of seconds since January 1, 1904, 12:00 AM, GMT.
Parameter |
Type |
Description |
dateRecordP |
DateRec * |
Pointer to a DateRec structure. DateToSecs |
|
|
stores the converted date in the fields of the date |
|
|
structure referred to by dateRecordP. This data |
|
|
structure is described in the Introduction section of |
|
|
this chapter. |
|
|
See the Pointers as Parameters section of |
|
|
Chapter 1, CIN Overview, for more information |
|
|
about using this parameter. |
returns The corresponding number of seconds since January 1, 1904, 12:00 AM, GMT.
MilliSecs
syntax |
uInt32 |
MilliSecs(); |
returns |
The time since an undefined system time in milliseconds. The actual |
|
|
resolution of this timer is system dependent. |
|
|
|
|
LabVIEW Code Interface Reference Manual |
8-28 |
© National Instruments Corporation |
Chapter 8 Support Manager Functions
SecsToDate
syntax |
void |
SecsToDate(secs, dateRecordP); |
SecsToDate converts the seconds since January 1, 1904, 12:00 AM, GMT into a data structure containing numerical information about the date, including the year (1904 through 2040), the month (1 through 12), the day as it corresponds to the current year (1 through 366), month (1 through 31), and week (1 through 31), hour (0 through 23), the hour (0 through 23), minute (0 through 59), and second (0 through 59) of that day, and a value indicating whether the time specified uses daylight savings time.
Parameter |
Type |
Description |
|
secs |
uInt32 |
Seconds since January 1, 1904, 12:00 AM, GMT. |
|
dateRecordP |
DateRec * |
Pointer to a DateRec structure. SecsToDate |
|
|
|
stores the converted date in the fields of the date |
|
|
|
structure referred to by dateRecordP. This data |
|
|
|
structure is described in the Introduction section of |
|
|
|
this chapter. |
|
|
|
See the Pointers as Parameters section of |
|
|
|
Chapter 1, CIN Overview, for more information |
|
|
|
about using this parameter. |
|
|
|
|
|
TimeCString
syntax CStr TimeCString(secs, fmt);
Note: This function was formerly called TimeString.
TimeCString returns a pointer to a string representing the time of day corresponding to t seconds after January 1, 1904, 12:00 AM, GMT. On the SPARCstation, this function accounts for international conventions for representing dates.
Parameter |
Type |
Description |
secs |
uInt32 |
Seconds since January 1, 1904, 12:00 AM, GMT. |
fmt |
int32 |
Code describing the format for the returned string. |
|
|
The parameter fmt determines the format of the |
|
|
returned time string and can have the following |
|
|
values. |
|
|
Fmt Meaning |
© National Instruments Corporation |
8-29 |
LabVIEW Code Interface Reference Manual |
Chapter 8 Support Manager Functions
0Return the time in the format hh:mm. The first value, hh, represents the hour (0 through 23, with 0 as midnight), and the second value, mm, represents the minute (0 through 59).
1Return the time in the format hh:mm:ss. The first value, hh, represents the hour, the second value, mm, represents the minute (0 through 59), and the third value, ss, represents the second (0 through 59).
returns The time as a C string.
TimeInSecs
syntax |
uInt32 |
TimeInSecs(); |
returns |
The current date and time in seconds relative to January 1, 1904, 12:00 AM, |
|
|
Greenwich mean time (GMT). |
LabVIEW Code Interface Reference Manual |
8-30 |
© National Instruments Corporation |