Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

3
voti

La (mia) bancadati C.R.E.M.A.

Indice

Componentistica Radio Elettronica [e] Meccanica Amatoriale

Nota di precauzione

Tutti i marchi ed i nomi citati nel presente documento sono riportati al solo scopo di migliorarne la leggibilita' ed appartengono ai rispettivi proprietari.

Perche' questa bancadati

Io sono un vecchio uomo con alcuni hobbies che mi permettono di passare il tempo senza oziare in qualche centro commerciale o sedendo sulle panchine di qualche parco cittadino.
Ma per esercitare qualsiasi hobby servono materiali e strumenti che inevitabilmente si accumulano negli anni e occorre avere una visione chiara della disponibilita' e dello stato di uso dei vari utensili che sono nella disponibilita'.
Sfido qualsiasi hobbista a dichiarare di non aver riacquistato qualche utensile che non trovava piu', io ho molti duplicati non necessari unicamente per carenza di ordine.
La cosa si e' aggravata quando, negli ultimi anni, ho disassemblato una notevole quantita' di circuiti che avevo accumulato. Nel frattempo ho anche raccolto e collazionato migliaia di documenti sia in forma PDF che HTML e la confusione ha raggiunto limiti abbastanza preoccupanti.
Dal materiale ottenuto dal disassemblaggio dei componenti ho ottenuto sei scatole di materiali, sommariamente cosi' suddivisi.

  • Semiconduttori
  • Condensatori
  • Resistenze
  • Bobine e trasformatori
  • Valvole e materiale d'epoca
  • Chi lo sa

Fino a questo punto niente di nuovo ma la cosa si complica considerando che parte del materiale si trova a Pistoia, parte a Castiglioncello e parte a Milano.
Qualcuno potra' chiedermi, "perche' non porti tutto in un unico posto?", la risposta e' questa: per necessita' di spazio ho dovuto mettere tutto il materiale relativo alle radio d'epoca in un posto, il materiale per le realizzazioni meccaniche e di falegnameria in un altro e il materiale per l'elettronica allo stato solido e le sperimentazioni ancora in un altro posto.
Non e' da sottovalutare il fatto che con una certa frequenza mi reco nelle varie localita' per motivi personali.
Ho sfruttato pertanto internet ed il mio server HTTP per realizzare un software, studiato per aderire alle mie esigenze, ed in grado di supportarmi in questo progetto.

Obiettivi funzionali del progetto

  • Le uniche operazioni previste offline sono le funzioni di backup e di ripristino dati.
  • Memorizzazione di componenti, utensili, strumenti materiali e quant'altro funzionale ai miei hobbies
  • Accesso ai dati esclusivamente via internet
  • Consultazione remota anche multiutente (via browser)
  • Controllo sui dati durante la fase di caricamento.
  • Aggiornamento via internet con alto livello di sicurezza
  • Diverse viste della banca dati secondo gli indici ed i filtri progettati.
  • Memorizzazione della documentazione.
  • Memorizzazione di immagini, schemi, manuali e libri.
  • Memorizzazione di documenti, recensioni e materiali vari.
  • Stampa della scheda componente.
  • Ricerche alfabetiche complesse e selettive.
  • Funzione di backup serale automatica .

Controllo sui dati durante la fase di caricamento.

Sistema operativo e caratteristiche del software scritto

Il linguaggio usato per questa realizzazione e' xHarbour (www.xharbour.org www.xharbour.com) per la velocita' di realizzazione e la possibilita' di essere compilato sotto diversi sistemi operativi. Io lo ho compilato sotto WINDOWS© ed e' stato provato con successo sotto WINDOWS XP©, WINDOWS 7© ed attualmente viene usato sotto WINDOWS 10©.
Il server HTTP e' gestito da Apache©, programma che e' gratis per usi non professionali (consulatare il relativo sito internet).

Ma per tutti i lavori fuori rete internet uso SAMBAR 7.0© che e' molto leggero e puo' funzionare fuori linea definendo opportunamente gli host virtuali in WINDOWS© nello schema CONFIG e VHOST di SAMBAR7.0©
Complessivamente sono state scritte circa 12.000 righe di software ed e' certo che la banca dati puo' agevolmente gestire diverse centinaia di migliaia di componenti
Personalmente non ho usato in C.R.E.M.A. MySql© come DBMS ma esistono molti esempi di uso del MySql© con xHarbour.
L'ingresso dei dati puo' avvenire solo a mano, non e' previsto il caricamento dei dati con altri mezzi automatici, anche se e' possibile e facile accoppiare immagini e documenti ai dati dei componenti caricati. Le immagini possono arrivare da fotocamere digitali, nel mio caso le ho importate sia da fotocamera che da un microscopio digitale collegato ad una porta USB.

E' prevista, ma non implementata, la presenza e la gestione di banche dati locali (es. caricate su chiavetta) che poi potranno essere riversate sulla banca dati generale.
Ho inserito nella documentazione un piccolo manuale teorico sulle banche dati http://www.crema.walkingitaly.com/crema192.htm parte di quanto scrissi, quando mangiavo bit e bytes, per illustrare ai nuovi collaboratori i principi dei DBMS.
Il sistema e' composto da due programmi esecutivi.

  • CREMA00.EXE

che interfaccia il server HTTP e gestisce tutte le funzioni descritte nel relativo paragrafo.

  • CREMA01.EXE

che e' un programma batch per operazioni fuori linea e per altre funzioni di servizio.
Questi programmi usano librerie che possono funzionare solo con windows, per questo motivo non ho previsto l'uso di CREMA con Linux.

Definizione dei campi del database

Nome Campo

Tipo

Dim.

Descrizione

Controlli

LOCALITA

C

3

Identifica la localita' in cui si trova il materiale descritto in banca dati

Al momento e' utilizzato come indicazione senza alcuna funzione di reale indirizzamento e ricerca

CLASSE

C

2

Classe di appartenenza del componente. La classe e' una codifica che identifica il massimo raggruppamento dei componenti inseriti nella banca dati.

Sono due caratteri alfanumerici maiuscoli. La codifica della classe e' aggiornata da una funzione riservata del software on line che controlla ed evita la duplicazione delle classi gestisce l'ordine alfabetico.

TIPO

C

10

Tipologia del prodotto

Indica, nell'ambito della classe, la tipologia del componente. Puo' servire per identificare ilo componente e ricercarlo nella banca dati. E' la codifica, nell'ambito della classe, del componente in esame.

Il tipo non puo' essere duplicato nell'ambito della classe.
Viene controllata per l'unicita' nell'ambito della classe.
E' un campo di 10 caratteri maiuscole puo' contenere anche caratteri speciali e numeri.

CODICE

C

15

Codice commerciale o personale del componente, puo' essere quello attribuito dal costruttore o uno attribuito da parte dell'operatore durante il primo caricamento del componente. Viene controllato per la duplicazione nell'intera banca dati.

E' il codice del componente attribuito dal costruttore o dall'utente. permette di ritrovare i componenti opportunamente identificati. Se il codice non e' presente, o non sono in grado di individuarlo, adotto una codifica sequenziale a partire da nnnnnnn. Tutti i caratteri sono maiuscoli ma il codice puo' contenere anche numeri e caratteri speciali purche' presenti nella codifica ASCII.

PACKAGE

C

10

Non e' un campo essenziale ma solo indicativo. Puo' essere usato per migliorare la significativita' della identificazione del componente.

Anche se lo stesso componente puo' essere presente con diversi packages, questo e' un campo inserito per compatibilita'

DESCRIZION

C

300

Una descrizione di identificazione del componente

Campo descrittivo'. Nessun controllo neppure ortografico

PRODUTTORE

C

20

Il nome del produttore del componente

Campo descrittivo

SCHEMA

C

30

L'eventuale schema del componente memorizzato Gli schemi relativi al componente (immagine, pdf, ecc.).
Possono essere piu' di uno separati da virgola. Attenzione, non viene controllato ne' come duplicato ne' come presenza.

Nome del file inserito nella direttrice /crema/crema_ske

DATASHEET

C

30

Datasheet del componente

Nome del file inserito nella direttrice /crema/crema_dsh

QUANTITA

N

10,0

Quantita' dei componenti

