[openrtm-commit:01209] r2404 - in branches/RELENG_1_1/OpenRTM-aist: . build packages src/lib/coil/posix/coil src/lib/rtm src/lib/rtm/idl win32/OpenRTM-aist/etc win32/OpenRTM-aist/installer win32/OpenRTM-aist/installer/OpenRTP

openrtm @ openrtm.org openrtm @ openrtm.org
2014年 2月 6日 (木) 11:15:22 JST


Author: n-ando
Date: 2014-02-06 11:15:22 +0900 (Thu, 06 Feb 2014)
New Revision: 2404

Added:
   branches/RELENG_1_1/OpenRTM-aist/packages/pkgsrc/
   branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.props
   branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.vsprops
   branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/autowix_vc10.cmd
Modified:
   branches/RELENG_1_1/OpenRTM-aist/
   branches/RELENG_1_1/OpenRTM-aist/Makefile.am
   branches/RELENG_1_1/OpenRTM-aist/build/makewrapper.py
   branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_debian.sh
   branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_ubuntu.sh
   branches/RELENG_1_1/OpenRTM-aist/configure.ac
   branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Condition.h
   branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Routing.cpp
   branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/CORBA_SeqUtil.h
   branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/InPort.h
   branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp
   branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/idl/ExtendedDataTypes.idl
   branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props
   branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTP/OpenRTP_inc.wxs
Log:
[merge] r2328,2346,2381-2383,2389-2393,2397-2398,2400-2401 have been merged from trunk.


Property changes on: branches/RELENG_1_1/OpenRTM-aist
___________________________________________________________________
Modified: svn:mergeinfo
   - /tags/RELEASE_1_1_0/OpenRTM-aist:2364-2372
/tags/RELEASE_1_1_0_RC2/OpenRTM-aist:2173
/trunk/OpenRTM-aist:2154-2172,2174-2176,2180,2183-2208,2213
   + /tags/RELEASE_1_1_0/OpenRTM-aist:2364-2372
/tags/RELEASE_1_1_0_RC2/OpenRTM-aist:2173
/trunk/OpenRTM-aist:2154-2172,2174-2176,2180,2183-2208,2213,2328,2346,2381-2383,2389-2393,2397-2398,2400-2401

Modified: branches/RELENG_1_1/OpenRTM-aist/Makefile.am
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/Makefile.am	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/Makefile.am	2014-02-06 02:15:22 UTC (rev 2404)
@@ -7,7 +7,7 @@
 
 AUTOMAKE_OPTIONS = 1.4
 
-SUBDIRS = build src utils examples etc docs win32
+SUBDIRS = build src utils examples etc $(DOCS) win32
 
 DIST_SUBDIRS = packages $(SUBDIRS)
 

Modified: branches/RELENG_1_1/OpenRTM-aist/build/makewrapper.py
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/build/makewrapper.py	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/build/makewrapper.py	2014-02-06 02:15:22 UTC (rev 2404)
@@ -280,7 +280,10 @@
         self.write_skelh()
         self.write_stub()
         self.write_stubh()
-        self.omniorb_gcc4_fix()
+
+        import sys
+        if sys.platform != 'win32':
+            self.omniorb_gcc4_fix()
         return
 
     def write_skel(self):

Modified: branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_debian.sh
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_debian.sh	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_debian.sh	2014-02-06 02:15:22 UTC (rev 2404)
@@ -45,7 +45,7 @@
     msg2="コードネーム : "
     msg3="このOSはサポートされておりません。"
     msg4=" OpenRTM-aistのリポジトリが登録されていません。"
-    msg5="Source.listにOpenrRTM-aistのリポジトリ:"
+    msg5="Source.listにOpenRTM-aistのリポジトリ:"
     msg6="を追加します。よろしいですか?(y/n)[y] "
     msg7="中断します。"
     msg8="ルートユーザーで実行してください。"
@@ -57,8 +57,8 @@
     msg2="The code name is : "
     msg3="This OS is not supported."
     msg4="No repository entry for OpenRTM-aist is configured in your system."
-    msg5="repository entry for OpenrRTM-aist: "
-    msg6="Do you want to add the repository entry for OpenrRTM-aist in source.list?(y/n)[y] "
+    msg5="repository entry for OpenRTM-aist: "
+    msg6="Do you want to add the repository entry for OpenRTM-aist in source.list?(y/n)[y] "
     msg7="Abort."
     msg8="This script should be run as root."
     msg9="Now installing: "
@@ -134,7 +134,7 @@
 	echo $msg4
 	echo $msg5
 	echo "  " $openrtm_repo
-	read -p $msg6 kick_shell
+	read -p "$msg6" kick_shell
 
 	if test "x$kick_shell" = "xn" ; then
 	    echo $msg7

Modified: branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_ubuntu.sh
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_ubuntu.sh	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/build/pkg_install_ubuntu.sh	2014-02-06 02:15:22 UTC (rev 2404)
@@ -48,8 +48,8 @@
     msg2="The code name is : "
     msg3="This OS is not supported."
     msg4="No repository entry for OpenRTM-aist is configured in your system."
-    msg5="repository entry for OpenrRTM-aist: "
-    msg6="Do you want to add new repository entry for OpenrRTM-aist in source.list? (y/n) [y] "
+    msg5="repository entry for OpenRTM-aist: "
+    msg6="Do you want to add new repository entry for OpenRTM-aist in source.list? (y/n) [y] "
     msg7="Abort."
     msg8="This script should be run as root."
     msg9="Now installing: "
@@ -120,7 +120,7 @@
 	echo $msg4
 	echo $msg5
 	echo "  " $openrtm_repo
-	read -p $msg6 kick_shell
+	read -p "$msg6" kick_shell
 
 	if test "x$kick_shell" = "xn" ; then
 	    echo $msg7

Modified: branches/RELENG_1_1/OpenRTM-aist/configure.ac
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/configure.ac	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/configure.ac	2014-02-06 02:15:22 UTC (rev 2404)
@@ -114,6 +114,7 @@
 AC_ARG_WITH(rtorb,            [  --with-rtorb=dir                Find RtORB installation below dir])
 AC_ARG_WITH(generic-orb,      [  --with-generic-orb              Use other CORBA 2.3 ORB])
 AC_ARG_WITH(generic-orb-lib,  [  --with-generic-orb-lib	=libs    ORB libraries (-l...)])
+AC_ARG_WITH(doxygen,          [  --without-doxygen               Don't create documentation by doxygen])
 
 dnl  Script wrapper selection
 #AC_ARG_WITH(python,           [  --with-python=dir               Find Python installation below dir])
@@ -273,87 +274,30 @@
 dnl AC_FUNC_ERROR_AT_LINE
 
 
-
-
-
-
-
 dnl ============================================================
-dnl Check ACE setup
+dnl Check Doxygen setup
 dnl
-dnl 1. check ace/ACE.h for ACE
-dnl 2. check libACE.so
-dnl 3. check ACE version from ace/Version.h
+dnl 1. check if doxygen installed
+dnl 2. set DOCS variable
 dnl ============================================================
 dnl ------------------------------------------------------------
-dnl  Find ace/ACE.h
+dnl  Find doxygen
 dnl ------------------------------------------------------------
-dnl AC_MSG_CHECKING(for ace/ACE.h)
-dnl dnl PKG_CHECK_MODULES(ACE,ACE)
-dnl FP_FIND_FILE(ace/ACE.h,
-dnl 	$with_ace_includes $more_incs $base_incs $base_dirs,
-dnl 	ACE_wrappers include cxx/include)
-dnl if test "x$ace_ACE_h_dir" = "x" ; then
-dnl 	AC_MSG_RESULT(ACE (ace/ACE.h) not found)
-dnl 	AC_MSG_ERROR(
-dnl 	use --with-ace-includes=<dir> to locate ace/ACE.h
-dnl hint: <dir>/( ACE_wrappers | include | cxx/include ) will be searched.)
-dnl 	# Error exit!!
-dnl else
-dnl 	AC_MSG_RESULT(found in $ace_ACE_h_dir)
-dnl 	have_ace=yes
-dnl fi
-dnl 
-dnl dnl ------------------------------------------------------------
-dnl dnl  Find libACE.so / Checking ACE version
-dnl dnl ------------------------------------------------------------
-dnl if test "x$have_ace" = "xyes" ; then
-dnl 	AC_MSG_CHECKING(for libACE.so)
-dnl 	FP_FIND_FILE(libACE.so,
-dnl 		$with_ace_lib $more_libs $base_libs $base_dirs,
-dnl 		ACE_wrappers/ace/lib lib cxx/lib)
-dnl 	if test "x$libACE_so_dir" = "x" ; then
-dnl 		AC_MSG_RESULT(not found)
-dnl 		AC_MSG_ERROR(
-dnl 	use --with-ace-lib=<dir> to locate libACE.so.
-dnl hint: <dir>/( ACE_wrappers/ace/lib lib cxx/lib ) will be searched.)
-dnl 		# Error exit!!
-dnl 	else
-dnl 		AC_MSG_RESULT(found in $libACE_so_dir)
-dnl 	fi
-dnl 
-dnl 	AC_MSG_CHECKING(ACE version)
-dnl 
-dnl 	# In ACE 5.5.4, ACE_VERSION is defined as ACE_VERSION " 5.5.4"
-dnl 	# "cut" cannot be used to extract version strings
-dnl 	ace_version=[`grep ACE_VERSION $ace_ACE_h_dir/ace/Version.h | sed 's/.*\"\(.*\)\"/\1/' | sed 's/ //g'`]
-dnl 
-dnl 	case $ace_version in
-dnl 	[5.6.1|5.5.*|5.4.*|5.3.*|5.5|5.4|5.3)]
-dnl 		AC_DEFINE([ACE_5_6_1_OR_EARLIER], [TRUE], [ACE version 5.6.1 or earlier])
-dnl 		;;
-dnl 	# ACE 5.6.2 or later signature of UUID_Generator::generateUUID
-dnl 	# has been changed as generate_UUID
-dnl 	[5.7.*|5.6.[2-9]|5.7|5.6)]
-dnl 		;;
-dnl 	*)
-dnl 		AC_MSG_WARN([Unknown ACE version number, expecting 5.3.0 or above.])
-dnl 	esac
-dnl  	AC_MSG_RESULT($ace_version)
-dnl 
-dnl 	#
-dnl 	# ACE setup complete
-dnl 	#
-dnl 	# Compiler/Linker options
-dnl 	CPPFLAGS="-I$ace_ACE_h_dir $CPPFLAGS"
-dnl 	CXXFLAGS="-I$ace_ACE_h_dir $CXXFLAGS"
-dnl 	LDFLAGS="-L$libACE_so_dir $LDFLAGS "
-dnl 	LIBS="-lACE $LIBS"
-dnl 	LDSOLIBS="-lACE $LDSOLIBS"
-dnl 	AC_DEFINE([WITH_ACE], [TRUE], [compiled with ACE])
-dnl fi
+DOCS="docs"
+if test "x$with_doxygen" = "xno" ; then
+	DOCS=""
+else
+	AC_MSG_CHECKING(for doxygen)
+	FP_FIND_FILE(doxygen,$base_bins $base_dirs,bin)
+	if test "x$doxygen" = "x" ; then
+		AC_MSG_RESULT(not found)
+		AC_MSG_ERROR(Please install doxygen or use --without-document option)
+	else
+		AC_MSG_RESULT($doxygen)
+	fi
+	DOCS="docs"
+fi
 
-
 dnl ============================================================
 dnl Check boost setup
 dnl
@@ -1533,6 +1477,9 @@
 AC_SUBST(IDL_FLAGS)
 AC_SUBST(COSNAMES)
 
+dnl Documentation related options
+AC_SUBST(DOCS)
+
 dnl Wrapper code subdirectory 
 AC_SUBST(WRAPPERS)
 AC_SUBST(PYTHON_FLAGS)


Property changes on: branches/RELENG_1_1/OpenRTM-aist/configure.ac
___________________________________________________________________
Modified: svn:mergeinfo
   - /tags/RELEASE_1_1_0_RC2/OpenRTM-aist/configure.ac:2173
/trunk/OpenRTM-aist/configure.ac:2154-2172,2174-2176,2180,2183-2208,2213,2278,2330
   + /tags/RELEASE_1_1_0_RC2/OpenRTM-aist/configure.ac:2173
/trunk/OpenRTM-aist/configure.ac:2154-2172,2174-2176,2180,2183-2208,2213,2278,2330,2397-2398,2400-2401

Modified: branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Condition.h
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Condition.h	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Condition.h	2014-02-06 02:15:22 UTC (rev 2404)
@@ -23,8 +23,8 @@
 #include <pthread.h>
 #include <algorithm>
 #include <ctime>
+#include <sys/time.h>
 
-
 namespace coil
 {
   /*!
@@ -177,9 +177,16 @@
      */
     bool wait(long second, long nano_second = 0)
     {
+      struct timeval tv;
       timespec abstime;
-      abstime.tv_sec = std::time(0) + second;
-      abstime.tv_nsec = nano_second;
+
+      ::gettimeofday(&tv, NULL);
+      abstime.tv_sec  = tv.tv_sec + second;
+      abstime.tv_nsec = tv.tv_usec * 1000 + nano_second;
+      if (abstime.tv_nsec >= 1000000000) {
+        abstime.tv_nsec -= 1000000000;
+        abstime.tv_sec ++;
+      }
       return 0 == ::pthread_cond_timedwait(&m_cond, &m_mutex.mutex_, &abstime);
     }
 

Modified: branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Routing.cpp
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Routing.cpp	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/src/lib/coil/posix/coil/Routing.cpp	2014-02-06 02:15:22 UTC (rev 2404)
@@ -115,6 +115,7 @@
             if (vs[i] == "dev")
               {
                 dest_if = vs[i + 1];
+                pclose(fp);
                 return true;
               }
           }

Modified: branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/CORBA_SeqUtil.h
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/CORBA_SeqUtil.h	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/CORBA_SeqUtil.h	2014-02-06 02:15:22 UTC (rev 2404)
@@ -31,7 +31,7 @@
  * CORBA sequence に対して以下のユーティリティテンプレート関数を提供する。
  * 操作はスレッドセーフではないので、スレッドセーフに操作したい場合は、
  * 対象となるシーケンス値を適切にmutex等で保護する必要がある。
- * 
+ *
  * - for_each()
  * - find()
  * - push_back()
@@ -51,7 +51,7 @@
  * Since these functions are not thread-safe operations,
  * if the sequence would be operated in thread-safe,
  * the value should be protected by mutex properly.
- * 
+ *
  * - for_each()
  * - find()
  * - push_back()
@@ -101,11 +101,11 @@
     len = seq.length();
     for (CORBA::ULong i = 0; i < len; ++i)
       {
-	f(seq[i]);
+        f(seq[i]);
       }
     return f;
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence の中から functor に適合する要素のインデックスを返す
@@ -123,7 +123,7 @@
    *
    * @else
    *
-   * @brief Return the index of CORBA sequence element that functor matches 
+   * @brief Return the index of CORBA sequence element that functor matches
    *
    * This operation applies the given functor to the given CORBA sequence,
    * and returns the index of the sequence element that the functor matches.
@@ -144,11 +144,11 @@
     CORBA::ULong len(seq.length());
     for (CORBA::ULong i = 0; i < len; ++i)
       {
-	if (f(seq[i])) return (CORBA::Long)i;
+        if (f(seq[i])) { return (CORBA::Long)i; }
       }
     return -1;
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence の最後に要素を追加する
@@ -178,7 +178,7 @@
     seq.length(len + 1);
     seq[len] = elem;
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence をマージする
@@ -206,13 +206,13 @@
     CORBA::ULong len2(seq2.length());
     CORBA::ULong len(len1 + len2);
     seq1.length(len);
-    
+
     for (CORBA::ULong i = 0; i < len2; ++i)
       {
-	seq1[len1 + i] = seq2[i];
+        seq1[len1 + i] = seq2[i];
       }
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence に要素を挿入する
@@ -247,18 +247,18 @@
     CORBA::ULong len(seq.length());
     if (index > len)
       {
-	push_back(seq, elem);
-	return;
+        push_back(seq, elem);
+        return;
       }
-    
+
     seq.length(len + 1);
     for (CORBA::ULong i = len; i > index; --i)
       {
-	seq[i] = seq[i - 1];
+        seq[i] = seq[i - 1];
       }
     seq[index] = elem;
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence の先頭要素を取得する
@@ -289,7 +289,7 @@
   {
     return seq[0];
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence の末尾要素を取得する
@@ -312,13 +312,13 @@
    * @return An acquisition element
    *
    * @endif
-   */	
+   */
   template <class CorbaSequence, class SequenceElement>
   SequenceElement& back(CorbaSequence& seq)
   {
     return seq[seq.length() - 1];
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence の指定された位置の要素を削除する
@@ -346,14 +346,14 @@
   {
     CORBA::ULong len(seq.length());
     if (index > len) return;
-    
+
     for (CORBA::ULong i = index; i < len - 1; ++i)
       {
-	seq[i] = seq[i + 1];
+        seq[i] = seq[i + 1];
       }
     seq.length(len - 1);
   }
-  
+
   /*!
    * @if jp
    *
@@ -369,7 +369,7 @@
    *
    * @brief Remove an element of a sequence according to a predicate
    *
-   * This operation removes the element from sequence when a condition of 
+   * This operation removes the element from sequence when a condition of
    * a function object given as a predicate is True.
    *
    * @param seq target CORBA sequence
@@ -385,11 +385,11 @@
     if (index < 0) return;
     CORBA_SeqUtil::erase(seq, index);
   }
-  
+
   /*!
    * @if jp
    * @brief CORBA sequence の全要素を削除
-   *   
+   *
    * CORBA sequence の全要素を削除する。
    * seq.length(0) と同じ。
    *

Modified: branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/InPort.h
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/InPort.h	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/InPort.h	2014-02-06 02:15:22 UTC (rev 2404)
@@ -152,7 +152,8 @@
       :	InPortBase(name, ::CORBA_Util::toRepositoryId<DataType>()),
 #endif
         m_name(name), m_value(value),
-	m_OnRead(NULL),  m_OnReadConvert(NULL)
+	m_OnRead(NULL),  m_OnReadConvert(NULL),
+	m_status(1)
     {
     }
     
@@ -399,6 +400,7 @@
         // means that we only need to read from the first connector to get data
         // received by any connector.
         ret = m_connectors[0]->read(cdr);
+	m_status[0] = ret;
       }
       if (ret == PORT_OK)
         {
@@ -480,6 +482,77 @@
       rhs = m_value;
       return;
     }
+
+    /*!
+     * @if jp
+     *
+     * @brief 特定のコネクタへの書き込みステータスを得る
+     *
+     * InPort は接続ごとに Connector と呼ばれる仮想データチャネルを持
+     * つ。write() 関数はこれら Connector に対してデータを書き込むが、
+     * 各 Connector は書き込みごとにステータスを返す。write() 関数では、
+     * すべての Connector が正常終了したときのみ true を返し、それ以外
+     * では false を返却する。この関数は write() が false の場合ステー
+     * タスを調べるのに使用することができる。
+     *
+     * @param index Connector の index
+     * @return ステータス
+     *
+     * @else
+     *
+     * @brief Getting specified connector's writing status
+     *
+     * An InPort has Connectors that are virtual data stream channel
+     * for each connection.  "write()" function write into these
+     * Connectors, and each Connector returns writing-status.  write()
+     * function will return a true value if all Connectors return
+     * normal status, and a false value will be returned if at least
+     * one Connector failed.  This function can be used to inspect
+     * each return status
+     *
+     * @param index Connector index
+     * @return Writing status
+     *
+     * @endif
+     */
+    DataPortStatus::Enum getStatus(int index)
+    {
+      return m_status[0];
+    }
+    /*!
+     * @if jp
+     *
+     * @brief 特定のコネクタへの書き込みステータスリストを得る
+     *
+     * InPort は接続ごとに Connector と呼ばれる仮想データチャネルを持
+     * つ。write() 関数はこれら Connector に対してデータを書き込むが、
+     * 各 Connector は書き込みごとにステータスを返す。write() 関数では、
+     * すべての Connector が正常終了したときのみ true を返し、それ以外
+     * では false を返却する。この関数は write() が false の場合ステー
+     * タスを調べるのに使用することができる。
+     *
+     * @return ステータスリスト
+     *
+     * @else
+     *
+     * @brief Getting specified connector's writing status list
+     *
+     * An InPort has Connectors that are virtual data stream channel
+     * for each connection.  "write()" function write into these
+     * Connectors, and each Connector returns writing-status.  write()
+     * function will return a true value if all Connectors return
+     * normal status, and a false value will be returned if at least
+     * one Connector failed.  This function can be used to inspect
+     * each return status
+     *
+     * @return Writing status list
+     *
+     * @endif
+     */
+    DataPortStatusList getStatusList()
+    {
+      return m_status;
+    }    
     
     /*!
      * @if jp
@@ -572,7 +645,8 @@
      * @endif
      */
     OnReadConvert<DataType>* m_OnReadConvert;
-   
+
+    DataPortStatusList m_status;
   };
 }; // End of namesepace RTM
 

Modified: branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp	2014-02-06 02:15:22 UTC (rev 2404)
@@ -180,11 +180,11 @@
   {
     SDOPackage::ServiceProfileList_var prof
       = new SDOPackage::ServiceProfileList();
-    SDOPackage::ServiceProfileList prof2;
     Guard guard(m_provider_mutex);
+    prof->length(m_providers.size());
     for (size_t i(0); i < m_providers.size(); ++i)
       {
-        CORBA_SeqUtil::push_back(prof2, m_providers[i]->getProfile());
+        prof[i] = m_providers[i]->getProfile();
       }
     return prof._retn();
   }

