Telegram on Goを介した1C用の即席バーコードリーダー

みなさんこんにちは! 誰かに役立つかもしれないものを共有したい。



変更のために、Goで簡単なものを実装したかったので、ここでHagramの電報ボットに関する記事を読み、職場でバーコーディングと1Cを統合するプロジェクトを行ったので、ビジネスと喜びを組み合わせて即興を実装することにしましたテスト用のバーコードリーダーであり、1Cでの動作を確認します。



Telegramボットをモバイルクライアントとして使用することにしました。彼らはボットにバーコード(QRコード)の写真を送信し、1Cですべてを認識して送信します。



1)電報ボットを実装し、電報APIを操作するための最初のパッケージ「 Syfaro / telegram-bot-api 」、およびバーコード認識「 barcode.v0 」を取得します。 一般的に、実装は簡単です。githubの例から一部を取り上げることができます。ここでボットの準備ができています。



以下は、画像の操作を担当するコードです。



for update:=range updates { if update.Message == nil { continue } log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text) cmd:=update.Message.Text if update.Message.Photo!=nil{ //  ,       photo :=*update.Message.Photo log.Print(photo[1].FileID)//  2    ,  ,   resp, err :=bot.GetFile(tgbotapi.FileConfig{photo[1].FileID}) r, err := http.Get("https://api.telegram.org/file/bot"+telegram_token+"/"+resp.FilePath) //    telegram if err!=nil{ log.Print(err) } defer r.Body.Close() src, _ := jpeg.Decode(r.Body) // io.Reader  image.Image img:=barcode.NewImage(src) scanner := barcode.NewScanner().SetEnabledAll(true) re, err := scanner.ScanImage(img) //     if err!=nil{ log.Print(err) } for _, s := range re { fmt.Println(s.Type.Name(), s.Data) msg := tgbotapi.NewMessage(update.Message.Chat.ID, s.Data) msg.ReplyToMessageID = update.Message.MessageID bot.Send(msg) //            1 (   eth2com,   1     ) r, err := http.Get("http://192.168.0.2:7070/"+s.Data) //   if err!=nil{ log.Print(err) } defer r.Body.Close() } }
      
      





2)では、eth2com(同様のプログラムと混同しないでください)に進みましょう。ここではthisthisを使用します。



実際、comを介した1Cとの交換全体は「情報のシーケンス+ CR」です。

(バーコード数字のシーケンスとQRで暗号化された複雑な文字列の両方を受け入れますが、改行文字を忘れないでください)



 func main(){ e:=echo.New() c := &serial.Config{Name: "COM3", Baud: 115200} s, err := serial.OpenPort(c) //  COM3 if err != nil { log.Fatal(err) } e.GET("/:code", func(c echo.Context) error { // GET   ,        log.Print(c.Param("code")) _, err := s.Write([]byte(c.Param("code")+"\r"))//  COM    \r  1   if err != nil { log.Fatal(err) } return c.String(http.StatusOK,c.Param("code")) }) e.Logger.Fatal(e.Start(":7070")) }
      
      





一方、eth2comを1Cに接続するには、com0comプログラムを使用しました。 その結果、そのようなスキームが生まれました:



ユーザー->テレグラムボット-> eth2com-> COM3->(com0com)-> COM4-> 1C



1C側から見ると、すべてが非常に簡単です。HKスキャナーの設定で、COM4と為替レート、改行文字を指定すれば完了です! プレイするには、1C conf「接続機器のライブラリ」を利用できます。



PSニュアンスを処理せずにニーキャップを実装すると、1つ目はあまりキックしないでください。 よろしくお願いします!



All Articles