W&T collega
Adattatori per TCP/IP, Ethernet, RS-232, RS-485, USB, 20 mA, Fibra ottica di vetro e plastica, http, SNMP, OPC, Modbus TCP, I/O digitale, I/O analogico, ISA, PCI

Primi passi per gli sviluppatori di software:

Golang per sistemi ARM-Linux


Il Golang Gopher

Queste istruzioni fungono da introduzione allo sviluppo di soluzioni di comunicazione e automatizzazione sulla base di sistemi ARM-Linux in Go.

Il linguaggio sviluppato da Google è veloce e facile da imparare al contrario dei linguaggi script, ma anche molto potente e performante. È dotato di fabbrica di un cross-compilatore per sistemi ARM-Linux e offre così un workflow semplice per la programmazione del pure.box, il versatile server di comunicazione e automatizzazione di Wiesemann & Theis.

Dopo l’installazione e configurazione di un ambiente di lavoro, in questo tutorial viene mostrato come si gestisce di norma il Gotool mediante la riga di comando tramite un semplice programma Hello World per il pure.box.


Fase 1: Installare Go

Go è un software gratuito e si può scaricare dalla pagina del progetto. In alternativa potete installare Go dalle sorgenti del pacchetto. Dopo l’installazione è necessario fissare o adeguare determinate varianti dell’ambiente:

  • PATH

    La variabile dell’ambiente PATH deve essere ampliata con la sottodirectory bin nella directory GO, in modo che Go possa essere eseguito in tutto il sistema.

  • GOROOT

    La variabile di ambiente GOROOT contiene il percorso per la directory dell’installazione Go. Questa variabile viene fissata solo se Go è stato installato in un’altra directory come directory standard /usr/local/go.

  • GOPATH

    La variabile di ambiente GOROOT contiene il percorso per la directory di lavoro dell’utente. Questa directory contiene in seguito le sottodirectory src per sorgenti, lib per biblioteche precompilate e bin per file eseguibili.

Fissate le variabili di ambiente

Fissate innanzitutto la variabile GOPATH sulla vostra directory di lavoro personale. Per far ciò elaborate il file .bashrc nella vostra directory Home e aggiungetevi per esempio la prossima riga.

					
						export GPOATH=~/go
					
				

Se non avete installato Go dalle fonti del pacchetto, dovete stabilire la variabile GOROOT e ampliare PATH. Queste modifiche vengono effettuate in modo sensato per l’intero sistema. Elaborate quindi con diritti root il file /etc/profile e aggiungete qui entrambe le seguenti righe:

					
						#Pfad zum Installationsverzeichnis von Go
						export GOROOT=/usr/local/go
						export PATH=$PATH:$GOROOT/bin
					
				
Installa Git

Per installare ampliamenti linguistici e pacchetti di fornitori esterni senza troppo sforzo, Go Git utilizza il software sviluppato da Linus Torvalds per una gestione delle versioni distribuita. Questa può essere scaricata da www.git-scm.com o installata mediante l’amministrazione del pacchetto.

Verifica installazione

Il Go-Tool è il coltellino svizzero per lo sviluppo di Go. Per verificare se l’installazione sia andata a buon fine, potete visualizzare ora l’ambiente Go.

Inserire il seguente comando nel terminale:

					go env
				

ora viene visualizzata una panoramica di tutte le variabili di ambiente rilevanti per Go:

					
						GOARCH="amd64"
						GOBIN=""
						GOEXE=""
						GOHOSTARCH="amd64"
						GOHOSTOS="linux"
						GOOS="linux"
						GOPATH="/home/martin/go"
						GORACE=""
						GOROOT="/usr/lib/go"
						GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
						CC="gcc"
						GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build863343041=/tmp/go-build -gno-record-gcc-switches"
						CXX="g++"
						CGO_ENABLED="1"
					
				

