Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Buongiorno a tutti.
Premetto che Python non lo conosco.
Devo pilotare un'apparato esterno che è dotato di lan. Il costruttore mi ha detto che posso comandarlo utilizzando dei semplici script in python.
Il mio programma di gestione attuale, per macchine simili ma piu vecchie, è in vb6 e comunico via seriale.
Questo uno script in pyton :
Codice sorgente - presumibilmente Delphi
# Imports socket from Python
import socket
# Host is console's IP
host ="192.168.0.128"
# Port must be 49280
port =49280
#Establishes variables and connects to console
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
# Recalls scene A0
s.sendall("ssrecall_ex scene_a 0\n".encode())
# receive a message before closing socket
s.recv(1500)
# Closes socket
s.close ()
Da quel che vedo , mi pare di capire che lo script semplicemente manda un stringa " ssrecall_ex scene_a 0\n" sul socket.
Mi chiedevo: ma la stessa cosa potrei farla direttamente da vb6 usando il socket senza dover passare da python?
Che differenza c'è tra i due sistemi?
Qualcuno mi sa illuminare?
Grazie a tutti
Mario
L'apparato esterno non sa con quale linguaggio hai creato e mandato la stringa, qualsiasi linguaggio usi per stabilire la connessione va bene.
In VB6 c'è il comodo Winsock, imposta i giusti parametri e trasmetti la striga...
Winsock è un componente che devi aggiungere, si trova alla voce: "Microsoft Winsock Control 6.0 (SP6)"
Un mio vecchio programma, ci puoi prendere degli spunti, la parte In Timer2 che disegna le righe che mostrano graficamente i device connessi tramite LAN o internet, la puoi ignorare, il programma trasmette e riceve.
In Command1,2,3,4 le trasmissioni delle stringhe, nel mio caso delle coppie di numeri.
In Timer1 c'è : Winsock1.SendData "00", è il comando di default, dovrai sostituirlo con il tuo.
Winsock di vb6 gia lo uso pesantemente per altre macchine che fanno parte dello stesso progetto di controllo e devo dire che si comporta egreggiamente.Grazie comunque per il tuo codice!
Quello che mi ha lasciato un po spiazzato è stato che il produttore ha detto "usa python per...etc etc".
Si...sono della tua stessa idea,:la macchina legge una stringa,se poi gli arriva da python anziche da vb6 o da terminale poco importa.
Purtroppo non conoscendo python pensavo che usasse delle caratteristiche particolari per la comunicazione.
Ora devo capire se sfruttare semplicemente un shell per utilizzare gli script gia fatti, oppure inserire un altro winsock e creare ex novo la stringa da mandare.
Bho?!
Sicuramente la prima scelta è piu "veloce" ma devo installare PH e fare delle modifiche nel path di sistema.La seconda è piu elegante ma...vuol dire
altro sbattimento per creare e testare.
Vedo cosa mi dice "la pancia"
Grazie ancora!
Mario
Ultima modifica effettuata da iz1kbp il 14/02/2021 alle 10:37
Winsock di vb6 gia lo uso pesantemente per altre macchine che fanno parte dello stesso progetto di controllo e devo dire che si comporta egreggiamente.Grazie comunque per il tuo codice!
Quello che mi ha lasciato un po spiazzato è stato che il produttore ha detto "usa python per...etc etc".
Si...sono della tua stessa idea,:la macchina legge una stringa,se poi gli arriva da python anziche da vb6 o da terminale poco importa.
Purtroppo non conoscendo python pensavo che usasse delle caratteristiche particolari per la comunicazione.
Ora devo capire se sfruttare semplicemente un shell per utilizzare gli script gia fatti, oppure inserire un altro winsock e creare ex novo la stringa da mandare.
Bho?!
Sicuramente la prima scelta è piu "veloce" ma devo installare PH e fare delle modifiche nel path di sistema.La seconda è piu elegante ma...vuol dire
altro sbattimento per creare e testare.
Vedo cosa mi dice "la pancia"
Grazie ancora!
Mario
Capisco.
Mantenere i progetti VB6...
Nuovi progetti VB.Net
I nuovi device te li forniscono con script Pyton?
Non sono un esperto di Pyton, ma testare e modificare codice Pyton è agevole, l'ambiente Pyton con IDE, si installa in due minuti e non ha bisogno di configurazioni:
https://www.python.org/downloads/release/python-387/ gli installer sono in fondo alla pagina.
Nel sito tutta la documentazione, ma dai un'occhiata anche qui:
https://www.w3schools.com/python/default.asp
Avevo provato a migrare verso la .net ma...il pc su cui sviluppo, rallentava in maniera oscena.
Il tentativo lo avevo fatto perchè con i nuovi VStudio c'era la possibilita di sviluppare per altre piattaforme.
Purtroppo le mie conoscenze sono a livello "base, un po di piu" e quindi ho deciso di rimanere nel "seminato"...finchi posso!
Comunque devo dire che il programma che ho sviluppato (è partito da qbasic 4 nel lontano 1992 su un "vecchio " 8086 !!!) tiene tutt'ora "botta".
Ho provato PY,pensavo fosse qualcosa di mostruoso ma in realta, se ne sta tranquillo tranquillo in attesa di essere chiamato in causa!!
Mi sa che prodendo per l'uitlizzo di "shell".
Il nuovo strumento in realta viene fornito senza nessun programma se non un suo gestionale proprietario , che vuole un sistema 64bit!!. Sono riuscito , tramite agganci "strani ", a trovare il manuale di sviluppo ed un tecnico "intelligente" che ha capito che non volevo disassemblare il bios della macchina, ma solamente comandarla in maniera efficiente anche tramite terminale...8bit!!!
Grazie per il supporto e la pazienza!
Buon proseguimento
Mario
Postato originariamente da iz1kbp: Avevo provato a migrare verso la .net ma...il pc su cui sviluppo, rallentava in maniera oscena.
Il tentativo lo avevo fatto perchè con i nuovi VStudio c'era la possibilita di sviluppare per altre piattaforme.
Purtroppo le mie conoscenze sono a livello "base, un po di piu" e quindi ho deciso di rimanere nel "seminato"...finché posso!
Direi che oramai non puoi più
Attenzione non è il solito sermone del patito dell'aggiornare tutto a qualsiasi costo.
Anche io ho applicativi VB6 scritti decine di anni fa, che ancora girano con hardware dedicato sotto winXP, gli utilizzatori non ne vogliono sapere di cambiare, perché il sistema ha dimostrato negli anni di essere error free, non hanno bisogno di nuove features, e vogliono solo lavorare senza rischiare.
Ma tenere dei PC WinXP in una rete, dove ci sono dei PC Win10, diventa sempre più difficile, e l'istallazione di Win10 è obbligatoria nei PC con dati sensibili, come i PC dell'amministrazione o i PC di casa usati per navigare, dove magari si fanno acquisi o pagamenti online.
Sviluppare in Win7 con VB6 è possibile, ma troverai sempre qualche difficoltà con alcuni OCX, e in Win10 è praticamente impossibile ottere tutte le caratteristiche di VB6.
VisualStudio 2012, https://visualstudio.microsoft.com/it/vs/older-downloads/ è ancora disponibile, e gira discretamente su PC datati.
Attenzione, il codice usato per scrivere VisualStudio, non si comporta come il codice usato per scrivere VB6, nel senso che per evitare di compilare tutto, il codice viene caricato e vengono compilate solo le parti che vengono usate, il risultato è che al primo avvio e alla prima compilazione, tutto sembra molto lento, ma vedrai, che se chiudi VisualStudio e lo riapri il secondo caricamento sarà molto più veloce, lo stesso vale per la compilazione.
Personalmente ho ancora un portatile (centrino) con WinXP e VisualStudio 2010, si comporta benissimo, ma Microsoft non distribuisce più VS 2010, ho visto che si trova ancora nel web: https://en.freedownloadmanager.org/Windows-PC/Microsoft-Vis ... ma non ho idea se sia una scelta valida, come non conosco le versioni express, che dovrebbero essere più leggere.
Per concludere il tempo che stai utilizzando per continuare a far funzionare i nuovi applicativi sotto VB6, sarebbe meglio speso per migrare verso VB.Net, dove se si usano le nuove istruzioni tutto è più facile e performante, pensa a tutti i cicli che fai in VB6 per caricare/salvare files, cercare stringhe, ordinare liste, dividere stringhe e immeterle negli array, in VB .Net, ci sono le istruzioni dedicate e si fanno con una riga di codice, non secondario che se si usano tali istruzioni il codice diventa migliaia di volte più veloce che in VB6. Non mi dilungo sulla grafica perché ci vorrebbe tutta la pagina.
Ultima modifica effettuata da Carlo il 15/02/2021 alle 21:14
Si, avevo provato vs2010 e pure la versione express (mi serviva un exe al volo per una tavoletta grafica).
Avevo installato la vs2012 ma per il mio pc era troppo pesante.
Comunque il mio "exe" di vb6 gira "tranquillamente" su win10 64.
E' vero che non uso grafica, ma uso pesantemente la parte "hardware" dei pc e queste , per mia fortuna, lavorano ancora bene con il vecchio vb6. Attualmente sviluppo su win7 32bit.
questa applicazione è legata a macchine "vecchie". Se un giorno mi diranno che le macchine "vecchie" non potranno piu essere utilizzate...bhe...
ci penserò.
Ma dubito fortemente che questa strumentazione venga messa da parte anche perchè , tornando all'inizio, la macchina non sa chi gli spedisce una stringa...e certamente non sarò io a fare la spia!!
VB6 è il mio primo amore, i linguaggi che avevo usato precedentemente mi avevano appassionato ma non mi avevano creato nessuna infatuazione.
Se hai tempo guarda il mio primo post su Pierotofy: http://www.pierotofy.it/pages/extras/forum/6/1062607-visua ...
Detto questo saprai che non voglio accusarti o forzarti a fare nulla.
Se gli applicativi VB6 funzionano in Win10 64bit è perché la Microsoft si è sempre concentrata sulla retrocompatibilità, al contrario di altri che invece hanno fatto buttare tutto nel cesso ogni 10 anni.
In Win10 però, il supporto a VB6 deve essere considerato come una ruota di scorta, va custodita gelosamente nel bagagliaio e si monta in caso di necessità, permettendoti di tornare a casa. La Microsoft ti permette di continuare ad usare il vecchio mentre in tutta comodità hai il tempo di aggiornarti, se per i nuovi applicativi usi ancora VB6 è come se circolassi con la ruota di scorta e il bagaliaio vuoto, prima o poi resterai a piedi.
Se VS2010 sul tuo PC è troppo lento, immagino che hai dei problemi oppure usi un Pentium IV o simile. Un Pentim IV consuma quasi 170W, un dual core duo 120W, un i3 70W, poi ci sono i PC small Eee ecc, che consumano 30W e anche meno, cambiare il PC considerati i consumi è gratis, e dopo un anno ti fa guadagnare, un i3 W7/10 originale di seconda generazione acquistato alle fiere dell'elettronica (quando ci risaranno) costa meno di 100 euro.
Ultima modifica effettuata da Carlo il 16/02/2021 alle 16:37
Hai perfettamente ragione in tutto, concordo pienamente.
Dovrei trovare il coraggio e la voglia di cominciare in .net.
Convertire tutto il programma attuale da vb6 a .net è una cosa secondo me non praticabile, troppo lavoro per una applicazione che nasce e muore su un tipo di macchina particolare.
Sicuramente se mi proporranno un progetto nuovo valutero il passaggio a net.
Grazie per i preziosi spunti di riflessione!!
buon proseguimento
Mario