Middleware desenvolvido em ASP.NET Web API (.NET Framework 4.7.2) para permitir a comunicação entre uma aplicação PHP e o software Bluehill Universal da Instron.
A API funciona como uma ponte entre pedidos HTTP REST e chamadas à biblioteca Bluehill.API.dll.
Aplicação PHP
↓ HTTP / cURL
ASP.NET Web API (.NET Framework 4.7.2 - x86)
↓ Bluehill.API.dll
Bluehill Universal
↓
Máquina Instron- Windows
- Visual Studio
- .NET Framework 4.7.2
- ASP.NET Web API clássico
- IIS Express 32 bits
- Bluehill Universal instalado
Bluehill.API.dll- Projeto compilado em x86
O projeto deve estar configurado como:
Target Framework: .NET Framework 4.7.2
Platform Target: x86Também é necessário desativar o IIS Express 64 bits:
Tools → Options → Projects and Solutions → Web ProjectsDesmarcar:
Use the 64 bit version of IIS Express for web sites and projectsA DLL da Bluehill normalmente fica em:
C:\Program Files (x86)\Instron\Bluehill Universal\bin\Bluehill.API.dllNo projeto, ela deve estar referenciada ou copiada para:
InstronBridgeAPI\bin\Bluehill.API.dllInstronBridgeAPI
│
├── Controllers
│ └── InstronController.cs
│
├── Services
│ └── InstronService.cs
│
├── Callbacks
│ └── InstronCallback.cs
│
├── Models
│ ├── CreateSampleRequest.cs
│ ├── SaveSampleRequest.cs
│ └── InstronServiceState.cs
│
├── App_Start
│ └── WebApiConfig.cs
│
├── Global.asax
├── Web.config
└── README.mdBase URL local:
http://localhost:5000/api/instronGET /api/instron/healthResposta esperada:
{
"status": "online",
"connected": false
}POST /api/instron/connectObservação:
O Bluehill Universal deve estar aberto antes de chamar este endpoint.
GET /api/instron/stateResposta exemplo:
{
"state": "ReadyToStartTest"
}POST /api/instron/create-sampleBody JSON:
{
"methodFilePath": "C:\\Instron\\Methods\\metodo.im_tens"
}POST /api/instron/start-testPOST /api/instron/stop-testGET /api/instron/resultsGET /api/instron/measurementExemplo:
http://localhost:5000/api/instron/measurement?measurementName=Force&unit=NewtonsPOST /api/instron/save-sampleBody JSON:
{
"filePath": "C:\\Instron\\Samples\\ensaio_001.is_tens"
}POST /api/instron/close-samplePOST /api/instron/disconnectSequência recomendada:
GET /health- Abrir o Bluehill Universal manualmente
POST /connectGET /statePOST /create-samplePOST /start-testGET /resultsPOST /save-samplePOST /close-samplePOST /disconnect
<?php
$url = "http://localhost:5000/api/instron/health";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);Foi efetuada uma tentativa de carregar um programa com um formato incorreto.Causa:
A API ou o IIS Express está a correr em 64 bits.
Solução:
- Compilar o projeto em x86;
- Usar IIS Express 32 bits.
A operação excedeu o tempo limite.Causa:
A API não conseguiu conectar ao serviço do Bluehill.
Soluções:
- Abrir o Bluehill Universal manualmente;
- Confirmar se a API do Bluehill está licenciada;
- Testar no PC real da máquina Instron.
Funcionalidades implementadas:
Health Check
Connect
State
Create Sample
Start Test
Stop Test
Results
Measurement
Save Sample
Close Sample
Disconnect
Callbacks
Service Layer