Visualizzazione post con etichetta IOS. Mostra tutti i post
Visualizzazione post con etichetta IOS. Mostra tutti i post
martedì 8 luglio 2014
IBeacon ed aggiornamento IOS 7.1.2 su Iphone 4S
Sviluppando per beacon su IOS mi sono trovato di fronte ad una cosa piuttosto strana
Il medesimo codice che girava correttamente su un Iphone 5S si rifiutava di funzionare su Iphone 4S a parita' di IOS installato
Con l'uscita dell'aggiornamento ad IOS 7.1.2 tutto si e' risolto senza modificare nessuna parte del codice dell'applicazione
lunedì 7 luglio 2014
Beacon su IOS
A seguito delle prove effettuate in questo post ed in questo post (usando in entrambi i casi un telefono Moto G con Android e librerie Radius) mi sono convertito ad IOS ed ho ripetuto l'esperienza usando un IPhone 4S con le medesime antenne usate in precedenza e le API di IOS
non ho ancora capito bene il motivo ma sembra che il segnale risulta nettamente piu' stabile su IOS che su Android (hardware o software???)
da notare che al contrario di Android su IOS vengono segnalati come valori negativi le fallite acquisizioni
il codice impiegato per misurare il segnale e' riportato in seguito (ripreso da questo link dall'esempio Art Gallery)
#import "ViewController.h"
#define ESTIMOTE_PROXIMITY_UUID [[NSUUID alloc] initWithUUIDString:@"4506F9C7-00F9-C206-C12C-C2F9C702D3C3"]
int oldminor;
@interface ViewController ()
@property (nonatomic, strong) NSMutableArray *beacons;
@property (nonatomic, strong) NSArray *paintings;
@property (nonatomic, strong) CLLocationManager *locationManager;
@property (nonatomic, strong) CLBeaconRegion *beaconRegion;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
_beacons = [[NSMutableArray alloc] init];
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID
identifier:@"lucainnoc.Ibeareader"];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)viewDidAppear:(BOOL)animated
{
[_locationManager startRangingBeaconsInRegion:_beaconRegion];
}
- (void)viewDidDisappear:(BOOL)animated
{
[_locationManager stopRangingBeaconsInRegion:_beaconRegion];
}
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
if (beacons.count) {
CLBeacon *closestBeacon;
for (CLBeacon *beacon in beacons) {
NSLog([NSString stringWithFormat:@"%f", beacon.accuracy]);
}
}
}
@end
Webview su IOS
Per poter implementare una WebView su IOS, dopo aver trascinato il componente WebView, si dichiara il nuovo componente come
@interface ViewController : UIViewController
{
IBOutlet UIWebView *Vista;
}
In questo caso la web view si chiamera' Vista
Per modificare la URL a cui punta la webview si agisce con il seguente comando
[Vista loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]]];
Attenzione: di default la webview occupa tutto lo schermo per cui non sono visibile gli altri eventuali controlli (tipo pulsanti o label)
lunedì 7 aprile 2014
Soil Color Chart per IOS
Vista la semplicita' ho effettuato il porting di Soil Color Chart anche per IOS mediante Phonegap
In questo caso la compilazione e' stata estremamente lineare
Il codice sorgente puo' essere scaricata da questo link
In questo caso la compilazione e' stata estremamente lineare
Il codice sorgente puo' essere scaricata da questo link
mercoledì 2 aprile 2014
Hello World su Ios
Giusto un promemoria per me stesso su come compilare Hello World su IOS (piu' che altro perche' alcune azioni sono visive ed e' difficile descriverle senza un video
-----------------------------------------------------------------
- (IBAction)premi:(id)sender{
-----------------------------------------------------------------
- (IBAction)premi:(id)sender{
NSString *const saluto = @"Hello World";
hello.text = saluto;
}
-----------------------------------------------------------------
{
IBOutlet UILabel *hello;
}
- (IBAction)premi:(id)sender;
mercoledì 29 gennaio 2014
Mandelbrot su IPhone/IOS
Per disegnare Mandelbrot su un Iphone per prima cosa si deve trovare una superficie su cui disegnare.
Scartata l'ipotesi di OpenGL (troppo complicata), la cosa piu' semplice e' utilizzare la libreria Quartz 2D facendo un subclass di UIView (per il dettaglio seguire questo link)
Questo puo' essere effettuato con i seguenti comandi (partendo da un progetto vuoto con View-Based Application)
File -> Add Files to
si seleziona Objective-C Class e in basso si seleziona SubClass of UIView
Si seleziona un nome per la nuova classe e si conclude
In seguito dall'Interface Builder (il creatore di interfacce visuali) si seleziona tutta la finestra (UIView), si preme Command+4 e si modifica la classe da UIView con il nome precedentemente selezionato
Fatto cio' si trova che nel file miaclasse.m un scheletro vuoto di una funzione drawRect.Qui si puo' inserire il codice per la generazione dell'insieme di Mandelbrot
------------------------------------------------------------
Scartata l'ipotesi di OpenGL (troppo complicata), la cosa piu' semplice e' utilizzare la libreria Quartz 2D facendo un subclass di UIView (per il dettaglio seguire questo link)
Questo puo' essere effettuato con i seguenti comandi (partendo da un progetto vuoto con View-Based Application)
File -> Add Files to
si seleziona Objective-C Class e in basso si seleziona SubClass of UIView
Si seleziona un nome per la nuova classe e si conclude
In seguito dall'Interface Builder (il creatore di interfacce visuali) si seleziona tutta la finestra (UIView), si preme Command+4 e si modifica la classe da UIView con il nome precedentemente selezionato
Fatto cio' si trova che nel file miaclasse.m un scheletro vuoto di una funzione drawRect.Qui si puo' inserire il codice per la generazione dell'insieme di Mandelbrot
------------------------------------------------------------
//
// Draw2D.m
// Mand
//
// Created by Luca Innocenti on 27/01/14.
// Copyright (c) 2014 Luca Innocenti. All rights reserved.
//
#import "Draw2D.h"
@implementation Draw2D
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
int SCREEN_WIDTH = 480;
int SCREEN_HEIGHT = 320;
float re_min = -2.0;
float im_min = -1.2;
float re_max = 1.0;
float im_max = 1.2;
int iterazioni = 60;
float a,b;
float x,y,x_new,y_new;
int test;
int k,j,i;
float re_factor = (re_max-re_min);
float im_factor = (im_max-im_min);
for (i=0;i<SCREEN_HEIGHT;i++)
{
for (j=0;j<SCREEN_WIDTH;j++)
{
a = re_min+(j*re_factor/SCREEN_WIDTH);
b = im_min+(i*im_factor/SCREEN_HEIGHT);
x = 0;
y = 0;
test = 0;
for (k=0;k<iterazioni;k++)
{
x_new = (x*x)-(y*y)+a;
y_new = (2*x*y)+b;
if (((x_new*x_new)+(y_new*y_new))>4)
{
test = k;
if (k%2)
{
CGContextMoveToPoint(context, i, j);
CGContextAddLineToPoint(context, i+1,j);
CGContextStrokePath(context);
}
break;
}
x = x_new;
y = y_new;
}
}
}
}
@end
--------------------------------------------------------------
--------------------------------------------------------------
Iscriviti a:
Post (Atom)
Opencv camera calibration in cpp
Oltre che con uno script Python come visto qui la calibrazione della camera si puo' fare anche con il programma in CPP Questo il proce...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...