00001 #include "TestRequest.h" 00002 #include "CalibrationController.h" 00003 #include "RequestException.h" 00004 00005 namespace SctCalibrationController { 00006 namespace Ipc { 00007 00008 TestRequestImpl::TestRequestImpl() : IPCCallback(&CalibrationController::getServer()) { 00009 } 00010 00011 void TestRequestImpl::startTest (Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_SctApi * api, ilu_T_CString * name, ilu_ShortCardinal * testVariable, ilu_Cardinal * nScans, Sct_CalibrationController_T_TestPoints testPointsData){ 00012 } 00013 00014 Sct_SctApi_T_Scan * TestRequestImpl::getNextScan (Sct_CalibrationControllerStatus *_status, ilu_Cardinal index){ 00015 return 0; 00016 } 00017 00018 ilu_Boolean TestRequestImpl::canFeedback (Sct_CalibrationControllerStatus *_status) { 00019 return false; 00020 } 00021 00022 void TestRequestImpl::endTest (Sct_CalibrationControllerStatus *_status) { 00023 } 00024 00025 00026 TestRequestAdapter::TestRequestAdapter(Sct_CalibrationController_T_TestRequest* req) : request(req) { 00027 } 00028 00029 00030 void TestRequestAdapter::startTest(Sct_SctApi_T_SctApi& api, string& name, unsigned short& testVariable, 00031 unsigned long& nScans, vector<double>& testPoints) { 00032 Sct_CalibrationControllerStatus status; 00033 char* text = 0; 00034 _Sct_CalibrationController_T_TestPoints_sequence data; 00035 request->startTest(&status, &api, &text, &testVariable, &nScans, &data); 00036 if (status.returnCode != 0) 00037 throw RequestException(status.returnCode, "TestRequestAdapter::startTest failed", __FILE__, __LINE__); 00038 name = text; 00039 for (unsigned int i = 0; i<data.Length(); ++i) { 00040 testPoints.push_back(data.Nth(i)); 00041 } 00042 delete [] text; 00043 } 00044 00045 Sct_SctApi_T_Scan* TestRequestAdapter::getNextScan(unsigned long index) { 00046 Sct_CalibrationControllerStatus status; 00047 Sct_SctApi_T_Scan* scan = request->getNextScan(&status, index); 00048 if (status.returnCode != 0) 00049 throw RequestException(status.returnCode, "TestRequestAdapter::getNextScan failed", __FILE__, __LINE__); 00050 return scan; 00051 } 00052 00053 bool TestRequestAdapter::canFeedback() { 00054 Sct_CalibrationControllerStatus status; 00055 bool can = request->canFeedback(&status); 00056 if (status.returnCode != 0) 00057 throw RequestException(status.returnCode, "TestRequestAdapter::canFeedback failed", __FILE__, __LINE__); 00058 return can; 00059 } 00060 00061 void TestRequestAdapter::endTest() { 00062 Sct_CalibrationControllerStatus status; 00063 request->endTest(&status); 00064 if (status.returnCode != 0) 00065 throw RequestException(status.returnCode, "TestRequestAdapter::endTest failed", __FILE__, __LINE__); 00066 } 00067 00068 00069 } 00070 }