|
|
@ -1,10 +1,12 @@ |
|
|
|
package common |
|
|
|
|
|
|
|
import ( |
|
|
|
"LAPP_PRN_Service/db" |
|
|
|
"container/list" |
|
|
|
"errors" |
|
|
|
"fmt" |
|
|
|
"github.com/lianggx6/goutf16" |
|
|
|
"github.com/tarm/serial" |
|
|
|
"io/ioutil" |
|
|
|
"log" |
|
|
|
"math/rand" |
|
|
@ -328,32 +330,6 @@ func SetDefaultPrinter(printerName string) error { |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
// 发送到打印机
|
|
|
|
//func SendFileToPrinter(filePath string,printerName string) error {
|
|
|
|
// var (
|
|
|
|
// dll = syscall.NewLazyDLL(EnsureDir("config/TSCLIB.dll"))
|
|
|
|
// )
|
|
|
|
// //调用文件
|
|
|
|
// //打开 打印机 端口.
|
|
|
|
// open := dll.NewProc("openport")
|
|
|
|
//
|
|
|
|
// //关闭连接
|
|
|
|
// closefile := dll.NewProc("closeport")
|
|
|
|
// defer closefile.Call()
|
|
|
|
//
|
|
|
|
// printer, _ := syscall.UTF16PtrFromString(printerName)
|
|
|
|
// info1, info2, err := open.Call(uintptr(unsafe.Pointer(printer)))
|
|
|
|
// glog.InfoExtln("Printer", "info1: ", info1)
|
|
|
|
// glog.InfoExtln("Printer", "info2: ", info2)
|
|
|
|
// glog.InfoExtln("Printer", "err: ", err)
|
|
|
|
// //发送文件
|
|
|
|
// sendfile := dll.NewProc("sendfile")
|
|
|
|
// filePathstr, _ := syscall.UTF16PtrFromString(filePath)
|
|
|
|
//
|
|
|
|
// sendfile.Call(uintptr(unsafe.Pointer(filePathstr)))
|
|
|
|
//
|
|
|
|
// return nil
|
|
|
|
//}
|
|
|
|
// 发送到打印机
|
|
|
|
func SendFileToPrinter(filePath string, ip string, port int) error { |
|
|
|
var ( |
|
|
@ -367,22 +343,51 @@ func SendFileToPrinter(filePath string, ip string, port int) error { |
|
|
|
closefile := dll.NewProc("closeport") |
|
|
|
defer closefile.Call() |
|
|
|
|
|
|
|
ipstr,_ := syscall.BytePtrFromString(ip) |
|
|
|
ipstr, _ := syscall.BytePtrFromString(ip) |
|
|
|
ret, _, msg := open.Call(uintptr(unsafe.Pointer(ipstr)), uintptr(port)) |
|
|
|
if ret == 0 { |
|
|
|
return msg |
|
|
|
} |
|
|
|
//发送文件
|
|
|
|
sendfile := dll.NewProc("sendfile") |
|
|
|
filePathstr,_ := syscall.BytePtrFromString(filePath) |
|
|
|
filePathstr, _ := syscall.BytePtrFromString(filePath) |
|
|
|
|
|
|
|
ret, _, msg =sendfile.Call(uintptr(unsafe.Pointer(filePathstr))) |
|
|
|
ret, _, msg = sendfile.Call(uintptr(unsafe.Pointer(filePathstr))) |
|
|
|
if ret == 0 { |
|
|
|
return msg |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
// 发送到打印机
|
|
|
|
func SendFileBySerial(bytesFile []db.ByteFile, SerialName string, SerialPort int) error { |
|
|
|
|
|
|
|
var ( |
|
|
|
err error |
|
|
|
bytesRow db.ByteFile |
|
|
|
) |
|
|
|
|
|
|
|
c := &serial.Config{Name: SerialName, Baud: SerialPort} |
|
|
|
s, err := serial.OpenPort(c) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
defer s.Close() |
|
|
|
|
|
|
|
//发送之前清空缓冲区
|
|
|
|
buffer := make([]byte, 8000) |
|
|
|
_, err = s.Read(buffer) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
for _, bytesRow = range bytesFile { |
|
|
|
if _, err = s.Write(bytesRow.ByteLine); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func ShellExecute(hwnd HWND, lpOperation, lpFile, lpParameters, lpDirectory string, nShowCmd int) error { |
|
|
|
var op, param, directory uintptr |
|
|
|
if len(lpOperation) != 0 { |
|
|
|