Commit 30d0c144 authored by Pavel Vainerman's avatar Pavel Vainerman

(UHttp): накидал скелет python API для SharedMemory

parent 3741b025
......@@ -53,7 +53,7 @@ HTTP API:
- запрос о том, кто последний сохранил указанный датчик
- список объектов возвращать с их типом (чтобы можно было SM вычислять)
= Сделать возможность настраивать параметры httpserver-а из командной строки (количество потоков и т.п.)
- ТЕСТЫ (как вариант поизучать про тестовые фреймворки на питоне)
- ТЕСТЫ (как вариант поизучать про тестовые фреймворки на питоне (pytest?)
Version 2.5
......
......@@ -80,3 +80,47 @@ class SharedMemoryAPI(UniSetHTTPService):
return self.request(query)[self.settings['smID']]['consumers']
def get(self, sensors='', shortInfo=True):
"""Получить список заказчиков"""
query = '/get'
params = None
if sensors != '':
params = '?%s' % sensors
if shortInfo:
if params != None:
params += '&shortInfo'
else:
params = '?shortInfo'
if params:
query += params
return self.request(query)[self.settings['smID']]['sensors']
def sensors(self, offset=None, limit=None):
"""Получить список датчиков"""
query = '/sensors'
params = None
if offset:
params = '?offset=%d' % offset
if limit:
if params != None:
params += '&limit=%d'%limit
else:
params = '?limit=%d'%limit
if params:
query += params
return self.request(query)
def lost(self):
"""Получить список 'пропавших' заказчиков"""
return self.request('/lost')[self.settings['smID']]
def help(self):
return self.request('/help')[self.settings['smID']]
\ No newline at end of file
......@@ -21,7 +21,12 @@ if __name__ == "__main__":
shm = SharedMemoryAPI(settings)
print shm.consumers()
# print shm.consumers()
# print shm.get(sensors='10,12')
# print shm.lost()
# print shm.help()
print shm.sensors(0,10)
except UHTTPError, e:
print e.message
......@@ -936,8 +936,9 @@ nlohmann::json IOController::request_get( const string& req, const Poco::URI::Qu
// -----------------------------------------------------------------------------
void IOController::getSensorInfo( nlohmann::json& jdata, std::shared_ptr<USensorInfo>& s, bool shortInfo )
{
string sid( to_string(s->si.id));
auto& jsens = jdata[sid];
string sname = ORepHelpers::getShortName(uniset_conf()->oind->getMapName(s->si.id));
auto& jsens = jdata[sname];
{
uniset_rwmutex_rlock lock(s->val_lock);
......@@ -945,10 +946,12 @@ void IOController::getSensorInfo( nlohmann::json& jdata, std::shared_ptr<USensor
jsens["real_value"] = s->real_value;
}
jsens["id"] = sid;
jsens["name"] = ORepHelpers::getShortName(uniset_conf()->oind->getMapName(s->si.id));
jsens["id"] = s->si.id;
jsens["name"] = sname;
jsens["tv_sec"] = s->tv_sec;
jsens["tv_nsec"] = s->tv_nsec;
jsens["supplier"] = ORepHelpers::getShortName(uniset_conf()->oind->getMapName(s->supplier));
jsens["supplierID"] = s->supplier;
if( shortInfo )
return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment