]> rtime.felk.cvut.cz Git - orte.git/log
orte.git
10 years agoCorrect OMK build to compile ORTE manager by default. origin/master
Pavel Pisa [Fri, 4 Oct 2013 15:35:58 +0000 (17:35 +0200)]
Correct OMK build to compile ORTE manager by default.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
10 years agoOne more fix in OMK rules - work around strange behavior of $(dir) function
Michal Sojka [Fri, 4 Oct 2013 15:23:21 +0000 (17:23 +0200)]
One more fix in OMK rules - work around strange behavior of $(dir) function

10 years agoOMK Makefile.rules: Don't use GNU specific cmp and install options to allow build...
Pavel Pisa [Fri, 4 Oct 2013 14:44:20 +0000 (16:44 +0200)]
OMK Makefile.rules: Don't use GNU specific cmp and install options to allow build on FreeBSD based systems.

Rules are updated from OMK project main version at

  https://rtime.felk.cvut.cz/omk/

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
10 years agoUpdate OMK makefiles and rules
Michal Sojka [Fri, 4 Oct 2013 08:56:42 +0000 (10:56 +0200)]
Update OMK makefiles and rules

10 years agoOmit "byteswap.h" from pre-configured OMK Linux build.
Pavel Pisa [Fri, 4 Oct 2013 07:48:27 +0000 (09:48 +0200)]
Omit "byteswap.h" from pre-configured OMK Linux build.

The CDR and rest of the ORTE code uses open-codded ORTE provided
rtps_byteswap function. Build environment provided byteswap
functions are not utilized in the actual ORTE setups.
They could result in better optimized code in future but
attempt to include "byteswap.h" is  probably the last blocker
to use Linux pre-configured ORTE on RTEMS, BSD and BlackBerry.
So comment out HAVE_BYTESWAP_H for now.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
10 years agoShape Demo: add option to select right libraries for BlackBerry build.
Pavel Pisa [Mon, 30 Sep 2013 12:35:22 +0000 (14:35 +0200)]
Shape Demo: add option to select right libraries for BlackBerry build.

ORTE code tested on BlackBerry thanks to Fanda Vacek
provided help and testing on his device.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
10 years agoOMK build: move linker specification of pthread library to separate variable TARGET_L...
Pavel Pisa [Mon, 30 Sep 2013 10:02:00 +0000 (12:02 +0200)]
OMK build: move linker specification of pthread library to separate variable TARGET_LOADLIBES.

This allows to override libraries list suitable for the Linux
build by other target OS specific list of the libraries.
I.e. the explicit "pthread" library specification is blocker
for QNX/BlackBerry build because POSIX threads are included
in stadartd library. On the other hand BSD networking "socket"
library has to be specified explicitly. Another difference
is missing "byteswap.h" header file (undef HAVE_BYTESWAP_H).

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
10 years agoJAVA ORTE: update classic OMK JAVA ORTE build to support new Makefile.rules.
Pavel Pisa [Mon, 23 Sep 2013 09:45:26 +0000 (11:45 +0200)]
JAVA ORTE: update classic OMK JAVA ORTE build to support new Makefile.rules.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
10 years agoFix most of warnings reported by GCC 4.7 on x86_64 and GCC 4.8.1 RTEMS ARM based...
Pavel Pisa [Sat, 21 Sep 2013 13:36:04 +0000 (15:36 +0200)]
Fix most of warnings reported by GCC 4.7 on x86_64 and GCC 4.8.1 RTEMS ARM based systems.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
10 years agoORTE: fix compiler warning
Martin Vajnar [Thu, 12 Sep 2013 19:18:12 +0000 (21:18 +0200)]
ORTE: fix compiler warning

This allows compilation with Android NDK r9
(treats some warnings as errors).

10 years agoANDROID: add instructions to build
Martin Vajnar [Fri, 13 Sep 2013 13:58:20 +0000 (15:58 +0200)]
ANDROID: add instructions to build

