Skip to content
Snippets Groups Projects
Commit 50c05ba2 authored by mfioren's avatar mfioren
Browse files

Added getdbe/setdbe components functions

parent 1529d090
No related branches found
No related tags found
No related merge requests found
......@@ -144,6 +144,17 @@ private:
string get_firm_command(short b_addr);
string set_dbeamp_command(const char * out_dbe, const char * amp_val);
string get_dbeamp_command(const char * out_dbe);
string set_dbeeq_command(const char * out_dbe, const char * eq_val);
string get_dbeeq_command(const char * out_dbe);
string set_dbebpf_command(const char * out_dbe, const char * bpf_val);
string get_dbebpf_command(const char * out_dbe);
};
#endif /*COMMANDSOCKET_H_*/
\ No newline at end of file
......@@ -35,10 +35,16 @@ class CDBESMCommand
inline static string comm_set_dbeatt(string out_dbe, string att_val){return Commands::m_set_dbeatt + " " + out_dbe + " " + att_val + TAIL;}
inline static string comm_get_dbeatt(string out_dbe){return Commands::m_get_dbeatt + " " + out_dbe + TAIL;}
inline static string comm_get_firm(string b_addr){return Commands::m_get_firm + " BOARD " + b_addr + TAIL;}
inline static string comm_set_dbeamp(string out_dbe, string amp_val){return Commands::m_set_dbeamp + " " + out_dbe + " " + amp_val + TAIL;}
inline static string comm_get_dbeamp(string out_dbe){return Commands::m_get_dbeamp + " " + out_dbe + TAIL;}
inline static string comm_set_dbeeq(string out_dbe, string eq_val){return Commands::m_set_dbeeq + " " + out_dbe + " " + eq_val + TAIL;}
inline static string comm_get_dbeeq(string out_dbe){return Commands::m_get_dbeeq + " " + out_dbe + TAIL;}
inline static string comm_set_dbebpf(string out_dbe, string bpf_val){return Commands::m_set_dbebpf + " " + out_dbe + " " + bpf_val + TAIL;}
inline static string comm_get_dbebpf(string out_dbe){return Commands::m_get_dbebpf + " " + out_dbe + TAIL;}
private:
/*
* Commands
* Commandsf
*/
struct Commands{
inline static const string m_set_all {"DBE SETALLMODE"};
......@@ -47,13 +53,19 @@ class CDBESMCommand
inline static const string m_delete_file { "DBE DELETEFILE" };
inline static const string m_get_status { "DBE GETSTATUS" };
inline static const string m_set_att { "DBE SETATT" };
//inline static const string m_get_diag_all { "DBE ReadALLReadDIAG" };
//inline static const string m_get_diag_all { "DBE ReadALLDIAG" };
inline static const string m_get_diag { "DBE ReadDIAG" };
inline static const string m_get_comp { "DBE GETCOMP" };
inline static const string m_get_cfg { "DBE GETCFG" };
inline static const string m_set_dbeatt { "DBE SETDBEATT" };
inline static const string m_get_dbeatt { "DBE GETDBEATT" };
inline static const string m_get_firm { "DBE FIRM" };
inline static const string m_get_firm { "DBE GETFIRM" };
inline static const string m_set_dbeamp { "DBE SETDBEAMP" };
inline static const string m_get_dbeamp { "DBE GETDBEAMP" };
inline static const string m_set_dbeeq { "DBE SETDBEEQ" };
inline static const string m_get_dbeeq { "DBE GETDBEEQ" };
inline static const string m_set_dbebpf { "DBE SETDBEBPF" };
inline static const string m_get_dbebpf { "DBE GETDBEBPF" };
};
}; //class CDBESMCommand
......
......@@ -90,6 +90,18 @@ public:
virtual void handle_addr(short * b_addr);
virtual void set_dbeampconst char * out_dbe, const char * amp_val); //throw (BackendsErrors::BackendsErrorsEx);
virtual void get_dbeamp(const char * out_dbe); //throw (BackendsErrors::BackendsErrorsEx);
virtual void set_dbeeq(const char * out_dbe, const char * eq_val); //throw (BackendsErrors::BackendsErrorsEx);
virtual void get_dbeeq(const char * out_dbe); //throw (BackendsErrors::BackendsErrorsEx);
virtual void set_dbebpf(const char * out_dbe, const char * bpf_val); //throw (BackendsErrors::BackendsErrorsEx);
virtual void get_dbebpf(const char * out_dbe); //throw (BackendsErrors::BackendsErrorsEx);
/**
* Returns a reference to addr_1.
* @return pointer to long property addr_1
......
......@@ -583,7 +583,7 @@ string CCommandSocket::get_dbeatt_command(const char * out_dbe) //throw (Backend
}
else if (response.find("ERR") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::get_dbeatt_command()");
impl.setReason("Error in setting dbesm output attenuation, check parameters");
impl.setReason("Error in getting dbesm output attenuation, check parameters");
throw impl;
}
return response;
......@@ -613,3 +613,122 @@ string CCommandSocket::get_firm_command(short b_addr) //throw (BackendsErrors::B
}
return response;
}
string CCommandSocket::set_dbeamp_command(const char * out_dbe, const char * amp_val) //throw (BackendsErrors::BackendsErrorsEx)
{
string response;
string msg = CDBESMCommand::comm_set_dbeamp(out_dbe, amp_val);
//cout << "Message to send is: " << msg << endl;
sendCommand(msg, &response, 0);
if (response.find("unreachable") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::set_dbeamp_command()");
impl.setReason("DBESM board unreachable, timeout error");
throw impl;
}
else if (response.find("ERR") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::set_dbeamp_command()");
impl.setReason("Error in setting dbesm output amplification, check parameters");
throw impl;
}
return response;
}
string CCommandSocket::get_dbeamp_command(const char * out_dbe) //throw (BackendsErrors::BackendsErrorsEx)
{
string response;
string msg = CDBESMCommand::comm_get_dbeamp(out_dbe);
//cout << "Message to send is: " << msg << endl;
sendCommand(msg, &response, 0);
if (response.find("unreachable") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::get_dbeamp_command()");
impl.setReason("DBESM board unreachable, timeout error");
throw impl;
}
else if (response.find("ERR") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::get_dbeamp_command()");
impl.setReason("Error in getting dbesm output amplification, check parameters");
throw impl;
}
return response;
}
string CCommandSocket::set_dbeeq_command(const char * out_dbe, const char * eq_val) //throw (BackendsErrors::BackendsErrorsEx)
{
string response;
string msg = CDBESMCommand::comm_set_dbeeq(out_dbe, eq_val);
//cout << "Message to send is: " << msg << endl;
sendCommand(msg, &response, 0);
if (response.find("unreachable") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::set_dbeeq_command()");
impl.setReason("DBESM board unreachable, timeout error");
throw impl;
}
else if (response.find("ERR") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::set_dbeeq_command()");
impl.setReason("Error in setting dbesm output equalization, check parameters");
throw impl;
}
return response;
}
string CCommandSocket::get_dbeeq_command(const char * out_dbe) //throw (BackendsErrors::BackendsErrorsEx)
{
string response;
string msg = CDBESMCommand::comm_get_dbeeq(out_dbe);
//cout << "Message to send is: " << msg << endl;
sendCommand(msg, &response, 0);
if (response.find("unreachable") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::get_dbeeq_command()");
impl.setReason("DBESM board unreachable, timeout error");
throw impl;
}
else if (response.find("ERR") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::get_dbeeq_command()");
impl.setReason("Error in getting dbesm output equalization, check parameters");
throw impl;
}
return response;
string CCommandSocket::set_dbebpf_command(const char * out_dbe, const char * bpf_val) //throw (BackendsErrors::BackendsErrorsEx)
{
string response;
string msg = CDBESMCommand::comm_set_dbebpf(out_dbe, bpf_val);
//cout << "Message to send is: " << msg << endl;
sendCommand(msg, &response, 0);
if (response.find("unreachable") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::set_dbebpf_command()");
impl.setReason("DBESM board unreachable, timeout error");
throw impl;
}
else if (response.find("ERR") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::set_dbebpf_command()");
impl.setReason("Error in setting dbesm output equalization, check parameters");
throw impl;
}
return response;
}
string CCommandSocket::get_dbebpf_command(const char * out_dbe) //throw (BackendsErrors::BackendsErrorsEx)
{
string response;
string msg = CDBESMCommand::comm_get_dbebpf(out_dbe);
//cout << "Message to send is: " << msg << endl;
sendCommand(msg, &response, 0);
if (response.find("unreachable") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::get_dbebpf_command()");
impl.setReason("DBESM board unreachable, timeout error");
throw impl;
}
else if (response.find("ERR") != string::npos) {
_EXCPT(BackendsErrors::BackendFailExImpl,impl,"CCommandSocket::get_dbebpf_command()");
impl.setReason("Error in getting dbesm output equalization, check parameters");
throw impl;
}
return response;
}
\ No newline at end of file
......@@ -900,7 +900,381 @@ void SRTDBESMImpl::get_firm(short b_addr) //throw (BackendsErrors::BackendsError
return c;
}
void SRTDBESMImpl::set_dbeamp(const char * out_dbe, const char * amp_val)
{
AUTO_TRACE("SRTDBESMImpl::set_dbeamp()");
string out_dbe_message;
try {
out_dbe_message = m_commandSocket.set_dbeamp(out_dbe, amp_val);
}
catch (ComponentErrors::ComponentErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getComponentErrorsEx();
}
catch (BackendsErrors::BackendsErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getBackendsErrorsEx();
}
catch (...) {
_EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SRTDBESMImpl::set_dbeamp()");
dummy.log(LM_DEBUG);
throw dummy.getComponentErrorsEx();
}
char *c = new char[out_dbe_message.length()-2 + 1]; // discard \r\n
std::copy(out_dbe_message.begin(), (out_dbe_message.end()-2), c);
c[out_dbe_message.length()-2] = '\0';
CUSTOM_LOG(LM_FULL_INFO,"SRTDBESMImpl::set_dbeamp()",(LM_INFO,c));
}
void SRTDBESMImpl::get_dbeamp(const char * out_dbe)
{
AUTO_TRACE("SRTDBESMImpl::get_dbeamp()");
int newlines = 0;
string out_dbe_message;
try {
out_dbe_message = m_commandSocket.get_dbeamp(out_dbe);
}
catch (ComponentErrors::ComponentErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getComponentErrorsEx();
}
catch (BackendsErrors::BackendsErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getBackendsErrorsEx();
}
catch (...) {
_EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SRTDBESMImpl::get_dbeamp()");
dummy.log(LM_DEBUG);
throw dummy.getComponentErrorsEx();
}
char *c = new char[out_dbe_message.length() + 1]; // here we keep \r\n
std::copy(out_dbe_message.begin(), (out_dbe_message.end()), c);
c[out_dbe_message.length()] = '\0';
int i =0;
int v[5];
v[0] = 0;
while (c[i] != '\0'){
if ( c[i] == '\n' ){
v[newlines+1] = i;
newlines++;
}
i++;
}
for (int j=0; j< newlines; j++) {
ACS::doubleSeq new_seq;
ACS::Time timestamp, timestamp2, timestamp3;
double b_addr=0, att_ch=0, new_att_val=0;
try {
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "BOARD ", " AMP", &b_addr);
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "AMP ", " VALUE", &att_ch);
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "VALUE ", "\n", &new_att_val);
}
catch (std::out_of_range) {
_EXCPT(BackendsErrors::MalformedAnswerExImpl,impl,"SRTDBESMImpl::get_dbeamp()");
throw impl; }
try {
if (b_addr == m_paddr_1->getDevIO()->read(timestamp))
{
new_seq = (*m_pamps_1).getDevIO()->read(timestamp2);
new_seq[amp_ch] = new_amp_val;
m_pamps_1->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_2->getDevIO()->read(timestamp))
{
new_seq = (*m_pamps_2).getDevIO()->read(timestamp2);
new_seq[amp_ch] = new_amp_val;
m_pamps_2->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_3->getDevIO()->read(timestamp))
{
new_seq = (*m_pamps_3).getDevIO()->read(timestamp2);
new_seq[amp_ch] = new_amp_val;
m_pamps_3->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_4->getDevIO()->read(timestamp))
{
new_seq = (*m_pamps_4).getDevIO()->read(timestamp2);
new_seq[amp_ch] = new_amp_val;
m_pamps_4->getDevIO()->write(new_seq,timestamp3);
}
}
catch (ComponentErrors::ComponentErrorsExImpl& e) {
e.log(LM_DEBUG);
throw e.getComponentErrorsEx();
}
catch (ACSErr::ACSbaseExImpl& ex) {
_ADD_BACKTRACE(ComponentErrors::InitializationProblemExImpl,impl,ex,"SRTDBESMImpl::get_dbeamp()");
throw impl;
}
}
CUSTOM_LOG(LM_FULL_INFO,"SRTDBESMImpl::get_dbeamp()",(LM_INFO,c));
}
void SRTDBESMImpl::set_dbeeq(const char * out_dbe, const char * eq_val)
{
AUTO_TRACE("SRTDBESMImpl::set_dbeeq()");
string out_dbe_message;
try {
out_dbe_message = m_commandSocket.set_dbeeq(out_dbe, eq_val);
}
catch (ComponentErrors::ComponentErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getComponentErrorsEx();
}
catch (BackendsErrors::BackendsErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getBackendsErrorsEx();
}
catch (...) {
_EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SRTDBESMImpl::set_dbeeq()");
dummy.log(LM_DEBUG);
throw dummy.getComponentErrorsEx();
}
char *c = new char[out_dbe_message.length()-2 + 1]; // discard \r\n
std::copy(out_dbe_message.begin(), (out_dbe_message.end()-2), c);
c[out_dbe_message.length()-2] = '\0';
CUSTOM_LOG(LM_FULL_INFO,"SRTDBESMImpl::set_dbeeq()",(LM_INFO,c));
}
void SRTDBESMImpl::get_dbeeq(const char * out_dbe)
{
AUTO_TRACE("SRTDBESMImpl::get_dbeeq()");
int newlines = 0;
string out_dbe_message;
try {
out_dbe_message = m_commandSocket.get_dbeeq(out_dbe);
}
catch (ComponentErrors::ComponentErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getComponentErrorsEx();
}
catch (BackendsErrors::BackendsErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getBackendsErrorsEx();
}
catch (...) {
_EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SRTDBESMImpl::get_dbeeq()");
dummy.log(LM_DEBUG);
throw dummy.getComponentErrorsEx();
}
char *c = new char[out_dbe_message.length() + 1]; // here we keep \r\n
std::copy(out_dbe_message.begin(), (out_dbe_message.end()), c);
c[out_dbe_message.length()] = '\0';
int i =0;
int v[5];
v[0] = 0;
while (c[i] != '\0'){
if ( c[i] == '\n' ){
v[newlines+1] = i;
newlines++;
}
i++;
}
for (int j=0; j< newlines; j++) {
ACS::doubleSeq new_seq;
ACS::Time timestamp, timestamp2, timestamp3;
double b_addr=0, att_ch=0, new_att_val=0;
try {
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "BOARD ", " EQ", &b_addr);
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "AMP ", " VALUE", &att_ch);
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "VALUE ", "\n", &new_att_val);
}
catch (std::out_of_range) {
_EXCPT(BackendsErrors::MalformedAnswerExImpl,impl,"SRTDBESMImpl::get_dbeeq()");
throw impl; }
try {
if (b_addr == m_paddr_1->getDevIO()->read(timestamp))
{
new_seq = (*m_peqs_1).getDevIO()->read(timestamp2);
new_seq[eq_ch] = new_eq_val;
m_peqs_1->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_2->getDevIO()->read(timestamp))
{
new_seq = (*m_peqs_2).getDevIO()->read(timestamp2);
new_seq[eq_ch] = new_eq_val;
m_peqs_2->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_3->getDevIO()->read(timestamp))
{
new_seq = (*m_peqs_3).getDevIO()->read(timestamp2);
new_seq[eq_ch] = new_eq_val;
m_peqs_3->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_4->getDevIO()->read(timestamp))
{
new_seq = (*m_peqs_4).getDevIO()->read(timestamp2);
new_seq[eq_ch] = new_eq_val;
m_peqs_4->getDevIO()->write(new_seq,timestamp3);
}
}
catch (ComponentErrors::ComponentErrorsExImpl& e) {
e.log(LM_DEBUG);
throw e.getComponentErrorsEx();
}
catch (ACSErr::ACSbaseExImpl& ex) {
_ADD_BACKTRACE(ComponentErrors::InitializationProblemExImpl,impl,ex,"SRTDBESMImpl::get_dbeeq()");
throw impl;
}
}
CUSTOM_LOG(LM_FULL_INFO,"SRTDBESMImpl::get_dbeeq()",(LM_INFO,c));
}
void SRTDBESMImpl::set_dbebpf(const char * out_dbe, const char * bpf_val)
{
AUTO_TRACE("SRTDBESMImpl::set_dbebpf()");
string out_dbe_message;
try {
out_dbe_message = m_commandSocket.set_dbebpf(out_dbe, bpf_val);
}
catch (ComponentErrors::ComponentErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getComponentErrorsEx();
}
catch (BackendsErrors::BackendsErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getBackendsErrorsEx();
}
catch (...) {
_EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SRTDBESMImpl::set_dbebpf()");
dummy.log(LM_DEBUG);
throw dummy.getComponentErrorsEx();
}
char *c = new char[out_dbe_message.length()-2 + 1]; // discard \r\n
std::copy(out_dbe_message.begin(), (out_dbe_message.end()-2), c);
c[out_dbe_message.length()-2] = '\0';
CUSTOM_LOG(LM_FULL_INFO,"SRTDBESMImpl::set_dbebpf()",(LM_INFO,c));
}
void SRTDBESMImpl::get_dbebpf(const char * out_dbe)
{
AUTO_TRACE("SRTDBESMImpl::get_dbebpf()");
int newlines = 0;
string out_dbe_message;
try {
out_dbe_message = m_commandSocket.get_dbebpf(out_dbe);
}
catch (ComponentErrors::ComponentErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getComponentErrorsEx();
}
catch (BackendsErrors::BackendsErrorsExImpl& ex) {
ex.log(LM_DEBUG);
throw ex.getBackendsErrorsEx();
}
catch (...) {
_EXCPT(ComponentErrors::UnexpectedExImpl,dummy,"SRTDBESMImpl::get_dbebpf()");
dummy.log(LM_DEBUG);
throw dummy.getComponentErrorsEx();
}
char *c = new char[out_dbe_message.length() + 1]; // here we keep \r\n
std::copy(out_dbe_message.begin(), (out_dbe_message.end()), c);
c[out_dbe_message.length()] = '\0';
int i =0;
int v[5];
v[0] = 0;
while (c[i] != '\0'){
if ( c[i] == '\n' ){
v[newlines+1] = i;
newlines++;
}
i++;
}
for (int j=0; j< newlines; j++) {
ACS::doubleSeq new_seq;
ACS::Time timestamp, timestamp2, timestamp3;
double b_addr=0, att_ch=0, new_att_val=0;
try {
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "BOARD ", " BPF", &b_addr);
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "BPF ", " VALUE", &att_ch);
m_commandSocket.parse_double_response(out_dbe_message.substr(v[j],v[j+1]), "VALUE ", "\n", &new_att_val);
}
catch (std::out_of_range) {
_EXCPT(BackendsErrors::MalformedAnswerExImpl,impl,"SRTDBESMImpl::get_dbebpf()");
throw impl; }
try {
if (b_addr == m_paddr_1->getDevIO()->read(timestamp))
{
new_seq = (*m_pbpfs_1).getDevIO()->read(timestamp2);
new_seq[bpf_ch] = new_bpf_val;
m_pbpfs_1->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_2->getDevIO()->read(timestamp))
{
new_seq = (*m_pbpfs_2).getDevIO()->read(timestamp2);
new_seq[bpf_ch] = new_bpf_val;
m_pbpfs_2->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_3->getDevIO()->read(timestamp))
{
new_seq = (*m_pbpfs_3).getDevIO()->read(timestamp2);
new_seq[bpf_ch] = new_bpf_val;
m_pbpfs_3->getDevIO()->write(new_seq,timestamp3);
}
else if (b_addr == m_paddr_4->getDevIO()->read(timestamp))
{
new_seq = (*m_pbpfs_4).getDevIO()->read(timestamp2);
new_seq[bpf_ch] = new_bpf_val;
m_pbpfs_4->getDevIO()->write(new_seq,timestamp3);
}
}
catch (ComponentErrors::ComponentErrorsExImpl& e) {
e.log(LM_DEBUG);
throw e.getComponentErrorsEx();
}
catch (ACSErr::ACSbaseExImpl& ex) {
_ADD_BACKTRACE(ComponentErrors::InitializationProblemExImpl,impl,ex,"SRTDBESMImpl::get_dbebpf()");
throw impl;
}
}
CUSTOM_LOG(LM_FULL_INFO,"SRTDBESMImpl::get_dbebpf()",(LM_INFO,c));
}
GET_PROPERTY_REFERENCE(ACS::ROlong,m_paddr_1,addr_1);
GET_PROPERTY_REFERENCE(ACS::ROlong,m_paddr_2,addr_2);
GET_PROPERTY_REFERENCE(ACS::ROlong,m_paddr_3,addr_3);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment