Raspberry Pi Weighting Control System
This project serves as a simple weighting control system, that was realized as a Bachelor Thesis
Public Member Functions | Public Attributes | List of all members
user_workspace Class Reference

Container that servers for storing users data and manipulating them. More...

#include <user_workspace.h>

Public Member Functions

 user_workspace (user_cont *user)
 Construct a new user workspace object. This can only be done with a user that is logged in. More...
 
void init_measured (std::vector< double > values, std::tm *start_tm, std::tm *end_tm, unsigned long m_length)
 
measurementget_last_hx_measuring ()
 
measurementget_picked_hx_measuring ()
 
int compare_rfid_serials (rfid_reader::rfid_tag *tag)
 
bool has_user ()
 
bool has_subuser ()
 
std::pair< uint8_t *, uint8_t > get_rfid_serial ()
 
unsigned long get_user_id ()
 
user_contget_user ()
 
std::string & get_username ()
 
std::string & get_name ()
 
std::string & get_lastname ()
 
std::string & get_description ()
 
uint8_t get_role ()
 
const char * get_role_string ()
 
std::vector< std::unique_ptr< measurement_header > > & get_user_measur_headers ()
 
user_contget_measured_user ()
 
unsigned long get_measured_id ()
 
std::string & get_measured_username ()
 

Public Attributes

std::unique_ptr< user_contsubuser
 
std::unique_ptr< measurementmeasured
 
std::unique_ptr< measurementpicked
 
std::vector< measurementcontinuous_m
 
std::unique_ptr< measurementcontinuous_front
 

Detailed Description

Container that servers for storing users data and manipulating them.

Definition at line 152 of file user_workspace.h.

Constructor & Destructor Documentation

◆ user_workspace()

user_workspace::user_workspace ( user_cont user)

Construct a new user workspace object. This can only be done with a user that is logged in.

Parameters
user

Definition at line 306 of file user_workspace.cpp.

306  {
307  this->user.reset(user);
308  this->measured.reset(new measurement());
309  this->picked.reset(new measurement());
310 }
Container for measurement data and (convenience) variables, that are used to show measurement in GUI.
std::unique_ptr< measurement > measured
std::unique_ptr< measurement > picked

Member Function Documentation

◆ compare_rfid_serials()

int user_workspace::compare_rfid_serials ( rfid_reader::rfid_tag tag)

Compere RFID serial of @user to @tag serial

Definition at line 320 of file user_workspace.cpp.

320  {
321  if (tag->serial_size != this->user->rfid_ser_len)
322  return 1;
323 
324  for (int i = 0; i < tag->serial_size; i++) {
325  if (this->user->rfid_serial_bin[i] != tag->serial[i])
326  return 1;
327  }
328 
329  return 0;
330 }
uint8_t serial[10]
Definition: rfid_reader.h:14

◆ get_description()

std::string & user_workspace::get_description ( )

get user's last name

Definition at line 364 of file user_workspace.cpp.

364  {
365  return this->user->description;
366 }

◆ get_last_hx_measuring()

measurement * user_workspace::get_last_hx_measuring ( )

Returns @measured

Definition at line 312 of file user_workspace.cpp.

312  {
313  return this->measured.get();
314 }

◆ get_lastname()

std::string & user_workspace::get_lastname ( )

get user's name

Definition at line 361 of file user_workspace.cpp.

361  {
362  return this->user->lastname;
363 }

◆ get_measured_id()

unsigned long user_workspace::get_measured_id ( )

returns either subuser or user

Definition at line 402 of file user_workspace.cpp.

402  {
403  if (this->subuser.get() != nullptr) {
404  return this->subuser->id;
405  } else {
406  return this->user->id;
407  }
408 }
std::unique_ptr< user_cont > subuser

◆ get_measured_user()

user_cont * user_workspace::get_measured_user ( )

Definition at line 394 of file user_workspace.cpp.

394  {
395  if (this->subuser.get() != nullptr) {
396  return this->subuser.get();
397  } else {
398  return this->user.get();
399  }
400 }

◆ get_measured_username()

std::string & user_workspace::get_measured_username ( )

returns either subuser id or user id

Definition at line 410 of file user_workspace.cpp.

410  {
411  if (this->subuser.get() != nullptr) {
412  return this->subuser->username;
413  } else {
414  return this->user->username;
415  }
416 }

