четверг, 14 июня 2012 г.

Весы самооблуживания Metler Toledo

Получили весы Metler Toledo Tiger 3610S. Весы предназначены для систем самообслуживания.  Самое веселое было в них то, что клавиатура у них по умолчанию находится в режиме выбора PLU товара и в режим настройки просто так не войдешь.
После длительного рысканья в интернете был найден документ "особенности весов самообслуживания",  где было подтвержнение догадкам по поводу режимов и указана кнопка переключения режима. Кнопка переключения режима это START+MODE или START+CODE где START находится в верхнем левом углу клавиатуры. На 100 клавишной клавиатуре CODE 7 слева в первом верхнем ряду. Кнопка MODE 9 слева во втором верхнем ряду. 
Как всегда после того как было найдено решение проблемы, было найдено и подтверждение альтернативного способа попадания в меню настройки, а именно если при включении весов зажать кнопку CODE то так же попадаем в меню настройки.
Все веселье в ситуации в том что с весами руководство пользователя лежало. Но вот только оно на всю серию Tiger без указания особенностей той или иной модели.

воскресенье, 11 марта 2012 г.

Работа с весама Metler Toledo Tiger в Linux (продолжение)

Как уже было сказано ниже на http://code.google.com/p/metler-toledo-tiger-loader/ был начат проект по создания аналога SPCT2   (штатная система управления весами). В отличие от SPCT2 моя утилита имеет возможность не только загружать настройки и данные на весы но и читать из весов. 
При чтении списка товаров система сама определяет двух или однострочные весы (с записью пока только на 2 строчные). Настройки весов только для чтения. Остальные параметры можно читать и писать без проблем. 

воскресенье, 8 января 2012 г.

Получение первого и последнего дня месяца на основе последнего дня предидущего месяца

В одном из проектов потребовалось автоматически увеличивать рабочий период на месяц после выполнения операций, и вот что из этого получилось :

#!/usr/bin/python
#-*- coding:utf-8 -*-
import datetime,calendar

def changePeriod(enddate):
    rt=[]
    delta=datetime.timedelta(days=1)
    enddate=enddate+delta
    rt.append(enddate)
    year,month,day=enddate.timetuple()[:3]
    countday=calendar.monthrange(year,month)[1]
    delta=datetime.timedelta(days=countday-1)
    enddate=enddate+delta
    rt.append(enddate)
    return rt


se=datetime.date(2011,10,31)
print changePeriod(se)

В функцию changePeriod передает дату последнего дня в виде объекта datetime на выходе получаем кортеж из двух элементов типом datetime содержащих первый и последний день следующего месяца

Виджет выбора даты (GTK)

В стандартном наборе виджетов GTK+ 2.xx нет управляемого виджета для вызова даты. Виджет gtk.Calendar нуждается в контейне верхнего уровня. В процессе создания аналога TDateEdit из библиотеки RxLib был создан следующий класс реализующий часть нужного мне функционала :

суббота, 29 октября 2011 г.

вторник, 4 октября 2011 г.

Получение 1 дня месяца в FireBird 2.1

Для одного из проектов понадобилось получать 1 день месяца из любой переданой в функцию даты. До начала использования Firebird 2.1 даная проблема решалась использованием udf из библиотеки rfunc.