Modified: branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/idl/ExtendedDataTypes.idl
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/idl/ExtendedDataTypes.idl	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/src/lib/rtm/idl/ExtendedDataTypes.idl	2014-02-06 02:15:22 UTC (rev 2404)
@@ -694,6 +694,28 @@
         Time tm;
         OAP data;
     };
+
+  /*!
+   * @struct Quaternion
+   * @brief Data type for Quaternion
+   */
+  struct Quaternion
+  {
+    double x;
+    double y;
+    double z;
+    double w;
+  };
+
+  /*!
+   * @struct TimedQuaternion
+   * @brief Timed version data type for Quaternion
+   */
+  struct TimedQuaternion
+  {
+    Time tm;
+    Quaternion data;
+  };
 };
 
 #endif // ExtendedDataTypes_idl

Modified: branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props	2014-02-06 02:15:22 UTC (rev 2404)
@@ -13,7 +13,7 @@
     <omni_bin>$(omni_root)\bin\x86_win32</omni_bin>
     <omni_lib>omniORB$(omni_dllver)_rt.lib;omniDynamic$(omni_dllver)_rt.lib;omnithread$(omnithread_dllver)_rt.lib</omni_lib>
     <omni_libd>omniORB$(omni_dllver)_rtd.lib;omniDynamic$(omni_dllver)_rtd.lib;omnithread$(omnithread_dllver)_rtd.lib</omni_libd>
-    <rtm_includes>$(rtm_root);$(rtm_root)rtm\idl</rtm_includes>
+    <rtm_includes>$(rtm_root);$(rtm_root)\rtm\idl</rtm_includes>
     <rtm_libdir>$(rtm_root)\bin</rtm_libdir>
     <rtm_bin>$(rtm_root)\bin;$(rtm_root)\build</rtm_bin>
     <rtm_path>$(rtm_bin);$(omni_bin)</rtm_path>

