Italian Non stampa alla prima apertura dell'app dopo accensione del tablet

fifiddu70

Well-Known Member
Licensed User
Ragazzi sembra che ci sia una maledizione sulla mia app, altro problema, praticamente o fatto in modo che si aprisse in automatico con il boot del modulo Starter abilitato su true, e fin qui ci siamo, essendo che usa la stampante usb o pure caricato il codice nella main che alla prima installazione ti chiedesse il permesso per poi non chiederla più durante lutilizzo anche accendendo e spegnendo il dispositivo, ma la cosa strana è che se accendo il tablet e dopo pochi secondi parte in automatico l'app e appena premo il pulsante per far uscire la stampa di un numero questa non stampa, devo chiuedere e riaprire l'app per poi stampare senza problemi, ho fatto la prova a disabilitare il boot in automatico dell'app facendola partire manualmente e fa lo stesso problema, cosa potrebbe essere che ad ogni accensione del tablet ed al primo avvio dell'app la stampante non vuole stampare?
spero in un vostro aiuto, mi succedono tutte a me.
 

fifiddu70

Well-Known Member
Licensed User
Allego parte di codice del modulo activity create per capire se c'è una anomalia:
B4X:
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    
    If FirstTime Then
        Server.Initialize(9092, "Server")
        Server.Listen
        Log("MyIp = " & Server.GetMyIP)
        TTS1.Initialize("TTS1")
        
    End If
  
    Activity.LoadLayout("eliminacodeWiFiUSB")
    imgsplashscreen.SetLayout(0%x,0%y,100%x,100%y)
    wifi1.Initialize("wifi1")
    wifi2.Initialize
    mp1.Initialize
    mp2.Initialize
    
    
   

    imgnext.Bitmap=(LoadBitmap(File.DirAssets,"stampaA.jpg"))
    imgB1.Bitmap=(LoadBitmap(File.DirAssets,"stampaB.jpg"))
   
    
    If File.Exists(File.DirInternal, "data.db") = False Then ' se non trova il database  allora lo copia usando il rigo di sotto altrimenti non fa nulla.
    File.Copy(File.DirAssets, "data.db", File.DirInternal, "data.db")
    Else
        
    End If
    dbsql2.Initialize(File.DirInternal, "data.db", True) ' inizializza il database
    
    productid
    vendorid
    
    'File.Delete(File.DirInternal,"data.db")
    If txtvendorid.Text ="" And txtproductid.Text = "" Then
        
        Msgbox("Attenzione devi inserire il product id e vendor id della stampante","ATTENZIONE!!!")
        
        Return
    Else
        
        If usb1.UsbPresent(1) = usb1.USB_NONE Then    ' Ver_2.4
            Msgbox("Stampante non connessa al cavo usb","ATTENZIONE!!")
            Return
        End If
    End If
        If (usb1.HasPermission(1)) Then    ' Ver_2.4
            Log(usb1.DeviceInfo(1))
            'This is very important - ( VendorId, ProductId )
            Log("PID"&txtproductid.Text) ' qui verifico se le due textbox Pid e Vid hanno assunto il valore che è stato richiamato sopra con delle sub attraverso un db. 
            Log("VID"&txtvendorid.Text)
            
            usb1.SetCustomDevice(usb1.DRIVER_SILABS, txtvendorid.text ,txtproductid.text)' qui le due textbox hanno assunto i due rispettivi valori della stampante.           
                
            Dim dev As Int
            dev = usb1.Open(9600, 1) 'STMicroeletronics
            If dev <> usb1.USB_NONE Then
                Log("Connected successfully! 1")          
        
                Log("CONNECTED SUCCESSFULLY!!!")
                connected = True
                astreams1.Initialize(usb1.GetInputStream, usb1.GetOutputStream, "astreams1")

                'This is important
                usb1.SetParameters(9600, usb1.DATABITS_8,usb1.STOPBITS_1, usb1.PARITY_EVEN)
            
                'Here if you want codce that call print
            Else
                Log("Error opening USB port 1")
            End If
        Else
            usb1.RequestPermission(1)  ' Ver_2.4
        
        End If
        
           
