Il s'agit plus d'un sujet de discussion ouvert qu'autre chose. Actuellement, je stocke 50 valeurs Float32
dans mon NSMutableArray *voltageArray
avant de rafraîchir mon CPTPlot *plot
. Chaque fois que j'obtiens 50 valeurs, j'enlève les 50 précédentes du voltageArray
et répète le processus .... affichant toujours les 50 valeurs en "temps réel" sur mon intrigue. Cependant, les données que je reçois (qui sont la tension provenant d'un module Cypress BLE équipé d'un transducteur de pression) sont si rapides que toute variation (0,4 V à 4,0 V, pas de pression à beaucoup de pression) ne peut pas être vu sur mon graphique. Il apparaît simplement comme une ligne droite, variant de haut en bas sans montrer de pentes accrues ou diminuées.CorePlot - données d'axe x dynamiques utilisant deux matrices
Pour montrer le changement global, je voulais prendre ces 50 valeurs, les stocker dans le premier index d'un autre NSMutableArray *stampArray
et utiliser l'index de stampArray
pour afficher l'information. Pendant ce temps, la méthode numberOfRecordsForPlot:
ressemblerait à ceci:
- (NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plotnumberOfRecords {
return (DATA_PER_STAMP * _stampCount);
}
Ce serait initialement 50, puis après 50 morceaux de données sont capturées à partir du module BLE, _stampCount
augmenterait par un, et le nombre d'enregistrements pour le tracé serait augmenter de 50 (jusqu'à environ 2500-10000 gamme, alors je rafraîchirais le tout et recommencerais le processus.)
Est-ce la bonne approche? Comment pourrais-je faire en sorte que les 50 premiers points restent sur le graphique, tout en construisant les 50 suivants, etc.? Imaginez un graphique y = x^2
, et à quoi ressemble le graphe lors de l'application de l'intégration (le tout décomposant la zone sous la courbe en rectangles).
Merci pour la réponse, et c'est à peu près ce que je suis après. 2500-10000 était une estimation non éduquée; si quelque chose> 1000 fait souffrir la performance que d'aller le "<1000" itinéraire fonctionnera. En ce qui concerne la galerie de tracés, quelles classes/méthodes spécifiques dois-je regarder pour voir l'ajout et la suppression de points? Je suis nouveau à ceci donc j'essaye toujours d'obtenir ma tête autour de tout cela. –
Regardez '-newData:' dans 'RealTimePlot.m'. –
Génial, semble assez simple. Grazie –