VERSION 5.00
Begin VB.Form frmMain 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Filizola PcScale - Exemplo Visual Basic"
   ClientHeight    =   4965
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4830
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4965
   ScaleWidth      =   4830
   StartUpPosition =   2  'CenterScreen
   Begin VB.Frame Frame1 
      Caption         =   "Configuração da balança/Indicador"
      Height          =   1815
      Left            =   0
      TabIndex        =   1
      Top             =   0
      Width           =   4815
      Begin VB.CommandButton btnEnviaCS 
         Caption         =   "Envia preço/kg a balança CS"
         Height          =   375
         Left            =   1800
         TabIndex        =   27
         Top             =   1080
         Width           =   2895
      End
      Begin VB.CommandButton btnSair 
         Caption         =   "&Sair"
         Height          =   375
         Left            =   3480
         TabIndex        =   10
         Top             =   360
         Width           =   1200
      End
      Begin VB.CommandButton btnTestar 
         Caption         =   "&Testar"
         Height          =   375
         Left            =   1800
         TabIndex        =   9
         Top             =   360
         Width           =   1200
      End
      Begin VB.CommandButton btnConfigurar 
         Caption         =   "&Configurar"
         Height          =   375
         Left            =   120
         TabIndex        =   8
         Top             =   360
         Width           =   1200
      End
      Begin VB.Label lblBaudRate 
         Caption         =   "----"
         Height          =   255
         Left            =   1080
         TabIndex        =   7
         Top             =   1320
         Width           =   1575
      End
      Begin VB.Label lblPorta 
         Caption         =   "----"
         Height          =   255
         Left            =   1080
         TabIndex        =   6
         Top             =   1080
         Width           =   1095
      End
      Begin VB.Label lblModelo 
         Caption         =   "----"
         Height          =   255
         Left            =   1080
         TabIndex        =   5
         Top             =   840
         Width           =   3500
      End
      Begin VB.Label Label3 
         Caption         =   "BaudRate:"
         Height          =   255
         Left            =   120
         TabIndex        =   4
         Top             =   1320
         Width           =   1095
      End
      Begin VB.Label Label2 
         Caption         =   "Porta Serial:"
         Height          =   255
         Left            =   120
         TabIndex        =   3
         Top             =   1080
         Width           =   855
      End
      Begin VB.Label Label1 
         Caption         =   "Modelo:"
         Height          =   255
         Left            =   120
         TabIndex        =   2
         Top             =   840
         Width           =   615
      End
   End
   Begin VB.Frame Frame2 
      Caption         =   "Dados lidos da balança/Indicador"
      Height          =   3015
      Left            =   0
      TabIndex        =   0
      Top             =   1920
      Width           =   4815
      Begin VB.Timer Timer1 
         Enabled         =   0   'False
         Interval        =   10
         Left            =   2880
         Top             =   1680
      End
      Begin VB.Frame Frame10 
         Caption         =   "Status"
         Height          =   615
         Left            =   120
         TabIndex        =   18
         Top             =   2280
         Width           =   4575
         Begin VB.Label lblStatus 
            Caption         =   "----"
            ForeColor       =   &H000000FF&
            Height          =   255
            Left            =   120
            TabIndex        =   26
            Top             =   240
            Width           =   4000
         End
      End
      Begin VB.Frame Frame9 
         Caption         =   "Valor total"
         Height          =   615
         Left            =   3480
         TabIndex        =   17
         Top             =   840
         Width           =   1215
         Begin VB.Label lblVTotal 
            Alignment       =   2  'Center
            Caption         =   "----"
            Height          =   255
            Left            =   120
            TabIndex        =   24
            Top             =   240
            Width           =   975
         End
      End
      Begin VB.Frame Frame8 
         Caption         =   "Valor unitário"
         Height          =   615
         Left            =   3480
         TabIndex        =   16
         Top             =   240
         Width           =   1215
         Begin VB.Label lblVUnitario 
            Alignment       =   2  'Center
            Caption         =   "----"
            Height          =   255
            Left            =   120
            TabIndex        =   21
            Top             =   240
            Width           =   975
         End
      End
      Begin VB.Frame Frame7 
         Caption         =   "Contagem"
         Height          =   615
         Left            =   1800
         TabIndex        =   15
         Top             =   840
         Width           =   1215
         Begin VB.Label lblContagem 
            Alignment       =   2  'Center
            Caption         =   "----"
            Height          =   255
            Left            =   120
            TabIndex        =   23
            Top             =   240
            Width           =   975
         End
      End
      Begin VB.Frame Frame6 
         Caption         =   "Código Prod."
         Height          =   615
         Left            =   1800
         TabIndex        =   14
         Top             =   240
         Width           =   1215
         Begin VB.Label lblCodigo 
            Alignment       =   2  'Center
            Caption         =   "----"
            Height          =   250
            Left            =   120
            TabIndex        =   20
            Top             =   240
            Width           =   975
         End
      End
      Begin VB.Frame Frame5 
         Caption         =   "Líquido"
         Height          =   615
         Left            =   120
         TabIndex        =   13
         Top             =   1440
         Width           =   1215
         Begin VB.Label lblLiquido 
            Alignment       =   2  'Center
            Caption         =   "----"
            Height          =   255
            Left            =   120
            TabIndex        =   25
            Top             =   240
            Width           =   975
         End
      End
      Begin VB.Frame Frame4 
         Caption         =   "Tara"
         Height          =   615
         Left            =   120
         TabIndex        =   12
         Top             =   840
         Width           =   1215
         Begin VB.Label lblTara 
            Alignment       =   2  'Center
            Caption         =   "----"
            Height          =   255
            Left            =   120
            TabIndex        =   22
            Top             =   240
            Width           =   975
         End
      End
      Begin VB.Frame Frame3 
         Caption         =   "Bruto"
         Height          =   615
         Left            =   120
         TabIndex        =   11
         Top             =   240
         Width           =   1215
         Begin VB.Label lblBruto 
            Alignment       =   2  'Center
            Caption         =   "----"
            Height          =   250
            Left            =   120
            TabIndex        =   19
            Top             =   240
            Width           =   975
         End
      End
   End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False


