datecs_sk1_21 0.1.0 copy "datecs_sk1_21: ^0.1.0" to clipboard
datecs_sk1_21: ^0.1.0 copied to clipboard

Complete Dart SDK for Datecs SK1-21 fiscal thermal printer. Supports fiscal receipts, reports, PLU items, VAT rates, electronic journal, fiscal memory, and display control via DUDE COM driver on Windows.

datecs_sk1_21 #

pub package License: MIT

Complete Dart SDK for Datecs SK1-21 fiscal thermal printer. Supports fiscal receipts, reports, PLU items, VAT rates, electronic journal, fiscal memory, and display control.

Features #

  • Fiscal Receipts - Full fiscal receipt workflow with sales, discounts, payments
  • Non-Fiscal Receipts - Free-form text printing
  • Daily Reports - X Report (read-only) and Z Report (with reset)
  • PLU Management - Program, read, delete, and sell PLU items
  • VAT/Tax Rates - Program and read tax rates for groups A-H
  • Fiscal Memory - Read records, test integrity, generate reports
  • Electronic Journal - Search, read, export to XML
  • Display Control - External customer display support
  • Cash Drawer - Open drawer, cash in/out operations
  • Barcodes & QR - Print various barcode types and QR codes
  • Graphics - Logo and stamp image support
  • 70+ Methods - Complete coverage of printer commands

Requirements #

  • Windows with DUDE COM driver installed (provided by Datecs)
  • Datecs SK1-21 connected via RS232 (USB-Serial adapter) or TCP/IP
  • PowerShell (used as bridge to COM object)

Installation #

dependencies:
  datecs_sk1_21: ^0.1.0

Or for local development:

dependencies:
  datecs_sk1_21:
    path: ../datecs_sk1_21

Quick Start #

import 'package:datecs_sk1_21/datecs_sk1_21.dart';

void main() async {
  final driver = DatecsDudeDriver();

  // Connect
  await driver.startComServer();
  await driver.openRs232Connection(
    const Rs232Config(comPort: 4, baudRate: 115200),
  );

  // Print fiscal receipt
  await driver.openFiscalReceipt();
  await driver.registerSale(
    const SaleItem(
      name: 'Product',
      price: 10.50,
      quantity: 2,
      taxGroup: TaxGroup.b,
    ),
  );
  await driver.registerPayment(const Payment(type: PaymentType.cash));
  await driver.closeFiscalReceipt();
  await driver.ejectPaper();

  // Cleanup
  await driver.closeConnection();
  driver.dispose();
}

API Reference #

Connection #

Method Description
startComServer() Initialize DUDE COM server
openRs232Connection(Rs232Config) Connect via serial port
openTcpConnection(TcpIpConfig) Connect via TCP/IP
closeConnection() Close connection
checkConnection() Verify printer is responsive
dispose() Cleanup resources

Fiscal Receipts #

Method Description
openFiscalReceipt() Start fiscal receipt
registerSale(SaleItem) Add product to receipt
subtotal() Print subtotal line
registerPayment(Payment) Register payment
closeFiscalReceipt() Close and print receipt
cancelFiscalReceipt() Cancel current receipt
printFiscalText(String) Print text in receipt

Non-Fiscal Receipts #

Method Description
openNonFiscalReceipt() Start non-fiscal receipt
printNonFiscalText(String) Print text line
closeNonFiscalReceipt() Close receipt

Reports #

Method Description
generateDailyReport(DailyReportType.xReport) X Report (no reset)
generateDailyReport(DailyReportType.zReport) Z Report (with reset)
printOperatorsReport() Operators statistics
printPluReport(start, end) PLU items report
printFiscalReportByDates(start, end) FM report by dates
printFiscalReportByZNumbers(startZ, endZ) FM report by Z numbers
printDiagnostic() Diagnostic information

PLU (Price Look-Up) #

Method Description
programPluItem(PluItem) Program PLU item
readPluItem(code) Read PLU by code
deletePluItem(code) Delete PLU item
sellProgrammedItem(code, qty) Sell PLU item

VAT/Tax Rates #

Method Description
programVatRates(Map<TaxGroup, double>) Set tax rates
readVatRates() Get current rates

Date/Time #

Method Description
setDateTime(DateTime) Set printer date/time
readDateTime() Read current date/time

Fiscal Memory #