Copied: branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.props (from rev 2346, trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.props)
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.props	                        (rev 0)
+++ branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.props	2014-02-06 02:15:22 UTC (rev 2404)
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Label="UserMacros">
+    <omni_dllver>415</omni_dllver>
+    <omnithread_dllver>34</omnithread_dllver>
+    <rtm_dllver>110</rtm_dllver>
+    <rtm_version>1.1.0</rtm_version>
+    <coil_dllver>110</coil_dllver>
+    <coil_lib>coil$(coil_dllver).lib</coil_lib>
+    <coil_libd>coil$(coil_dllver)d.lib</coil_libd>
+    <omni_includes>$(omni_root)\include</omni_includes>
+    <omni_libdir>$(omni_root)\lib\x86_win32</omni_libdir>
+    <omni_bin>$(omni_root)\bin\x86_win32</omni_bin>
+    <omni_lib>omniORB$(omni_dllver)_rt.lib;omniDynamic$(omni_dllver)_rt.lib;omnithread$(omnithread_dllver)_rt.lib</omni_lib>
+    <omni_libd>omniORB$(omni_dllver)_rtd.lib;omniDynamic$(omni_dllver)_rtd.lib;omnithread$(omnithread_dllver)_rtd.lib</omni_libd>
+    <rtm_includes>$(rtm_root);$(rtm_root)\rtm\idl</rtm_includes>
+    <rtm_libdir>$(rtm_root)\bin</rtm_libdir>
+    <rtm_bin>$(rtm_root)\bin;$(rtm_root)\build</rtm_bin>
+    <rtm_path>$(rtm_bin);$(omni_bin)</rtm_path>
+    <rtm_libd>RTC$(rtm_dllver)d.lib;$(coil_libd);$(omni_libd);advapi32.lib;ws2_32.lib;mswsock.lib;$(user_libd)</rtm_libd>
+    <rtm_lib>RTC$(rtm_dllver).lib;$(coil_lib);$(omni_lib);advapi32.lib;ws2_32.lib;mswsock.lib;$(user_lib)</rtm_lib>
+    <rtm_idlc>omniidl</rtm_idlc>
+    <rtm_idlflags>-bcxx -Wba -nf -I $(SolutionDir)\rtm\idl</rtm_idlflags>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <_PropertySheetDisplayName>OpenRTM-aist-1.0</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(omni_includes);$(rtm_includes);.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>RTC_CORBA_CXXMAPPING11;_WIN32_WINNT=0x0500;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalLibraryDirectories>$(omni_libdir);$(rtm_libdir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <BuildMacro Include="omni_root">
+      <Value>$(omni_root)</Value>
+    </BuildMacro>
+    <BuildMacro Include="omni_dllver">
+      <Value>$(omni_dllver)</Value>
+    </BuildMacro>
+    <BuildMacro Include="omnithread_dllver">
+      <Value>$(omnithread_dllver)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_root">
+      <Value>$(rtm_root)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_dllver">
+      <Value>$(rtm_dllver)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_version">
+      <Value>$(rtm_version)</Value>
+    </BuildMacro>
+    <BuildMacro Include="coil_dllver">
+      <Value>$(coil_dllver)</Value>
+    </BuildMacro>
+    <BuildMacro Include="omni_includes">
+      <Value>$(omni_includes)</Value>
+    </BuildMacro>
+    <BuildMacro Include="omni_libdir">
+      <Value>$(omni_libdir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="omni_bin">
+      <Value>$(omni_bin)</Value>
+    </BuildMacro>
+    <BuildMacro Include="omni_lib">
+      <Value>$(omni_lib)</Value>
+    </BuildMacro>
+    <BuildMacro Include="omni_libd">
+      <Value>$(omni_libd)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_includes">
+      <Value>$(rtm_includes)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_libdir">
+      <Value>$(rtm_libdir)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_bin">
+      <Value>$(rtm_bin)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_path">
+      <Value>$(rtm_path)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_libd">
+      <Value>$(rtm_libd)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_lib">
+      <Value>$(rtm_lib)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_idlc">
+      <Value>$(rtm_idlc)</Value>
+    </BuildMacro>
+    <BuildMacro Include="rtm_idlflags">
+      <Value>$(rtm_idlflags)</Value>
+    </BuildMacro>
+    <BuildMacro Include="coil_lib">
+      <Value>$(coil_lib)</Value>
+    </BuildMacro>
+    <BuildMacro Include="coil_libd">
+      <Value>$(coil_libd)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>

Copied: branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.vsprops (from rev 2346, trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.vsprops)
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.vsprops	                        (rev 0)
+++ branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni415.vsprops	2014-02-06 02:15:22 UTC (rev 2404)
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="OpenRTM-aist-1.1"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		AdditionalIncludeDirectories="$(omni_includes);$(rtm_includes);."
+		PreprocessorDefinitions="RTC_CORBA_CXXMAPPING11;_WIN32_WINNT=0x0500"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalLibraryDirectories="$(omni_libdir);$(rtm_libdir)"
+	/>
+	<UserMacro
+		Name="omni_root"
+		Value="%OMNI_ROOT%"
+	/>
+	<UserMacro
+		Name="omni_dllver"
+		Value="415"
+	/>
+	<UserMacro
+		Name="omnithread_dllver"
+		Value="34"
+	/>
+	<UserMacro
+		Name="rtm_root"
+		Value="%RTM_ROOT%"
+	/>
+	<UserMacro
+		Name="rtm_dllver"
+		Value="110"
+	/>
+	<UserMacro
+		Name="rtm_version"
+		Value="1.1.0"
+	/>
+	<UserMacro
+		Name="coil_dllver"
+		Value="110"
+	/>
+	<!-- omniORB macros -->
+	<UserMacro
+		Name="omni_includes"
+		Value=""$(omni_root)\include""
+	/>
+	<UserMacro
+		Name="omni_libdir"
+		Value=""$(omni_root)\lib\x86_win32""
+	/>
+	<UserMacro
+		Name="omni_bin"
+		Value=""$(omni_root)\bin\x86_win32""
+	/>
+	<UserMacro
+		Name="omni_lib"
+		Value="omniORB$(omni_dllver)_rt.lib omniDynamic$(omni_dllver)_rt.lib omnithread$(omnithread_dllver)_rt.lib"
+	/>
+	<UserMacro
+		Name="omni_libd"
+		Value="omniORB$(omni_dllver)_rtd.lib omniDynamic$(omni_dllver)_rtd.lib omnithread$(omnithread_dllver)_rtd.lib"
+	/>
+	<!-- OpenRTM-aist macros -->
+	<UserMacro
+		Name="rtm_includes"
+		Value=""$(rtm_root)";"$(rtm_root)\rtm\idl""
+	/>
+	<UserMacro
+		Name="rtm_libdir"
+		Value=""$(rtm_root)\bin""
+	/>
+	<UserMacro
+		Name="rtm_bin"
+		Value=""$(rtm_root)\bin";"$(rtm_root)\build""
+	/>
+	<UserMacro
+		Name="rtm_path"
+		Value="$(rtm_bin);$(omni_bin)"
+	/>
+	<UserMacro
+		Name="rtm_libd"
+		Value="RTC$(rtm_dllver)d.lib $(coil_libd) $(omni_libd) advapi32.lib ws2_32.lib mswsock.lib $(user_libd)"
+	/>
+	<UserMacro
+		Name="rtm_lib"
+		Value="RTC$(rtm_dllver).lib $(coil_lib) $(omni_lib) advapi32.lib ws2_32.lib mswsock.lib $(user_lib)"
+	/>
+	<UserMacro
+		Name="rtm_idlc"
+		Value="omniidl"
+	/>
+	<UserMacro
+		Name="rtm_idlflags"
+		Value="-bcxx -Wba -nf -I"$(SolutionDir)\rtm\idl""
+	/>
+	<!-- coil macros -->
+	<UserMacro
+		Name="coil_lib"
+		Value="coil$(coil_dllver).lib"
+	/>
+	<UserMacro
+		Name="coil_libd"
+		Value="coil$(coil_dllver)d.lib"
+	/>
+
+</VisualStudioPropertySheet>

Modified: branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTP/OpenRTP_inc.wxs
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTP/OpenRTP_inc.wxs	2014-02-05 09:50:48 UTC (rev 2403)
+++ branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTP/OpenRTP_inc.wxs	2014-02-06 02:15:22 UTC (rev 2404)
@@ -273,15 +273,15 @@
           </Directory>
         </Directory>
         <Directory Id="org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731" Name="org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731">
-          <Component Id="org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731" DiskId="1" Guid="9B406546-ADAC-458F-8868-4D8E286A179F">
+          <Component Id="org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731" DiskId="1" Guid="1F0FFE6B-831F-41a3-A32E-7756BA008366">
             <File Id="about.html_1" Name="about.html" Source="C:\distribution\OpenRTP\RTSystemEditor\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\about.html" />
             <File Id="launcher.win32.win32.x86.properties" Name="launcher.win32.win32.x86.properties" Source="C:\distribution\OpenRTP\RTSystemEditor\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\launcher.win32.win32.x86.properties" />
             <File Id="eclipse_1115.dll" Name="eclipse_1115.dll" Source="C:\distribution\OpenRTP\RTSystemEditor\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\eclipse_1115.dll" />
           </Component>
           <Directory Id="META_INF_2" Name="META-INF_2">
-            <Component Id="META_INF_2" DiskId="1" Guid="2FC7BBAC-7BE2-43A6-B281-45E5321BA6CD">
-              <File Id="eclipse.inf_1" Name="eclipse.inf" Source="C:\distribution\OpenRTP\RTSystemEditor\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\META-INF\eclipse.inf" />
-              <File Id="MANIFEST.MF_1" Name="MANIFEST.MF" Source="C:\distribution\OpenRTP\RTSystemEditor\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\META-INF\MANIFEST.MF" />
+            <Component Id="META_INF_2" DiskId="1" Guid="FBF62DCE-8E21-49e6-944A-49C8503B1360">
+              <File Id="eclipse.inf_1" Name="eclipse.inf" Source="C:\distribution\OpenRTP\RTSystemEditor\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\META-INF_2\eclipse.inf" />
+              <File Id="MANIFEST.MF_1" Name="MANIFEST.MF" Source="C:\distribution\OpenRTP\RTSystemEditor\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\META-INF_2\MANIFEST.MF" />
             </Component>
           </Directory>
         </Directory>

Copied: branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/autowix_vc10.cmd (from rev 2346, trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/autowix_vc10.cmd)
===================================================================
--- branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/autowix_vc10.cmd	                        (rev 0)
+++ branches/RELENG_1_1/OpenRTM-aist/win32/OpenRTM-aist/installer/autowix_vc10.cmd	2014-02-06 02:15:22 UTC (rev 2404)
@@ -0,0 +1,231 @@
+ at rem
+ at rem @brief WiX automatic build script
+ at rem @date $Date: 2008-02-09 20:04:03 $
+ at rem @author Norkai Ando <n-ando at aist.go.jp>
+ at rem
+ at rem Copyright (C) 2008-2010
+ at rem     Noriaki Ando
+ at rem     Task-intelligence Research Group,
+ at rem     Intelligent Systems Research Institute,
+ at rem     National Institute of
+ at rem         Advanced Industrial Science and Technology (AIST), Japan
+ at rem     All rights reserved.
+ at rem
+ at rem $Id: autowix.cmd.in 2083 2011-05-05 14:53:50Z kurihara $
+ at rem
+
+ at rem ------------------------------------------------------------
+ at rem Variable Settings
+ at rem   usually only %TARGET% might be changed
+ at rem ------------------------------------------------------------
+ at set PATH=%WIX%\bin;%PATH%
+ at set VERSION=1.1.0
+ at set TARGET=OpenRTM-aist
+ at set TARGET_WXS=%TARGET%.wxs
+ at set TARGET_WIXOBJ=%TARGET%.wixobj
+ at set TARGET_FULL=%TARGET%-%VERSION%
+
+ at rem ------------------------------------------------------------
+ at rem WixUI Customization Settings
+ at rem   usually only %WIXUI_RTM% might be changed
+ at rem ------------------------------------------------------------
+ at set WIXUI_RTM=WixUI_Mondo_rtm
+ at set WIXUI_RTM_WXS=%WIXUI_RTM%.wxs
+ at set WIXUI_RTM_WIXOBJ=%WIXUI_RTM%.wixobj
+
+ at rem ------------------------------------------------------------
+ at rem Supported languages
+ at rem   supported languages have to be specified
+ at rem ------------------------------------------------------------
+set LANGUAGES=(ja-jp de-de es-es fr-fr hu-hu it-it ko-kr zh-tw)
+
+echo off
+ at rem ------------------------------------------------------------
+ at rem Checking WiX
+ at rem ------------------------------------------------------------
+if "x%WIX%" == "x" (
+   echo "Windows Installer XML (WiX) is not installed"
+   echo "Please download WiX 3.5 or later from http://wix.sourceforge.net/"
+   goto END
+)
+
+ at rem ------------------------------------------------------------
+ at rem Generate RTSystemEditor wxs file
+ at rem
+ at rem RTSystemEditorRCP.exe should be under %RTSE_ROOT%
+ at rem
+ at rem ------------------------------------------------------------
+if "x%RTSE_ROOT%" == "x" (
+   echo Envrionment variable "RTSE_ROOT" is not set. Abort.
+   goto END
+)
+if not exist "%RTSE_ROOT%\RTSystemEditorRCP.exe" (
+   echo RTSystemEditorRCP.exe does not found. Abort
+   goto END
+)
+set INCLUDE_RTSE=YES
+set INCLUDE_OPENRTP=YES
+
+if not exist OpenRTP_inc.wxs (
+   cd OpenRTP
+rem set TMP_PYTHONPATH=%PYTHONPATH%
+rem set PYTHONPATH=../../bin;%PYTHONPATH%
+rem echo Generating OpenRTP_inc.wxs......
+rem openrtpwxs.py
+rem set PYTHONPATH=%TMP_PYTHONPATH%
+   copy OpenRTP_inc.wxs ..
+   cd ..
+)
+
+
+ at rem ------------------------------------------------------------
+ at rem Generate omniORB's wxs file
+ at rem ------------------------------------------------------------
+if "x%OMNI_ROOT%" == "x" (
+   echo Environment Variable "OMNI_EOOR" is not set. Abort.
+   goto END
+)
+set INCLUDE_OMNIORB=YES
+
+if not exist omniORB_inc.wxs (
+   cd omniORB
+   set TMP_PYTHONPATH=%PYTHONPATH%
+   set PYTHONPATH=../../bin;%PYTHONPATH%
+   echo Generating omniORB_inc.wxs......
+   omniwxs.py 'THIS_IS_OMNIORB_4_1_5'
+   set PYTHONPATH=%TMP_PYTHONPATH%
+   copy omniORB_inc.wxs ..
+   cd ..
+)
+
+
+ at rem ------------------------------------------------------------
+ at rem Generate OpenCV's wxs file
+ at rem ------------------------------------------------------------
+if "x%OPENCV_ROOT%" == "x" (
+   echo Environment Variable "OPENCV_ROOT" is not set. Abort.
+   goto END
+)
+set INCLUDE_OPENCV=YES
+
+if not exist OpenCV_inc.wxs (
+   cd OpenCV2.3
+   set TMP_PYTHONPATH=%PYTHONPATH%
+   set PYTHONPATH=../../bin;%PYTHONPATH%
+   echo Generating OpenCV_inc.wxs......
+   opencvwxs.py
+   set PYTHONPATH=%TMP_PYTHONPATH%
+   copy OpenCV_inc.wxs ..
+   cd ..
+)
+
+
+ at rem ------------------------------------------------------------
+ at rem Generate OpenCV-RTC wxs file
+ at rem ------------------------------------------------------------
+if "x%OPENCV_RTC_ROOT%" == "x" (
+   echo Environment Variable "OPENCV_RTC_ROOT" is not set. Abort.
+   goto END
+)
+set INCLUDE_OPENCV_RTC=YES
+
+if not exist OpenCV-RTC_inc.wxs (
+   cd OpenCV-RTC
+   set TMP_PYTHONPATH=%PYTHONPATH%
+   set PYTHONPATH=../../bin;%PYTHONPATH%
+   echo Generating OpenCV-RTC_inc.wxs......
+   opencvrtcwxs.py
+   set PYTHONPATH=%TMP_PYTHONPATH%
+   copy OpenCV-RTC_inc.wxs ..
+   cd ..
+)
+
+
+ at rem ------------------------------------------------------------
+ at rem Import Language-Country, Language codes, Codepages
+ at rem from langs.txt
+ at rem http://www.tramontana.co.hu/wix/lesson2.php#2.4
+ at rem ------------------------------------------------------------
+for /F "tokens=1,2,3,4 delims=, " %%i in (langs.txt) do (
+    set LC[%%j]=%%j
+    set LANG[%%j]=%%k
+    set CODE[%%j]=%%l
+)
+
+ at rem ============================================================
+ at rem compile wxs file and link msi
+ at rem ============================================================
+candle.exe %TARGET_WXS% %WIXUI_RTM_WXS% -dlanguage=1033 -dcodepage=1252
+light.exe -ext WixUIExtension -loc WixUI_en-us.wxl ^
+      	       -out %TARGET_FULL%.msi %TARGET_WIXOBJ% %WIXUI_RTM_WIXOBJ%
+
+set IDS=1033
+setlocal ENABLEDELAYEDEXPANSION
+
+for %%i in %LANGUAGES% do (
+
+    @rem ------------------------------------------------------------
+    @rem language ID list
+    @rem
+    set IDS=!IDS!,!LANG[%%i]!
+
+    @rem ------------------------------------------------------------
+    @rem compile wxs file and link msi
+    @rem
+    candle.exe %TARGET_WXS% %WIXUI_RTM_WXS% -dlanguage=!LANG[%%i]! -dcodepage=!CODE[%%i]!
+
+    if exist WixUI_!LC[%%i]!.wxl (
+       light.exe -ext WixUIExtension -loc WixUI_!LC[%%i]!.wxl ^
+            -out %TARGET_FULL%_!LC[%%i]!.msi %TARGET_WIXOBJ% %WIXUI_RTM_WIXOBJ%
+    )
+    if not exist WixUI_!LC[%%i]!.wxl (
+        light.exe -ext WixUIExtension -cultures:!LC[%%i]! ^
+            -out %TARGET_FULL%_!LC[%%i]!.msi %TARGET_WIXOBJ% %WIXUI_RTM_WIXOBJ%
+    )
+    @rem ------------------------------------------------------------
+    @rem creating transformation files
+    @rem
+    torch.exe -p -t language %TARGET_FULL%.msi %TARGET_FULL%_!LC[%%i]!.msi ^
+    	      -out !LC[%%i]!.mst
+
+    @rem ------------------------------------------------------------
+    @rem embed transformation files
+    @rem
+    cscript wisubstg.vbs %TARGET_FULL%.msi !LC[%%i]!.mst !LANG[%%i]!
+
+)
+
+ at rem ------------------------------------------------------------
+ at rem here mst embedded msi can be selected languages by 
+ at rem > msiexec /i SampleMulti.msi TRANSFORMS=":fr-fr.mst"
+ at rem
+
+ at rem ------------------------------------------------------------
+ at rem Update the summary information stream to list all
+ at rem supported languages of this package
+ at rem ------------------------------------------------------------
+cscript WiLangId.vbs %TARGET_FULL%.msi Package %IDS%
+
+:END
+
+
+
+
+
+ at rem ------------------------------------------------------------
+ at rem References
+ at rem
+ at rem WiX Tutorial Lesson 9 "Transforms"
+ at rem http://www.tramontana.co.hu/wix/lesson9.php
+ at rem
+ at rem WiX Tutorial Lesson 2 "User Interface"
+ at rem http://www.tramontana.co.hu/wix/lesson2.php#2.4
+ at rem
+ at rem Multi-Language MSI Packages without Setup.exe Launcher
+ at rem http://www.installsite.org/pages/en/msi/articles/embeddedlang/index.htm
+ at rem
+ at rem vb scripts
+ at rem http://www.myitforum.com/articles/6/view.asp?id=1070
+ at rem
+ at rem ------------------------------------------------------------
+



More information about the openrtm-commit mailing list