10 years agoANDROID: allow compilation from command line add new orte_config.h
Martin Vajnar [Fri, 13 Sep 2013 13:31:38 +0000 (15:31 +0200)]
ANDROID: allow compilation from command line add new orte_config.h

This allows compilation of native code with ndk-build and of Java part with
ant.

10 years agoJORTE: fix incompatible pointer type compiler warnings
Martin Vajnar [Fri, 13 Sep 2013 10:08:23 +0000 (12:08 +0200)]
JORTE: fix incompatible pointer type compiler warnings

Android's AttachCurrentThread() implementation differs from Oracle's.
In Android the prototype is:
  jint (*AttachCurrentThread)(JavaVM*, JNIEnv**, void*);
In Oracle's Java:
  jint (JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args);

Android expects JNIEnv** pointer, whereas Java expects void** pointer
to per thread environment structure.

10 years agoANDROID: fix for NDK r9
Martin Vajnar [Thu, 12 Sep 2013 19:15:06 +0000 (21:15 +0200)]
ANDROID: fix for NDK r9

Remove LOCAL_LDLIBS since it is ignored for
static libraries.

10 years agoROBOT_DEMO: release correct wakelock
Martin Vajnar [Thu, 29 Aug 2013 13:32:56 +0000 (15:32 +0200)]
ROBOT_DEMO: release correct wakelock

10 years agoROBOT_DEMO: minor fixes
Martin Vajnar [Thu, 29 Aug 2013 09:08:17 +0000 (11:08 +0200)]
ROBOT_DEMO: minor fixes

10 years agoROBOT_DEMO: minor changes to UI
Martin Vajnar [Wed, 28 Aug 2013 18:16:59 +0000 (20:16 +0200)]
ROBOT_DEMO: minor changes to UI

10 years agoROBOT_DEMO: allow managers setup without restart
Martin Vajnar [Tue, 27 Aug 2013 13:40:30 +0000 (15:40 +0200)]
ROBOT_DEMO: allow managers setup without restart

10 years agoROBOT_DEMO: fix wake lock and revert speed computation change
Martin Vajnar [Tue, 27 Aug 2013 13:14:45 +0000 (15:14 +0200)]
ROBOT_DEMO: fix wake lock and revert speed computation change

10 years agoROBOT_DEMO: handle wifi/wake locks better
Martin Vajnar [Tue, 27 Aug 2013 12:59:11 +0000 (14:59 +0200)]
ROBOT_DEMO: handle wifi/wake locks better

Acquire them only when needed and release otherwise.

10 years agoROBOT_DEMO: add check boxes to menu items and make the managers dialog alive
Martin Vajnar [Tue, 27 Aug 2013 12:42:50 +0000 (14:42 +0200)]
ROBOT_DEMO: add check boxes to menu items and make the managers dialog alive

10 years agoROBOT_DEMO: change About dialog
Martin Vajnar [Tue, 27 Aug 2013 11:03:50 +0000 (13:03 +0200)]
ROBOT_DEMO: change About dialog

10 years agoROBOT_DEMO: change ratio for speed computation
Martin Vajnar [Tue, 27 Aug 2013 10:45:04 +0000 (12:45 +0200)]
ROBOT_DEMO: change ratio for speed computation

10 years agoJORTE: add new constructor to Manager class
Martin Vajnar [Mon, 26 Aug 2013 20:30:58 +0000 (22:30 +0200)]
JORTE: add new constructor to Manager class

10 years agoROBOT_DEMO: add Dialog to set-up fellow managers
Martin Vajnar [Mon, 26 Aug 2013 20:26:58 +0000 (22:26 +0200)]
ROBOT_DEMO: add Dialog to set-up fellow managers

10 years agoANDROID: set min. Android version to 2.3.3
Martin Vajnar [Mon, 26 Aug 2013 12:31:54 +0000 (14:31 +0200)]
ANDROID: set min. Android version to 2.3.3

10 years agoROBOT_DEMO: add launcher icon for LDPI and change minSdkVersion to 10
Martin Vajnar [Mon, 26 Aug 2013 12:31:17 +0000 (14:31 +0200)]
ROBOT_DEMO: add launcher icon for LDPI and change minSdkVersion to 10

Min. Android version is now 2.3.3.

10 years agoROBOT_DEMO: unify Dialog appearance
Martin Vajnar [Mon, 26 Aug 2013 11:42:35 +0000 (13:42 +0200)]
ROBOT_DEMO: unify Dialog appearance

10 years agoROBOT_DEMO: add basic low-pass filter
Martin Vajnar [Sun, 25 Aug 2013 22:08:52 +0000 (00:08 +0200)]
ROBOT_DEMO: add basic low-pass filter

Add basic low-pass filter for motion_speed publisher.

Change CTU logo size.

10 years agoROBOT_DEMO: add "About" dialog
Martin Vajnar [Sun, 25 Aug 2013 21:02:08 +0000 (23:02 +0200)]
ROBOT_DEMO: add "About" dialog

10 years agoROBOT_DEMO: make use of WifiLock and modify WakeLock
Martin Vajnar [Sun, 25 Aug 2013 17:58:34 +0000 (19:58 +0200)]
ROBOT_DEMO: make use of WifiLock and modify WakeLock

Modify WakeLock, so that when acquired on activity start, it wakes up
the phone if then screen was already dimmed or switched off.

Add WifiLock to improve network latency and overall responsiveness.
This solves issues with slow and unreliable Publisher-Subscriber
communication.

Add margins to the CTU logo.

10 years agoROBOT_DEMO: change name to RoboDruid and add CTU logo
Martin Vajnar [Sun, 25 Aug 2013 15:05:47 +0000 (17:05 +0200)]
ROBOT_DEMO: change name to RoboDruid and add CTU logo

10 years agoANDROID: build for all ABIs supported by the NDK
Martin Vajnar [Sun, 25 Aug 2013 11:16:06 +0000 (13:16 +0200)]
ANDROID: build for all ABIs supported by the NDK

Currently supported ABIs are:

armeabi - ARMv5te and higher
armeabi-v7a - ARMv7
mips
x86

10 years agoROBOT_DEMO: use Flamingos logo as launcher icon
Martin Vajnar [Sun, 25 Aug 2013 10:58:12 +0000 (12:58 +0200)]
ROBOT_DEMO: use Flamingos logo as launcher icon

10 years agoROBOT_DEMO: add more IP addresses to ORTE manager's list
Martin Vajnar [Sat, 24 Aug 2013 19:01:11 +0000 (21:01 +0200)]
ROBOT_DEMO: add more IP addresses to ORTE manager's list

10 years agoROBOT_DEMO: change lift to crane
Martin Vajnar [Sat, 24 Aug 2013 18:39:25 +0000 (20:39 +0200)]
ROBOT_DEMO: change lift to crane

10 years agoJORTE: add wrapper for ORTESubscriptionPull() and revert ORTEDomainStart() removal
Martin Vajnar [Sat, 24 Aug 2013 10:55:39 +0000 (12:55 +0200)]
JORTE: add wrapper for ORTESubscriptionPull() and revert ORTEDomainStart() removal

10 years agoROBOT_DEMO: add publishers for "crane_cmd" and "magnet_cmd"
Martin Vajnar [Sat, 24 Aug 2013 09:35:23 +0000 (11:35 +0200)]
ROBOT_DEMO: add publishers for "crane_cmd" and "magnet_cmd"

10 years agoROBOT_DEMO: limit HOKUYO range
Martin Vajnar [Fri, 23 Aug 2013 12:18:20 +0000 (14:18 +0200)]
ROBOT_DEMO: limit HOKUYO range

10 years agoROBOT_DEMO: implement voltage monitor
Martin Vajnar [Fri, 23 Aug 2013 11:49:46 +0000 (13:49 +0200)]
ROBOT_DEMO: implement voltage monitor

10 years agoROBOT_DEMO: prepare for voltage monitor
Martin Vajnar [Thu, 22 Aug 2013 20:44:46 +0000 (22:44 +0200)]
ROBOT_DEMO: prepare for voltage monitor

Add dialog for voltage monitor.

10 years agoROBOT_DEMO: add motion speed subscriber
Martin Vajnar [Wed, 21 Aug 2013 21:03:31 +0000 (23:03 +0200)]
ROBOT_DEMO: add motion speed subscriber

Add motion speed monitor.

10 years agoROBOT_DEMO: draw scale in HokuyoView
Martin Vajnar [Tue, 20 Aug 2013 17:48:01 +0000 (19:48 +0200)]
ROBOT_DEMO: draw scale in HokuyoView

10 years agoROBOT_DEMO: fix starting index and inverted logic
Martin Vajnar [Mon, 19 Aug 2013 21:32:03 +0000 (23:32 +0200)]
ROBOT_DEMO: fix starting index and inverted logic

10 years agoROBOT_DEMO: scale HOKUYO view to fit the screen
Martin Vajnar [Mon, 19 Aug 2013 21:06:31 +0000 (23:06 +0200)]
ROBOT_DEMO: scale HOKUYO view to fit the screen

10 years agoROBOT_DEMO: screen orientation for motion control
Martin Vajnar [Mon, 19 Aug 2013 15:07:26 +0000 (17:07 +0200)]
ROBOT_DEMO: screen orientation for motion control

Force portrait screen orientation when motion control (motion_speed)
is active.

10 years agoROBOT_DEMO: enable screen rotation
Martin Vajnar [Mon, 19 Aug 2013 12:52:02 +0000 (14:52 +0200)]
ROBOT_DEMO: enable screen rotation

10 years agoROBOT_DEMO: use higher sampling rate for accelerometer
Martin Vajnar [Tue, 6 Aug 2013 17:53:08 +0000 (19:53 +0200)]
ROBOT_DEMO: use higher sampling rate for accelerometer

10 years agoROBOT_DEMO: simplify MessageData types
Martin Vajnar [Tue, 6 Aug 2013 17:51:51 +0000 (19:51 +0200)]
ROBOT_DEMO: simplify MessageData types

10 years agoROBOT_DEMO: fix thread sync. problems better
Martin Vajnar [Tue, 6 Aug 2013 17:50:39 +0000 (19:50 +0200)]
ROBOT_DEMO: fix thread sync. problems better

Use ReentrantLock and ReentrantReadWriteLock for thread synchronization.

10 years agoROBOT_DEMO: simplify clearing screen
Martin Vajnar [Tue, 6 Aug 2013 09:24:04 +0000 (11:24 +0200)]
ROBOT_DEMO: simplify clearing screen

10 years agoROBOT_DEMO: fix sync. problems in publisher for "motion_speed"
Martin Vajnar [Mon, 5 Aug 2013 21:37:29 +0000 (23:37 +0200)]
ROBOT_DEMO: fix sync. problems in publisher for "motion_speed"

Don't use synchronized(), because it may block the setSpeed() and prevent
receiving new data from accelerometer. The isSent variable is now used
to determine whether we need new data.

Add robot's IP address to the list of fellow managers.

10 years agoROBOT_DEMO: fix sync. problems in HokuyoView
Martin Vajnar [Mon, 5 Aug 2013 19:26:29 +0000 (21:26 +0200)]
ROBOT_DEMO: fix sync. problems in HokuyoView

Set new data only if the previous batch has been drawn and clone the newly
arrived data array. This prevents concurrent access problems when
the previous batch is being drawn on the UI thread and new data arrives
through ORTE's receive thread.

10 years agoROBOT_DEMO: set minimum separation for "hokuyo_scan"
Martin Vajnar [Mon, 5 Aug 2013 17:50:53 +0000 (19:50 +0200)]
ROBOT_DEMO: set minimum separation for "hokuyo_scan"

Compensate for drawing artifacts. Set minSeparation to 0.18s.

10 years agoROBOT_DEMO: correct speed computation
Martin Vajnar [Mon, 5 Aug 2013 16:42:23 +0000 (18:42 +0200)]
ROBOT_DEMO: correct speed computation

Correct calculation of speed sent to motors when moving in reverse.

10 years agoROBOT_DEMO: MessageData clean up
Martin Vajnar [Fri, 26 Jul 2013 08:59:36 +0000 (10:59 +0200)]
ROBOT_DEMO: MessageData clean up

10 years agoJORTE: improve ByteOrder handling
Martin Vajnar [Fri, 26 Jul 2013 08:44:46 +0000 (10:44 +0200)]
JORTE: improve ByteOrder handling

Store the ByteOrder of MessageData's ByteBuffer in receive callback
structure in C (in case someone reuses already created MessageData instance
with new subscriber).

Force native byte order setting in publisher.

10 years agoORTE,JORTE: set byte order of ByteBuffer from receive callback
Martin Vajnar [Fri, 26 Jul 2013 08:00:15 +0000 (10:00 +0200)]
ORTE,JORTE: set byte order of ByteBuffer from receive callback

Pass data_endian in ORTERecvInfo structure and use it to set the byte order
of Java's ByteBuffer.

10 years agoRevert "JORTE: add deserialize function to support endianness setting"
Martin Vajnar [Fri, 26 Jul 2013 07:54:03 +0000 (09:54 +0200)]
Revert "JORTE: add deserialize function to support endianness setting"

This reverts commit 683e5f61f3e7b6c1ade1b4910264d8f96781ade0.

10 years agoRevert "JORTE: switch from deserialize function to endianness callback"
Martin Vajnar [Fri, 26 Jul 2013 07:53:38 +0000 (09:53 +0200)]
Revert "JORTE: switch from deserialize function to endianness callback"

This reverts commit fe36c69fd0d022fafc9acf3a51ca1ba780978f35.

10 years agoRevert "ROBOT_DEMO: incorporate new TypeRegister handling"
Martin Vajnar [Fri, 26 Jul 2013 07:53:24 +0000 (09:53 +0200)]
Revert "ROBOT_DEMO: incorporate new TypeRegister handling"

This reverts commit f4af31a4b00c130eb5fb67fcc1012dd5d205ea7a.

10 years agoRevert "ROBOT_DEMO: incorporate changes in ORTETypeRegisterAdd()"
Martin Vajnar [Fri, 26 Jul 2013 07:53:06 +0000 (09:53 +0200)]
Revert "ROBOT_DEMO: incorporate changes in ORTETypeRegisterAdd()"

This reverts commit 4e4e50c8a29fc3a2cf37d681e7f95b3d5e01d932.

10 years agoROBOT_DEMO: incorporate changes in ORTETypeRegisterAdd()
Martin Vajnar [Thu, 25 Jul 2013 17:11:47 +0000 (19:11 +0200)]
ROBOT_DEMO: incorporate changes in ORTETypeRegisterAdd()

10 years agoROBOT_DEMO: incorporate new TypeRegister handling
Martin Vajnar [Thu, 25 Jul 2013 12:46:19 +0000 (14:46 +0200)]
ROBOT_DEMO: incorporate new TypeRegister handling

10 years agoJORTE: switch from deserialize function to endianness callback
Martin Vajnar [Thu, 25 Jul 2013 12:45:43 +0000 (14:45 +0200)]
JORTE: switch from deserialize function to endianness callback

Yesterday's attempt at setting the byte order of ByteBuffer through
a deserialize function has one significant drawback and that is if more
than one data type is defined under one VM instance (thus accessible by
other threads) and subscribers are then registered for these data types
the deserialize function will stop working correctly, because there are
no parameter structures being passed to it, except for the CDR_Codec,
thus it had to use a global reference to a byte buffer which is
unfortunately overwritten the moment a new data type is registered.
If the deserialize function for the previously registered data type
is invoked it then tampers with ByteBuffer settings of a newly registered
data type.

10 years agoJORTE: add deserialize function to support endianness setting
Martin Vajnar [Wed, 24 Jul 2013 20:55:24 +0000 (22:55 +0200)]
JORTE: add deserialize function to support endianness setting

This adds implementation of deserialize function which sets proper byte
order for Java's ByteBuffer based on the received data's endianness.

Serialize function is not needed as long as the byte order of Java's
ByteBuffer is not manually changed from native byte order.

10 years agoROBOT_DEMO: remove DomainEvents
Martin Vajnar [Tue, 23 Jul 2013 17:30:13 +0000 (19:30 +0200)]
ROBOT_DEMO: remove DomainEvents

10 years agoANDROID: incorporate new domain events handling
Martin Vajnar [Tue, 23 Jul 2013 14:56:05 +0000 (16:56 +0200)]
ANDROID: incorporate new domain events handling

10 years agoJORTE: free() domain events
Martin Vajnar [Tue, 23 Jul 2013 14:55:00 +0000 (16:55 +0200)]
JORTE: free() domain events

This fixes memory leak in jORTEDomainInitEvents() and removes unused code
from JOrte.java.

10 years agoJORTE: fraction computation
Martin Vajnar [Tue, 23 Jul 2013 10:06:37 +0000 (12:06 +0200)]
JORTE: fraction computation

Fix getDecimal() function.

10 years agoJORTE: fix memory leak and add DomainEvents to DomainMgr
Martin Vajnar [Tue, 23 Jul 2013 09:09:39 +0000 (11:09 +0200)]
JORTE: fix memory leak and add DomainEvents to DomainMgr

Memory leaks in jORTEDomainAppCreate() and jORTEDomainMgrCreate()
(domain events callback structure) are fixed. Domain events callbacks
are placed in a separate file. Their prototypes are placed in "jorte/
/jorte_protos_api.h". This way they could be used by DomainApp
and DomainMgr.

Native functions in both DomainApp.java and DomainMgr.java are now non-
static. This allows native domain destructor to free the memory allocated
to domain events callback structure.

It is now also possible to pass null for DomainEvents or DomainProp to
DomainApp and DomainMgr constructors.

The header file onLoad.h is removed and the findClass() prototype is placed
into "jorte/jorte_protos_api.h".

10 years agoJORTE: add type casts
Martin Vajnar [Sun, 21 Jul 2013 15:56:48 +0000 (17:56 +0200)]
JORTE: add type casts

10 years agoJORTE: remove unused variable and use TEST_STAGE for time
Martin Vajnar [Sun, 21 Jul 2013 12:45:50 +0000 (14:45 +0200)]
JORTE: remove unused variable and use TEST_STAGE for time

10 years agoJORTE: update header files
Martin Vajnar [Sun, 21 Jul 2013 09:04:13 +0000 (11:04 +0200)]
JORTE: update header files

Remove defines of UINT32__MIN and UINT32__MAX, because they are in the
<stdint.h> and UINT32__MAX is computed in a wrong way.

Make the HAVE_CONFIG_H hack Android specific and add extern "C" for C++
compatibility to onLoad.h

10 years agoANDROID: remove JORTEDomainStart.c from makefile
Martin Vajnar [Sun, 21 Jul 2013 08:35:25 +0000 (10:35 +0200)]
ANDROID: remove JORTEDomainStart.c from makefile

10 years agoJORTE: remove unused code
Martin Vajnar [Sun, 21 Jul 2013 08:25:50 +0000 (10:25 +0200)]
JORTE: remove unused code

Since the domain is started (receiving and sending threads) either by
calling ORTEDomainAppCreate() or ORTEDomainMgrCreate(), there is no need
to have DomainStart() on the Java side.

10 years agoJORTE: remove unused code
Martin Vajnar [Sat, 20 Jul 2013 22:11:40 +0000 (00:11 +0200)]
JORTE: remove unused code

10 years agoJORTE: incorporate new application domain destruction into example
Martin Vajnar [Sat, 20 Jul 2013 22:10:58 +0000 (00:10 +0200)]
JORTE: incorporate new application domain destruction into example

10 years agoJORTE: call correct JNI function to get values from NtpTime class
Martin Vajnar [Sat, 20 Jul 2013 22:09:14 +0000 (00:09 +0200)]
JORTE: call correct JNI function to get values from NtpTime class

Replace GetIntField() with GetLongField().

10 years agoJORTE: fix the '2^32' problem and formatting in debug printf()
Martin Vajnar [Sat, 20 Jul 2013 22:06:34 +0000 (00:06 +0200)]
JORTE: fix the '2^32' problem and formatting in debug printf()

This fixes problems with wrong calculation of (2^32) on many occasions
both on the Java and the C side.

Many format strings for printf() are fixed. Display Host ID
and App ID in hexadecimal (as the ortemanager does).

10 years agoJORTE: disable TEST_STAGE
Martin Vajnar [Fri, 19 Jul 2013 13:33:08 +0000 (15:33 +0200)]
JORTE: disable TEST_STAGE

10 years agoROBOT_DEMO: be less verbose
Martin Vajnar [Fri, 19 Jul 2013 13:32:09 +0000 (15:32 +0200)]
ROBOT_DEMO: be less verbose

10 years agoROBOT_DEMO: completely rewritten
Martin Vajnar [Fri, 19 Jul 2013 09:37:04 +0000 (11:37 +0200)]
ROBOT_DEMO: completely rewritten

This adds complete rewrite of the demo application. Buttons are now removed
from views and are instead placed to a menu. At the start a domain manager
and an application domain are created under which every subscriber
and publisher is launched. Support for hokuyo_scan is added.

10 years agoANDROID: incorporate DomainProp changes
Martin Vajnar [Fri, 19 Jul 2013 09:30:27 +0000 (11:30 +0200)]
ANDROID: incorporate DomainProp changes

10 years agoJORTE: simplify Manager destruction and remove unnecessary println()
Martin Vajnar [Fri, 19 Jul 2013 09:29:33 +0000 (11:29 +0200)]
JORTE: simplify Manager destruction and remove unnecessary println()

10 years agoJORTE: don't force application domain destruction
Martin Vajnar [Fri, 19 Jul 2013 09:25:15 +0000 (11:25 +0200)]
JORTE: don't force application domain destruction

This prevents appDomain being destroyed along with publisher or subscriber.

10 years agoJORTE: use abstract methods
Martin Vajnar [Fri, 19 Jul 2013 09:22:22 +0000 (11:22 +0200)]
JORTE: use abstract methods

10 years agoJORTE: fix subscription destruction
Martin Vajnar [Fri, 19 Jul 2013 09:20:39 +0000 (11:20 +0200)]
JORTE: fix subscription destruction

Destroy subscription first, then destroy references to objects
in subscription callback. This prevents SEGFAULTs from the receiving
thread, that tries to save received instance to a non-existent object.
DeleteLocalReference was replaced with DeleteGlobalReference, since we are
destroying a global reference. This prevents dvmAbort() being called
on Android. This also fixes a memory leak (the ctx->msg reference was not
deleted).

10 years agoJORTE: pass instance of MessageData to Java's receive callback
Martin Vajnar [Fri, 19 Jul 2013 09:12:50 +0000 (11:12 +0200)]
JORTE: pass instance of MessageData to Java's receive callback

10 years agoJORTE: don't use finalizers in Java classes
Martin Vajnar [Tue, 16 Jul 2013 09:48:07 +0000 (11:48 +0200)]
JORTE: don't use finalizers in Java classes

This replaces finalizers with explicit destroy() functions, because the
order in which objects with no reference in the VM are garbage-collected
is not guaranteed. This caused trouble with finalization of DomainApp
and Publisher (or Subscriber). If the DomainApp was destroyed before
the Publisher (or Subscriber) the Publisher's finalizer would have been
stuck (eventually leading to TimeoutException to be thrown).

10 years agoJORTE: fix memory leak in jORTEDomainPropDefaultGet()
Martin Vajnar [Mon, 15 Jul 2013 13:02:28 +0000 (15:02 +0200)]
JORTE: fix memory leak in jORTEDomainPropDefaultGet()

