#include "TobiiREST.h"
bool TobiiREST::GetCalibID() {
try
{
json::value json = REST_Handler::POST_Request(SERVER _T("/api/projects")).extract_json().get();
auto prId = json[_T("pr_id")].as_string();
std::wcout << "prId=" << prId << std::endl;
json::value postData;
postData[L"pa_project"] = json::value::string(prId);
json = REST_Handler::POST_Request(SERVER _T("/api/participants"), postData).extract_json().get();
auto paId = json[_T("pa_id")].as_string();
std::wcout << "paId=" << paId << std::endl;
json::value postData2;
postData2[L"ca_project"] = json::value::string(prId);
postData2[L"ca_type"] = json::value::string(L"default");
postData2[L"ca_participant"] = json::value::string(paId);
json = REST_Handler::POST_Request(SERVER _T("/api/calibrations"), postData2).extract_json().get();
_CalibID = json[_T("ca_id")].as_string();
std::wcout << "caId=" << _CalibID << std::endl;
return true;
}
catch (const std::exception & e)
{
std::cout << "Error " << e.what() << std::endl;
return false;
}
}
bool TobiiREST::StartCalibration() {
try
{
std::wstring url = SERVER _T("/api/calibrations/") + _CalibID + _T("/start");
json::value json = REST_Handler::POST_Request(url.c_str()).extract_json().get();
std::wcout << "Calibration start" << std::endl;
return true;
}
catch (const std::exception& e)
{
std::cout << "Error " << e.what() << std::endl;
return false;
}
}
// GetCalibResult
// 戻り値 -1:エラー 0:失敗 1:成功
int TobiiREST::GetCalibResult() {
try
{
std::wstring url = SERVER _T("/api/calibrations/") + _CalibID + _T("/status");
std::vector<std::wstring> values;
values.push_back(_T("failed"));
values.push_back(_T("calibrated"));
std::wstring status = REST_Handler::WaitForStatus(url.c_str(), _T("ca_state"), values);
if (status == _T("failed")) {
std::wcout << _T("Calibration failed.") << std::endl;
return 0;
}
std::wcout << _T("Calibration successful.") << std::endl;
return 1;
}
catch (const std::exception & e)
{
std::cout << "Error " << e.what() << std::endl;
return -1;
}
}