End Sub

nella activity resume il codice è questo:
B4X:
Sub Activity_Resume
    pausa.KeepAlive(True)
    If TTS1.IsInitialized = False Then
        TTS1.Initialize("TTS1")
    End If


End Sub
cosa cambia alla prima accensione del tablet? strano che appena apro l'app e premo il pulsante di stampa non va a stampare e appena chiudo e riapro l'app stampa senza problemi, avevo pensato anche ad una sorta di codice che ad ogni accensione del tablet faccia aprire l'app chiuderla la prima volta e riaprirla in modo da far stampare ad ogni cliente che andrà a prelevare il ticket, ma non so come impostarla.
 

udg

Expert
Licensed User
fatto in modo che si aprisse in automatico con il boot del modulo Starter abilitato su true
Questo è errato. Il Boot=True va attivato su un diverso service, mai su Starter.
 

fifiddu70

Well-Known Member
Licensed User
Questo è errato. Il Boot=True va attivato su un diverso service, mai su Starter.
Si ma il problema della stampa che a prima accensione non stampa è da attribuire a questo? perchè mettendo su false il Boot di Starter e quindi non facendo entrare in funzione il servizio di Starter ho sempre lo stesso problema.
 

MarcoRome

Expert
Licensed User
B4X:
'This is important
                usb1.SetParameters(9600, usb1.DATABITS_8,usb1.STOPBITS_1, usb1.PARITY_EVEN)

Sotto questo codice la prima volta che ti parte devi fare un test. Tipo:

B4X:
'This is important
                usb1.SetParameters(9600, usb1.DATABITS_8,usb1.STOPBITS_1, usb1.PARITY_EVEN)
                'Routine Test Stampa
                StampaTest

B4X:
Sub StampaTest
'Puoi semplicemente effettuare un avanzamento carta.

End Sub
 

fifiddu70

Well-Known Member
Licensed User
B4X:
'This is important
                usb1.SetParameters(9600, usb1.DATABITS_8,usb1.STOPBITS_1, usb1.PARITY_EVEN)

Sotto questo codice la prima volta che ti parte devi fare un test. Tipo:

B4X:
'This is important
                usb1.SetParameters(9600, usb1.DATABITS_8,usb1.STOPBITS_1, usb1.PARITY_EVEN)
                'Routine Test Stampa
                StampaTest

B4X:
Sub StampaTest
'Puoi semplicemente effettuare un avanzamento carta.

End Sub
MarcoRome ho fatto ma il problema rimane, quando si accende il tablet e si apre l'app nella pressione del pulsante la stampa funziona.
 

MarcoRome

Expert
Licensed User
Domanda:
Quando apri il sistema la carta della stampante avanza ?? Dovrebbe farlo se hai inserito la sub StampaTest con il solo avanzamento della carta.
 

fifiddu70

Well-Known Member
Licensed User
Domanda:
Quando apri il sistema la carta della stampante avanza ?? Dovrebbe farlo se hai inserito la sub StampaTest con il solo avanzamento della carta.
Non stampa, e anche se premo ripetutamente i pulsanti di stampa non stampa fin quando non chiudo e riapro l'app, all'apertura dell'app funziona sempre fin quando non si spegne e si riaccende il tablet perchè rifà lo stesso difetto, cosa potrebbe essere?
 

fifiddu70

Well-Known Member
Licensed User
MarcoRome, non ho avuto tempo di allegare il file, sai cosa ho notato? ho inserito correttamente il codice del test di stampa come hai detto tu, ho spento il tablet ed acceso, mentre era ancora in fase di accensione la stampante ha stampato come da codice di test stampa, appena e apparso lo schermo principale e in automatico dopo alcuni secondi l'app praticamente non stampa, quindi il codice di test di stampa adeso lo esegue ad ogni avvio dell'app, ma continua a non stampare quando il tablet viene acceso al prima volta, non si può fare un codice che alla prima apertura dell'app questa si chiude in automatico per riaprirsi dinuovo? così almeno evitiamo di capire dove sta il problema.
 
Top