This fixes memory leak in jORTEDomainPropDefaultGet and removes some
unused code.

10 years agoJORTE: switch to direct ByteBuffer
Martin Vajnar [Sun, 14 Jul 2013 18:08:07 +0000 (20:08 +0200)]
JORTE: switch to direct ByteBuffer

This commit significantly changes the way new issues are sent and received
both on the Java side and on the C side.

In the past there was one Java instance of HeapByteBuffer in the
MessageData class. ByteBuffer is used to perform serialization and
deserialization of received and sent issues in Java. It is compatible with
the CORBA standard that is used in the main ORTE library.

The HeapByteBuffer has one significant drawback. It allocates memory
on the heap managed by Java VM's garbage collector and when accessing
the backing array from C it has to copy the entire array to new space
in memory outside the VM. Added to that the backing array wasn't accessed
as an array object from the C code, but rather every byte from the Java
buffer was copied to a C byte array or vice versa (publisher x subscriber
part). This adds a lot of overhead (calling JNI functions to obtain new
values).

Instead the DirectByteBuffer is now used which allocates memory directly
(outside of Java VM) through malloc() and stores the pointer in such a way,
that it is easily accesible from C code using GetDirectBufferAddress,
that returns (void *). The Java part behaves much the same as normal
(Heap) ByteBuffer. The allocated byte array could be used like any other
C array and the VM ensures that the memory region allocated by direct
ByteBuffer is contiguous. This is very useful, because normal Java arrays
are not guaranteed to be contiguous which makes them difficult to handle,
because JNI functions must be called that make copies of them in a
contiguous space and that adds another overhead.

As a bonus the C code for both publisher and subscriber Java wrappers
is much shorter and simpler than it used to be.

10 years agoJORTE: fix endianness the proper way
Martin Vajnar [Sun, 14 Jul 2013 12:57:21 +0000 (14:57 +0200)]
JORTE: fix endianness the proper way

Use the GNU C compiler macro __BYTE_ORDER__ to set data_endian on the C
side and ByteOrder.nativeOrder() function to set ByteBuffer's order
in the MessageData class on the Java side.

10 years agoANDROID: correct return value
Martin Vajnar [Sat, 13 Jul 2013 17:15:34 +0000 (19:15 +0200)]
ANDROID: correct return value

10 years agoROBOT_DEMO: add proper destructor in C version
Martin Vajnar [Sat, 13 Jul 2013 17:11:51 +0000 (19:11 +0200)]
ROBOT_DEMO: add proper destructor in C version

10 years agoROBOT_DEMO: decrease CPU usage
Martin Vajnar [Sat, 13 Jul 2013 16:50:14 +0000 (18:50 +0200)]
ROBOT_DEMO: decrease CPU usage

Now there are 2 major threads on the Java side. The first one is main which
takes care of drawing GUI and receives callbacks from accelerometer.
The second one computes and sends values to the robot's motors.

10 years agoJORTE: update required Java API version
Martin Vajnar [Thu, 11 Jul 2013 12:52:39 +0000 (14:52 +0200)]
JORTE: update required Java API version

10 years agoROBOT_DEMO: use Manager class instead of ortemanager binary
Martin Vajnar [Thu, 11 Jul 2013 11:46:23 +0000 (13:46 +0200)]
ROBOT_DEMO: use Manager class instead of ortemanager binary

10 years agoANDROID: replace native binary ortemanager with Java class
Martin Vajnar [Thu, 11 Jul 2013 11:44:44 +0000 (13:44 +0200)]
ANDROID: replace native binary ortemanager with Java class

This eliminates the need for binary ortemanager in assets/ folder
of projects that make use of this library.

NOTE: At current moment it is only possible to set IP addresses of fellow
managers.

10 years agoJORTE: add basic Java domain manager
Martin Vajnar [Thu, 11 Jul 2013 11:40:26 +0000 (13:40 +0200)]
JORTE: add basic Java domain manager

This adds basic Java manager. Currently it is only possible to set IP
addresses of fellow managers.