Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-10-2010, 11:51   #1
TRF83
Senior Member
 
L'Avatar di TRF83
 
Iscritto dal: Dec 2007
Città: Palestro
Messaggi: 1960
[C] Algoritmo gestione Single click/Double click/Right click

Ciao a tutti, avrei bisogno di un consulto su di un algoritmo scritto per un microcontrollore (ma tanto è c, quindi la destinazione conta poco! ) per la gestione di click singoli, singoli prolungati, doppio click, click destro e click destro prolungato. A me pare funzionare (e le prime prove mi davano ragione..), ma ora..non va più. Le soglie (SOGLIA_CLICK,SOGLIA_DCLICK e SOGLIA_RCLICK sono tutte impostate ad un generico 200..programmando col c non abbiamo un'ottima gestione dei timings, e quindi utilizzare tempi "veri" è praticamente impossibile..).
Vi chiederei un parere su quanto scritto e se trovate errori e me li riportaste..ve ne sarei grato!
Codice:
//variabili
// tasti=variabile che tiene traccia dello stato in cui mi trovo
// tempo=semplice contatore
// hid_report_in[0]=il tasto premuto
// action_sw=indica se il tasto è premuto o meno (NEGATO!)

switch(tasti){
	case 0:
                //stato iniziale
		mLED_1_Toggle();
		hid_report_in[0]=0;
		tempo=0;
		if(!action_sw){
			tasti=1;
			tempo=0;
		}
		break;
	case 1:
                //primo click
		hid_report_in[0]=0;
		tempo++;
		if(!action_sw){
			if(tempo>=floatData[SOGLIA_CLICK]){
				tempo=0;
				tasti=2;
			}
		}
		else{
			tempo=0;
			tasti=3;
		}
		break;
	case 2:
                // click singolo prolungato
		if(!action_sw)
			hid_report_in[0]=1;
		else{
			hid_report_in[0]=0;
			tasti=0;
		}
		break;
	case 3:
                // stato intermedio tra il primo click e il secondo
		tempo++;
		hid_report_in[0]=0;
		if(action_sw){
			if(tempo>floatData[SOGLIA_DCLICK]){
                                // click singolo
				tempo=0;
				hid_report_in[0]=1;
				tasti=0;
			}
		}
		else{
			tempo=0;
			tasti=4;
		}
		break;
	case 4:
		tempo++;
		hid_report_in[0]=0;
		if(!action_sw){
			if(tempo>floatData[SOGLIA_RCLICK])
				tasti=5;
		}
		else{
                        // doppio click
			hid_report_in[0]=1;
			tasti=0;
		}
		break;
	case 5:
                // click destro
		if(!action_sw)
			hid_report_in[0]=2;
		else{
			hid_report_in[0]=0;
			tasti=0;
		}
}

In pratica si comporta così:
finchè NON è premuto un tasto->aspetta;(stato 0)
se si preme un tasto, si cambia stato e si controlla cosa vuol fare l'utente;(stato 1)
se il tasto è premuto per più di SOGLIA_CLICK->click sinistro prolungato(stato 2, e al rilascio, stato 0)
altrimenti verifica se si vuole fare un click veloce, doppio click o click destro (stato 3)
se il tasto è rilasciato per più di SOGLIA_DCLICK->click singolo breve (e poi stato 0); altrimenti se si fa click, si verifica se si vuole fare doppio click o click destro (stato 4)
Se il tasto viene rilasciato prima di SOGLIA_RCLICK->doppio click (quindi si invia un semplice click, e poi si va a stato 0); altrimenti -> click destro (stato 5)


Resto in attesa di vostri pareri, e grazie per dargli un'occhiata!
__________________
My PC:
Case: BeQuiet! Pure Base 500 + BeQuiet! Pure Wings 2 140mm & Noctua NF-A14 PWM front intake + BeQuiet! Pure Wings 2 140mm rear exhaust - CPU: AMD Ryzen7 5800X3D (DVID: -0.1V) - CPU Cooler: Noctua NH-D15 - MB: MSI X570 Gaming Edge WiFi - PSU: Corsair RM850 full modular - GPU: Gigabyte 2070 Super Gaming OC 3X (fallata....! ) - RAM: 32GB G.Skill Ripjaws V 3200MHz CL16 (Samsung B-Die) - HDD: Crucial P5Plus 1TB NVME - Monitor: Samsung C24FG73

Ultima modifica di TRF83 : 01-10-2010 alle 14:16. Motivo: linguaggio errato!
TRF83 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Apple conferma che l'arrivo della 'nuova...
Le vendite di Square Enix sono in netto ...
iPhone 17e si mostra in un video 'first ...
Il nuovo Xiaomi Watch 5 è pronto ...
Steam Deck è out of stock in dive...
Le migliori offerte Amazon del weekend, ...
PC più potente, meno spesa: su Amazon ta...
Amazon Haul: come fare acquisti 'pazzi' ...
Threads permetterà agli utenti di...
Monitor gaming in offerta su Amazon: 180...
Samsung vuole riconquistare la leadershi...
L'app di YouTube per Apple Vision Pro &e...
Fastweb + Vodafone: clienti e ricavi in ...
Artemis II: nuovo test prima del Wet Dre...
GTA 6 gratis se nasce un figlio il giorn...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v