Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

F OpenInstancesAndFPAs

General Description

Multi API-DLL scans USB ports for connected FPAs listed in the setup file, or input string. When an FPA listed in the setup file is found, the corresponding API-DLL is copied on disk if necessary, and loaded. F Initialization should be called for each FPA after this function succeeds.

IMPORTANT

Do not invoke F Check FPA access after this function has assigned FPAs to USB ports. To check simple communi- cation with FPA, use the F Get FPA SN function.

Syntax

INT_X F_OpenInstancesAndFPAs( char * FileName )

Input

char * FileName : path to setup file, or list of serial numbers.

38

Setup file: Should contain a list of FPA and SN pairs.

FPA-1 20090123

FPA-3 20090234

--or--

FPA-1 20090123

FPA-3 * //any serial number (can only be done at last line)

--INVALID--

FPA-1 * //this line will be read FPA-3 * //this line will be ignored

List of serial numbers: A string with serial numbers, automatically assigned to FPA-1, 2, 3, etc.

input string: "*# 20090123 20090346" translates to:

FPA-1 20090123

FPA-2 20090345

input string: "*# *" translates to:

FPA-1 *

In both cases, for the setup file and the input string, if a specified FPA is missing then it will not affect subsequent entries. Therefore, a setup file with these contents:

...

FPA-1

...

20090123

...

FPA-2

...

20090346

...

FPA-3

...

20090222

...

FPA-4

...

20090245

and with FPA-3 missing (not connected, etc.) will initialize the Multi API-DLL to:

...

FPA-1

...

20090123

...

FPA-2

...

20090346

...

FPA-3

...

empty

...

FPA-4

...

20090245

Output

INT X : number of instances opened successfully

F_CloseInstances_bookmark191_bookmark191F CloseInstances

General Description

All FPAs terminate communication with target devices and close target devices according to con- figuration settings (power setting, adapter line states, etc.). Finally, the USB connections to the FPAs are terminated and API-DLL instances are freed. The Multi API-DLL can now be used to open a new set of FPAs using the function F OpenInstancesAndFPAs.

Syntax

INT_X F_CloseInstances ( void );

Input

none.

Output

INT X : success

TRUE (1)

F_Set_FPA_index_bookmark192_bookmark192F Set FPA index

General Description

Select desired FPA index to perform specific tasks (access specific API-DLL instance).

Syntax

INT_X F_Set_FPA_index ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64, or 0 for all

Output

INT X : success or error

TRUE (1), used FPA index is valid

FPA INVALID NO (-2 or 0xFFFFFFFE) : FPA not opened with F OpenInstancesAndFPAs or index out of range

IMPORTANT

Other functions that try to access FPAs will also return FPA INVALID NO if this function was not called with a proper parameter.

F_Get_FPA_index_bookmark193_bookmark193F Get FPA index

General Description

Get current FPA index.

Syntax

BYTE F_Get_FPA_index( void );

Input

none.

Output

BYTE : current FPA index as entered using F Set FPA index

F_Check_FPA_index_bookmark194_bookmark194F Check FPA index

General Description

Get current FPA index and check if index is valid. A valid index corresponds to an individual FPA that has been opened with F OpenInstancesAndFPAs. If FPA index was set to 0 (all), then this function will only return 0, even if no FPAs are open. Does not indicate whether FPA index is enabled or disabled.

Syntax

...

These functions operate on meta-data within the Multi API-DLL and help manage the underlying API-DLL instances. These functions do not directly program target devices. Use these functions to initialize the desired number of FPAs, selected all or one FPA(s), read FPA serial numbers, or clean-up resources used by Elprotronic’s DLLs.

Once the desired FPAs have been successfully opened, use Generic Functions to initialize the FPAs, and configure them for the target device(s) being programmed.

Table of Contents
minLevel1
maxLevel2

1. F_OpenInstancesAndFPAs
Anchor
F_OpenInstancesAndFPAs
F_OpenInstancesAndFPAs

General Description

Multi API-DLL scans USB ports or LAN for connected FPAs listed in the setup file, or input string. When an FPA listed in the setup file is found, the corresponding API-DLL is copied on disk if necessary, and loaded. F_Initialization should be called for each FPA after this function succeeds.

Syntax

Code Block
languagecpp
INT_X F_OpenInstancesAndFPAs( char * FileName )

Input

char * FileName : path to setup file, or list of serial numbers.

Valid FPAs-setup.ini setup file lists FPAs and SN pairs.

Code Block
FPA-1 20150003
FPA-2 20180134
--or--
FPA-1 20090123
FPA-2 *	//any serial  number  (can  only be  done  at last line)

Valid FPAsIPs.ini, setup file lists FPAs by IP address:

Code Block
FPAETH-IP-1 192.168.0.101
FPAETH-IP-2 192.168.0.102
FPAETH-IP-3 192.168.0.103
FPAETH-IP-4 192.168.0.104

Invalid example:

Code Block
FPA-1 *	//this line will be read
FPA-2 *	//this line will be ignored

Valid list of serial numbers as a string:

Code Block
"*# FPA-1 20090123 FPA-2 20090346"

translates to:

Code Block
FPA-1 20090123
FPA-2 20090346

input string: "*# *" translates to:

Code Block
FPA-1 *

In both cases, for the setup file and the input string, if a specified FPA is missing then it will not
affect subsequent entries. Therefore, a setup file with these contents:

Code Block
FPA-1 20090123
FPA-2 20090346
FPA-3 20090222
FPA-4 20090245

and with FPA-3 missing (not connected, etc.) will initialize the Multi API-DLL to:

Code Block
FPA-1 20090123
FPA-2 20090346
FPA-3 empty
FPA-4 20090245

Output

INT_X : number of instances opened successfully

  • 0 - failed

2. F_CloseInstances

General Description

All FPAs terminate communication with target devices and close target devices according to configuration settings (power setting, adapter line states, etc.). Finally, the USB/Ethernet connections to the FPAs are terminated and API-DLL instances are freed. The Multi API-DLL can now be used to open a new set of FPAs using the function F_OpenInstancesAndFPAs.

Syntax

Code Block
languagecpp
INT_X F_CloseInstances ( void );

Input

none.

Output

INT_X : success or failed

  • TRUE (1) - success

  • FALSE (0) - failed

3. F_Set_FPA_index
Anchor
F_Set_FPA_index
F_Set_FPA_index

General Description

Select desired FPA index to perform specific tasks (access specific API-DLL instance).

Syntax

Code Block
languagecpp
INT_X F_Set_FPA_index ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64, or 0 for all

Output

INT_X : success or error

IMPORTANT

Other functions that try to access this FPA index will also return FPA_INVALID_NO if this function was not called with a proper parameter.

4. F_Get_FPA_index

General Description

Get current FPA index.

Syntax

Code Block
BYTE F_Get_FPA_index( void );

Input

none.

Output

INT X : current fpa index if valid

BYTE : current FPA index as

...

set using F_Set_FPA

...

FPA INVALID NO (-2 or 0xFFFFFFFE) : FPA not opened with F OpenInstancesAndFPAs or index out of range

...

_index

5. F_Check_FPA_index
Anchor
F_Check_FPA_index
F_

...

Check_

...

FPA_index

General Description

...

Get current FPA index

...

and check if index is

...

valid. A

...

Syntax

void F_Enable_FPA_index ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64

Output

none.

F_Disable_FPA_index_bookmark196_bookmark196F Disable FPA index

General Description

...

valid index corresponds to an individual FPA that has been opened with F_OpenInstancesAndFPAs. If FPA index was set to 0 (all), then this function will only return 0, even if no FPAs are open. Does not indicate whether FPA index is enabled or disabled.

Syntax

Code Block
languagecpp
INT_X F_Check_FPA_index ( void );

Input

none.

Output

INT_X : current fpa index if valid

6. F_Enable_FPA_index

General Description

Enable desired FPA index to accept commands. An FPA index is enabled by default. A disabled FPA index will ignore commands when the FPA index is set to it, or 0 (all FPAs).

Syntax

Code Block
void F_
Disable
Enable_FPA_index ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64

Output

none.

7. F_

...

Disable_

...

FPA_

...

index

General Description

Return value from the last function call issued to the specified FPA (API-DLL instance). This function is useful when multiple FPAs are being programmed using FPA index 0 (all), but the return value was not the same for all FPAs (i.e. 4 FPAs succeeded, 1 FPA failed). When the return value is not the same for all FPAs then, then the actual return value from the Multi API- DLL will be FPA UNMATCHED RESULTS. To find out per FPA return values, select each FPA index individually using F Set FPA index, and call F LastStatus for each index.

Syntax

INT_X F_LastStatus ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64.

Output

INT X : Last return value from the selected FPA (API-DLL instance).

