Форум сайта python.su
Есть код взаимодействия с железкой на порту, на python написал, пока тестирую, но потом предстоит залить скетч в ардуино, там только на сях, в С++ не силен.
Железка купюроприемник, протокол CCNET, особо в протокол не лез, только по минимуму команды.
Если кому не сложно, был бы очень признателен.
import serial import time #serialPort = serial.Serial('\\\\.\\COM12', 9600) def getCRC16(data, is_hex=True): if is_hex: data = bytearray.fromhex(data) else: data = bytearray(data) CRC = 0 for byte in data: CRC ^= byte for j in range(0, 8): if (CRC & 0x0001): CRC >>= 1 CRC ^= 0x8408 else: CRC >>= 1 CRC = format(CRC, '02x') return CRC[2:4] + CRC[0:2] cmd = ('02030630', '02030633', '02030633', '02030633', '02030633', '02030633', '02030633', '02030633', '02030633', '02030633', '02030633', '02030633', '02030637','02030641', '02030C34FFFFFFFFFFFF', '02030633', '02030600', '02030633', '02030600', '02030633') one = '02030600' two = '02030633' with serial.Serial('COM12', 9600, timeout=0.001) as ser: for i in cmd: print i time.sleep(.03) ser.write((i + getCRC16(i)).decode('hex')) while True: ser.write((one + getCRC16(one)).decode('hex')) time.sleep(.03) ser.write((two + getCRC16(two)).decode('hex')) line1 = ser.read(4) line2 = ser.read(5) #print line1.encode('hex') #print line2.encode('hex') patern = "02030780" if line1.encode('hex') == patern: time.sleep(.03) ser.write(('02030635' + getCRC16('02030635')).decode('hex')) print 'opredelil' print line2.encode('hex') if line2.encode('hex') == "04a875": ser.write(('02030600' + getCRC16('02030635')).decode('hex')) print '100rub' elif line2.encode('hex') == "031701": ser.write(('02030600' + getCRC16('02030635')).decode('hex')) print '50rub'
Офлайн
Один из вариантов: посмотрите на Nuitko
Другой вариант - у вас не так много кода , к тому же не специфичного, вы сможете осилить основы С и переписать самостоятельно
Третий вариант - раз это бизнес задача (на хобби купюрниками ну не занимаются), а вы как исполнитель , ну скажем аккуратно, не очень - то наймите того кто сможет написать код по ТЗ на С. Имея код на питоне вы самостоятельно сможете оформить ТЗ.
P.S. Ну знаете ли, попытка решить вашу задачу как предложили вы выглядит забавно. Типа вам платят деньги за решение задачи, а фактически вы просите нас за бесплатно ее решить. Вполне возможно что найдутся люди готовые сделать это за бесплатно, но чаще нет.
Офлайн
JOHN_16Это , скажу честно, не ТЗ, имею купюрник, имею raspbery pi и arduino, на распбери давно написал код на питоне все работает, но купюрник все равно валяется, теперь хочу на ардуино прикрутить, с С++ туго но напишу…. пусть не сразу.
Третий вариант - раз это бизнес задача (на хобби купюрниками ну не занимаются), а вы как исполнитель , ну скажем аккуратно, не очень - то наймите того кто сможет написать код по ТЗ на С. Имея код на питоне вы самостоятельно сможете оформить ТЗ. P.S. Ну знаете ли, попытка решить вашу задачу как предложили вы выглядит забавно. Типа вам платят деньги за решение задачи, а фактически вы просите нас за бесплатно ее решить. Вполне возможно что найдутся люди готовые сделать это за бесплатно, но чаще нет.
Офлайн
Четвёртый вариант - Присмотреться к MicroPython.
Офлайн
RodegastВроде не портировали на ардуино, но в самом МК я уже заинтересовался. Спасибо за наводку.
Четвёртый вариант - Присмотреться к MicroPython.
Офлайн
vic57Эту инфу я уже перелопатил 100 раз, обрывки собрал, использую. Там либо автор обрывки выложил либо автор говорит о pulse. Я уже заливаю код на ардуину, шлю команды в том виде какой и нужен, но почему то ответа пока нет, хотя такие же команды с компа вышеуказанным скриптом отсылаю и работает.
инфы в сети кучаhttps://yandex.ru/search/?text=arduino%20ccnet&clid=1955453&win=252&lr=47
Офлайн
Разобрался вроде, команды понимает, теперь логику дорабатываю.
Офлайн
P.S. Купюрники, картридеры, сканеры, депозиторы и диспенсеры, банкоматы и терминалы лежат на складе, работа у меня с ними связанна, а когда есть время то занимаюсь маленько программированием и железками для души.
Офлайн
> Вроде не портировали на ардуино
Но это смотря на какой https://create.arduino.cc/projecthub/AdiK/arduino-due-micropython-enabled-717dd9 А вообще откуда взялась привязка к arduino? По мне так Raspberry Pi более интересная плата.
Офлайн