# ScriptGetFBlockStatus Method - neoVI API

This method returns the run status of a specified function block within a script on a neoVI device.

{% tabs %}
{% tab title="C/C++ Declare" %}

```cpp
int _stdcall icsneoScriptGetFBlockStatus(void * hObject, unsigned int iFunctionBlockIndex, int *piStatus);
```

{% endtab %}

{% tab title="Visual Basic .NET Declare" %}

```vbnet
Public Declare Function icsneoScriptGetFBlockStatus Lib “icsneo40.dll” (ByVal hObject As IntPtr, ByVal fb_index As UInt32, ByRef piRunStatus As Int32) As Int32
```

{% endtab %}

{% tab title="C# Declare" %}

```csharp
[DllImport(“icsneo40.dll”)] public static extern Int32 icsneoScriptGetFBlockStatus(IntPtr hObject, UInt32 fb_index, ref Int32 piRunStatus);
```

{% endtab %}
{% endtabs %}

**Parameters**

hObject

\[in] Specifies the driver object created by [OpenNeoDevice](/neovi-api/win32-api-overview-intrepidcs-api/basic-functions-overview-intrepidcs-api/openneodevice-method-intrepidcs-api.md).

iFunctionBlockIndex

\[in] The index value of the function block to start

piStatus

\[out] 0 = stopped 1 = running

**Return Values**

1 if the function succeeded. 0 if it failed for any reason. [GetLastAPIError](/neovi-api/win32-api-overview-intrepidcs-api/error-functions-overview-intrepidcs-api/getlastapierror-method-intrepidcs-api.md) must be called to obtain the specific error. The errors that can be generated by this function are:

NEOVI\_ERROR\_DLL\_NEOVI\_NO\_RESPONSE = 75

NEOVI\_ERROR\_DLL\_SCRIPT\_INVALID\_FUNCBLOCK\_INDEX = 219

NEOVI\_ERROR\_DLL\_SCRIPT\_NO\_SCRIPT\_RUNNING = 226

**Remarks**

The script containing the specified function block must have been successfully downloaded to the neoVI using [ScriptLoadScript](/neovi-api/win32-api-overview-intrepidcs-api/deprecated-functions-overview-intrepidcs-api/coremini-script-interface-overview-intrepidcs-api/scriptload-method-intrepidcs-api.md). Execution of the script must have been started by using [ScriptStartScript](/neovi-api/win32-api-overview-intrepidcs-api/deprecated-functions-overview-intrepidcs-api/coremini-script-interface-overview-intrepidcs-api/scriptstart-method-intrepidcs-api.md). The valid index values for function blocks within a script can be found in the <mark style="color:orange;">cmvspy.vs3cmb.h</mark> file (Produced by Vehicle Spy. Please see Vehicle Spy documentation).

### Examples

{% tabs %}
{% tab title="C/C++ Example:" %}

```cpp
int iRetVal;
int iRunStatus;
unsigned long lLastErrNum;

iRetVal = icsneoScriptGetFBlockStatus(hObject, Function_Block_1, &iRunStatus);
if(iRetVal == 0)
{
    printf("\nFailed to check function block status);
}
else
{
    printf("\nFunction block status = %s\r\n", iRunStatus == 0 ? "Stopped" : "Running");
}
```

{% endtab %}

{% tab title="C# Example:" %}

```csharp
Int32 iResult;
Int32 iStatus=0;

//Get Status of Function Block in CoreMini
iResult = icsNeoDll.icsneoScriptGetFBlockStatus(m_hObject, Convert.ToUInt32(cboFBToChange.SelectedIndex), ref iStatus);

if(iResult == 0)
{
    lblFBStatus.Text = "Failed to get CoreMini Status";
}
else
{
    switch(iStatus)
    {
        case (int)ScriptStates.SCRIPT_STATUS_RUNNING:
            lblFBStatus.Text = "CoreMini Function Block Running";
            break;
        case (int)ScriptStates.SCRIPT_STATUS_STOPPED:
            lblFBStatus.Text = "CoreMini Function Block Stopped";
            break;
        default:
            lblFBStatus.Text = "Unhandled State";
            break;
    }
}
```

{% endtab %}

{% tab title="Visual Basic .NET Example:" %}

```vbnet
Dim iResult As Int32
Dim iStatus As Int32

'//Get Status of Function Block in CoreMini
iResult = icsneoScriptGetFBlockStatus(m_hObject, Convert.ToUInt32(cboFBToChange.SelectedIndex), iStatus)

If iResult = 0 Then
    lblFBStatus.Text = "Failed to get CoreMini Status"
Else
    Select Case iStatus
        Case SCRIPT_STATUS_RUNNING
            lblFBStatus.Text = "CoreMini Function Block Running"
        Case SCRIPT_STATUS_STOPPED
            lblFBStatus.Text = "CoreMini Function Block Stopped"
        Case Else
            lblFBStatus.Text = "Unhandled State"
    End Select
End If
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.intrepidcs.com/neovi-api/win32-api-overview-intrepidcs-api/deprecated-functions-overview-intrepidcs-api/coremini-script-interface-overview-intrepidcs-api/scriptgetfblockstatus-method-intrepidcs-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