Private Sub ExibeConfiguracoes()
'Esta função existe única e exclusivamente para exibir as
'configurações da balança. Se você não tem necessidade de
'exibi-las, então não fará uso da mesma.

    Dim Porta As Integer
    Dim BaudRate As Long
    Dim NomeModelo As String
            
    'É necessario inicializar (preencher) a variável com nulos
    NomeModelo = String(50, Chr(0))
    
    ret = ObtemParametrosBalanca(0, Modelo, Porta, BaudRate)
    If ret Then
        Call ObtemNomeBalanca(Modelo, NomeModelo)
        lblModelo.Caption = NomeModelo
        lblPorta.Caption = Porta
        lblBaudRate.Caption = BaudRate
    Else
        lblModelo.Caption = "----"
        lblPorta.Caption = "----"
        lblBaudRate.Caption = "----"
    End If
        
End Sub

Private Sub btnConfigurar_Click()
    ret = ConfiguraBalanca(0, Me.hWnd)
    If ret Then
        Call ExibeConfiguracoes
    End If
        
End Sub

Private Sub btnEnviaCS_Click()
    frmPrecoCS.Show (1)
End Sub

Private Sub btnSair_Click()
    Unload frmMain
End Sub

Private Sub btnTestar_Click()
    If btnTestar.Caption = "&Testar" Then
        'A função InicializaLeitura é uma função da DLL
        'PcScale que inicializa uma tarefa de leitura
        'constante da balança
        ret = InicializaLeitura(0)
        If ret Then
            btnConfigurar.Enabled = False
            btnSair.Enabled = False
            btnTestar.Caption = "&Parar"
            Timer1.Enabled = True
        Else
            Call ExibeMsgErro(Me.hWnd)
        End If
    Else
        btnConfigurar.Enabled = True
        btnSair.Enabled = True
        btnTestar.Caption = "&Testar"
        Timer1.Enabled = False
        
        'A função FinalizaLeitura é uma função da DLL
        'PcScale que encerra a tarefa de leitura da balança.
        'Ela deve ser chamada sempre que não vamos mais ler a
        'balança
        ret = FinalizaLeitura(0)
        If ret Then
        'Este absurdo se deve unica e excluisavamente a esta linguagem
        'que não responde corretamente ao comando not
        Else
            Call ExibeMsgErro(Me.hWnd)
        End If
        Call LimpaDados
    End If
End Sub

Private Sub Form_Load()
    Call ExibeConfiguracoes
End Sub

Private Sub LimpaDados()
    lblBruto.Caption = "----"
    lblTara.Caption = "----"
    lblLiquido.Caption = "----"
    lblCodigo.Caption = "----"
    lblContagem.Caption = "----"
    lblVUnitario.Caption = "----"
    lblVTotal.Caption = "----"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Timer1.Enabled = False
    ret = FinalizaLeitura(0)
    If ret Then
    'Este absurdo se deve unica e excluisavamente a esta linguagem
    'que não responde corretamente ao comando not
    Else
        Call ExibeMsgErro(Me.hWnd)
    End If
End Sub

Private Sub Timer1_Timer()
    
    Dim ret As Double
    Dim buffer_info As String
        
    'a função ObtemInformacao é uma função da dll e ela retorna o valor
    'do campo desejado sendo:
    ' 0 = Status
    ' 1 = Peso bruto
    ' 2 = tara
    ' 3 = liquido
    ' 4 = Contador
    ' 5 = Codigo
    ' 6 = Valor unitário
    ' 7 = Valor Total
    ' 8 = Número de casas decimais

    ret = ObtemInformacao(0, 0)
    
    Select Case ret
    Case -1
        lblStatus.Caption = "O número da balança deve estar entre 0 e 7."
    Case 0
        lblStatus.Caption = "Erro de leitura da balança."
    Case 1
        lblStatus.Caption = "Peso oscilando."
    Case 2
        lblStatus.Caption = "Peso estável."
    Case 3
        lblStatus.Caption = "Balança fora de range (sobrecarga/alívio de plataforma)"
    Case 4
        lblStatus.Caption = "Licença de software não encontrada."
    End Select
    
    If ret = 1 Or ret = 2 Then
        'vamos construir uma mascara para caso seja necessário formatar o peso
        'com as casas decimais.
        mascara = "0."
        For aux = 1 To ObtemInformacao(0, 8)
            mascara = mascara + "0"
        Next aux
             
        lblBruto.Caption = Format(ObtemInformacao(0, 1), mascara)
        lblTara.Caption = Format(ObtemInformacao(0, 2), mascara)
        lblLiquido.Caption = Format(ObtemInformacao(0, 3), mascara)
        lblCodigo.Caption = CStr(ObtemInformacao(0, 4))
        lblContagem.Caption = CStr(ObtemInformacao(0, 5))
        lblVUnitario.Caption = CStr(ObtemInformacao(0, 6))
        lblVTotal.Caption = CStr(ObtemInformacao(0, 7))
    Else
        Call LimpaDados
    End If
End Sub
