C# 控制TSC打印机功能

C# TSC MH640条码打印机 UPCA+2:带2个增位的UPC-A;c:字符串类型,设定打印速度(打印速度随机型不同而有不同的选项),1.0-每秒1.0英寸打印速度,1.5-每秒1.5英寸打印速度,2.0-每秒2.0英寸打印速度,3.0-每秒3.0英寸打印速度,4.0-每秒4.0英寸打印速度,6.0-每秒6.0英寸打印速度,8.0-每秒8.0英寸打印速度,10.0-每秒10.0英寸打印速度。a:字符串类型,文字X方向起始点,以点表示200dpi-1点=1/8mm,300dpi-1点=1/12mm,600dpi-1点=1/24mm。 阅读详情
AI摘要

本文介绍了一个用于控制打印机并监测其状态的C#类库。该库通过调用TSCLIB.dll实现打印机的初始化、标签内容打印、状态查询等功能。文章详细展示了如何使用这些功能进行打印任务,并提供了具体示例。

核心代码

    public class PrinterHelper
    {
        /// <summary>
        /// 更新线程
        /// </summary>
        Thread m_Thread;

        /// <summary>
        /// 线程阻塞
        /// </summary>
        AutoResetEvent m_ResetEvent = new AutoResetEvent(true);

        /// <summary>
        /// 是否工作
        /// </summary>
        bool m_ThreadIsWork = false;

        /// <summary>
        /// 是否阻塞
        /// </summary>
        bool m_ThreadIsPause = true;

        /// <summary>
        /// 服务器状态
        /// </summary>
        public delegate void PrinterStatusEventDelegate(int Status, string Message);
        /// <summary>
        /// 服务器状态
        /// </summary>
        public event PrinterStatusEventDelegate PrinterStatus;

        /// <summary>
        /// 打印机名称
        /// </summary>
        private static string m_PrinterName = string.Empty;

        public PrinterHelper(string PrinterName)
        {
            m_PrinterName = PrinterName;

            this.m_Thread = new Thread(new ThreadStart(this.WorkThreedFun));
            this.m_Thread.IsBackground = true;
            this.m_Thread.Start();

            this.m_ThreadIsWork = true;
            this.m_ThreadIsPause = false;
            this.m_ResetEvent.Set();
        }


        [DllImport("TSCLIB.dll", EntryPoint = "about")]
        public static extern int about();

        [DllImport("TSCLIB.dll", EntryPoint = "openport")]
        public static extern int openport(string printername);

        [DllImport("TSCLIB.dll", EntryPoint = "barcode")]
        public static extern int barcode(string x, string y, string type,
                    string height, string readable, string rotation,
                    string narrow, string wide, string code);

        [DllImport("TSCLIB.dll", EntryPoint = "clearbuffer")]
        public static extern int clearbuffer();

        [DllImport("TSCLIB.dll", EntryPoint = "closeport")]
        public static extern int closeport();

        [DllImport("TSCLIB.dll", EntryPoint = "downloadpcx")]
        public static extern int downloadpcx(string filename, string image_name);

        [DllImport("TSCLIB.dll", EntryPoint = "formfeed")]
        public static extern int formfeed();

        [DllImport("TSCLIB.dll", EntryPoint = "nobackfeed")]
        public static extern int nobackfeed();

        [DllImport("TSCLIB.dll", EntryPoint = "printerfont")]
        public static extern int printerfont(string x, string y, string fonttype,
                        string rotation, string xmul, string ymul,
                        string text);

        [DllImport("TSCLIB.dll", EntryPoint = "printlabel")]
        public static extern int printlabel(string set, string copy);

        [DllImport("TSCLIB.dll", EntryPoint = "sendBinaryData")]
        public static extern int sendBinaryData(byte[] content, int length);

        //功能:繪製QRCODE二維條碼
        //語法:
        //QRCODE X, Y, ECC Level, cell width, mode, rotation, [model, mask,]"Data string”
        //參數說明
        //X QRCODE條碼左上角X座標
        //Y QRCODE條碼左上角Y座
Android 连接 TSC打印机, 打印标签(文字、图片) TSC选配模式有三:以太网(WiFi)、蓝牙、USB ,并提供了开发文档 1、先去官网下载,Android SDK SDK 中包含,三种模式,不必逐个下载了,文档中有对 接口很详细的解释 解压如下: 2、新建工程 ,并将 SDK 中的 jar 加入 libs下,结构如下图: 3、modle 下 build.gradle中添加依赖,如下: implementation files('libs/tscsdk.jar') 4、清单文件配置: <?xml versio... 阅读详情

相关推荐

c#调用TSC打印机进行打印

c#使用TSC打印机进行条码及二维码打印。

qq_43486995的博客 1941

C#实战:如何用TSCLIB.dll控制TSC打印机打印自定义标签(附完整代码)

本文深入探讨了如何利用C#和TSCLIB.dll构建企业级TSC打印机控制方案。文章提供了从服务化打印管理器设计、稳健的DLL封装、标签模板引擎到高级状态监控与故障处理的全流程实战代码,旨在帮助开发者实现稳定、高效且可维护的标签打印服务,满足制造业、物流等高频场景需求。

yhn456789的博客 755

C#实战:TSC打印机高效打印条码与二维码的完整指南

本文提供了一份完整的C#集成TSC打印机打印条码与二维码的实战指南。详细讲解了从环境搭建、DLL正确引用、标签模板设计到核心绘图指令(如windowsfont、barcode、sendcommand)的完整流程,并包含错误处理与高级优化技巧,帮助开发者高效、稳定地实现工业级标签打印功能。

silver的专栏 933

C#实战:TSC打印机条码与二维码打印的完整实现指南

本文提供了一份完整的C#实战指南,详细讲解了如何驱动TSC打印机实现条码与二维码的标签打印。内容涵盖从环境搭建、TSCLIB.dll动态库引用、标签模板设计到核心代码实现的完整流程,并分享了处理复杂模板、图片打印及常见问题的避坑经验,帮助开发者快速构建稳定高效的打印解决方案。

sun99的博客 748

C# 高效控制TSC打印机的关键技术与实战解析

本文深入解析了C#高效控制TSC打印机的核心技术,重点对比了TSCLIB.dll中sendcommand与sendBinaryData两个核心API的适用场景与底层原理。通过实战案例,详细介绍了如何构建健壮的打印服务,包括连接管理、标签模板引擎设计、异常处理与状态监控,并分享了性能优化与高级技巧,帮助开发者应对工业、物流等场景下的高效、稳定打印需求。

coffee的博客 257

TSC条码打印机C#例程(tsclib.dll调用) 【转】

//----program.cs using System;using System.Collections.Generic;using System.Windows.Forms; using System.Runtime.InteropServices;public class TSCLIB_DLL{[DllImport("TSCLIB.dll", EntryPoint = "abou...

weixin_33843947的博客 2441

TSC打印机与PDA结合的跨平台打印解决方案

TSC(Technology Service Corporation)是全球领先的工业型条码打印机制造商,其产品广泛应用于仓库管理、物流跟踪、零售标签制作等多个领域。TSC打印机以高效率、耐用性强和稳定性高著称,在市场上赢得用户的青睐。Xamarin 是一种使用 C# 语言开发移动应用程序的框架,它允许开发者使用 .NET 平台和 C# 语言来编写原生应用程序。

weixin_31961675的博客 1112

TSC条码打印机C#二次开发完整源码与实战解析

条码技术在现代工业自动化、仓储物流、生产制造等领域中扮演着至关重要的角色,而TSC(Tinshan)作为全球领先的条码标签打印机制造商,其设备广泛应用于各类企业级打印场景。随着信息化系统的深入集成,对TSC条码打印机进行二次开发已成为提升业务流程效率的关键环节。本章将系统介绍TSC条码打印机的技术架构、通信机制及其在C#环境下的开发背景。重点阐述TSCLIB_DLL动态链接库的作用原理,该库为上层应用提供了丰富的API接口,支持命令式编程控制打印机完成初始化、参数设置、内容生成和打印执行等操作。

weixin_35732273的博客 1128

C#驱动TSC打印机实现二维码标签自动化打印实战指南

在工业自动化与物流仓储领域,标签打印是连接数据世界与物理实体的关键技术。其核心原理在于将业务数据(如产品编号、批次信息)通过编程方式转换为打印机可识别的指令,实现精准、高效的物理标记。这项技术的核心价值在于替代传统手动或软件拖拽方式,实现与业务系统的深度集成与无人值守的自动化流程,尤其适用于MES、WMS等需要高频、实时打印的场景。本文聚焦于行业主流的TSC工业条码打印机,针对其原生二维码指令可能存在的兼容性问题,提供了基于C#和QRCoder库生成二维码图片,并通过TSPL指令集直接驱动打印的完整解决方案

weixin_29722783的博客 330

C#驱动TSC打印机打印二维码标签:从指令集到批量打印的完整实现

在工业自动化与仓储物流系统中,标签打印是连接信息流与实物流的关键环节。其核心原理是通过编程向打印机发送特定的控制指令,驱动打印头在标签介质上精确成像。这项技术的核心价值在于实现业务系统与打印硬件的无缝集成,提升作业效率与准确性。常见的应用场景包括仓储管理中的货品标识、物流分拣的面单打印以及生产线的产品追溯。本文聚焦于热转印/热敏标签打印领域,深入探讨如何通过C#调用TSPL指令集,高效驱动TSC打印机。文中将详细解析二维码生成、位图转换、指令拼接等关键技术,并针对批量打印与网络通信等高频需求,提供经过实践验

weixin_29698641的博客 285

TSC条码打印机VBA-ACCESS集成开发实战指南

TSC条码打印机是一种广泛应用于商业、医疗、物流等行业的打印设备。它具备高效、稳定、兼容性强等特点,能够打印各种类型的条码和二维码,满足企业多样化的需求。TSC条码打印机API是一套强大的编程接口,它允许开发者通过编程控制打印机,实现条码打印的自动化和定制化。API包含了丰富的函数,覆盖了从打印设置到数据传输的各个方面。VBA,即Visual Basic for Applications,是一种在Microsoft Office应用程序中广泛使用的事件驱动编程语言。

weixin_28713083的博客 565

C# 生成Code128 条形码并调用TSC打印

该资源演示了如何利用C#生成工业上常用的Code128条形码,然后调用TSC条码列印机进行条码列印

TSC打印机C#调用代码

TSC打印机C#调用源码,注意要在C盘windows\system32目录下放置TSCLIB.dll和TSCLIB.lib文件

海康威视工业相机SDK二次开发实战:多相机同步采集与图像存储

本文详细介绍了海康威视工业相机SDK二次开发实战,包括多相机同步采集与图像存储的优化方案。通过MVS软件搭建开发环境,实现硬件与软件触发同步采集,并提供高效的图像存储管理技巧,帮助开发者提升工业视觉项目的效率与稳定性。

weixin_29168813的博客 666

坐标偏移不一致或瓦块重名的多个OSGB工程的融合

介绍如何使用实景三维小助手OSGBLab对坐标偏移不一致或瓦块重名的多个OSGB工程的融合

OSGBLab的博客 3232

hfss仿真软件入门教程

hfss仿真软件入门教程 1.模型建立 1.1在project种选择insert hfss design 1.2.在hfss-》solution type 中选择modal 1.3.在moderler-》中选择units 设置单温为mm 1.4进行画图操作,这里为提高效率直接导入一个已经画好的cad图。使用modeler-》import 2.设置端口 2.1在更改模型中的材料 选择需要更改材料...

xunshui2007的博客 3万+

12V INPUT电源电路设计中的关键保护机制解析【精简】

本文深入解析了12V INPUT电源电路设计中不可或缺的关键保护机制。针对常见的电源反接、过压及浪涌等风险,文章详细拆解了PMOS防反接、TVS过压钳位、OVP芯片关断以及快速断电电路等核心防护方案的设计原理、选型要点与实战优化技巧,旨在帮助工程师构建可靠、经济的电源前端防御体系。

weixin_29158047的博客 228

【人工智能】从零开始玩转龙虾(Openclaw):本地与云端(火山Arkcloud)部署全指南

龙虾(Openclaw)是一款海外智能体操作系统(agent operating system),可通过飞书机器人实现自动化办公、信息抓取、任务协作等功能。它支持本地部署和云端部署两种方式,适配MacOS和Windows系统(,建议优先使用MacOS)。sudo。

奶爸的编程之路,也就一周冷个三天 947

大模型风电功率预测:短期,超短期,中长期的完整实现与代码详解

本文全面介绍了基于深度学习大模型的风电功率预测方法,涵盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1周)三种时间尺度。文章详细阐述了数据准备与特征工程,包括数据收集、预处理和可视化分析。针对不同时间尺度,分别介绍了Temporal Fusion Transformer (TFT)、Informer和N-BEATS模型的构建、训练与评估方法,并提供了完整的开源代码实现。此外,文章还探讨了模型部署与生产环境集成,包括模型保存与加载、实时预测API以及模型监控与再训练。最后,文章总结了关键创新

专注AI大模型,软件混淆,授权 1889

华为od 面试八股文_测试/测试开发_05_含答案

华为od 面试八股文_测试/测试开发_05_含答案

MISAYAONE的博客 2558

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: C# HalconDotNet 工业视觉处理
下一篇: .net core 连接打印机 使用zpl指令打印机,并且位图本地渲染zpl指令
code_long
博客等级 码龄16年 35粉丝 19原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值