Italian DataBase con coordinate autovelox

Fulvio75

Well-Known Member
Licensed User
dicevamo?
azzzz.... grande li catta tutti

select * from Autovelox where (Longitude > 9.117775-0.01000 and Longitude < 9.117775+0.01000) and (Latitude > 45.436755-0.01000 and Latitude < 45.436755+0.01000)

questi li conosco bene e ci sono
ho preso le coocrdinate da googlemaps
 

Fulvio75

Well-Known Member
Licensed User
Ovviamente serve a visualizzare quelli nel raggio di 1000mt circa e non dice se è sulla strada che sto percorrendo ma questo basta ad avvisare che ci sia la probabilità di passarci davanti, ora devo visualizzarlo sulla mappa
 

Fulvio75

Well-Known Member
Licensed User
Volendo si può vedere anche la direzione perché ho notato che la longitudine e la latitudine aumentano oppure diminuiscono a seconda dell'allontanamento della posizione del punto attuale quindi la direzione si può sapere
 

Fulvio75

Well-Known Member
Licensed User
Ho inserito anche i marker per identificare gli autovelox con l'icona personalizzata, i marker vengono inseriti alle coordinate trovate per l'autovelox, quando il fragment successivo viene caricato i marker di quello attuale vengono mantenuti? Oppure si cancellano ?
Il problema non dovrebbe sussistere perché comunque ogni volta che trova le coordinate li il codice li reinserisce è per capire se li reinserisce sopra a quelli già esistenti.
Esempio percorro una strada con l'autovelox, leggo la posizione nel db inserisco il marker in quella posizione e vedon l'icona del marker, proseguo per quella strada e il marker ovviamente scompare passato l'autovelox, torno indietro il codice reinserisce l'icona quando arrivo a quelle coordinate, quindi l'icona si sovrappone all'esistente già inserita oppure il marker è scomparso e inserisce un'icona nuova?
 

Fulvio75

Well-Known Member
Licensed User
Metto i marker in una list di marker dichiarando autovelox as marker poi quando ne trovo uno controllo nella list se c'è perché lo inserisco la prima volta che lo visualizzo su Google Maps e se è nella list non lo reinserisco.
Sembra funzionare tutto correttamente
 

amorosik

Expert
Licensed User
Progetto molto interessante
Come fai a capire che un determinato punto sia quello al quale ti stai avvicinando?
Voglio dire, se allerti a 1 Km di distanza, puo' darsi che l'autovelox sia su una strada parallela a quella che stai seguendo
 

Fulvio75

Well-Known Member
Licensed User
Esatto mi segnala per assurdo 6 autovelox e io guardo se sulla strada che sto percorrendo vi è l'icona dell'autovelox perché quella la inserisce nel punto giusto
 

amorosik

Expert
Licensed User
Dovremmo trovare modo di 'capire' se l'autovelox sia sulla strada che si sta percorrendo
Ma immagino serva avere le coordinate della strada, intese come sequenza di segmenti da punto a punto, e queste non saprei dove recuperarle
 

Fulvio75

Well-Known Member
Licensed User
Dovremmo trovare modo di 'capire' se l'autovelox sia sulla strada che si sta percorrendo
Ma immagino serva avere le coordinate della strada, intese come sequenza di segmenti da punto a punto, e queste non saprei dove recuperarle
Troppo difficile poi mi si brucia il cervello, mi basta la segnalazione e la velocità che la macchina deve tenere quando mi avvicino a 100 MT dell'autovelox che imposto dalle impostazioni dell'app più se vicino c'è un altro autovelox sono fregato. Però ho studiato il modo di sbloccare la cosa tramite i comandi al volante della macchina che inviano dei caratteri come se fosse una tastiera
 

amorosik

Expert
Licensed User
Come come? Fermo la'
Il volante auto invia caratteri?
Ed a chi li invia? Come fai a riceverli?
Cosa fai per inviare sti caratteri?
 