Method Description
getRemainingZReports() Get remaining Z capacity
getLastFiscalRecordDate() Last record date
testFiscalMemory() Test FM integrity
readFiscalMemory(startZ, endZ) Read FM records
getLastFiscalEntryInfo() Last entry details

Electronic Journal #

Method Description
getJournalInfo() Journal statistics
searchJournalByDate(DateTime) Search by date
searchJournalByReceipt(number) Search by receipt
exportXmlFiles(XmlExportConfig) Export to XML

Information #

Method Description
getStatus() Printer status bytes
getReceiptStatus() Current receipt status
getCurrentReceiptInfo() Receipt totals
getDailyTaxationInfo() Daily tax totals
getAdditionalDailyInfo() Cash drawer info
getDepartmentInfo(dept) Department stats
getItemGroupInfo(group) Item group stats
getOperatorInfo(number) Operator stats
getDiagnosticInfo() Device diagnostics
getDeviceFullInfo() Complete device info
readTaxNumber() Tax registration number
readLastError() Last error message

Display #

Method Description
clearDisplay() Clear display
displayUpperLine(text) Show on upper line
displayLowerLine(text) Show on lower line

Hardware Control #

Method Description
paperFeed(lines) Feed paper
paperCut() Cut paper
ejectPaper() Eject paper
openCashDrawer() Open drawer
cashInOut(amount) Cash in/out
playSound(freq, duration) Play beep

Barcodes & Graphics #

Method Description
printBarcode(type, data) Print barcode
printQRCode(data, size) Print QR code
loadLogo(imageData) Load logo
loadStampImage(pos, data) Load stamp
printStamp(position) Print stamp

Configuration #

Method Description
programHeaderLine(line, text) Set header line
programOperatorPassword(...) Change password
readParameter(number) Read parameter
writeParameter(number, value) Write parameter

Models #

SaleItem #

SaleItem(
  name: 'Product Name',        // Required: item name
  price: 10.50,                // Required: unit price
  quantity: 2,                 // Default: 1.0
  taxGroup: TaxGroup.b,        // Default: TaxGroup.b (19%)
  unit: 'pcs',                 // Default: 'pcs'
  discountType: DiscountType.none,
  discountValue: 0.0,
)

Payment #

Payment(
  type: PaymentType.cash,      // Required: payment type
  amount: 0,                   // 0 = exact amount
)

TaxGroup #

Group Default Rate Description
TaxGroup.a 0% Tax exempt
TaxGroup.b 19% Standard rate
TaxGroup.c 9% Reduced rate
TaxGroup.d 5% Reduced rate
TaxGroup.e - TaxGroup.h Custom Configurable

PaymentType #

Type Code Description
cash 0 Cash payment
card 1 Card payment
credit 2 Credit
check 3 Check
voucher 4 Voucher
packaging 5 Packaging
service 6 Service
damage 7 Damage
catering 8 Catering
rounding 9 Rounding

Driver #

DatecsDudeDriver #

Uses PowerShell to communicate with DUDE COM object directly:

final driver = DatecsDudeDriver();
await driver.startComServer();
await driver.openRs232Connection(config);

Known Limitations (SK1-21) #

Paper Presenter: The SK1-21 does NOT support software-controlled paper presentation. The physical "eject" button triggers a hardware presenter motor not exposed via protocol.

  • ejectPaper() performs feed + cut only (not automatic paper presentation)
  • BackFeedSteps parameter is only available on FP-800/FP-650 models

Serial Configuration #

Default settings for SK1-21:

Parameter Value
COM Port 4 (varies)
Baud Rate 115200
Data Bits 8
Parity None
Stop Bits 1

Documentation #

See the doc/ folder for:

  • DATECS_COMMANDS.md - Complete command reference
  • DATECS_OPERATIONS.md - Z Report operations
  • Fiscal receipt examples

License #

MIT License - see LICENSE file.

Author #

Alex Bordei - Senior Software Engineer at ICEFelix

0
likes
140
points
28
downloads

Publisher

verified publishericefelix.com

Weekly Downloads

Complete Dart SDK for Datecs SK1-21 fiscal thermal printer. Supports fiscal receipts, reports, PLU items, VAT rates, electronic journal, fiscal memory, and display control via DUDE COM driver on Windows.

Homepage
Repository (GitHub)
View/report issues

Topics

#printer #fiscal #pos #thermal-printer #datecs

Documentation

Documentation
API reference

License

MIT (license)

More

Packages that depend on datecs_sk1_21