versadac  1
versadac - Scalable Recorder Firmware
mb_manager.h
1 /*****************************************************************************
2 FILE : MB_Manager.h
3 AUTHOR : Karl Wakeham
4 SYSTEM : GNU C++ for ARM
5 DESCRIPTION : Connection manager class declarations
6 *****************************************************************************/
7 
8 #ifndef __MBMANAGER_H
9 #define __MBMANAGER_H
10 
11 #include "mb.h"
12 
13 extern "C"
14 {
15 #include "usersecurity.h"
16 }
17 
18 class MB_DataCache;
19 class MB_Listener;
20 
21 // after 5 minutes, if no ethernet connections, then exit config mode
22 #define SECONDS_TILL_CFG_SHUTDOWN 300
23 
25 {
26  public:
27 
28  friend class fb_modbus;
29  friend class MB_Driver;
30  friend class MB_Connection;
31 
32  // Services
33  MB_ConnectionManager(fb_modbus *fnBlock, MB_DataCache *datacache);
35 
36  void makeNewConnection(sint32 socketFileDesc, char *clientAddress, uint16 clientPort);
37  void manageInactiveConnections();
38  void startAcceptingConnections();
39 
40  STATUS takeLoginSemaphore(uint8 z_connectionNumber, int z_wait);
41  void giveLoginSemaphore(uint8 z_connectionNumber);
42  uint16 getUser(uint8 z_connectionNumber, uint8 z_userRole);
43  void setUser(uint8 z_connectionNumber, uint8 z_userRole, uint16 z_user);
44  uint16 getLoggedInUser(uint8 z_connectionNumber, uint8 z_userRole);
45  void setUserLoggedIn(uint8 z_connectionNumber, uint8 z_userRole);
46  double getLoggedInTime(uint8 z_connectionNumber);
47  void setLoggedInTime(uint8 z_connectionNumber, double z_time);
48  uint8 getSecurityStatus(uint8 z_connectionNumber, uint8 z_userRole);
49  void setSecurityStatus(uint8 z_connectionNumber, uint8 z_userRole, uint8 z_status);
50  bool getWriting(uint8 z_connectionNumber);
51  void setWriting(uint8 z_connectionNumber, bool z_writing);
52 
53  static MB_Listener *m_pListenerTask;
55 
56  private:
57 
58  MB_Connection *m_connectionTasks[MAX_NUMBER_OF_MASTER_CONNECTIONS];
59  OSTask *m_OSTasks[MAX_NUMBER_OF_MASTER_CONNECTIONS];
60  fb_modbus *m_fnBlock;
61  MB_DataCache *m_pDataCache;
62  MB_Listener *m_listenerTask;
63  uint32 m_lock;
64  OSTask *m_pListernerOSTask;
65 
66 };
67 
68 
69 #endif // __MBMANAGER_H
70 
Definition: mb_manager.h:24
Definition: mb_listeningtask.h:15
Definition: fb_modbus.h:20
Definition: mb_connection.h:28
Definition: mb_drivertask.h:58
Definition: ostask.h:33
static MB_ConnectionManager * c_pConnectionmanager
Definition: mb_manager.h:54
Definition: mb_datacache.h:21