I am not an expert but maybe your COM port is not open?
Here is some code which I tried and worked:
B4X:Sub Process_Globals Private myserial As Serial Private astream As AsyncStreams Private MyPort As String Private BaudRate As Int End Sub Sub Activity_Create(FirstTime As Boolean) myserial.Initialize("") End sub Sub btn_Connect_MouseClicked (EventData As MouseEvent) Log("Com Port: " & MyPort) Log("Baud: " & BaudRate) If btn_Connect.Text="Connect" Then btn_Connect.Text="Disconnect" myserial.Open(MyPort) myserial.SetParams(BaudRate,8,1,0) 'Baud normally 9600 astream.Initialize(myserial.GetInputStream,myserial.GetOutputStream,"astream") Else btn_Connect.Text="Connect" astream.Close myserial.Close End If End Sub 'Then I use the following to send data,MyText is a string containing anything. astream.Write(MyText.GetBytes("UTF8"))
Maybe this helps.
Sub Process_Globals
Private myserial As Serial
Private astream As AsyncStreams
Private MyPort As String
Private BaudRate As Int
Private btn_Connect As Button
Private Button1 As Button
Private MyText As String
Private Button2 As Button
Private bc As ByteConverter
Private fx As JFX
Private MainForm As Form
End Sub
'Sub Activity_Create(FirstTime As Boolean)
'
' myserial.Initialize("")
'
'
'End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.SetFormStyle("UNIFIED")
MainForm.RootPane.LoadLayout("mainklein") 'Load the layout file.
MainForm.Show
myserial.Initialize("")
End Sub
Sub btn_Connect_MouseClicked (EventData As MouseEvent)
Log("Com Port: " & MyPort)
Log("Baud: " & BaudRate)
If btn_Connect.Text="Connect" Then
btn_Connect.Text="Disconnect"
myserial.Open("COM14")
myserial.SetParams(9600,8,1,0) 'Baud normally 9600
astream.Initialize(myserial.GetInputStream,myserial.GetOutputStream,"astream")
Else
btn_Connect.Text="Connect"
astream.Close
myserial.Close
End If
End Sub
Sub Button1_Action
MyText = "FF0101"
astream.Write(bc.HexToBytes(MyText))
'astream.Write(MyText.GetBytes("UTF8"))
End Sub
Sub Button2_Action
MyText = "FF0100"
astream.Write(bc.HexToBytes(MyText))
'astream.Write(MyText.GetBytes("UTF8"))
End Sub
Private MyPort As String
Private BaudRate As Int
Log("Com Port: " & MyPort)
Log("Baud: " & BaudRate)
jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:170)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
Caused by: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
... 3 more
jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:170)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
Caused by: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
... 3 more
jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:170)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
Caused by: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
... 3 more
jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:170)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
Caused by: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
... 3 more
jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:170)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
Caused by: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
... 3 more
jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:170)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:154)
at anywheresoftware.b4a.randomaccessfile.AsyncStreams$AOUT.run(AsyncStreams.java:317)
at java.lang.Thread.run(Thread.java:745)
Caused by: jssc.SerialPortException: Port name - COM14; Method name - writeBytes(); Exception type - Port not opened.
at jssc.SerialPort.checkPortOpened(SerialPort.java:862)
at jssc.SerialPort.writeBytes(SerialPort.java:346)
at anywheresoftware.b4j.serial.Serial$2.write(Serial.java:166)
... 3 more
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.SetFormStyle ("UNIFIED")
MainForm.RootPane.LoadLayout("MAINNEW") 'Load the layout file.
MainForm.Show
dartport="COM14"
sp.Initialize("")
Try
sp.Open("COM14")
sp.SetParams (9600, 8, 1, 0)
'sp.close
Catch
Log(LastException)
End Try
End Sub
Sub Senden_Action
astream.Initialize(Null,sp.GetOutputStream,"astream")
astream.Write(bc.HexToBytes(MyText))
LogMessage("Gesendet ", MyText)
'astream.Close
End Sub
The syntax looks correct to me.I already set the InputStream to NULL, is the Syntax correct Erel ?