se visualizzate un messaggio d’errore, probabilmente la directory bin nel GOROOT non è nel percorso di ricerca. Esaminate la variabile di ambiente PATH con il comando echo %PATH%. Verificate poi se GOPATH corrisponde alla sua directory di lavoro.


Fase 2: Hello World

Lo sviluppo di programmi Go avviene nell’ambito del GOPATH nella directory src. Create la directory qui hello e al suo interno il file hello.go.

				
					package main

					import "fmt"

					func main() {
						fmt.Println("Hello, world!")
					}
				
			

  • Riga 1:
    Se desiderate creare un file eseguibile in Go, lavorate nel pacchetto main.

  • Riga 3:
    Il pacchetto fmt offre funzioni per l’immissione e l’emissione.

  • Riga 5:
    Facendo clic su un output la funzione main() è il punto iniziale nel programma.

  • Riga 6:
    fmt.Println() emette una stringa, seguita da un segno Newline.

Per compilare un programma, inserite il seguente comando:

				go install github.com/wut/tutorial/hello
			

se non visualizzate un messaggio d’errore, il processo di traduzione è andato a buon fine. Ora trovate il file eseguibile hello.exe nella directory bin del vostro Go-Path.

				
					./hello
					Hello World!
				
			


Fase 3: Hello pure.box - Cross-compilazione per ARM-Linux

Go rende particolarmente semplice compilare applicazioni per altre piattaforme target. Per tradurre l’esempio Hello World per il pure.box, dovete solo fissare temporaneamente un paio di variabili di ambiente:

  • GOARCH
    Con la variabile di ambiente GOARCH si fissa l’architettura target. Per il pure.box questa è arm.

  • GOOS
    Questo è il sistema operativo della piattaforma target. Per il pure.box questa variabile deve essere fissata su Linux.

  • GOARM
    Con GOARM si comunica al compilatore come deve gestire le operazioni di floating point, il valore per il pure.box è 5.

Pertanto nella richiesta di immissione inserite quanto segue:

				
					export GOOS=linux
					export GOARCH=arm
					export GOARM=5
				
			

avviate la traduzione che va oltre le piattaforme entrando nella directory del codice sorgente e eseguendo lì go build.

				
					go build
					ls -al
					total 1476
					drwxr-xr-x 2 gopher users    4096 Dec 25 11:31 .
					drwxr-xr-x 3 gopher users    4096 Dec 25 12:08 ..
					-rwxr-xr-x 1 gopher users 1496747 Dec 25 11:31 hello
					-rw-r--r-- 1 gopher users      88 Dec 25 12:09 hello.go
				
			

Come vedete, nella vostra directory di lavoro adesso esiste il file eseguibile hello. La cross-compilazione con Go è veramente semplicissima!


Fase 4: Eseguire sulla pure.box

Per trasmettere il binary sul box, esistono diverse possibilità: Oltre all’accesso tramite FTP, si può integrare il box via SMB anche direttamente nella sua rete Windows.

Dal momento che il modo più semplice per provare un’applicazione consiste nell’eseguirla manualmente in una sessione terminale, sul box deve essere attivato SSH. In questo modo la trasmissione di file via SCP è ovvia.

Se non avete ancora installato un client SSH, installate il pacchetto open-ssh. Per SCP avete bisogno dei seguenti parametri: il nome utente è "admin", la password è la password di amministratore da voi configurata. Come nome dell’host assegnate nomi dell’host o l’indirizzo IP del vostro pure.box.

Copia file:
				scp hello admin@hostname:/data/userfiles
			

Esegui programma:

Collegatevi con Putty oppure mediante il comando ssh con il pure.box.

					
						ssh admin@hostname
					
				

In seguito eseguite il file hello nella directory /data/userfiles.

					
						./hello
						Hello pure.box
					
				


Domande? Chiamateci!

Avete ancora domande su queste istruzioni? Il nostro servizio di assistenza è lieto di fornirvi ulteriori informazioni!