Commit b1ac8bf5 authored by Claes Sjofors's avatar Claes Sjofors

Merge branch 'master' of pwrcvs:/data1/git/pwr

parents 42b84512 c9ca6ff4
......@@ -162,7 +162,7 @@ static pwr_tStatus IoCardRead( io_tCtx ctx,
}
for ( i = 0; i < GPIO_MAX_CHANNELS; i++) {
if ( cp->chanlist[i].cop) {
if ( cp->chanlist[i].cop && cp->chanlist[i].vbp) {
switch( cp->chanlist[i].ChanClass) {
case pwr_cClass_ChanDi:
fflush( local->value_fp[i]);
......@@ -204,7 +204,7 @@ static pwr_tStatus IoCardWrite( io_tCtx ctx,
}
for ( i = 0; i < GPIO_MAX_CHANNELS; i++) {
if ( cp->chanlist[i].cop) {
if ( cp->chanlist[i].cop && cp->chanlist[i].vbp) {
switch( cp->chanlist[i].ChanClass) {
case pwr_cClass_ChanDo:
if ( *(pwr_tBoolean *)cp->chanlist[i].vbp)
......
......@@ -1280,7 +1280,7 @@ Volume OtherManufacturer $ClassVolume 0.0.250.1
Object Code PlcTemplate 813 03-OCT-2007 10:48:24.39
Body RtBody 03-OCT-2007 10:48:24.39
EndBody
Body DevBody 27-JAN-2010 18:14:14.55
Body DevBody 15-JUN-2011 09:47:53.94
Buffer PlcProgram
Attr oid = "OtherManufacturer:Class-Eurotherm_TC3001Fo-Code"
Attr cid = "pwrb:Class-PlcTemplate"
......@@ -1330,8 +1330,8 @@ Volume OtherManufacturer $ClassVolume 0.0.250.1
Object W WindowPlc 814 03-OCT-2007 10:59:54.84
Body RtBody 03-OCT-2007 10:59:54.84
EndBody
Body DevBody 27-JAN-2010 18:14:14.55
Attr Modified = "27-JAN-2010 18:14:14.55"
Body DevBody 15-JUN-2011 09:47:53.94
Attr Modified = "15-JUN-2011 09:47:53.94"
Buffer PlcWindow
Attr oid = "OtherManufacturer:Class-Eurotherm_TC3001Fo-Code-W"
Attr cid = "pwrb:Class-WindowPlc"
......@@ -9999,17 +9999,17 @@ XS : activa alarms
EndBody
EndObject
Object GetIpPtr27 GetIpPtr 1258 04-OCT-2007 13:18:38.36
Body RtBody 04-OCT-2007 13:18:55.87
Attr IpPtrObject = "$PlcMain:OtherManufacturer-Class-Eurotherm_TC3001"
Body RtBody 15-JUN-2011 09:47:49.90
Attr IpPtrObject = "$PlcMain:OtherManufacturer-Class-Eurotherm_TC3001.IoStatus"
EndBody
Body DevBody 12-OCT-2007 16:51:57.96
Body DevBody 15-JUN-2011 09:47:53.94
Buffer PlcNode
Attr object_type = 11
Attr cid = "pwrb:Class-GetIpPtr"
Attr oid = "OtherManufacturer:Class-Eurotherm_TC3001Fo-Code-W-GetIpPtr27"
Attr x = 4.500000e-01
Attr y = -2.749999e-01
Attr width = 4.740000e-01
Attr width = 4.584445e-01
Attr heigth = 5.000000e-02
Attr woid = "OtherManufacturer:Class-Eurotherm_TC3001Fo-Code-W"
Attr mask[1] = 1
......@@ -11849,7 +11849,7 @@ else
Object Code PlcTemplate 1265 05-OCT-2007 08:26:08.19
Body RtBody 05-OCT-2007 08:26:08.19
EndBody
Body DevBody 15-OCT-2007 08:53:03.22
Body DevBody 15-JUN-2011 09:48:46.26
Buffer PlcProgram
Attr oid = "OtherManufacturer:Class-Eurotherm_TC3001Sim-Code"
Attr cid = "pwrb:Class-PlcTemplate"
......@@ -11871,8 +11871,8 @@ else
Object W WindowPlc 1266 05-OCT-2007 08:26:32.27
Body RtBody 05-OCT-2007 08:26:32.27
EndBody
Body DevBody 15-OCT-2007 08:53:03.22
Attr Modified = "15-OCT-2007 08:53:03.22"
Body DevBody 15-JUN-2011 09:48:46.26
Attr Modified = "15-JUN-2011 09:48:46.26"
Buffer PlcWindow
Attr oid = "OtherManufacturer:Class-Eurotherm_TC3001Sim-Code-W"
Attr cid = "pwrb:Class-WindowPlc"
......@@ -13526,17 +13526,17 @@ else
EndBody
EndObject
Object StoIpPtr3 StoIpPtr 1324 05-OCT-2007 10:52:49.91
Body RtBody 05-OCT-2007 10:53:15.22
Attr IpPtrObject = "$PlcMain:OtherManufacturer-Class-Eurotherm_TC3001"
Body RtBody 15-JUN-2011 09:48:38.88
Attr IpPtrObject = "$PlcMain:OtherManufacturer-Class-Eurotherm_TC3001.IoStatus"
EndBody
Body DevBody 11-OCT-2007 17:14:19.59
Body DevBody 15-JUN-2011 09:48:46.26
Buffer PlcNode
Attr object_type = 11
Attr cid = "pwrb:Class-StoIpPtr"
Attr oid = "OtherManufacturer:Class-Eurotherm_TC3001Sim-Code-W-StoIpPtr3"
Attr x = 2.300000e+00
Attr y = -3.250000e-01
Attr width = 4.740000e-01
Attr width = 4.584445e-01
Attr heigth = 5.000000e-02
Attr woid = "OtherManufacturer:Class-Eurotherm_TC3001Sim-Code-W"
Attr mask[0] = 1
......@@ -2669,7 +2669,6 @@ char *cdh_OpSysToStr( pwr_mOpSys opsys)
static char str[32];
switch( opsys) {
case pwr_mOpSys_VAX_ELN: strcpy( str, "vax_eln"); break;
case pwr_mOpSys_VAX_VMS: strcpy( str, "vax_vms"); break;
case pwr_mOpSys_AXP_VMS: strcpy( str, "axp_vms"); break;
case pwr_mOpSys_PPC_LYNX: strcpy( str, "ppc_lynx"); break;
......@@ -2677,6 +2676,37 @@ char *cdh_OpSysToStr( pwr_mOpSys opsys)
case pwr_mOpSys_PPC_LINUX: strcpy( str, "ppc_linux"); break;
case pwr_mOpSys_X86_LINUX: strcpy( str, "x86_linux"); break;
case pwr_mOpSys_X86_64_LINUX: strcpy( str, "x86_64_linux"); break;
case pwr_mOpSys_X86_64_MACOS: strcpy( str, "x86_64_macos"); break;
case pwr_mOpSys_ARM_LINUX: strcpy( str, "arm_linux"); break;
case pwr_mOpSys_X86_64_FREEBSD: strcpy( str, "x86_64_freebsd"); break;
default: strcpy( str, "");
}
return str;
}
//! Convert operating system to directory string
/*!
For example pwr_mOpSys_X86_LINUX will be converted to "os_linux/hw_x86".
A pointer to a static string is returned.
\param opsys Operating system.
\return String
*/
char *cdh_OpSysToDirStr( pwr_mOpSys opsys)
{
static char str[80];
switch( opsys) {
case pwr_mOpSys_VAX_VMS: strcpy( str, "os_vms/hw_vax"); break;
case pwr_mOpSys_AXP_VMS: strcpy( str, "os_vms/hw_axp"); break;
case pwr_mOpSys_PPC_LYNX: strcpy( str, "os_lynx/hw_ppc"); break;
case pwr_mOpSys_X86_LYNX: strcpy( str, "os_lynx/hw_x86"); break;
case pwr_mOpSys_PPC_LINUX: strcpy( str, "os_linux/hw_ppc"); break;
case pwr_mOpSys_X86_LINUX: strcpy( str, "os_linux/hw_x86"); break;
case pwr_mOpSys_X86_64_LINUX: strcpy( str, "os_linux/hw_x86_64"); break;
case pwr_mOpSys_X86_64_MACOS: strcpy( str, "os_macos/hw_x86_64"); break;
case pwr_mOpSys_ARM_LINUX: strcpy( str, "os_linux/hw_arm"); break;
case pwr_mOpSys_X86_64_FREEBSD: strcpy( str, "os_freebsd/hw_x86_64"); break;
default: strcpy( str, "");
}
return str;
......
......@@ -1045,6 +1045,8 @@ cdh_StrncpyCutOff(
char *cdh_OpSysToStr( pwr_mOpSys opsys);
char *cdh_OpSysToDirStr( pwr_mOpSys opsys);
pwr_sAttrRef cdh_ArefToCastAref( pwr_sAttrRef *arp);
pwr_sAttrRef cdh_ArefToDisableAref( pwr_sAttrRef *arp);
......
......@@ -4,6 +4,7 @@ remote 1
nmps 1
sev 1
opc 1
misc 1
profibus 1
otherio 1
ssabox 1
......
......@@ -20,6 +20,7 @@ cp -p $2/exp/load/rt.dbs $2/rt/load/
cp -p $2/exp/load/basecomponent.dbs $2/bcomp/load/
cp -p $2/exp/load/nmps.dbs $2/nmps/load/
cp -p $2/exp/load/opc.dbs $2/opc/load/
cp -p $2/exp/load/miscellaneous.dbs $2/misc/load/
cp -p $2/exp/load/profibus.dbs $2/profibus/load/
cp -p $2/exp/load/otherio.dbs $2/otherio/load/
cp -p $2/exp/load/remote.dbs $2/remote/load/
......
......@@ -10,6 +10,7 @@ rt_modules = \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/basecomponent.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/nmps.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/opc.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/miscellaneous.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/profibus.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/otherio.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/remote.dbs \
......@@ -31,6 +32,8 @@ rt_modules = \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/nmps/inc/pwr_nmpsclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_opcclasses.h \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_opcclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_miscellaneousclasses.h \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_miscellaneousclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/profibus/inc/pwr_profibusclasses.h \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/profibus/inc/pwr_profibusclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/otherio/inc/pwr_otherioclasses.h \
......@@ -136,6 +139,14 @@ $(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/%.hpp : $(pwre_vmsinc)/exp/inc/%.hpp
@ echo Import ${target}
@ cp $(source) $(target)
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/misc/inc/%.h : $(pwre_vmsinc)/exp/inc/%.h
@ echo Import ${target}
@ cp $(source) $(target)
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/misc/inc/%.hpp : $(pwre_vmsinc)/exp/inc/%.hpp
@ echo Import ${target}
@ cp $(source) $(target)
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/profibus/inc/%.h : $(pwre_vmsinc)/exp/inc/%.h
@ echo Import ${target}
@ cp $(source) $(target)
......
......@@ -19,6 +19,7 @@ cp -p $2/exp/load/pwrb.dbs $2/rt/load/
cp -p $2/exp/load/rt.dbs $2/rt/load/
cp -p $2/exp/load/basecomponent.dbs $2/bcomp/load/
cp -p $2/exp/load/nmps.dbs $2/nmps/load/
cp -p $2/exp/load/miscellaneous.dbs $2/misc/load/
cp -p $2/exp/load/opc.dbs $2/opc/load/
cp -p $2/exp/load/profibus.dbs $2/profibus/load/
cp -p $2/exp/load/otherio.dbs $2/otherio/load/
......
......@@ -9,6 +9,7 @@ rt_modules = \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/rt.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/basecomponent.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/nmps.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/miscellaneous.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/opc.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/profibus.dbs \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/exp/load/otherio.dbs \
......@@ -29,6 +30,8 @@ rt_modules = \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/bcomp/inc/pwr_basecomponentclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/nmps/inc/pwr_nmpsclasses.h \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/nmps/inc/pwr_nmpsclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_miscellaneousclasses.h \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_miscellaneousclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_opcclasses.h \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/pwr_opcclasses.hpp \
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/profibus/inc/pwr_profibusclasses.h \
......@@ -128,6 +131,14 @@ $(pwre_broot)/$(pwre_os)/$(pwre_hw)/nmps/inc/%.hpp : $(pwre_vmsinc)/exp/inc/%.hp
@ echo Import ${target}
@ cp $(source) $(target)
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/misc/inc/%.h : $(pwre_vmsinc)/exp/inc/%.h
@ echo Import ${target}
@ cp $(source) $(target)
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/misc/inc/%.hpp : $(pwre_vmsinc)/exp/inc/%.hpp
@ echo Import ${target}
@ cp $(source) $(target)
$(pwre_broot)/$(pwre_os)/$(pwre_hw)/opc/inc/%.h : $(pwre_vmsinc)/exp/inc/%.h
@ echo Import ${target}
@ cp $(source) $(target)
......
......@@ -347,10 +347,12 @@ sub ebuild # args: pass flavour
_build("exe", "wb_rtt", "src", "all");
_build("lib", "dtt", "src", "all");
_build("exp", "stdsoap2", "src", "all");
merge();
_module("otherio");
_build("exp","rt","src","copy");
_build("lib","usbio_dummy","src","init lib");
_build("lib","usb_dummy","src","init lib");
_build("lib","cifx_dummy","src","init lib");
merge();
_module("rt");
_build("exe", "rt*", "src", "all");
......@@ -388,6 +390,7 @@ sub ebuild # args: pass flavour
if ( $build_profibus == 1) {
_module("profibus");
_build("lib", "rt", "src", "all");
_build("lib","pnak_dummy","src","init lib");
merge();
}
if ( $build_remote == 1) {
......
......@@ -684,6 +684,7 @@ pwr_tStatus lfu_SaveDirectoryVolume(
char path[80];
int path_file_created = 0;
pwr_tString80 custom_platform;
pwr_mOpSys custom_os;
syntax_error = 0;
strcpy( null_nodename, "-");
......@@ -1336,7 +1337,7 @@ pwr_tStatus lfu_SaveDirectoryVolume(
lfu_check_appl_file( nodename_ptr, *bus_number_ptr);
lfu_check_opt_file( nodename_ptr, *bus_number_ptr, (pwr_mOpSys) os);
// lfu_check_opt_file( nodename_ptr, *bus_number_ptr, (pwr_mOpSys) os);
/* Find the volumes in this node */
sts = ldh_GetChild( ldhses, nodeobjid, &volobjid);
......@@ -2075,11 +2076,11 @@ pwr_tStatus lfu_SaveDirectoryVolume(
distr_options = (lfu_mDistrOpt)((int)distr_options | lfu_mDistrOpt_NoRootVolume);
strcpy( custom_platform, "-");
custom_os = pwr_mOpSys__;
/* Find any CustomBuild for this node */
class_vect[0] = pwr_cClass_CustomBuild;
class_vect[1] = pwr_cClass_BuildOptions;
class_vect[2] = 0;
class_vect[1] = 0;
objcount = 0;
objlist = 0;
......@@ -2103,12 +2104,13 @@ pwr_tStatus lfu_SaveDirectoryVolume(
switch ( ccid) {
case pwr_cClass_CustomBuild: {
char *platform_p;
pwr_tMask *os_p;
sts = ldh_ObjidToName( ldhses, applobjid, ldh_eName_Object,
appl_name, sizeof(appl_name), &size);
if ( EVEN(sts)) return sts;
/* Check Source attribute */
/* Get Platform attribute */
sts = ldh_GetObjectPar( ldhses, applobjid, "DevBody",
"Platform", &platform_p, &size);
if (EVEN(sts)) return sts;
......@@ -2116,14 +2118,54 @@ pwr_tStatus lfu_SaveDirectoryVolume(
if ( strcmp( platform_p, "") != 0)
strncpy( custom_platform, platform_p, sizeof(custom_platform));
free( platform_p);
/* Get OperatingSystem attribute */
sts = ldh_GetObjectPar( ldhses, applobjid, "DevBody",
"OperatingSystem", (char **)&os_p, &size);
if (EVEN(sts)) return sts;
custom_os = (pwr_mOpSys) *os_p;
free( os_p);
break;
}
default: ;
}
}
/* Find any BuildOptions for this node */
class_vect[0] = pwr_cClass_BuildOptions;
class_vect[1] = 0;
objcount = 0;
objlist = 0;
sts = trv_create_ctx( &trvctx, ldhses, nodeobjid, class_vect, NULL,
NULL);
if ( EVEN(sts)) return sts;
sts = trv_object_search( trvctx,
&utl_objidlist_insert, &objlist,
&objcount, 0, 0, 0);
if ( EVEN (sts)) return sts;
sts = trv_delete_ctx( trvctx);
for ( obj_ptr = objlist; obj_ptr; obj_ptr = obj_ptr->next) {
applobjid = obj_ptr->objid;
sts = ldh_GetObjectClass( ldhses, applobjid, &ccid);
if ( EVEN(sts)) return sts;
switch ( ccid) {
case pwr_cClass_BuildOptions: {
pwr_sClass_BuildOptions *bop;
int size;
pwr_tString80 ar, opt;
char str[2000] = "";
FILE *optfile;
char dir[80];
if ( os == pwr_mOpSys_CustomBuild && custom_os == pwr_mOpSys__)
break;
sts = ldh_GetObjectBody( ldhses, applobjid, "RtBody", (void **)&bop, &size);
if ( EVEN(sts)) return sts;
......@@ -2140,10 +2182,17 @@ pwr_tStatus lfu_SaveDirectoryVolume(
sprintf( &str[strlen(str)], "%s ", opt);
}
if ( bop->SystemModules & pwr_mBuildOptionsMask_IoUser)
sprintf( &str[strlen(str)], "$pwrp_obj/rt_io_user.o ");
else
sprintf( &str[strlen(str)], "$pwr_obj/rt_io_user.o ");
else {
if ( os == pwr_mOpSys_CustomBuild)
sprintf( &str[strlen(str)], "$pwrb_root/%s/exp/obj/rt_io_user.o ",
cdh_OpSysToDirStr( (pwr_mOpSys)custom_os));
else
sprintf( &str[strlen(str)], "$pwrb_root/%s/exp/obj/rt_io_user.o ",
cdh_OpSysToDirStr( (pwr_mOpSys)os));
}
for ( int i = 0; i < (int)(sizeof(bop->Archives)/sizeof(bop->Archives[0])); i++) {
dcli_trim( opt, bop->Archives[i]);
......@@ -2198,7 +2247,11 @@ pwr_tStatus lfu_SaveDirectoryVolume(
free( (char *)bop);
sprintf( fname, load_cNameOpt, "$pwrp_exe/", nodename_ptr, *bus_number_ptr);
if ( os == pwr_mOpSys_CustomBuild)
sprintf( dir, "$pwrp_root/bld/%s/exe/", cdh_OpSysToStr( (pwr_mOpSys)custom_os));
else
sprintf( dir, "$pwrp_root/bld/%s/exe/", cdh_OpSysToStr( (pwr_mOpSys)os));
sprintf( fname, load_cNameOpt, dir, nodename_ptr, *bus_number_ptr);
dcli_translate_filename( fname, fname);
optfile = fopen( fname, "w");
if ( optfile == 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