# Local serial port usage

**URL:** <https://forum.inductiveautomation.com/t/local-serial-port-usage/3521>\
**Category:** General Discussion\
**Created:** [October 28, 2011, 6:34pm UTC](https://forum.inductiveautomation.com/t/local-serial-port-usage/3521 "2011-10-28T18:34:58Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [October 28, 2011, 6:34pm UTC](https://forum.inductiveautomation.com/t/local-serial-port-usage/3521/1 "2011-10-28T18:34:58Z")

</div>

Adding javax.comm for fun and enjoyment.

First run-through supports serial output only. good for label printers or old-fashioned line printers.

Enjoy!  
[javacomm.zip](https://us1.discourse-cdn.com/inductiveautomation/original/1X/09d7f7c69ef1d7d25852b42d9d2457687c5e790f.zip) (349 KB)

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [October 28, 2011, 6:44pm UTC](https://forum.inductiveautomation.com/t/local-serial-port-usage/3521/2 "2011-10-28T18:44:30Z")

</div>

Client script that would output unacknowledged alerts to the serial port, then acks them.

If you have a db installed on a PC with Panel Edition, you can have a local alerts table as well as on the SCADA-at-large. 😉

EDIT: whoops! added the code…

[code]query=“SELECT alert\_log\_ndx, concat(path,’:’,State\_Name,’ Value=’) as alert, alert\_log\_ndx FROM alert\_log WHERE ack\_timestamp is null order by active\_timestamp desc”  
alertList=system.db.runQuery(query)

if len(alertList)!=0:  
ackquery=“UPDATE alert\_log SET ack\_timestamp=now() WHERE ack\_timestamp is null”  
system.db.runUpdateQuery(ackquery)  
ndx=""  
for row in alertList:  
app.serial.out(str(row[“alert”])+chr(13)+chr(10))  
ndx += str(row[“alert\_log\_ndx”])+","  
ndx=ndx[:-1] # strip away last comma  
ackquery=“UPDATE alert\_log SET ack\_timestamp=now() WHERE alert\_log\_ndx IN(”+ndx+")"   
system.db.runUpdateQuery(ackquery)  
else:  
app.serial.out("") #sends empty string. This is to help negotiate connections, especially if you use something like Hyperterminal to troubleshoot.

[/code]
