Merge commit '4357ad16c09a6503a0e2d727f76fcafee2c39853'

This commit is contained in:
Nicola Pievani
2023-06-12 16:21:49 +02:00
3 changed files with 86 additions and 51 deletions
+2 -2
View File
@@ -55,5 +55,5 @@ Imports System.Windows
' usando l'asterisco '*' come illustrato di seguito: ' usando l'asterisco '*' come illustrato di seguito:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.3.8.1")> <Assembly: AssemblyVersion("2.4.4.1")>
<Assembly: AssemblyFileVersion("2.3.8.1")> <Assembly: AssemblyFileVersion("2.4.4.1")>
+83 -48
View File
@@ -14,6 +14,9 @@ Class ZebraPrinter
Private m_sDataRoot As String Private m_sDataRoot As String
Private m_Waiting As Boolean = True Private m_Waiting As Boolean = True
Private m_sError As String = String.Empty
Private m_FileError As String
' dichiarazione funzione per lettura file ini ' dichiarazione funzione per lettura file ini
Private Declare Auto Function GetPrivateProfileString Lib "kernel32" ( Private Declare Auto Function GetPrivateProfileString Lib "kernel32" (
ByVal lpAppName As String, ByVal lpAppName As String,
@@ -34,7 +37,8 @@ Class ZebraPrinter
Else Else
m_sDataRoot = sb.ToString m_sDataRoot = sb.ToString
End If End If
m_FileLog = m_sDataRoot & "\Temp\ZebraPrinterUtilityLog.txt" Dim ThisMoment As Date = Now
m_FileLog = m_sDataRoot & "\Temp\ZebraPrinterUtilityLog " & ThisMoment.Day.ToString & "_" & ThisMoment.Month & "_" & ThisMoment.Year & ".txt"
If Not File.Exists(m_FileLog) Then If Not File.Exists(m_FileLog) Then
Try Try
File.Create(m_FileLog).Close() File.Create(m_FileLog).Close()
@@ -50,6 +54,11 @@ Class ZebraPrinter
End Sub End Sub
' creazio del file di errori
Sub InitErrorFile()
m_FileError = m_sDataRoot & "\Temp\" & "Error.txt"
End Sub
' Funzione per scrivere nel file di Log ' Funzione per scrivere nel file di Log
Sub EmitLog(sLine As String) Sub EmitLog(sLine As String)
Dim sMessage As StreamWriter = File.AppendText(m_FileLog) Dim sMessage As StreamWriter = File.AppendText(m_FileLog)
@@ -57,7 +66,20 @@ Class ZebraPrinter
sMessage.Close() sMessage.Close()
End Sub End Sub
' collego la stampante ' Scrivo solamente il primo errore che si verifica
Sub EmitError(sIndexError As String)
If Not String.IsNullOrEmpty(m_sError) Then Return
Try
Dim sMessage As StreamWriter = File.CreateText(m_FileError)
sMessage.WriteLine("Error=" & sIndexError)
sMessage.Close()
m_sError = sIndexError
Catch ex As Exception
EmitLog("Impossible to create file Error.txt: " & ex.Message)
End Try
End Sub
' collego la stampante -> Error=1
Friend Function ConnectPrinter() As Boolean Friend Function ConnectPrinter() As Boolean
Try Try
Dim discoPrinters As List(Of DiscoveredPrinterDriver) = UsbDiscoverer.GetZebraDriverPrinters() Dim discoPrinters As List(Of DiscoveredPrinterDriver) = UsbDiscoverer.GetZebraDriverPrinters()
@@ -65,55 +87,62 @@ Class ZebraPrinter
Return True Return True
Catch ex As ConnectionException Catch ex As ConnectionException
EmitLog("Printer connection error: " & ex.Message) EmitLog("Printer connection error: " & ex.Message)
EmitError("1")
Return False Return False
Catch Catch
EmitLog("Printer not found error") EmitLog("Printer not found error")
EmitError("1")
Return False Return False
End Try End Try
End Function End Function
' creo e stampo l'etichetta (ricevo il nome del template da usare) ' creo e stampo l'etichetta (ricevo il nome del template da usare) -> Error=3
Public Async Sub Print(FilePath As String) Public Sub Print(FilePath As String)
Await Task.Run(Async Function() Try
' Connecting...
m_printerConnection.Open()
EmitLog("Connessione stampante: APERTA")
' Sending Data...
Dim LabelFile As String = File.ReadAllText(FilePath)
For Each Variable In m_Values
LabelFile = LabelFile.Replace(Variable.Key, Variable.Value)
Next
Dim LabelBytes As Byte() = Encoding.UTF8.GetBytes(LabelFile)
Task.Delay(200)
' stampo etichetta
m_printerConnection.Write(LabelBytes)
m_Waiting = False
EmitLog("Etichetta pronta")
Catch __unusedConnectionException1__ As ConnectionException
EmitLog(__unusedConnectionException1__.ToString)
EmitError("3")
' Communications Error
Catch __unusedZebraPrinterLanguageUnknownException2__ As ZebraPrinterLanguageUnknownException
EmitLog(__unusedZebraPrinterLanguageUnknownException2__.ToString)
EmitError("3")
Catch ex As Exception
EmitLog(ex.ToString)
EmitError("3")
End Try
Try ' Chiudo la connessione
' Connecting... Try
m_printerConnection.Open() 'Threading.Thread.Sleep(500)
EmitLog("Connessione stampante: APERTA") Threading.Thread.Sleep(200)
' Sending Data... ' Disconnecting...
Dim LabelFile As String = File.ReadAllText(FilePath) If Not IsNothing(m_printerConnection) Then
For Each Variable In m_Values m_printerConnection.Close()
LabelFile = LabelFile.Replace(Variable.Key, Variable.Value) EmitLog("Connessione stampante: CHIUSA")
Next Threading.Thread.Sleep(1000)
Dim LabelBytes As Byte() = Encoding.UTF8.GetBytes(LabelFile) End If
Await Task.Delay(200) ' Not Connected
' stampo etichetta Catch __unusedConnectionException1__ As ConnectionException
m_printerConnection.Write(LabelBytes) EmitLog(__unusedConnectionException1__.ToString)
m_Waiting = False EmitError("3")
EmitLog("Etichetta pronta") Catch ex As Exception
Catch __unusedConnectionException1__ As ConnectionException EmitLog(ex.ToString)
EmitLog(__unusedConnectionException1__.ToString) EmitError("3")
' Communications Error End Try
Catch __unusedZebraPrinterLanguageUnknownException2__ As ZebraPrinterLanguageUnknownException
EmitLog(__unusedZebraPrinterLanguageUnknownException2__.ToString)
End Try
' Chiudo la connessione
Try
'Threading.Thread.Sleep(500)
Threading.Thread.Sleep(200)
' Disconnecting...
If m_printerConnection IsNot Nothing Then
m_printerConnection.Close()
EmitLog("Connessione stampante: CHIUSA")
Threading.Thread.Sleep(1000)
End If
' Not Connected
Catch __unusedConnectionException1__ As ConnectionException
EmitLog(__unusedConnectionException1__.ToString)
End Try
End Function)
End Sub End Sub
@@ -151,11 +180,13 @@ Class ZebraPrinter
Sub New(args As String()) Sub New(args As String())
InitLog() InitLog()
InitErrorFile()
ConnectPrinter() ConnectPrinter()
' verifico che il numero di argomenti sia superiore a 2 (migliorare l'interpretazione dell'errore) ' verifico che il numero di argomenti sia superiore a 2 (migliorare l'interpretazione dell'errore)
If args.Length < 2 Then If args.Length < 2 Then
EmitLog("Non sono stati esplicictati tutti i file") EmitLog("Non sono stati esplicictati tutti i file")
EmitError("2")
Return Return
End If End If
@@ -163,17 +194,20 @@ Class ZebraPrinter
' verifico che l'estensione del file sia corretta ' verifico che l'estensione del file sia corretta
If Path.GetExtension(args(0)) <> ".prn" Then If Path.GetExtension(args(0)) <> ".prn" Then
EmitLog("Estensione file template non corretta, diversa da .prn") EmitLog("Estensione file template non corretta, diversa da .prn")
EmitError("2")
Return Return
End If End If
' verifico che il file esiste ' verifico che il file esiste
If Not File.Exists(args(0)) Then If Not File.Exists(args(0)) Then
EmitLog("File '" & args(0) & "' non esiste.") EmitLog("File '" & args(0) & "' non esiste.")
EmitError("2")
End If End If
EmitLog("File dati: " & args(1)) EmitLog("File dati: " & args(1))
' verifico che l'estensione del file sia corretta ' verifico che l'estensione del file sia corretta
If Path.GetExtension(args(1)) <> ".ini" Then If Path.GetExtension(args(1)) <> ".ini" Then
EmitLog("Estensione file dati non corretta, diversa da .ini") EmitLog("Estensione file dati non corretta, diversa da .ini")
EmitError("2")
Return Return
End If End If
@@ -183,16 +217,17 @@ Class ZebraPrinter
Print(args(0)) Print(args(0))
' metto il programmma in attesa ' metto il programmma in attesa
Dim nCiclo As Integer = 0 Threading.Thread.Sleep(1000)
While m_Waiting And nCiclo < 6 ' se sono arrivato fino a qui provo a impostare che non ci sono stati errori
Threading.Thread.Sleep(1000) ' se ci fossero degli errori questo comando viene ignorato
nCiclo += 1 EmitError("0")
End While
' elimino il file dei dati ' elimino il file dei dati
Try Try
File.Delete(args(1)) File.Delete(args(1))
EmitLog("Eliminato file " & args(1)) EmitLog("Eliminato file " & args(1))
Catch ex As Exception Catch ex As Exception
EmitLog(ex.ToString)
End Try End Try
End Sub End Sub
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartAction>Project</StartAction> <StartAction>Program</StartAction>
<StartProgram>C:\EgtProg\OmagVIEW\ZebraPrinterUtilitiesD32.exe</StartProgram> <StartProgram>C:\EgtProg\OmagVIEW\ZebraPrinterUtilitiesD32.exe</StartProgram>
<StartArguments> <StartArguments>
</StartArguments> </StartArguments>