◆ get_name()

std::string & user_workspace::get_name ( )

get users's username

Definition at line 357 of file user_workspace.cpp.

357  {
358  return this->user->name;
359 }

◆ get_picked_hx_measuring()

measurement * user_workspace::get_picked_hx_measuring ( )

Returns @picked (last selected measuring on screen 3)

Definition at line 316 of file user_workspace.cpp.

316  {
317  return this->picked.get();
318 }

◆ get_rfid_serial()

std::pair< uint8_t *, uint8_t > user_workspace::get_rfid_serial ( )

Has subuser getter

Definition at line 341 of file user_workspace.cpp.

341  {
342  return std::pair<uint8_t*, uint8_t>(this->user->rfid_serial_bin, this->user->rfid_ser_len);
343 }

◆ get_role()

uint8_t user_workspace::get_role ( )

get user's description

Definition at line 368 of file user_workspace.cpp.

368  {
369  return this->user->role;
370 }

◆ get_role_string()

const char * user_workspace::get_role_string ( )

get user's role

Definition at line 372 of file user_workspace.cpp.

372  {
373  switch (this->user->role) {
374  case 0:
375  return get_localized_text("GT_USER_ROLE_PAC");
376  case 1:
377  return get_localized_text("GT_USER_ROLE_EMP");
378  case 2:
379  return get_localized_text("GT_USER_ROLE_ADM");
380 
381  default:
382  return get_localized_text("GT_USER_ROLE_ERR");
383  }
384 }
const char * get_localized_text(const char *key)
Get the localized text object.

◆ get_user()

user_cont * user_workspace::get_user ( )

user id getter

Definition at line 349 of file user_workspace.cpp.

349  {
350  return this->user.get();
351 }

◆ get_user_id()

unsigned long user_workspace::get_user_id ( )

Gets RFID serial (with length)

Definition at line 345 of file user_workspace.cpp.

345  {
346  return this->user->id;
347 }

◆ get_user_measur_headers()

std::vector< std::unique_ptr< measurement_header > > & user_workspace::get_user_measur_headers ( )

get user's role as string to show in GUI get reference to measurement headers

Definition at line 386 of file user_workspace.cpp.

386  {
387  if (this->subuser.get() != nullptr) {
388  return this->subuser->measur_headers;
389  } else {
390  return this->user->measur_headers;
391  }
392 }

◆ get_username()

std::string & user_workspace::get_username ( )

Returns user container

Definition at line 353 of file user_workspace.cpp.

353  {
354  return this->user->username;
355 }

◆ has_subuser()

bool user_workspace::has_subuser ( )

Has user getter

Definition at line 337 of file user_workspace.cpp.

337  {
338  return this->subuser.get() != nullptr;
339 }

◆ has_user()

bool user_workspace::has_user ( )

Definition at line 333 of file user_workspace.cpp.

333  {
334  return this->user.get() != nullptr;
335 }

◆ init_measured()

void user_workspace::init_measured ( std::vector< double >  values,
std::tm *  start_tm,
std::tm *  end_tm,
unsigned long  m_length 
)

Inits measuring into @measured attribute

Definition at line 418 of file user_workspace.cpp.

418  {
419  spdlog::debug("user_workspace.cpp - Initing basic measuring parameters");
420  this->measured.reset(new measurement());
421 
422  measurement::init_measuring(this->measured.get(), this, values, start_tm, end_tm, m_length);
423 }
static void init_measuring(measurement *m, user_workspace *uspace, std::vector< double > &values, std::tm *start_tm, std::tm *end_tm, unsigned long m_length)

Member Data Documentation

◆ continuous_front

std::unique_ptr<measurement> user_workspace::continuous_front

Definition at line 160 of file user_workspace.h.

◆ continuous_m

std::vector<measurement> user_workspace::continuous_m

Definition at line 159 of file user_workspace.h.

◆ measured

std::unique_ptr<measurement> user_workspace::measured

Definition at line 156 of file user_workspace.h.

◆ picked

std::unique_ptr<measurement> user_workspace::picked

Definition at line 157 of file user_workspace.h.

◆ subuser

std::unique_ptr<user_cont> user_workspace::subuser

Definition at line 155 of file user_workspace.h.


The documentation for this class was generated from the following files: