[java] new String = String snelheids isue

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
een korte vraag.

if(DATASTRING.contains("Error")){STATUS=DATASTRING; }

Als de DATASTRING waarde "Error Slave under voltage" heeft
krijg ik als output "tage"

hoe los ik dit op ?

DATASTRING eindigt met '\n' dus kan ik niet de String overnemen tot deze character?

ik denk dat het te maken heeft met een bepaalde timeout zo lijkt het tenminste

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Welke taal :? Waar is de code die de output doet? Vind je je topic zelf ook niet een beetje karig?

[ Voor 33% gewijzigd door RobIII op 11-07-2016 16:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
RobIII schreef op maandag 11 juli 2016 @ 16:12:
Welke taal :? Waar is de code die de output doet?
Processing.org dus JAVA

STATUS is een string die als output dient


edit:
hmm af en toe krijgt STATUS 1 op 1 dezelfgde waarde als DATASTRINg terijwl er geen "Error" en zit.

[ Voor 19% gewijzigd door itcouldbeanyone op 11-07-2016 16:15 ]

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • corset
  • Registratie: November 2009
  • Laatst online: 25-07 13:11
Wat Roblll probeert te zeggen,

wat heb je al geprobeerd?
wat zegt google?
wat probeer je te bereiken
wat is precies de input/output die je verwacht?

Je geeft 0 informatie, en verwacht dat wij door een glazen bol kunnen zien wat er is :p

"Whatever their future, at the dawn of their lives, men seek a noble vision of man’s nature and of life’s potential."


Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
corset schreef op maandag 11 juli 2016 @ 16:14:
Wat Roblll probeert te zeggen,

wat heb je al geprobeerd?
wat zegt google?
wat probeer je te bereiken
wat is precies de input/output die je verwacht?

Je geeft 0 informatie, en verwacht dat wij door een glazen bol kunnen zien wat er is :p
Aslof op elk probleem een zoekwoord te vinden is, tuurlijk er zal vast wel iemand zijn met het zelfde isue, maar geen id hoe die op google staat.


mijn input DATASTRING is variererent van data.
maar zodra deze begint met "Error"
dan wil ik de STATUS string updaten met de waarde van DATASTRING.

zodat ik kan weergeven waneer er een error is.

edit
ik zie nu dat hij elke keer waneer een string groter is dan 21 characters, hij de eerste 21 characters weg laat

[ Voor 7% gewijzigd door itcouldbeanyone op 11-07-2016 16:23 ]

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • muppet99
  • Registratie: Juli 2002
  • Laatst online: 11-10 15:54
itcouldbeanyone schreef op maandag 11 juli 2016 @ 16:18:
[...]

edit
ik zie nu dat hij elke keer waneer een string groter is dan 21 characters, hij de eerste 21 characters weg laat
Precies de reden dat we vragen om meer info.... Je post 1 regel tekst, zonder dat wij kunnen bepalen of er nog ergens met de output of input gerommeld wordt....

[ Voor 16% gewijzigd door muppet99 op 11-07-2016 16:31 ]

Carpe Diem


Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
DATASTRING input komt van

final BluetoothGattCallback btleGattCallback = new BluetoothGattCallback() {
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic) {
String dataValue = characteristic.getStringValue(0);
DATASTRING=dataValue;
}

edit, nee de output kan niet meer geromeld zijn, die print ik meteen na de functie om te debuggen

[ Voor 13% gewijzigd door itcouldbeanyone op 11-07-2016 16:33 ]

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 10-10 10:05
gewoon alle \n karakters verwijderen? Die heb je blijkbaar toch niet nodig?
Java kent vast wel een .replace()?

edit: of denk ik nu te makkelijk...

[ Voor 14% gewijzigd door Meekoh op 11-07-2016 17:04 ]

Computer says no


Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
Meekoh schreef op maandag 11 juli 2016 @ 17:03:
gewoon alle \n karakters verwijderen? Die heb je blijkbaar toch niet nodig?
Java kent vast wel een .replace()?

edit: of denk ik nu te makkelijk...
De engiste /n character die ik weet komt als laatste binnen. Dus niet ergen middenin de string.
Denk dat ik een soort van detectie moet maken
Dat alles tussen "Error" en /n aan een nieuwe string word toegevoegd.
Hoe dat moet ik nog ff uitzoeken

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 10-10 10:05
ff die site doorgelezen, geen .replace beschikbaar.
Maar met .substring() en .indexof() moet je ook een heel eind komen lijkt mij.
Dat is dus mits die newline het probleem is. Wat nog steeds niet echt duidelijk is in je code.

Maak anders ff een complete post, waarin alles helder uiteen wordt gezet.
Je hebt het namelijk de ene keer over "output", maar definieer output. Is dat datgene wat in STATUS zit?
en hoe bekijk je dat? Is dat tijdens debugging of stuur je het naar een console of iets dergelijks?
En probeer ook je code in code tags te doen
code:
1

[ Voor 69% gewijzigd door Meekoh op 11-07-2016 17:33 ]

Computer says no


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11-10 16:42
Meekoh schreef op maandag 11 juli 2016 @ 17:27:
ff die site doorgelezen, geen .replace beschikbaar.
Maar met .substring() en .indedof() moet je ook een heel eind komen lijkt mij.
Dat is dus mits die newline het probleem is. Wat nog steeds niet echt duidelijk is in je code.
Replace zit toch gewoon in de java String class (https://docs.oracle.com/j...tml#replace(char,%20char))?

Heb je ook de spec/doc doorgelezen van de BluetoothGattCharacteristic class itcouldbeanyone? Ik zou proberen zoveel mogelijk info te krijgen uit wat dat ding terug geeft, je kan ook een getValue doen zie ik, dan weet je precies wat je terug krijgt.

|>


Acties:
  • 0 Henk 'm!

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 10-10 10:05
Ja in java zit het wel. ik weet alleen niet in hoeverre die processing taal daarvan afwijkt.
Zag daar in ieder geval in de reference niet .replace staan:
String Functions
join()
match()
matchAll()
nf()
nfc()
nfp()
nfs()
split()
splitTokens()
trim()
dus vandaar mijn opmerking

Computer says no


Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

There are more string methods than those linked from this page. Additional documentation is located online in the official Java documentation.
Gewoon Java SE 6 dus :)

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
Kzal morgen ff de getval direct naar de console heen printen.

Replace zou wel moeten werken in processing ook al staat het niet in de reference.

Zal wel ff wat proberen met replace en substrings.

Status is de output. Deze word direct naar het scherm geschreven.

Kan morgen wel ff de volledige code plaatsen.
Is ook leuk voor als iemand bleutooth 4.1 wil laten werken in processing

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Als de DATASTRING waarde "Error Slave under voltage" heeft
krijg ik als output "tage"
ik zie nu dat hij elke keer waneer een string groter is dan 21 characters, hij de eerste 21 characters weg laat
Dus de code die je toont, werkt gewoon. De eigenlijke fout die je hier probeert op te lossen, grofweg "alleen de laatste vier karakters van de status-string worden geprint" of "alleen de data na het 21e karakter wordt geprint", zit (niet totaal verrassend) in de code die de string STATUS print.

De rest hier is alleen maar gegok, en dit probleem is niet op te lossen zonder relevante code.

[ Voor 57% gewijzigd door CodeCaster op 11-07-2016 18:41 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
CodeCaster schreef op maandag 11 juli 2016 @ 18:37:
[...]


[...]


Dus de code die je toont, werkt gewoon. De eigenlijke fout die je hier probeert op te lossen, grofweg "alleen de laatste vier karakters van de status-string worden geprint" of "alleen de data na het 21e karakter wordt geprint", zit (niet totaal verrassend) in de code die de string STATUS print.

De rest hier is alleen maar gegok, en dit probleem is niet op te lossen zonder relevante code.
de code waar de DATASTRING vandaan komt heb ik eerder al gepost.

de rest van de code is leuk om morgen te posten, voor de gene die geintresserd zijn in BLE verbinding met Processing.org maar voegt niets toe aan de werking van deze strings.

heb nog ff gekeken https://developer.android...etoothGattCharacteristic)
maar kan daar niet vinden hoeveel bytes er in zo'n characteristic zit.
Waarschijnlijk word DATASTRING al geupdate nog voordat de '\n' character geweest is

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Je mist het punt. Als de STATUS-variabele een bepaalde string bevat, maar die string wordt maar gedeeltelijk geprint, dan zit het probleem in de code die het printen doet, niet in de code die die variabele toewijst.

[ Voor 11% gewijzigd door CodeCaster op 11-07-2016 21:49 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • TommyboyNL
  • Registratie: Januari 2006
  • Niet online
Is je probleem met het printen van strings in dit topic al opgelost dan? Wat was de oplossing? Zeker weten dat je SRAM niet vol zit?

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
TommyboyNL schreef op maandag 11 juli 2016 @ 22:02:
Is je probleem met het printen van strings in dit topic al opgelost dan? Wat was de oplossing? Zeker weten dat je SRAM niet vol zit?
dit is processing niets met SRAM te maken.

gebruik gewoon println(STATUS); om te debuggen.

text(STATUS, X, Y); om weer te geven

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • wvdweij
  • Registratie: Oktober 2014
  • Laatst online: 13-05-2022
Met de gegeven info kan ik het niet goed beoordelen, maar het zou een concurrency probleem kunnen zijn. Voor zover ik begrijp:
1. Een asynchrone callback functie zet de variabele DATASTRING (buiten de method context)
2. Een controle of DATASTRING 'Error' bevat
3. Het zetten van de variable STATUS met DATASTRING
4. Het tonen van de variabele STATUS
Van deze 4 events is mij de tijdafhankelijkheid onduidelijk. Hoe vaak wordt bijvoorbeeld punt 1 uitgevoerd en worden tegelijkertijd mogelijk ook 2, 3, en/of 4 getriggerd?
Misschien heb je er wat aan.

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
wvdweij schreef op dinsdag 12 juli 2016 @ 11:01:
Met de gegeven info kan ik het niet goed beoordelen, maar het zou een concurrency probleem kunnen zijn. Voor zover ik begrijp:
1. Een asynchrone callback functie zet de variabele DATASTRING (buiten de method context)
2. Een controle of DATASTRING 'Error' bevat
3. Het zetten van de variable STATUS met DATASTRING
4. Het tonen van de variabele STATUS
Van deze 4 events is mij de tijdafhankelijkheid onduidelijk. Hoe vaak wordt bijvoorbeeld punt 1 uitgevoerd en worden tegelijkertijd mogelijk ook 2, 3, en/of 4 getriggerd?
Misschien heb je er wat aan.
Nu je het zegt. Denk dat het daar indd. Mis gaat
Zal zo ff proberen thankz.

Edit geprobeerd.
had geen effect,
onCharacteristicsChanged zorgt ervoor dat er een newline komt

[ Voor 6% gewijzigd door itcouldbeanyone op 12-07-2016 13:36 ]

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19:53

Ventieldopje

I'm not your pal, mate!

Vergeef me als ik iets heel doms zeg, maar is het niet beter om te checken wat de status van dataValue is en op basis daarvan een callback aanroepen?

Dat lijkt mij beter dan de status op te slaan in een variabele zoals je nu doet. Zeker gezien dit dus concurrency issues met zich mee kan brengen, waar dit veel van weg heeft.

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • edeboeck
  • Registratie: Maart 2005
  • Laatst online: 11-09 13:47

edeboeck

mie noow noooothing ...

itcouldbeanyone schreef op maandag 11 juli 2016 @ 16:18:
[...]
mijn input DATASTRING is variererent van data.
maar zodra deze begint met "Error"
dan wil ik de STATUS string updaten met de waarde van DATASTRING.
Lichtjes off-topic, en misschien is het enkel een kwestie van formuleren, maar je bent je bewust dat je String.contains() gebruikt en niet String.startsWith() ?

Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
heb het al opgelost, maar dan op een andere manier.
inplaats van het ontvangen van een string met daarin Error bla bla bla,
vertuur ik nu een hexadecimaal over bluetooth.
dit nummer owrd dan gekoppeld aan de bijbehorende string.

Ben niet slim, maar wel dom


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19:53

Ventieldopje

I'm not your pal, mate!

itcouldbeanyone schreef op dinsdag 12 juli 2016 @ 23:41:
heb het al opgelost, maar dan op een andere manier.
inplaats van het ontvangen van een string met daarin Error bla bla bla,
vertuur ik nu een hexadecimaal over bluetooth.
dit nummer owrd dan gekoppeld aan de bijbehorende string.
Is dat niet gewoon je kop in het zand steken? Het lijkt mij dat het zelfde probleem zich nog steeds voor kan doen alleen gaat het nu toevallig goed omdat de data een stuk kleiner is dan een string.

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
Ventieldopje schreef op woensdag 13 juli 2016 @ 00:16:
[...]


Is dat niet gewoon je kop in het zand steken? Het lijkt mij dat het zelfde probleem zich nog steeds voor kan doen alleen gaat het nu toevallig goed omdat de data een stuk kleiner is dan een string.
Mischien maar gelukkig word me string nu niet zo groot dat het nog voor kan doen.

Ben niet slim, maar wel dom

Pagina: 1