Page 1 of 1

Can Fivewin be used for process IO hardware ?

Posted: Mon Jun 11, 2018 10:34 pm
by Marc Venken
Just wonder if Fivewin can be used as platform (graphics layout) for processing utilities ?

I'v done some very small testing with Arduino I/O board, but FW is more fun in visuals and keeping data.

At this point I would like to know if I can get FW to know if a beam (ex. laser) is broken by trespassing the laser. The laser can give a electric signal (by a IO port)

Maybe there is some hardware out there that can communicate with FW. I didn't find mutch in the topic.

Just wonder ...

Marc

Re: Can Fivewin be used for process IO hardware ?

Posted: Tue Jun 12, 2018 6:45 am
by Antonio Linares

Re: Can Fivewin be used for process IO hardware ?

Posted: Tue Jun 12, 2018 7:36 am
by Marc Venken
Yes, this is a point for information about IO and so on.

https://xanthium.in/cross-platform-atti ... rp-dot-net

From the Site :

The Control Software that runs on Windows PC is written in C# and runs on the .Net Framework.
My Q : In the forum I have seens that FW needs activeX and no .net. This is still so anno 2018 ?

Control software is written in C# using Visual Studio community edition IDE.
My Q : Visual studio is also used by people on the forum. So FW can maybe being used to interface ?

This is how the software looks like :

//| Compiler : AVR GCC (WinAVR) |
//| Microcontroller : ATtiny2313A

Code: Select all

#include <stdint.h>
#include <avr/io.h>
#include <util/delay.h>
#include "RS485.h"
int main()
{
    char data = ' ';
    uint16_t Baud = 12;             // from datasheet for Clock = 1Mhz,4800bps
    
    DDRB |= (1<<PB2) | (1<<PB3) |(1<<PB4); // PB2,PB3,PB4 all output
    DDRD |= (1<<PD5);                      // PD5 all output
    
    PORTB = 0x00;
    PORTD = 0x00;
    
    RS485_init(12);                 // intialize RS485 Port @4800bps
    while(1)
    {
        data  = RS485_Receive_Byte();   // Wait for PC to send data via  RS485 port 
    
        // use a switch to select appropriate action receiving commands from PC 
        switch (data)
            {
                case 'A':   PORTB |= (1<<PB3); // Switch ON LED D4
                            break;
                    
                case 'B':   PORTB |= (1<<PB4); // Switch ON LED D5
                            break;
                    
                case 'C':   PORTB |= (1<<PB2); // Switch ON LED D2
                            break;
                    
                case 'D':   PORTD |= (1<<PD5); // Switch ON LED D3
                            break;
                    
                default:    PORTB &= ~(1<<PB3); // Switch OFF LED D4
                            PORTB &= ~(1<<PB4); // Switch OFF LED D5
                            PORTB &= ~(1<<PB2); // Switch OFF LED D2
                            PORTD &= ~(1<<PD5); // Switch OFF LED D3
                            break;
            }//end of switch
    }
    return 0;
    
    
}






//used for indicating where the code is at a given time ,Debugging purpose only
void LED_Debug_Blink(void)
{
    char i = 0;
    
    DDRB  |=  (1<<PB3); // PB3 Output
    
    for(i=0;i<2;i++)
    {
        PORTB |=  (1<<PB3); // PB3 = High,Lights up D4
        _delay_ms(500);
        PORTB &=  ~(1<<PB3); //PB3 = Low,Switch OFF D4
        _delay_ms(500);
    }
    
}

 
Now before I proceed : I have seen FWH connect to different stuff with calls do DLL's and more stuff.

Is it so that if a connection can be make, maybe like above, we could use a Tbtnbmp or other controle and execute it.

Re: Can Fivewin be used for process IO hardware ?

Posted: Wed Jun 13, 2018 5:29 am
by Antonio Linares
Marc,

You don't need C# at all for this to work:
http://xanthium.in/Serial-Port-Programm ... -Win32-API

C# is based on .NET virtual machine and it is not compatible with Harbour

Re: Can Fivewin be used for process IO hardware ?

Posted: Wed Jun 13, 2018 2:01 pm
by George
Antonio,
Could Fivewin for Linux be used for this?

Re: Can Fivewin be used for process IO hardware ?

Posted: Thu Jun 14, 2018 5:57 am
by Antonio Linares
George,