Fulvio75

Well-Known Member
Licensed User
Come come? Fermo la'
Il volante auto invia caratteri?
Ed a chi li invia? Come fai a riceverli?
Cosa fai per inviare sti caratteri?
Con una box android collegata all'infotaiment della macchina, questo per il gruppo fiat, ho modificato il main di b4xpagas intercetta l'evento keypress come la tastiera, però prima devi lanciare con media player un piccolo file sonoro ad esempio all'avvio dell'app per abilitare ETM della macchina ad inviare i comandi al volante.
Per l'autovelox invio un PID alla ecu della macchina con l'abilitazione del Cruise adattivo poi gli passo la velocità in hex
 
Last edited:

amorosik

Expert
Licensed User
Per 'box android' intendi un minicomputer o Raspberry? Esattamente che scheda/elaboratore intendi?
Quello che si vede sul video e' il display di serie dell'auto o ne hai posizionato uno nuovo tu?
Che e' l'ETM della macchina? (scusa la domanda da neofita, ma la cosa e' estremamente interessante e quindi vorrei capire esattamente la cosa)
Quando scrivi "..ho modificato il main di b4xpagas intercetta l'evento keypress come la tastiera.." parli di un programma che gira sul 'box android' o dove esattamente?
Scrivi "..invia un PID all'ecu della macchina.." immagino sia un comando da 'box android' via connettore obd2 alla centralina auto?
 

Fulvio75

Well-Known Member
Licensed User
Per 'box android' intendi un minicomputer o Raspberry
Guarda l'inizio del video che la vedi nel braccio della macchina, il display è l'originale che ha Apple carplay e la box deve essere Apple carplay con installato sopra android auto, sono quasi tutte così le box per automobili
ETM è il modulo infotaiment della macchina e credo che solo il gruppo fiat sia così il display è solo appunto un display non ha altro dietro ed è comandato dall' ETM è lunga da spiegare io ho impiegato un anno a capire il tutto e sono un appassionato di auto quindi leggo tutto in giro per i forum
 

amorosik

Expert
Licensed User
Si grazie
Vedere si vede, ma se ci dai qualche indicazione su marca e modello magari vediamo se si possa prendere per fare qualche esperimento
Non ho ancora ben capito la strada che fa il comando quando premi al volante per arrivare ad essere 'visto' dal codice B4X
Se premi il comando al volante, immagino che venga letto da una delle centraline auto, e quindi chi e' che lo 'spara' poi alla box android?
E come fai a visualizzare da codice che gira sulla box android, sul display dell'auto? Il display non e' collegato col sistema EDM di cui parlavi prima?
 

Fulvio75

Well-Known Member
Licensed User
Ti faccio un rapido quadro del funzionamento delle macchine di oggi
Dal 2019 al 2023 le case automobilistiche per non farti entrare nel modulo centrale della macchina o body computer(non centralina motore) hanno messo SGW security gateway tra obd2 e il body computer della macchina quindi se tenti di leggere i dati delle centraline con i PID proprietari oppure fare modifiche al software/parametri delle centraline non riesci se non con passthru.
Vedi alcuni dati parametri con i PID standard ma fanno ben poco.
Per comunicare con il bc devi fisicamente scardinare e prendere a calci il gateway e mettere un bypass se no hai tutte le spie accese di avaria, cosa che io ho fatto altrimenti nada... È ovvio che questo gateway non è di facile smontaggio problema 1.
Poi raggirato il problema fino alle vetture prodotte nel 2023 perché le altre 2023 in poi il gateway è un software nel body quindi non più raggirabile, devi trovare i PID proprietari e li altro problema anche perché alcune macchine accettano pochi PID standard vedi Giulia,Stelvio,500,Renegade,Compass e compagnia e solo con i PID proprietari puoi ottenere quello che ho fatto.
Differente è per i comandi al volante, immagina un telefono Apple o Android collegato USB della macchina che legge i comandi avanti e indietro del lettore MP3 situati sul volante e altri comandi multimediali che li vedi in chiaro.
Fai un app la metti su una box Apple carplay android auto e il gioco è fatto è come un telefono normalissimo con android, vedi gli eventi del keypress e li gestisci.
Poi dietro a tutto ciò c'è un anno di esperimenti che ovviamente non puoi fare tutti in macchina ma va un po' a fortuna e poi provi se funzionano
 

Fulvio75

Well-Known Member
Licensed User
Ti ho detto solo l'inizio perché l'applicazione così gestita non puoi metterla sul mercato perché come ti ho detto devi togliere SGW cosa non semplice l'ho fatto in 2 giorni per fare un lavoro fatto bene senza rovinare nulla, poi se vai in officina senza quello si rifiutano di guardare la macchina, quindi devi avere un software per eventuali problemi e soprattutto voglia di svonciarti le mani e passione per farti da te i lavori sulla macchina.
Oggi se i meccanici non hanno un PC che gli dice dov'è il guasto non toccano la macchina quindi impossibile da mettere sul mercato io l'ho fatta per me e qualche amico che ha la stessa macchina, altro problema ovviamente la macchina deve essere la stessa se no ciao i PID sono differenti,il display è differente i comandi al volante sono diversi eccecc
 

Fulvio75

Well-Known Member
Licensed User
Altra info per gli SMANETTONI DI AUTO CHE SERVE A NON FARSI INGANNARE E DERUBARE:
Le centraline motore di oggi 2023 in poi sono bloccate con i cosidetti lokedByte in modo da non rimapparle, uno compra la macchina depotenziata con lo stesso motore di quella potente e la rimappa alla versione più potente per ovvi motivi, per cui ad oggi queste centraline sono inviolabili se non con la centralina aggiuntiva, anche le precedenti, gran cagata scusate il termine, questo perchè il sottoscritto l'ha provata e altro non fa che ingannare la centralina motore tramite un software interno scritto in C passando dati fasulli sui sensori turbo e benzina. All'inizio sembra che la macchina vada di più e in effetti è così ma appena si schiaccia un po sull'acceleratore il limitatore di coppia della macchina interviene e ciao potenza si sente un brusco calo di potenza quindi la macchina spinge per qualche secondo poi toglie potenza, bisogna accelerare poco alla volta e che serve??? a nulla. Meglio una bella mappa che la porta a 300cv del motore potenziato che viene depotenziato in fabbrica.
Occhio a non buttare soldi per le stupidate elettroniche e la mappa va fatta togliendo la centralina fisicamente facendo il PIN to PIN e non via OBD.
 

Fulvio75

Well-Known Member
Licensed User
Ritornando al discorso Distanza autovelox la distanza tra questo e la propria posizione si può fare con Location.DistanceTo(TargetLocation as Android.Location.location)
dove location è appunto la Location
Dim Location as Location

ho provato e funziona/sembra funzionare ed è la differenza tra le coordinate dell'autovelox e quelle proprie che da il risultato in metri sempre trovando gli autovelox nella zona con l'istruzione 'filtro' SQL consigliata da alcuni di voi

B4X:
private Sub Get_Autovelox(CurrentLocation As Location)
    
    Dim RS As ResultSet
    Dim AutoveloxFounded As List

    GettingAutovelox = True
    
    Sleep(0)
        
    'Inizializzo la list degli id degli autovelox trovati per non reinserirli dopo il primo inserimento
    If AutoveloxFoundedId.IsInitialized = False Then
        AutoveloxFoundedId.Initialize
    End If
    
    'Cerco gli autovelox nella zona e alla distanza specificata
    Try
        
        RS = Functions.SQLConn.ExecQuery("SELECT * FROM Autovelox WHERE (Latitude > " & _
        (CurrentLocation.Latitude-(AppSettings.AutoveloxDistance/100000)) & " And Latitude < " & (CurrentLocation.Latitude+(AppSettings.AutoveloxDistance/100000)) & _
        ") And (Longitude > " & (CurrentLocation.Longitude-(AppSettings.AutoveloxDistance/100000)) & " And Longitude < " & (CurrentLocation.Longitude+(AppSettings.AutoveloxDistance/100000)) & ")")
        
        RS.Position = 0
        
        'Numero di autovelox trovati
        AutoveloxCounter = RS.RowCount

    Catch
        
        AutoveloxCounter = 0
        
    End Try
        
    'se li trovo nell'intervallo specificato li visualizzo
    If AutoveloxCounter > 0 Then
        
        'Inizializzo la list degli autovelox trovati ogni volta per aggiornare il dato della distanza
        AutoveloxFounded.Initialize
            
        RS.Position = 0

        'Per ogni autovelox del recordset che ho trovato nella distanza specificata
        For i = 0 To (RS.RowCount-1)
            
            Dim Autovelox As AutoveloxProp
                
            RS.Position = i
                        
            '***Inserisco l'autovelox se non già trovato
            If AutoveloxFoundedId.IndexOf(RS.GetInt("Id")) = -1 Then
                
                'inserisco id dell'autovelox nella list di quelli già trovati   
                AutoveloxFoundedId.Add(RS.GetInt("Id"))
                
                'Visualizzo l'autovelox sulla mappa
                GoogleMap.AddMarker3(RS.GetDouble("Latitude"),RS.GetDouble("Longitude"),"Autovelox",LoadBitmap(File.DirAssets,"Autovelox.png"))
                                
            End If
            
            'Salvo le proprietà dell'autovelox nella list di quelli trovati
            Autovelox.AutoveloxId = RS.GetInt("Id")
            Autovelox.Latitude = RS.GetDouble("Latitude")
            Autovelox.Longitude = RS.GetDouble("Longitude")
            Autovelox.Lim = RS.GetInt("Lim")
            Autovelox.Dist = Get_AutoveloxDist(CurrentLocation,Autovelox)
            AutoveloxFounded.Add(Autovelox)
            
        Next
        
        '***Ordino per distanza dalla più piccola alla più grossa per trovare l'autovelox più vicino
        AutoveloxFounded.SortType("Dist",True)
        Dim NearestAutovelox As AutoveloxProp
        NearestAutovelox = AutoveloxFounded.Get(0)
        AutoveloxDistShowed_Update(NearestAutovelox)
        
        'Se non ho ancora visualizzato l'informazione sull'autovelox la visualizzo
        If AutoveloxAlertEnabled = False Then Autovelox_Alert
    
    Else if AutoveloxCounter = 0 Then
        
        AutoveloxAlertEnabled = False
        
    End If
        
    GettingAutovelox = False

End Sub

B4X:
private Sub Get_AutoveloxDist(CurrentLocation As Location,Autovelox As AutoveloxProp) As Float
  
    Dim AutoveloxLocation As Location
  
    'Calcolo la distanza di ogni autovelox trovato nella distanza specificata
    AutoveloxLocation.Initialize
    AutoveloxLocation.Latitude = Autovelox.Latitude
    AutoveloxLocation.Longitude = Autovelox.Longitude

    Return AutoveloxLocation.DistanceTo(CurrentLocation)

End Sub
 

amorosik

Expert
Licensed User

Ammappelo, invidio tutta questa conoscenza, che sicuramente sara' stata accumulata in anni di prove e ricerche ed esperimenti
Onde evitare di rompere per tutte le domande che si accumulano nella mia testolina, e sicuramente pure nella capoccia dei molti altri interessati agli argomenti, non e' che avresti qualche link/documento/riferimento/forum/newsgroup da consigliarci per addentrarci un po' in questi argomenti?
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…