Commit 91aa0fc9 authored by claes's avatar claes

New namespace s0, time type, and Value type

parent e0ffcc2d
This diff is collapsed.
/*
* Proview $Id: opc_provider.h,v 1.6 2007-03-15 08:07:50 claes Exp $
* Proview $Id: opc_provider.h,v 1.7 2007-03-15 15:25:36 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -87,12 +87,12 @@ public:
virtual bool find( pwr_tOix fthoix, char *name, pwr_tOix *oix);
void insert_object( pwr_tOix fth, pwr_tOix bws, ns1__BrowseElement *element,
void insert_object( pwr_tOix fth, pwr_tOix bws, s0__BrowseElement *element,
int first, int last, int load_children, std::string *path);
void get_server_state();
char *opc_provider::name_to_objectname( char *name);
void errlog( std::string* item, std::vector<ns1__OPCError *>& errvect);
void errlog( std::string* item, std::vector<s0__OPCError *>& errvect);
vector<opcprv_obj> m_list;
map<pwr_tUInt32, opcprv_sub> m_sublist;
......
This diff is collapsed.
......@@ -6,6 +6,6 @@ SOAP_NMAC struct Namespace namespaces[] =
{"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL},
{"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL},
{"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL},
{"ns1", "http://opcfoundation.org/webservices/XMLDA/1.0/", NULL, NULL},
{"s0", "http://opcfoundation.org/webservices/XMLDA/1.0/", NULL, NULL},
{NULL, NULL, NULL, NULL}
};
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -24,7 +24,7 @@ class Service : public soap
{"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL},
{"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL},
{"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL},
{"ns1", "http://opcfoundation.org/webservices/XMLDA/1.0/", NULL, NULL},
{"s0", "http://opcfoundation.org/webservices/XMLDA/1.0/", NULL, NULL},
{NULL, NULL, NULL, NULL}
};
soap_init(this); if (!this->namespaces) this->namespaces = namespaces; };
......@@ -41,20 +41,20 @@ class Service : public soap
\******************************************************************************/
SOAP_FMAC5 int SOAP_FMAC6 __ns1__GetStatus(struct soap*, _ns1__GetStatus *ns1__GetStatus, _ns1__GetStatusResponse *ns1__GetStatusResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__GetStatus(struct soap*, _s0__GetStatus *s0__GetStatus, _s0__GetStatusResponse *s0__GetStatusResponse);
SOAP_FMAC5 int SOAP_FMAC6 __ns1__Read(struct soap*, _ns1__Read *ns1__Read, _ns1__ReadResponse *ns1__ReadResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__Read(struct soap*, _s0__Read *s0__Read, _s0__ReadResponse *s0__ReadResponse);
SOAP_FMAC5 int SOAP_FMAC6 __ns1__Write(struct soap*, _ns1__Write *ns1__Write, _ns1__WriteResponse *ns1__WriteResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__Write(struct soap*, _s0__Write *s0__Write, _s0__WriteResponse *s0__WriteResponse);
SOAP_FMAC5 int SOAP_FMAC6 __ns1__Subscribe(struct soap*, _ns1__Subscribe *ns1__Subscribe, _ns1__SubscribeResponse *ns1__SubscribeResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__Subscribe(struct soap*, _s0__Subscribe *s0__Subscribe, _s0__SubscribeResponse *s0__SubscribeResponse);
SOAP_FMAC5 int SOAP_FMAC6 __ns1__SubscriptionPolledRefresh(struct soap*, _ns1__SubscriptionPolledRefresh *ns1__SubscriptionPolledRefresh, _ns1__SubscriptionPolledRefreshResponse *ns1__SubscriptionPolledRefreshResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__SubscriptionPolledRefresh(struct soap*, _s0__SubscriptionPolledRefresh *s0__SubscriptionPolledRefresh, _s0__SubscriptionPolledRefreshResponse *s0__SubscriptionPolledRefreshResponse);
SOAP_FMAC5 int SOAP_FMAC6 __ns1__SubscriptionCancel(struct soap*, _ns1__SubscriptionCancel *ns1__SubscriptionCancel, _ns1__SubscriptionCancelResponse *ns1__SubscriptionCancelResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__SubscriptionCancel(struct soap*, _s0__SubscriptionCancel *s0__SubscriptionCancel, _s0__SubscriptionCancelResponse *s0__SubscriptionCancelResponse);
SOAP_FMAC5 int SOAP_FMAC6 __ns1__Browse(struct soap*, _ns1__Browse *ns1__Browse, _ns1__BrowseResponse *ns1__BrowseResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__Browse(struct soap*, _s0__Browse *s0__Browse, _s0__BrowseResponse *s0__BrowseResponse);
SOAP_FMAC5 int SOAP_FMAC6 __ns1__GetProperties(struct soap*, _ns1__GetProperties *ns1__GetProperties, _ns1__GetPropertiesResponse *ns1__GetPropertiesResponse);
SOAP_FMAC5 int SOAP_FMAC6 __s0__GetProperties(struct soap*, _s0__GetProperties *s0__GetProperties, _s0__GetPropertiesResponse *s0__GetPropertiesResponse);
#endif
......@@ -19,18 +19,18 @@ class Service
{"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL},
{"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL},
{"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL},
{"ns1", "http://opcfoundation.org/webservices/XMLDA/1.0/", NULL, NULL},
{"s0", "http://opcfoundation.org/webservices/XMLDA/1.0/", NULL, NULL},
{NULL, NULL, NULL, NULL}
};
soap->namespaces = namespaces; } };
virtual ~Service() { if (soap) { soap_destroy(soap); soap_end(soap); soap_free(soap); } };
virtual int __ns1__GetStatus(_ns1__GetStatus *ns1__GetStatus, _ns1__GetStatusResponse *ns1__GetStatusResponse) { return soap ? soap_call___ns1__GetStatus(soap, endpoint, NULL, ns1__GetStatus, ns1__GetStatusResponse) : SOAP_EOM; };
virtual int __ns1__Read(_ns1__Read *ns1__Read, _ns1__ReadResponse *ns1__ReadResponse) { return soap ? soap_call___ns1__Read(soap, endpoint, NULL, ns1__Read, ns1__ReadResponse) : SOAP_EOM; };
virtual int __ns1__Write(_ns1__Write *ns1__Write, _ns1__WriteResponse *ns1__WriteResponse) { return soap ? soap_call___ns1__Write(soap, endpoint, NULL, ns1__Write, ns1__WriteResponse) : SOAP_EOM; };
virtual int __ns1__Subscribe(_ns1__Subscribe *ns1__Subscribe, _ns1__SubscribeResponse *ns1__SubscribeResponse) { return soap ? soap_call___ns1__Subscribe(soap, endpoint, NULL, ns1__Subscribe, ns1__SubscribeResponse) : SOAP_EOM; };
virtual int __ns1__SubscriptionPolledRefresh(_ns1__SubscriptionPolledRefresh *ns1__SubscriptionPolledRefresh, _ns1__SubscriptionPolledRefreshResponse *ns1__SubscriptionPolledRefreshResponse) { return soap ? soap_call___ns1__SubscriptionPolledRefresh(soap, endpoint, NULL, ns1__SubscriptionPolledRefresh, ns1__SubscriptionPolledRefreshResponse) : SOAP_EOM; };
virtual int __ns1__SubscriptionCancel(_ns1__SubscriptionCancel *ns1__SubscriptionCancel, _ns1__SubscriptionCancelResponse *ns1__SubscriptionCancelResponse) { return soap ? soap_call___ns1__SubscriptionCancel(soap, endpoint, NULL, ns1__SubscriptionCancel, ns1__SubscriptionCancelResponse) : SOAP_EOM; };
virtual int __ns1__Browse(_ns1__Browse *ns1__Browse, _ns1__BrowseResponse *ns1__BrowseResponse) { return soap ? soap_call___ns1__Browse(soap, endpoint, NULL, ns1__Browse, ns1__BrowseResponse) : SOAP_EOM; };
virtual int __ns1__GetProperties(_ns1__GetProperties *ns1__GetProperties, _ns1__GetPropertiesResponse *ns1__GetPropertiesResponse) { return soap ? soap_call___ns1__GetProperties(soap, endpoint, NULL, ns1__GetProperties, ns1__GetPropertiesResponse) : SOAP_EOM; };
virtual int __s0__GetStatus(_s0__GetStatus *s0__GetStatus, _s0__GetStatusResponse *s0__GetStatusResponse) { return soap ? soap_call___s0__GetStatus(soap, endpoint, NULL, s0__GetStatus, s0__GetStatusResponse) : SOAP_EOM; };
virtual int __s0__Read(_s0__Read *s0__Read, _s0__ReadResponse *s0__ReadResponse) { return soap ? soap_call___s0__Read(soap, endpoint, NULL, s0__Read, s0__ReadResponse) : SOAP_EOM; };
virtual int __s0__Write(_s0__Write *s0__Write, _s0__WriteResponse *s0__WriteResponse) { return soap ? soap_call___s0__Write(soap, endpoint, NULL, s0__Write, s0__WriteResponse) : SOAP_EOM; };
virtual int __s0__Subscribe(_s0__Subscribe *s0__Subscribe, _s0__SubscribeResponse *s0__SubscribeResponse) { return soap ? soap_call___s0__Subscribe(soap, endpoint, NULL, s0__Subscribe, s0__SubscribeResponse) : SOAP_EOM; };
virtual int __s0__SubscriptionPolledRefresh(_s0__SubscriptionPolledRefresh *s0__SubscriptionPolledRefresh, _s0__SubscriptionPolledRefreshResponse *s0__SubscriptionPolledRefreshResponse) { return soap ? soap_call___s0__SubscriptionPolledRefresh(soap, endpoint, NULL, s0__SubscriptionPolledRefresh, s0__SubscriptionPolledRefreshResponse) : SOAP_EOM; };
virtual int __s0__SubscriptionCancel(_s0__SubscriptionCancel *s0__SubscriptionCancel, _s0__SubscriptionCancelResponse *s0__SubscriptionCancelResponse) { return soap ? soap_call___s0__SubscriptionCancel(soap, endpoint, NULL, s0__SubscriptionCancel, s0__SubscriptionCancelResponse) : SOAP_EOM; };
virtual int __s0__Browse(_s0__Browse *s0__Browse, _s0__BrowseResponse *s0__BrowseResponse) { return soap ? soap_call___s0__Browse(soap, endpoint, NULL, s0__Browse, s0__BrowseResponse) : SOAP_EOM; };
virtual int __s0__GetProperties(_s0__GetProperties *s0__GetProperties, _s0__GetPropertiesResponse *s0__GetPropertiesResponse) { return soap ? soap_call___s0__GetProperties(soap, endpoint, NULL, s0__GetProperties, s0__GetPropertiesResponse) : SOAP_EOM; };
};
#endif
This diff is collapsed.
/*
* Proview $Id: opc_utl.cpp,v 1.9 2007-03-14 10:19:35 claes Exp $
* Proview $Id: opc_utl.cpp,v 1.10 2007-03-15 15:25:36 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -111,7 +111,7 @@ static char opc_ResultTexts[23][20] = {"edgar o was here",
"edgar o was here",
"edgar o was here"};
void opcsrv_returnerror(std::vector<ns1__OPCError *>& errors, std::string **rc, int err_code, unsigned int options)
void opcsrv_returnerror(std::vector<s0__OPCError *>& errors, std::string **rc, int err_code, unsigned int options)
{
pwr_tString32 str;
int ii;
......@@ -130,7 +130,7 @@ void opcsrv_returnerror(std::vector<ns1__OPCError *>& errors, std::string **rc,
}
if (!exists) {
ns1__OPCError *oe = new ns1__OPCError();
s0__OPCError *oe = new s0__OPCError();
oe->ID = std::string(str);
if (options & opc_mRequestOption_ReturnErrorText) {
......@@ -143,7 +143,7 @@ void opcsrv_returnerror(std::vector<ns1__OPCError *>& errors, std::string **rc,
}
bool opc_requestoptions_to_mask( ns1__RequestOptions *options, unsigned int *mask)
bool opc_requestoptions_to_mask( s0__RequestOptions *options, unsigned int *mask)
{
if (!options) {
......@@ -205,13 +205,29 @@ bool opc_string_to_resultcode(char *str, int *type)
// Return the corresponding opc type string for a pwr_eType
//
std::string& opc_datetime( pwr_tTime *tp)
{
static std::string timstr;
char str[40];
time_AtoOPCAscii( tp, str, sizeof(str));
timstr = std::string( str);
return timstr;
}
pwr_tStatus time_AtoOPCAscii (pwr_tTime *tp, char *buf, int bufsize)
{
struct tm *tmpTm;
int buflen;
char tmpStr[16];
pwr_tTime t;
if ( !tp) {
clock_gettime( CLOCK_REALTIME, &t);
tp = &t;
}
tmpTm = localtime(&tp->tv_sec);
strftime(buf, bufsize, "%Y-%m-%dT%H:%M:%S", tmpTm);
......@@ -752,55 +768,12 @@ bool opc_type_to_pwrtype(int type, int *pwrtype)
//
bool opc_pwrtype_to_string( int type, char **str)
{
*str = (char *) malloc(20);
switch ( type) {
case pwr_eType_String:
case pwr_eType_Objid:
case pwr_eType_AttrRef:
strcpy( *str, "string");
break;
case pwr_eType_Boolean:
strcpy( *str, "boolean");
break;
case pwr_eType_Float32:
strcpy( *str, "float");
break;
case pwr_eType_Float64:
strcpy( *str, "double");
break;
case pwr_eType_Enum:
case pwr_eType_Mask:
case pwr_eType_Status:
case pwr_eType_NetStatus:
case pwr_eType_Int32:
strcpy( *str, "int");
break;
case pwr_eType_Int16:
strcpy( *str, "short");
break;
case pwr_eType_Int8:
strcpy( *str, "byte");
break;
case pwr_eType_UInt32:
strcpy( *str, "unsignedInt");
break;
case pwr_eType_UInt16:
strcpy( *str, "unsignedShort");
break;
case pwr_eType_UInt8:
strcpy( *str, "unsignedByte");
break;
case pwr_eType_Time:
strcpy( *str, "dateTime");
break;
case pwr_eType_DeltaTime:
strcpy( *str, "duration");
break;
default:
free( *str);
*str = 0;
int opctype;
if ( !opc_pwrtype_to_opctype( type, &opctype))
return false;
}
*str = str_dt[opctype];
return true;
}
......@@ -816,8 +789,8 @@ void opc_mask_to_propertynames( std::vector<std::string>& pnames, unsigned int m
}
}
bool opc_get_property( std::vector<ns1__ItemProperty *> properties, unsigned int mask,
char **valp)
bool opc_get_property( std::vector<s0__ItemProperty *> properties, unsigned int mask,
xsd__anyType **valp)
{
char name[80];
char *s;
......@@ -954,52 +927,52 @@ bool opc_quality_to_string( int quality, char **str)
{
*str = (char *) malloc(30);
switch ( quality) {
case ns1__qualityBits__bad:
case s0__qualityBits__bad:
strcpy( *str, "bad");
break;
case ns1__qualityBits__badConfigurationError:
case s0__qualityBits__badConfigurationError:
strcpy( *str, "badConfigurationError");
break;
case ns1__qualityBits__badNotConnected:
case s0__qualityBits__badNotConnected:
strcpy( *str, "badNotConnected");
break;
case ns1__qualityBits__badDeviceFailure:
case s0__qualityBits__badDeviceFailure:
strcpy( *str, "badDeviceFailure");
break;
case ns1__qualityBits__badSensorFailure:
case s0__qualityBits__badSensorFailure:
strcpy( *str, "badSensorFailure");
break;
case ns1__qualityBits__badLastKnownValue:
case s0__qualityBits__badLastKnownValue:
strcpy( *str, "badLastKnownValue");
break;
case ns1__qualityBits__badCommFailure:
case s0__qualityBits__badCommFailure:
strcpy( *str, "badCommFailure");
break;
case ns1__qualityBits__badOutOfService:
case s0__qualityBits__badOutOfService:
strcpy( *str, "badOutOfService");
break;
case ns1__qualityBits__badWaitingForInitialData:
case s0__qualityBits__badWaitingForInitialData:
strcpy( *str, "badWaitingForInitialData");
break;
case ns1__qualityBits__uncertain:
case s0__qualityBits__uncertain:
strcpy( *str, "uncertain");
break;
case ns1__qualityBits__uncertainLastUsableValue:
case s0__qualityBits__uncertainLastUsableValue:
strcpy( *str, "uncertainLastUsableValue");
break;
case ns1__qualityBits__uncertainSensorNotAccurate:
case s0__qualityBits__uncertainSensorNotAccurate:
strcpy( *str, "uncertainSensorNotAccurate");
break;
case ns1__qualityBits__uncertainEUExceeded:
case s0__qualityBits__uncertainEUExceeded:
strcpy( *str, "uncertainEUExceede");
break;
case ns1__qualityBits__uncertainSubNormal:
case s0__qualityBits__uncertainSubNormal:
strcpy( *str, "uncertainSubNormal");
break;
case ns1__qualityBits__good:
case s0__qualityBits__good:
strcpy( *str, "good");
break;
case ns1__qualityBits__goodLocalOverride:
case s0__qualityBits__goodLocalOverride:
strcpy( *str, "goodLocalOverride");
break;
default:
......
/*
* Proview $Id: opc_utl.h,v 1.7 2007-03-14 08:02:54 claes Exp $
* Proview $Id: opc_utl.h,v 1.8 2007-03-15 15:25:36 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -106,8 +106,9 @@ typedef enum {
opc_eResultCode_E_BADTYPE ,
} opc_eResultCode;
void opcsrv_returnerror(std::vector<ns1__OPCError *>& errors, std::string **rc, int err_code, unsigned int options);
bool opc_requestoptions_to_mask( ns1__RequestOptions *options, unsigned int *mask);
void opcsrv_returnerror(std::vector<s0__OPCError *>& errors, std::string **rc, int err_code, unsigned int options);
bool opc_requestoptions_to_mask( s0__RequestOptions *options, unsigned int *mask);
std::string& opc_datetime( pwr_tTime *tp);
pwr_tStatus time_AtoOPCAscii (pwr_tTime *tp, char *buf, int bufsize);
bool opc_resultcode_to_string( int type, char *str);
bool opc_resultcode_to_text( int type, char *str);
......@@ -119,8 +120,8 @@ bool opc_pwrtype_to_opctype(int pwrtype, int *opctype);
bool opc_type_to_pwrtype(int type, int *pwrtype);
bool opc_pwrtype_to_string( int type, char **str);
bool opc_get_property( std::vector<ns1__ItemProperty *> properties, unsigned int mask,
char **valp);
bool opc_get_property( std::vector<s0__ItemProperty *> properties, unsigned int mask,
xsd__anyType **valp);
void opc_mask_to_propertynames( std::vector<std::string>& pnames, unsigned int mask);
......
s0 = "http://opcfoundation.org/webservices/XMLDA/1.0/"
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