INT X type return value from last function call on selected FPA

FPA INVALID NO (-2 or 0xFFFFFFFE) : FPA not opened with F OpenInstancesAndFPAs or index out of range

F_Multi_DLLTypeVer_bookmark198_bookmark198F Multi DLLTypeVer

General Description

Get Multi API-DLL software version number.

Syntax

INT_X F_Multi_DLLTypeVer( void );

Input

none.

Output

INT X : (DLL ID) — (0x0FFF & Version)

  • DLL ID = 0x06000, FlashPro430

  • DLL ID = 0x07000, GangPro430

  • DLL ID = 0x08000, FlashPro-CC

  • DLL ID = 0x09000, GangPro-CC

  • DLL ID = 0x0C000, FlashPro2000

  • DLL ID = 0x0D000, GangPro2000

  • DLL ID = 0x10000, FlashPro-ARM

  • DLL ID = 0x11000, GangPro-ARM

Version = 0x0xyz, version x.yz (i.e. 0x0190 = v 1.90)

FPA INVALID NO (-2 or 0xFFFFFFFE) : FPA not opened with F OpenInstancesAndFPAs or index out of range

F_Get_FPA_SN_bookmark199_bookmark199F Get FPA SN

General Description

Get serial number (SN) of FPA assigned to specified index.

Syntax

INT_X F_Get_FPA_SN ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64

Output

INT X : serial number

SN of selected FPA

FPA INVALID NO (-2 or 0xFFFFFFFE) : FPA not opened with F OpenInstancesAndFPAs or index out of range

F_Get_FPA_Label_bookmark200_bookmark200F Get FPA Label

General Description

Get detailed information of FPA assigned to specified index.

Syntax

INT_X F_Get_FPA_Label ( BYTE fpa, BYTE *label );

Input

BYTE fpa : desired FPA index, 1 to 64.

BYTE *label : pointer to byte array, of at least FPA LABEL SIZE (80 bytes)

Output

INT X : serial number, hardware ID, meta-data

updated FPA LABEL structure pointed to by label input parameter

FPA INVALID NO (-2 or 0xFFFFFFFE) : FPA not opened with F OpenInstancesAndFPAs or index out of range

#define FPA_LABEL_SIZE 80

#define ADAPTER_HARDWARE_PN_SIZE 16

#define ADAPTER_DESCRIPTION_SIZE 32

union FPA_LABEL

{

BYTE bytes[ FPA_LABEL_SIZE ];

struct

{

long SN;

BYTE hardware_ID;

BYTE hardware_SubID;

BYTE full_access;

BYTE Interface_Type;

BYTE Valid_access_key; BYTE spare3;

BYTE spare4; BYTE spare5; BYTE spare6; BYTE spare7; BYTE spare8; BYTE spare9;

char adapter_hardware_PN[ ADAPTER_HARDWARE_PN_SIZE ]; char adapter_description[ ADAPTER_DESCRIPTION_SIZE ];

}x;

};

...

Disable desired FPA index to ignore commands. An FPA index is enabled by default. A disabled FPA index will ignore commands when the FPA index is set to it, or 0 (all FPAs).

Syntax

Code Block
void F_Disable_FPA_index ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64

Output

none.

8. F_LastStatus
Anchor
F_LastStatus
F_LastStatus

General Description

Return value from the last function call issued to the specified FPA (API-DLL instance). This function is useful when multiple FPAs are being programmed using FPA index 0 (all), but the return value was not the same for all FPAs (i.e. 4 FPAs succeeded, 1 FPA failed). When the return value is not the same for all FPAs then, then the actual return value from the Multi API-DLL will be FPA_UNMATCHED_RESULTS. To find out per FPA return values, select each FPA index individually using F_Set_FPA_index, and call F_LastStatus for each index.

Syntax

Code Block
languagecpp
INT_X F_LastStatus  ( BYTE  fpa  );

Input

BYTE fpa : desired FPA index, 1 to 64.

Output

INT_X : Last return value from the selected FPA (API-DLL instance).

9. F_Multi_DLLTypeVer

General Description

Get Multi API-DLL software version number.

Syntax

Code Block
languagecpp
INT_X F_Multi_DLLTypeVer( void );

Input

none.

Output

