Serial port API: Difference between revisions

From wizarPOS
(Created page with "== Functions == The calling sequence is open>set_baudrate>read/write>fulsh_io>close === open === in...")
 
No edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Functions ==
== API Overview ==
The calling sequence is [[#open|open]]>[[#set_baudrate|set_baudrate]]>[[#read|read]]/[[#write|write]]>[[#fulsh_io|fulsh_io]]>[[#close|close ]]
The calling sequence is [[#open|open]]>[[#set_baudrate|set_baudrate]]>[[#read|read]]/[[#write|write]]>[[#fulsh_io|fulsh_io]]>[[#close|close ]]
=== open ===
=== <big>open</big> ===
  int esp_open(char* pDeviceName)
  <syntaxhighlight lang="c">int esp_open(char* pDeviceName)</syntaxhighlight >
Open the serial port by the specified device name.
Open the serial port by the specified device name.
This operation should be used before other operations.
This operation should be used before other operations.
 
{|class="wizarpostable"
'''Parameters'''
|-
! scope="row" colspan="2" | Parameters
|-
| pDeviceName || The alias for serial port. Available values: DB9, GS0_01, WIZARHANDQ1, Q1_USB_SERIAL, USB_SERIAL, SERIAL_EXT, USB_SLAVE_SERIAL, USB_HOST_SERIAL<br>
* '''in W1/W1V2:'''
** '''DB9''': works for DB9 port at the back side of the terminal.
** '''GS0_Q1''': works for USB host port at the right side of terminal to connect with Q1 via USB cable in master mode.
* '''in Q1 3g:'''
** '''WIZARHANDQ1''': works for USB serial port in slave mode.
** '''Q1_USB_SERIAL''' or '''USB_SERIAL''': works for USB serial port in master mode.
** '''SERIAL_EXT''': works for internal fiscal module.
* '''in Q1 4g and Q2, Q3, QD4/5 series:'''
** '''USB_SLAVE_SERIAL''': works for USB serial port in slave mode.
** '''USB_HOST_SERIAL''' or '''USB_SERIAL''': works for USB serial port in master mode.
** '''SERIAL_EXT''': works for internal fiscal module.
|}
{|
{|
|-
|-
| ''pDeviceName'' || Device name
|  
|}
{|class="wizarpostable"
|-
!  scope="row" colspan="2" | Returns
|-
|  int || The result code, >= 0, handle of this device; <0 [[Error_code|error code]].
|}
|}
'''Returns'''


The result code, >= 0, handle of this device; <0 [[Error_code|error code]].
=== <big>close</big> ===
   <syntaxhighlight lang="c">int esp_close(int nHandle)</syntaxhighlight >
=== close ===
   int esp_close(int nHandle)
Close the serial port opened before.
Close the serial port opened before.
The open and close apis are pair operations. If you don’t want to use this device, you should call the close api to release this device.
The open and close API are pair operations. If you don’t want to use this device, you should call the close API to release this device.
 
{|class="wizarpostable"
'''Parameters'''
|-
! scope="row" colspan="2" | Parameters
|-
| nHandle || '''int:''' Handle of this device, returned from open
|}
{|
{|
|-
|-
| ''nHandle'' || Handle of this device, returned from open
|  
|}
{|class="wizarpostable"
|-
!  scope="row" colspan="2" | Returns
|-
|  int || The result code, >= 0, success; <0 [[Error_code|error code]].
|}
|}
'''Returns'''


The result code, >= 0, success; <0 [[Error_code|error code]].
 
=== <big>set_baudrate</big>===
=== set_baudrate===
   <syntaxhighlight lang="c">int esp_set_baudrate(int nHandle, unsigned int nBaudrate)</syntaxhighlight >
   int esp_set_baudrate(int nHandle, unsigned int nBaudrate)
Set the baud rate of the serial port so that this device can read and write in the same baud rate.
Set the baud rate of the serial port so that this device can read and write in the same baud rate.
This api should be used before read and write.
This API should be used before read and write.
 
{|class="wizarpostable"
'''Parameters'''
|-
! scope="row" colspan="2" | Parameters
|-
| nHandle || '''int:''' Handle of this device, returned from open
|-
| nBaudrate || '''int:''' Baud rate
|}
{|
{|
|-
|-
| ''nHandle'' || Handle of this device, returned from open
|  
|}
{|class="wizarpostable"
|-
!  scope="row" colspan="2" | Returns
|-
|-
| ''nBaudrate'' || Baud rate
| int || The result code, >= 0, success; <0 [[Error_code|error code]].
|}
|}
'''Returns'''


The result code, >= 0, success; <0 [[Error_code|error code]].
 
=== <big>read</big>===
=== read===
   <syntaxhighlight lang="c">int esp_read(int nHandle, unsigned char* pDataBuffer, int nExpectedDataLength, int nTimeout_MS)</syntaxhighlight >
   int esp_read(int nHandle, unsigned char* pDataBuffer, int nExpectedDataLength, int nTimeout_MS)
Get information from the serial port.
Get information from the serial port.
 
{|class="wizarpostable"
 
|-
'''Parameters'''
! scope="row" colspan="2" | Parameters
|-
| nHandle || '''int:''' Handle of this device, returned from open
|-
| pDataBuffer || '''unsigned char*:''' Data buffer
|-
| nExpectedDataLength || '''int:''' Data length to read
|-
| nTimeout_MS || '''int:''' Time in milliseconds. 0 : read and return immediately; <0: read until got data.
|}
{|
{|
|-
|-
| ''nHandle'' || Handle of this device, returned from open
|  
|}
{|class="wizarpostable"
|-
|-
| ''pDataBuffer'' || Data buffer
!  scope="row" colspan="2" | Returns
|-
|-
| ''nExpectedDataLength'' || Data length to read
| int || The result code, >= 0, success, the data length of read; <0 [[Error_code|error code]].
|-
| ''nTimeout_MS'' || Time in milliseconds. 0 : read and return immediately; <0: read until got data.
|}
|}
'''Returns'''


The result code, >= 0, success; <0 [[Error_code|error code]].


=== write===
=== <big>write</big>===
   int esp_write(int nHandle, unsigned char* pDataBuffer, int nDataLength)
   <syntaxhighlight lang="c">int esp_write(int nHandle, unsigned char* pDataBuffer, int nDataLength)</syntaxhighlight >
Send information from the serial port.
Send information from the serial port.
 
{|class="wizarpostable"
 
|-
'''Parameters'''
! scope="row" colspan="2" | Parameters
|-
| nHandle || '''int:''' Handle of this device, returned from open
|-
| pDataBuffer || '''unsigned char*:''' Data buffer
|-
| nDataLength || '''int:''' Data length
|}
{|
{|
|-
|-
| ''nHandle'' || Handle of this device, returned from open
|  
|}
{|class="wizarpostable"
|-
|-
| ''pDataBuffer'' || Data buffer
!  scope="row" colspan="2" | Returns
|-
|-
| ''nDataLength'' || Data length
| int || The result code, >= 0, data length of written; <0 [[Error_code|error code]].
|}
|}
'''Returns'''


The result code, >= 0, written data length; <0 [[Error_code|error code]].


=== flush_io===
=== <big>flush_io</big>===
   int esp_flush_io(int nHandle)
   <syntaxhighlight lang="c">int esp_flush_io(int nHandle)</syntaxhighlight >
Flush the IO buffer of the serial port.
Flush the IO buffer of the serial port.
 
{|class="wizarpostable"
 
|-
'''Parameters'''
! scope="row" colspan="2" | Parameters
|-
| nHandle || '''int:''' Handle of this device, returned from open
|}
{|
{|
|-
|-
| ''nHandle'' || Handle of this device, returned from open
|  
|}
{|class="wizarpostable"
|-
!  scope="row" colspan="2" | Returns
|-
|  int || The result code, >= 0, written data length; <0 [[Error_code|error code]].
|}
|}
'''Returns'''
The result code, >= 0, success; <0 [[Error_code|error code]].

Latest revision as of 05:40, 25 September 2019

API Overview

The calling sequence is open>set_baudrate>read/write>fulsh_io>close

open

int esp_open(char* pDeviceName)

Open the serial port by the specified device name. This operation should be used before other operations.

Parameters
pDeviceName The alias for serial port. Available values: DB9, GS0_01, WIZARHANDQ1, Q1_USB_SERIAL, USB_SERIAL, SERIAL_EXT, USB_SLAVE_SERIAL, USB_HOST_SERIAL
  • in W1/W1V2:
    • DB9: works for DB9 port at the back side of the terminal.
    • GS0_Q1: works for USB host port at the right side of terminal to connect with Q1 via USB cable in master mode.
  • in Q1 3g:
    • WIZARHANDQ1: works for USB serial port in slave mode.
    • Q1_USB_SERIAL or USB_SERIAL: works for USB serial port in master mode.
    • SERIAL_EXT: works for internal fiscal module.
  • in Q1 4g and Q2, Q3, QD4/5 series:
    • USB_SLAVE_SERIAL: works for USB serial port in slave mode.
    • USB_HOST_SERIAL or USB_SERIAL: works for USB serial port in master mode.
    • SERIAL_EXT: works for internal fiscal module.
Returns
int The result code, >= 0, handle of this device; <0 error code.

close

int esp_close(int nHandle)

Close the serial port opened before. The open and close API are pair operations. If you don’t want to use this device, you should call the close API to release this device.

Parameters
nHandle int: Handle of this device, returned from open
Returns
int The result code, >= 0, success; <0 error code.


set_baudrate

int esp_set_baudrate(int nHandle, unsigned int nBaudrate)

Set the baud rate of the serial port so that this device can read and write in the same baud rate. This API should be used before read and write.

Parameters
nHandle int: Handle of this device, returned from open
nBaudrate int: Baud rate
Returns
int The result code, >= 0, success; <0 error code.


read

int esp_read(int nHandle, unsigned char* pDataBuffer, int nExpectedDataLength, int nTimeout_MS)

Get information from the serial port.

Parameters
nHandle int: Handle of this device, returned from open
pDataBuffer unsigned char*: Data buffer
nExpectedDataLength int: Data length to read
nTimeout_MS int: Time in milliseconds. 0 : read and return immediately; <0: read until got data.
Returns
int The result code, >= 0, success, the data length of read; <0 error code.


write

int esp_write(int nHandle, unsigned char* pDataBuffer, int nDataLength)

Send information from the serial port.

Parameters
nHandle int: Handle of this device, returned from open
pDataBuffer unsigned char*: Data buffer
nDataLength int: Data length
Returns
int The result code, >= 0, data length of written; <0 error code.


flush_io

int esp_flush_io(int nHandle)

Flush the IO buffer of the serial port.

Parameters
nHandle int: Handle of this device, returned from open
Returns
int The result code, >= 0, written data length; <0 error code.