/*
 $Revision: 1.1 $
 $Date: 2010/09/10 01:45:24 $
 $Author: faust $
 */

#ifndef ADMIN_CONF_INC_H
#define ADMIN_CONF_INC_H

inline
uint16_t PRIV::ToInt() const
{
uint16_t p = (userStat   << 0)  |
             (userConf   << 2)  |
             (userCash   << 4)  |
             (userPasswd << 6)  |
             (userAddDel << 8)  |
             (adminChg   << 10) |
             (tariffChg  << 12);
return p;
}

inline
void PRIV::FromInt(uint16_t p)
{
userStat   = (p & 0x0003) >> 0x00; // 1+2
userConf   = (p & 0x000C) >> 0x02; // 4+8
userCash   = (p & 0x0030) >> 0x04; // 10+20
userPasswd = (p & 0x00C0) >> 0x06; // 40+80
userAddDel = (p & 0x0300) >> 0x08; // 100+200
adminChg   = (p & 0x0C00) >> 0x0A; // 400+800
tariffChg  = (p & 0x3000) >> 0x0C; // 1000+2000
}

#endif