basicairdata / airdatabridge Goto Github PK
View Code? Open in Web Editor NEWAndroid software for Air Data Computer connection
License: GNU General Public License v3.0
Android software for Air Data Computer connection
License: GNU General Public License v3.0
Now the "New remote LogFile" dialog fails silently to create the new file if that file already exists.
A feedback is required (a toast should be good) with the message "The file already exists";
Now the app is set to auto connect / reconnect to the ADC.
We should add the setting to enable / disable this feature. When the feature is disabled, the user should be able to manually connect / disconnect the app to the ADC.
android.os.FileUriExposedException:
at android.os.StrictMode.onFileUriExposed (StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed (Uri.java:2356)
at android.content.ClipData.prepareToLeaveProcess (ClipData.java:944)
at android.content.Intent.prepareToLeaveProcess (Intent.java:10492)
at android.content.Intent.prepareToLeaveProcess (Intent.java:10498)
at android.content.Intent.prepareToLeaveProcess (Intent.java:10477)
at android.app.Instrumentation.execStartActivity (Instrumentation.java:1616)
at android.app.Activity.startActivityForResult (Activity.java:4564)
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult (BaseFragmentActivityJB.java:50)
at android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:79)
at android.support.v4.app.ActivityCompatJB.startActivityForResult (ActivityCompatJB.java:30)
at android.support.v4.app.ActivityCompat.startActivityForResult (ActivityCompat.java:146)
at android.support.v4.app.FragmentActivity.startActivityFromFragment (FragmentActivity.java:932)
at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment (FragmentActivity.java:1047)
at android.support.v4.app.Fragment.startActivity (Fragment.java:944)
at android.support.v4.app.Fragment.startActivity (Fragment.java:933)
at eu.basicairdata.airdatabridge.FragmentLogList_Local.onContextItemSelected (FragmentLogList_Local.java:203)
at android.support.v4.app.Fragment.performContextItemSelected (Fragment.java:2394)
at android.support.v4.app.FragmentManagerImpl.dispatchContextItemSelected (FragmentManager.java:3147)
at android.support.v4.app.FragmentController.dispatchContextItemSelected (FragmentController.java:357)
at android.support.v4.app.FragmentActivity.onMenuItemSelected (FragmentActivity.java:417)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected (AppCompatActivity.java:195)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:113)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:113)
at com.android.internal.policy.PhoneWindow$PhoneWindowMenuCallback.onMenuItemSelected (PhoneWindow.java:3996)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:761)
at com.android.internal.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:172)
at com.android.internal.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:908)
at com.android.internal.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:898)
at com.android.internal.view.menu.MenuDialogHelper.onClick (MenuDialogHelper.java:178)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick (AlertController.java:1269)
at android.widget.AdapterView.performItemClick (AdapterView.java:350)
at android.widget.AbsListView.performItemClick (AbsListView.java:1683)
at android.widget.AbsListView$PerformClick.run (AbsListView.java:4094)
at android.widget.AbsListView.onTouchUp (AbsListView.java:6597)
at android.widget.AbsListView.onTouchEvent (AbsListView.java:6344)
at android.widget.ListView.onTouchEvent (ListView.java:1700)
at android.view.View.dispatchTouchEvent (View.java:12540)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3153)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2829)
at android.widget.AbsListView.dispatchTouchEvent (AbsListView.java:6256)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3159)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2844)
at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:601)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1871)
at android.app.Dialog.dispatchTouchEvent (Dialog.java:918)
at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:563)
at android.view.View.dispatchPointerEvent (View.java:12788)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:5675)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:5470)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4963)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5016)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4982)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:5119)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4990)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:5176)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4963)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5016)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4982)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4990)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4963)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:7742)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:7682)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:7643)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:7853)
at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:197)
at android.os.MessageQueue.nativePollOnce (Native Method)
at android.os.MessageQueue.next (MessageQueue.java:325)
at android.os.Looper.loop (Looper.java:142)
at android.app.ActivityThread.main (ActivityThread.java:6944)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
The remote files must be 8 chars lengthed (and CAP_CHARACTERS), but the local files, in Android filesystem, can be longer and contain more characters, spaces and so on.
It would be fine to have the ability to rename the downloaded files, in order to give to the user the possibility to type a better description of every local file.
It is not Always needed (nor useful) to record to the remote SD at a high frequency;
Sometimes the user could only need to record the displayed data (at low rate, like 2 - 5 Hz).
I imagine a biker with the android device on the handlebars, for example.
In this case a local recording would be very useful.
PROS:
CONS:
Two settings should be added in order to set the two recording frequencies.
The real time data update rate, when enabled, will follow the local recording frequency.
In case, can we evaluate the possibility to set the serial frequency too?
Hi,
Since this app is GNU GPLv3 licensed, are you considering the fact to add it to F-Droid? There is a strong community behind, that do not use Google Play nor anything else, except F-Droid.
You can find some documentation here.
Otherwise, if you don't want to work on the inclusion of this app by yourself, would it be ok for you if someone else do it for you?
We should implement a synchronization method between the ADC time and the time of Android device (usually the smartphone time is synchronized with the NTP).
An option to sync the time on app start should be present in the Settings.
When the app starts, it sends the Android time (NTP time) to the ADC. The ADC will update its time as requested.
I think 1 second of accuracy is enough for now. We'll implement a more accurate method when needed.
The signed apk should be generated and put into the /apk
folder of this repo.
An About screen should be added, showing:
This screen will be accessible from the main menu.
The Cards are now in sparse order in the Remote and the Local list.
They should be ordered by Date and Time, in order to have the newer logs on top of the lists.
Now the app searches the HC-05
Bluetooth paired device and connects to it.
We should give to the user the possibility to change the device, in order to allow to use different BT devices (like HC-06
, or BlueSMIRF
) or to change the BT device name.
The natural solution is to add a setting with the device selection.
Ideally the selection should show the list of the paired BT devices, but we could start with a simpler EditText preference.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.