Linux C serial communication with arduino
http://forum.arduino.cc/index.php?topic=45115.0

Re: Can Fivewin be used for process IO hardware ?

Posted: Thu Jun 14, 2018 10:36 am
by Marc Venken
Maybe there is a easy way of doing what I want.

I want to count how many times a laserbeam is interupted. With that count, I need to present data on screen with FW.

Fw can open a cashdrawer and also read data from a scanner (barcode)
This is done by COM port.

There is surely hardware on the internet that can give a signal (laser beam) that FW can read from comport.

This idea is correct not ? Than I can look this way. The previous is much more complex.

Marc

Re: Can Fivewin be used for process IO hardware ?

Posted: Thu Jun 14, 2018 10:46 am
by Marc Venken
There is a sample from Enrico that read/write to COM

http://forums.fivetechsupport.com/viewt ... ad+comport

A com port is reading text data, but can also read a power signal ? It has to open a cashdrawer with a power signal)

BTW : I have no background on technics...

MENUITEM "DrawerOpen" ACTION Drawer('Open Drawer','COM1',4800,chr(27)+chr(112)+chr(0)+chr(7)+chr(35),'','')

Code: Select all

function Drawer(x0,x1,x2,x3,x4,x5)
   local cDcb, nBytes
   local nComm := OpenComm( alltrim(x1),x2, 128 )
   local nError

   if empty(x1) .or. alltrim(x1)='-' .or. alltrim(x1)='SCREEN'
     return .t.
   endif

   if upper(left(x1,3))='LPT'
     BuildCommDcb( alltrim(x1)+":"+str(x2,4)+",n,8,1", @cDcb )
     SetCommState( cDcb )
     cNxLine=CRLF
   else
     if alltrim(x1)<>'SCREEN'
       x3=padl(left(x3,20),20,' ')
       x4=padl(left(x4,20),20,' ')
     endif
     cNxLine=CHR(13)
    if ! BuildCommDcb( alltrim(x1)+":"+str(x2,4)+",n,8,1", @cDcb )
      nError = GetCommError( nComm )
      Msgwait( x0+" : BuildCommDcb Error: " + Str( nError ),'',.3 )
    endif

    if ! SetCommState( cDcb )
      nError = GetCommError( nComm )
      Msgwait( "SetCommState Error: " + Str( nError ),'',.3 )
      return .t.
    endif
   endif

   if !empty(x5)
     for iii=1 to len(x5)
       if ( nBytes := WriteComm( nComm, x5[iii]) ) < 0
         nError = GetCommError( nComm )
         Msgwait( "WriteComm Error: " + Str( nError ),'',.1 )
       else
         Msgwait( x0+' : Ok','',.1 )
       endif
     next
   else
     if ( nBytes := WriteComm( nComm, x3+cNxLine ) ) < 0
       nError = GetCommError( nComm )
       Msgwait( "WriteComm Error: " + Str( nError ),'',.1 )
     else
       Msgwait( x0+' : Ok','',.1 )   // important, do not change the delay
     endif
     if !empty(x4)
       if ( nBytes := WriteComm( nComm, x4+cNxLine ) ) < 0
         nError = GetCommError( nComm )
         Msgwait( "WriteComm Error: " + Str( nError ),'',.1 )
       else
         Msgwait( x0+' : Ok','',.1 )
       endif
     endif
   endif

   if FlushComm( nComm, 0 ) != 0
      nError = GetCommError( nComm )
      Msgwait( x0+" : FlushComm Error: " + Str( nError ),'',.01 )
   endif

   if ! CloseComm( nComm )
      nError = GetCommError( nComm )
      Msgwait( "CloseComm Error: " + Str( nError ),'',.01 )
   endif

return nil

 
So in this code there is the power signal to open the drawer.

This kind of sensor could give a powersignal to the COM port
Image

It is that signal that I want to track and use in a FW app.

Re: Can Fivewin be used for process IO hardware ?

Posted: Thu Jun 14, 2018 11:03 am
by Marc Venken
Reading about COM port is telling me that I need to look for the right PIN's from the Com-connector. that is used for power signal in/out

Has anyone done this for a application ?

Re: Can Fivewin be used for process IO hardware ?

Posted: Fri Jun 29, 2018 10:57 am
by Marc Venken
I believe that I have seen gauges and meters somewhere on the forum ?
Anybody now where ?

Meters like this ?

I would like to look into them.

Image