INT X : (DLL_ID) | (Version)

  • Code Block
    	// return	 Type + Version	
    	//           Type	0x6000 - Multi-FPA FlashPro430
    	//					0x7000 - Multi-FPA GangPro430
    	//					0x8000 - Multi-FPA FlashPro-CC
    	//					0x9000 - Multi-FPA GangPro-CC
    	//					0xC000 - Multi-FPA FlashPro2000
    	//					0xD000 - Multi-FPA GangPro2000
    	//				   0x10000 - Multi-FPA FlashPro-ARM
    	//				   0x11000 - Multi-FPA GangPro-ARM
    	//				   0x17000 - Multi-FPA FlashPro-M
    	//				   0x18000 - Multi-FPA GangPro-M
    	//			 Version = 0x0FFF & version
  • FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range

10. F_Get_FPA_SN

General Description

Get serial number (SN) of FPA assigned to specified index.

Syntax

Code Block
languagecpp
INT_X F_Get_FPA_SN ( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64

Output

INT_X : serial number

11. F_Get_FPA_Label

General Description

Get detailed information of FPA assigned to specified index.

Syntax

Code Block
INT_X F_Get_FPA_Label ( BYTE fpa, BYTE *label );

Input

BYTE fpa : desired FPA index, 1 to 64.

BYTE *label : pointer to instance of FPA_LABEL and bytes array, i.e.

Code Block
FPA_LABEL inst; 
F_Get_FPA_Label(i, inst.bytes); //get label for FPA-i
Code Block
languagecpp
#define ADAPTER_HARDWARE_PN_SIZE		16	
#define ADAPTER_DESCRIPTION_SIZE		32
#define FPA_LABEL_SIZE					((ADAPTER_HARDWARE_PN_SIZE + ADAPTER_DESCRIPTION_SIZE)*sizeof(char) + 12*sizeof(BYTE) + sizeof(long))
union FPA_LABEL
{
	BYTE	bytes[ FPA_LABEL_SIZE ];
	struct
	{
		long  SN;
		BYTE  hardware_ID;
		BYTE  hardware_SubID;
		BYTE  full_access;
		BYTE  Interface_Type;
		BYTE  Valid_access_key;
		BYTE  spare3;
		BYTE  spare4;
		BYTE  spare5;
		BYTE  spare6;
		BYTE  spare7;
		BYTE  spare8;
		BYTE  spare9;
		char  adapter_hardware_PN[ ADAPTER_HARDWARE_PN_SIZE ];
		char  adapter_description[ ADAPTER_DESCRIPTION_SIZE ];
	}x;
};

Output

INT_X : serial number, hardware ID, meta-data

Example of printing FPA_LABEL:

Code Block
languagecpp
std::stringstream msg;
msg << "INIT: " << (i) << ": Get_FPA_Label, SN=" << inst.x.SN << "\r\n";
msg << "INIT:   HW ID=" << (int)inst.x.hardware_ID << ", HW sub-ID=" << (int)inst.x.hardware_SubID << "\r\n";
msg << "INIT:   Full Access=" << (int)inst.x.full_access << ", Interface Type=" << (int)inst.x.Interface_Type << "\r\n";
msg << "INIT:   Access Key=" << (int)inst.x.Valid_access_key << "\r\n";
msg << "INIT:   HW PN=" << inst.x.adapter_hardware_PN << "\r\n";
msg << "INIT:   Adapter Desc=" << inst.x.adapter_description;

12. F_Get_FPA_List

General Description

This function will print the metadata about all avaialble FPAs that are connected to the computer, up to a maximum of 64 adapters.

Syntax

Code Block
languagecpp
INT_X  MSPPRG_API	F_Get_FPA_List( ALL_FPA_LIST * FPA_List );

Input

ALL_FPA_LIST *FPA_List: pointer to array of ALL_FPA_LIST structs, i.e.

Code Block
languagecpp
#define MAX_ID_DESC		 15
#define MAX_ACCESS_DESC	 32
typedef struct
{
	UINT32  active;
	UINT32  SN;
	UINT32  CommType;
	UINT32  HW_ID;
	UINT32  HW_rev;
	char  text[MAX_ID_DESC+1];
	char  access_text[MAX_ACCESS_DESC+1];
} ALL_FPA_LIST;

//i.e.: 
ALL_FPA_LIST FPA_List[MAX_USB_DEV_NUMBER];
//F_Get_FPA_List(FPA_List);
INT_X  MSPPRG_API	F_Get_FPA_List( ALL_FPA_LIST * FPA_List );	// FPA_List -> size MAX_USB_DEV_NUMBER

Output

INT_X : number of active adapters

13. F_GetProgressBar

General Description

Get internal progress counter value for operations done inside Encapsulated Functions

...

. When used in conjunction with F_GetLastOpCode it allows the user application to keep track of progress in the same way that the FlashPro-ARM/GangPro-ARM GUI does.

Will return value between 0 and 100 for current sub-operation being performed inside

...

encapsulated function. Depending on the complexity of the encapsulated function, the number of

...

sub-operations will vary. Use F GetLastOpCode to get currently running sub-operation opcode. When transitioning from one sub-operation that reached a progress value of 100, to another sub-operation, the progress value will restart at 0. This will repeat until the last sub-operation upon which the progress value will remain at 100. A new invocation of an encapsulated function will restart the progress value at 0.

This function is thread-safe, therefore it can be called while the Multi API-DLL is busy, for

...

example running F_AutoProgram. Intended usage is to call an encapsulated function with one thread, and repeatedly call this function and F_GetLastOpCode with another thread. When

...

simultaneously programming using multiple FPAs (fpa index set to 0 (ALL FPAs), the thread monitoring progress can iterate different input parameters (fpa=1, fpa=2, fpa=3, etc.) to monitor the progress of each FPA individually. This function cannot be called with parameter 0 (ALL FPAs).

Syntax

Code Block
languagecpp
INT_X	MSPPRG_API F_GetProgressBar(  BYTE  fpa  );

Input

BYTE fpa : desired FPA index, 1 to 64.

Output

INT_X : progress indicator

...

Example

Refer to https://elprotronic.atlassian.net/wiki/spaces/FPGPARM/pages/57737464/Multi+API-DLL+Functions#F_GetLastOpCode

14. F_GetLastOpCode
Anchor
F_GetLastOpCode

...

F_

...

GetLastOpCode

General Description

Read internal opcode value for sub-operations done inside Encapsulated Functions

...

. When used in conjunction with F_GetProgressBar it allows the user application to keep track of progress in the same way that the FlashPro-ARM/GangPro-ARM GUI does.

Will return opcode for current sub-operation being performed inside encapsulated function. Depending on the complexity of the encapsulated function, the number of sub-operations will vary. Use F_GetProgressBar to get progress value between 0 and 100, of currently running sub-operation. When transitioning from one sub-operation that reached a progress value of 100, to

...

another sub-operation, the progress value will restart at 0 and the opcode will be set to the new sub-operation, currently being run. This will repeat until the last sub-operation upon which the opcode will not change. A new invocation of an encapsulated function will reset the opcode to the first sub-operation of the new encapsulated function.

This function is thread-safe, therefore it can be called while the Multi API-DLL is busy, for

...

example running F_AutoProgram. Intended usage is to call an encapsulated function with one thread, and repeatedly call this function and F_GetProgressBar with another thread. When simultaneously programming using multiple FPAs (fpa index set to 0 (ALL FPAs), the thread monitoring progress can iterate different input parameters (fpa=1, fpa=2, fpa=3, etc.) to monitor the progress of each FPA individually. This function cannot be called with parameter 0 (ALL FPAs).

Syntax

Code Block
languagecpp
INT_X	MSPPRG_API F_GetLastOpCode( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64.

Output

INT_X : opcode of currently running sub-operation

  • PROG_OPCODE_VERIFY_ACCESS (1) : FPA is attempting to perform action described in F_Verify_Access to MCU.

...

  • PROG_OPCODE_FLASH_ERASE (2) : FPA is attempting to perform action described in F_Memory_Erase.

...

  • PROG_OPCODE_FLASH_BLANK_CHECK (3) : FPA is attempting to perform action

...

  • described in F_Memory_Blank_Check.

...

  • PROG_OPCODE_FLASH_SELECTED_BLANK_CHECK (4) : FPA is attempting to perform action described in F_Memory_Blank_Check when a subset of the memory space is selected in configuration settings.

...

  • PROG_OPCODE_FLASH_WRITE (5) : FPA is attempting to perform action described in F_Memory_Write.

...

  • PROG_OPCODE_FLASH_VERIFY (6) : FPA is attempting to perform action described in F_Memory_Verify.

...

  • PROG_OPCODE_FLASH_READ (7) : FPA is attempting to perform action described in F_Memory_Read.

...

  • PROG_OPCODE_LOCK_MCU (8) : FPA is attempting to perform action described in F_Lock_MCU.

...

  • PROG_OPCODE_UNLOCK_MCU (9) : FPA is attempting to perform action described in F_Clear_Locked_Device.

...

  • PROG_OPCODE_START_APP (10) : FPA is attempting to run application programmed onto target device (if enabled to be ran after F_AutoProgram in configuration settings).

...

...

Example

void ProgDemoDlg::UpdateProgress()

{

//This function works a bit different than all the others.

//Usually the Multi-API DLL is not thread safe and

//only one thread can enter the Multi-API DLL.

//This function is thread-safe because it is read-only. FPA index != 0. if(fpa == 0)

{

//You can average out the results here,

//or do separate bars per FPA.

//For AutoProgram the progress bar will go from 0 to 100 many

//times during one run because of sub-opcodes. return;

}

INT_X progValue = F_GetProgressBar(fpa); prog->SetPos(progValue);

INT_X lastOpCode = F_GetLastOpCode(fpa); CString opCodeUpdate = "Unknown"; switch(lastOpCode)

{

case PROG_OPCODE_VERIFY_ACCESS:

opCodeUpdate = "Verify Access To MCU"; break;

case PROG_OPCODE_FLASH_ERASE:

opCodeUpdate = "Flash Erase"; break;

case PROG_OPCODE_FLASH_BLANK_CHECK:

opCodeUpdate = "Flash Blank Check"; break;

case PROG_OPCODE_FLASH_SELECTED_BLANK_CHECK:

opCodeUpdate = "Selected Memory Blank Check"; break;

case PROG_OPCODE_FLASH_WRITE:

opCodeUpdate = "Flash Write"; break;

case PROG_OPCODE_FLASH_VERIFY:

opCodeUpdate = "Flash Verify"; break;

case PROG_OPCODE_FLASH_READ:

opCodeUpdate = "Flash Read"; break;

case PROG_OPCODE_LOCK_MCU:

opCodeUpdate = "Lock MCU"; break;

case PROG_OPCODE_UNLOCK_MCU:

opCodeUpdate = "Unlock MCU"; break;

case PROG_OPCODE_START_APP:

opCodeUpdate = "Start Application"; break;

}

CString currentOpCode = ""; GetDlgItemText(IDC_OPCODE, currentOpCode);

//Don’t update if it’s the same text (prevents flashing) if(currentOpCode.Compare(opCodeUpdate) != 0)

SetDlgItemText(IDC_OPCODE, opCodeUpdate);

}

...

Example

Insert excerpt
Progress Bar Monitor
Progress Bar Monitor
nameProgress Bar Monitor Code Example 1

15. F_CancelAction

General Description

Function that will attempt to cancel any running Encapsulated Functions , like the GUI Cancel button. This function is thread-safe. One thread can call F_AutoProgram (for example) and another thread can call F_CancelAction to stop the first. A reinitialization is recommended using F_OpenInstancesAndFPAs after calling this function.

Syntax

Code Block
languagecpp
INT_X  MSPPRG_API	F_CancelAction( BYTE fpa );

Input

BYTE fpa : desired FPA index, 1 to 64.

Output

INT_X : success or failed

  • TRUE (1) - success

  • FALSE (0) - failed

16. F_Trace_File

General Description

Set custom FileName for trace (used with Trace_ON). Set append flag true to keep previous contents.

Syntax

Code Block
languagecpp
INT_X	F_Trace_File( char *FileName, bool append = false );

Input

char *FileName : path to new trace file.
bool append : append to file if it already exists.

Output

INT_X : success or failed in opening file

  • TRUE (1) - success

  • FALSE (0) - failed

17. F_Trace_Comment

General Description

Append a custom comment to current trace file.

Syntax

Code Block
languagecpp
void   MSPPRG_API   F_Trace_Comment(char *comment);

Input

char *comment : comment to be added to trace file at current location in the trace.

Output

none.

18. F_Trace_ON

General Description

Activate tracing for subsequent calls to the Multi API-DLL. Log is saved in DLLtrace.txt located in the Multi API-DLL directory, or custom file if F_Trace_File function was called. When activated, records all API-DLL function calls from the application software invoked via the Multi API-DLL. The

...

trace file is overwritten for each new session, unless the F_Trace_File append flag is true.

Syntax

Code Block
languagecpp
void F_Trace_ON( void );

Input

none.

Output

none.

19. F_Trace_OFF

...

General Description

Disable tracing.

Syntax

Code Block
languagecpp
void F_Trace_OFF( void );

Input

none.

Output

none.