Il numero dei componenti di cui disponiamo. La banca dati assume questi valori convenzionali

  • 0 = Nessun componente presente
  • -1 = Non e' possibile contarli sono moltissimi.

POSIZIONE

C

10

La posizione del componente nel magazzino. E' una codifica che identifica i contenitori o la posizione ove sono messi i componenti o gli utensili classificati.

 

TESTATO

C

3

Stato del test

Lo stato di test del componente.

Indica anche se da revisionare o lo stato di utilizzo.

  • NO - Nessun test
  • OK0 - Test solo strumentale (es. una bobina test di continuita')
  • OK1 - Test funzionale (es prova valvole)
  • OK2 - Superato il test funzionale in esercizio
  • OK8 - E' in utilizzato in normali condizioni di uso
  • OK9 - Da revisionare

DOCUM

C

30

Eventuale documentazione, anche il testo dei libri

Nome del file inserito nella direttrice /crema/crema_doc

Se e' presente il pulsante e' disponibile una documentazione che puo' essere generica sul prodotto o specifica sull'esemplare.
Possono essere schemi, datasheet, foto, esperienze sull'uso o quant'altro disponibile.
Viene conservata in una cartella che come nome ha il tipo oppure il tipo + il codice.
Viene presentato un elenco di link che possono essere attivati

UTE_DBMS

C

20

Per applicazioni future di multiutenza e multiproprieta' della banca dati.

 

STATO

C

1

Identifica se il componente e' nuovo (N), usato (U). Se vuoto puo' significare una situazione mista o non meglio definita.

 

DATA

D

8

La data dell'ultimo aggiornamento. E' inserita automaticamente

 

TIME

C

8

L'ora (hh:mm:ss) dell'ultimo aggiornamento. E' inserita automaticamente

 

IMMAGINE

C

15

Se e' presente il pulsante sono disponibili delle immagini che possono essere generiche sul prodotto o specifiche dell'esemplare.
Possono essere schemi, datasheet, foto, esperienze sull'uso o quant'altro disponibile.
Sono conservate in una cartella che ha come nome ha il tipo oppure il tipo + il codice.
Viene presentato un elenco di link che possono essere attivati

 

CIRCUITI

C

15

Eventuali circuiti, realizzazioni o quant'altro riguardi il componente. Puo' essere nella forma PDF, Immagini, pagine HTML o documenti word.

 

MISURA

C

10

 

SY_DIRDOC

C

30

 

PAROLE

C

100

 

Valori del campo localita'

Codice

Nome localita'

CA

Castiglioncello

MI

Milano

PT

Pistoia

SY

Dati memorizzati nel server CREMA

Classi e tipi dei componenti della banca dati CREMA

Questi dati servono per classificare i componenti. Ho definito molte categorie senza scendere nei dettagli della tipologia, e saranno aggiornati sul sito mano a mano che si sviluppera' il caricamento dei dati.
In questa tabella espongo solo un paio di classi. Chi volesse conoscere l'intera gamma delle classi e dei tipi che ho codificato puo' consultare il sito con i dati che riporto al termine di questo articolo.

Codice classe

Descrizione

Codice tipo

Descrizione

AN

Antenne

FERROCUBE

Antenne in ferrocube con o senza bobine di sintonia

 

 

LNB

Illuminatore per antenna satellitare

BO

Bobine

 

Nessun tipo presente

I programmi eseguibili

CREMA00


Il programma CREMA00 e' il gestore del sito e, nel mio caso, e' in ascolto sulla porta 5024. Quando il server HTTP riceve una chiamata sul sito www.crema.walkingitaly.com attiva la pagina
crema00.html
indirizzata da quanto descritto nel file config.ini.
La pagina crema00.html attiva la pagina di ingresso che contiene il riconoscimento della persona chiamante.
Ciascun utente deve avere un nome associato ad una password. IL DBA (vedere documentazuione DBMS) assegna il livello, cioe' una caratteristica che permette all'utente di svolgere attivita' piu' o meno complesse ed invasive.
Il programma identifica l'utente con caratteristica AAA come quello che puo' svolgere tutte le funzioni, tutti gli altri non possono fare inserimenti, aggiornamenti o cancellazioni. Gli altri livelli possono solo consultare la banca dati, o vedere una parte personalizzata della banca dati ( Funzione prevista ma da implementare).
Naturalmente si tratta di una convenzione che ho assunto nella scrittura del programma, non e' difficile modulare questa funzione.
In queste note descrivo separatamente le funzioni di consultazione da quelle di aggiornamento.
Nella pagina che riporto in immagine si possono notare le caratteristiche della schermata generale di consultazione. Quella esposta e' completa di ogni particolare.

t10c.jpg

t10c.jpg

Nella parte alta della pagina si trova:

  • Il nome e la classe dell'utente
  • Il pulsante per il ritorno alla HOME PAGE
  • Il pulsante per tornare alla pagina precedente
  • Il giorno la data e l'ora di lavoro
  • Il pulsante per leggere il manuale sui DBMS
  • Nel caso che l'utente abbia caratteristica AAA e' presente un pulsante per l'aggiunta di componenti
  • Successivamente e' presente la riga della visione ordinata, cioe' l'ordine con cui si visualizzano i componenti memorizzati, il valore di riferimento e' quello della codifica ASCII.
  • Codice, in puro ordine alfabetico secondo il valore dei singoli caratteri.
  • Ordine di classe e di codice nell'ambito della classe.
  • Ordine di tipo e di codice nell'ambito del tipo.
  • Ordine di classe + tipo + codice
  • Ordine di localita' + classe + tipo + codice
  • Ordine di posizione + classe + tipo + codice

Le due righe successive sono relative ai metodi di ricerca ed individuazione dei componenti

  • Codice.
    Puo' essere anche parziale nel qual caso vengono presentate tutte le ricorrenze. Si puo' inserire un asterisco all'inizio alla fine della stringa di ricerca, in questo caso vengono visualizzati tutti i componenti che hanno nel loro codice la stringa digitata.
  • Anagrafica.
    Tutte le parole della descrizione piu' lunghe di tre caratteri vengono usate nell'indice alfabetico. Come risultato della ricerca vengono visualizzate i componenti che incontrano questa ricerca.
  • Localita'.
    Puo' essere intera o la parte iniziale.
  • Classe.
    Intera o parziale ricerca tutti i componenti di una certa classe.
  • Tipo.
    Intero o parziale ricerca tutti i componenti individuati.
  • Posizione
    Riporta tutti i componenti immagazzinati in una certa posizione.

In fondo alla pagina sono riportati questi elementi

  • Caratteristiche dimensionali della banca dati C.R,E,M.A.
  • Quanti sono i componenti memorizzati e quante sono le pagine indirizzabili.
  • Pulsanti di accesso alle pagine, sia come numero della pagina che come "precedente" o "successiva"
  • Salto diretto alla pagina desiderata.
  • Caratteristiche di ciascuna riga della pagina visualizzata.

I dati visualizzati su ciascuna riga della pagiina HTML sono questi

  • Localita' (Loc)
    indicata come sigla
  • Classe (CL)
    E' la sigla della classe che identifica il componente
  • Un pulsante verde con cui e' possibile visualizzare l'intera scheda.
    Nel caso che siano presenti dei dati nel campo circuiti il colore del pulsante e' rosso.
  • Il codice del prodotto
  • Lo stato (S)-se nuovo o usato
  • La descrizione del componente
  • Immagine.
    Se sono presenti una o piu' immagini del componente un pulsante permette di sceglierle e visualizzarle.
  • Quantita' (Q)
    Indica le quantita' come memorizzate.
  • Posizione (Pos)
    Indica il contenitore ove recuperare il componente. Si tratta di una codifica puramente personale.
  • Test
    Il livello di test (Come riportato nella documentazione) cui e' stato sottoposto il componente.
  • Documentazione
    (Document) Se e' presente uno o piu' documenti che si relazionano al componente e' prente un pulsante con cui e' possibile sceglierla e visualizzarla.


Gli altri campi sono relativi alla caratteritica AAA.

CREMA01

E' un programma di servizio che svolge le funzioni che non ho voluto inserire in funzioni on line unicamente per velocita' di realizzazione. In queste note illustro per sommi capi le funzioni che si evincono visualizzando il menu.

  • C - Fonde due banche dati CREMA
    Questa funzione serve per accumulare nella banca dati on line le banche dati caricate localmente
  • P - Gestioni accessi e password.
    Consente al DBA di controllare gli utenti ed attribuire a ciscuno di loro il livello di accesso di competenza
  • W - Parole non comprese nella ricerca alfabetica
    Con questa funzione e' possibile escludere dalla ricerca alfabetica alcune parole non particolarmente significative.
  • X - Ricostruzione indici completa
    Funzione che permette di ricostruire tutti gli indici dei file integrati nella banca dati CREMA
  • Z - Ricostruzione indici alfabetici
    Legge tutte le descrizioni dei componenti e prepara un indice che puo' essere interrogato alfabeticamente. ;

    L'utilizzo alla data

    Ho caricato oltre 800 oggetti: Mi e' gia' servito per non comprare due volte un amplificatore operazionale con cui sto realizzando un sistema antighiaccio per uno scalda acqua che ho su un terrazzo esposto a nord.

    Attrezzatura usata

    Per non affaticare gli occhi ho preparato un piccolo stativo in cui ho installato un microscopio digitale (un attrezzo da 30 euro comprato in una delle tante fiere), Come risulta dalla foto la costruzione e' altamente provvisoria ma funziona.
    Lo statore su cui scorre una molla fermacarte e' un manico da scopa ed il microspopio e' fissato ad una piccola tavola con due elastici. E' molto stabile, pesa pochissimo ed e' stato realizzato in dieci minuti.
    Il computer e' un normalissimo portatile che si collega via wifi ad internet ed al server cui e' memorizzata la bancadati CREMA. Per non avere spese di nomi dominio ho creato un dominio di secondo livello (non costa) di un mio sito principale, ma questo e' un dettaglio altamente personalizzabile.

    Nel caso che mi trovi in una situazione ove non dispongo di collegamento internet (la cantina di Pistoia) carico i dati in locale, dati che poi riverso sulla banca dato generale.
    Quella esposta in foto e' la postazione che uso normalmente a Milano:

    • Lo stativo con il microscopio
    • Il pc portatile
    • Un cassettino con i componenti che iniziano con F che stavo caricando in quel momento.

    Quando ho fatto questa foto stavo lavorando collegato alla rete wifi cui sono inseriti anche i server internet.
    Una curiosita': stavo visualizzando un componente di cui non sono riuscito a trovare il datasheet. Dall'immagine rulta il tipo F1037 ed ho caricato in bancadati la sua immagine rilevata tramite la funzione automatica del microscopio.

    Stato del software.

    Ritengo che lo stato del software, almeno per le mie esigenze, sia abbastanza stabile, ma indico alcuni miglioramenti che potrebbero renderlo piu' generalizzato
    Il trasferimento di alcune funzioni che ho inserito nel programma CREMA01 come funzioni on line interattive. Il lavoro e' relativamente modesto ma esula dalle mie necessita'.
    La reale multiutenza, per cui ogni utente carica e gestisce la propria bancadati e la mette a disposizione, in tutta o in parte, degli altri utenti, e' una facilita' che e' prevista nella struttura dei file, ma la sua implementazione comporta alcune decine di ore di lavoro e di test, inoltre necessita di un server che metta a disposizione spazio disco e tempo macchina. Di contro credo che potrebbe contribuire a facilitare incontri ed eventualmente scambi di materiale.

    Cosa metto a disposizione.


    Il mio tempo e' estremamente limitato ma potrei fornire, se necessaria, una consulenza a chi volesse implementare qualche cosa di analogo.

    Proprieta', continuita', sicurezza, garanzie del software.


    Tranne per i marchi citati in precedenza il software e' stato interamente scritto da me e rimane di mia esclusiva proprieta', comunque i tracciati record e l'eventuale documentazione non sono una cosa cosi' preziosa, pertanto chiunque puo' usare gli schemi e tracciati se li ritiene utili.

    Il sito

    Il sito e' contattabile con questo indirizzo www.crema.walkingitaly.com ed ho inserito un utente ey con password ey.

    Naturalmente la funzione permessa e' solo di consultazione.
0

Commenti e note

Inserisci un commento

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.