Versions Compared

Key

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

...

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.

...

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).

...

IMPORTANT

...

BYTE : current FPA index as set using F_Set_FPA_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 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.

...

6. F_Enable_FPA_index

...

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.

...

9. F_Multi_DLLTypeVer

...

  • 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

...

11. F_Get_FPA_Label

...

Example of printing FPA_LABEL:

...

Example

Refer to GetLastOpCode.

14. F_GetLastOpCode

General Description

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.

...

  • 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).

  • FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range

Example

Code Block
languagecpp
void UpdateProgress(BYTE fpa, INT_X &progValue, INT_X &lastOpCode, CString &opCodeUpdate)
{
  if(fpa == 0)
  {
    //invalid index
    return;
  }
  progValue = F_GetProgressBar(fpa);
  lastOpCode = F_GetLastOpCode(fpa);
  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;
  }  
}

...

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.

...