POS ба хошууны драйвер
Эх сурвалж:
FUELNET_PLAN.md§6 · Төлөв: төлөвлөгдсөн (Фаз 1) — сервер тал ньmodules/forecourt-д аль хэдийн байна
Хошууны заалт байхгүй бол нөөц бодит биш, ваучер баталгаагүй, хяналт таамаг болно. Тиймээс POS бол платформын гоёл биш, суурь.
Яагаад өөрийн POS вэ
Монголын ШТС-ууд өнөөдөр дөрвөн янзын байдалтай. Дараах хуваарилалт нь Фаз 0-ийн техникийн тооллогоор баталгаажих таамаг:
| Төлөв | FuelNet-ийн хандлага |
|---|---|
| A. Орчин үеийн POS + forecourt controller (том сүлжээ) | Интеграц — POS-ыг нь хэвээр үлдээж, API-аар өгөгдөл авна |
| B. Хуучин POS, controller-тэй ч хаалттай | Гүүр — controller-т зэрэгцээ холбогдоно, эсвэл POS-ыг солино |
| C. Түгээгүүр цахим, гэхдээ зөвхөн гараар бичдэг | FuelNet POS суулгана — гол зорилтот бүлэг |
| D. Механик/маш хуучин, интернэтгүй | Хөнгөн POS + импульс тоолуур, офлайн горим |
Бүх нийтийн хошууны адаптер
Гол дизайны шийдэл: цөм нь ганц дотоод интерфейстэй, брэнд бүр драйвер болно. Шинэ брэнд нэмэх нь нэг файл; цөм өөрчлөгдөхгүй.
pump.Driver интерфейс
package pump
// Driver — түгээгүүрийн аль ч брэнд, аль ч протоколыг нэг хэлбэрт оруулна.
type Driver interface {
Open(ctx context.Context, cfg Config) error
Close() error
// Төлөв — сул / эрх хүлээж буй / түгээж буй / дууссан / алдаатай
Status(ctx context.Context, n NozzleID) (Status, error)
// Эрх олгох. Ваучерийн лимитийг тоо хэмжээ эсвэл дүнгээр ХАТУУ тавина.
Authorize(ctx context.Context, n NozzleID, limit Limit) (AuthID, error)
Cancel(ctx context.Context, a AuthID) error
// Явцын урсгал — дүрслэлд ба залилан илрүүлэлтэд
Progress(ctx context.Context, a AuthID) (<-chan Delivery, error)
// Дууссан гүйлгээ. POS унасан ч дараа нь эндээс сэргээж болно.
Transactions(ctx context.Context, since Seq) ([]Transaction, error)
// Тоолуурын нийт заалт — ээлжийн тулгалт ба reconciliation-ийн үндэс
Totalizers(ctx context.Context) (map[NozzleID]Totalizer, error)
// Үнийн самбар / хошууны үнийг алсаас солих (боломжтой бол)
SetPrice(ctx context.Context, n NozzleID, p Money) error
}
Authorize нь лимитийг түгээгүүрт тавьдаг нь чухал: кассын мэдэглэлээр
барьсан лимит бол лимит биш, зөвлөмж.
Хэрэгжүүлэлтийн дараалал
| Ээлж | Драйвер | Шалтгаан |
|---|---|---|
| 1 | IFSF (LON + TCP/IP) | Олон улсын стандарт, нэг драйвераар олон брэнд |
| 2 | Импульс/тоолуур + гар оруулалт | D бүлгийг хамруулна — хамгийн олон, хамгийн хэрэгцээтэй |
| 3 | Gilbarco Two-Wire/CL, Wayne DART | Монголд түгээмэл |
| 4 | Tokheim UDC/TQC, Tatsuno PDE | Түгээмэл |
| 5 | Censtar, Sanki, Zcheng, Tokico | Сүүлийн жилүүдэд шинээр суурилуулагдсан |
| 6 | Adast, Petrotec, Hectronic, Salzkotten, Nuovo Pignone | Ховор, захиалгаар |
Хууль зүйн анхаарал: зарим протокол (Gilbarco Two-Wire, Wayne DART) нь үйлдвэрлэгчийн өмч, NDA/лицензтэй. Хоёр зам: лиценз гэрээ байгуулах, эсвэл IFSF-д хөрвүүлдэг gateway (Doms PSS 5000 гэх мэт) ашиглах. Фаз 0-д хууль зүйн шалгалт заавал.
ATG — савны хэмжигчийн драйверууд
Ижил зарчмаар tank.Driver:
| Брэнд / протокол | Тэмдэглэл |
|---|---|
| Veeder-Root TLS-350 / TLS-450 (Serial + TCP) | Дэлхийд хамгийн түгээмэл |
| Start Italiana SMT / Sensor | Европ |
| Franklin Fueling (INCON) TS-5 | |
| OPW SiteSentinel | |
| Modbus RTU/TCP (ерөнхий) | Хятад, дотоодын хэмжигч |
| Гар хэмжилт (метршток) | ATG-гүй ШТС-д ээлж тутам заавал |
Савны түвшин нь 15°C-т шилжүүлэгдэж бүртгэгддэг. Монголын +35…−40°C-ийн далайцад ажиглалтын литрээр тооцвол улирал өөрөө 1–2% "хиймэл алдагдал" үүсгэж, бодит хулгайг дотроо нууна.
POS-ын чадамж
Түлшний хэсэг — хошуу бүрийн бодит цагийн төлөв, эрх олгох/цуцлах; prepay/postpay/бүрэн бак; ваучер уншиж лимитийг түгээгүүрт хатуу тавих; ээлж нээх/хаах, тоолуурын заалт, кассын тулгалт, зөрүүний тайлбар; савны үлдэгдэл, ус, дуусах прогноз; үнийн өөрчлөлт төвөөс, түүхтэй.
Худалдааны хэсэг — дэлгүүр, кофе, угаалга, тос. Шинээр бичихгүй:
products + inventory + billing нь Gerege Business-аас
хамаарлаар ирдэг.
Ажиллагааны шинж — офлайн эхлэл (интернэтгүй 72 цаг бүрэн ажиллана, локал SQLite, холбогдмогц sync); хямд төхөөрөмж (Android таблет эсвэл ямар ч x86 миникомпьютер); монгол хэл, том товч, бээлийтэй ажиллах UI (−30°C-т); бүх гүйлгээ hash chain-д.
Ирмэгийн агент
edge/ нь тусдаа binary — ШТС дээрх жижиг Linux төхөөрөмж эсвэл Android таблет
дээр ажиллана. Сервертэй gRPC/MQTT-ээр ярина, тасарвал локал SQLite-д
хуримтлуулж, холбогдмогц идемпотентоор нөхнө. POS-ын UI нь тэр агент дээрх
локал вэб сервер (PWA) — интернэт байхгүй ч ажиллана.
Энэ репогийн /api/v1/fuelnet/forecourt нь түүний сервер тал: станц, сав,
хошуу, ээлж, гинжлэгдсэн түгээлтийн бүртгэл, савны заалт, дохиолол.
ШТС-д ямар ашигтай вэ
Албадлага ганцаараа ажиллахгүй, тиймээс POS нь ШТС-д бодит ашиг өгөх ёстой:
- Ваучерийн урсгал → хэрэглэгч (хямралын үед хамгийн том хөшүүрэг)
- Ээлжийн тулгалт автомат → ажилчны хулгай багасна (ихэвчлэн 0.3–1% эргэлт)
- Савны дуусах прогноз → хоосон зогсох цаг багасна
- e-Barimt автомат → нягтлан бодох цаг хэмнэнэ
- Үнэ төлбөргүй эсвэл хамгийн бага — ТХТ-ийн санхүүжилтээр
- Олон салбарын нэгдсэн тайлан → сүлжээний эздэд