Generic-функции и имена классов

Столкнулся недавно на работе… Возможно это очевидная вещь, но мне показалось не очевидным. По этому оставлю это тут — на всякий случай.

Предположим у нас есть функция:

public void SomeFunction()
{
    // Нам нужно вывести имя класса-шаблона T здесь
    // Самым очевидным будет сделать
    Console.WriteLine(nameof(T));
}

И это будет не верным — в консоль будет выведено «T».

Но как же нам получить имя пришедшего класса ?

public void SomeFunction()
{
    Console.WriteLine(nameof(typeof(T)));
    // или
    Console.WriteLine(typeof(T).Name);
}

Как то так.

Сравнение MicroMake D1 и MakerBot Replicator+

Здравствуйте, мои маленькие, любопытные читатели. Сегодня мы поговорим о 3D-печати. И будем сравнивать теплое с пушистым. А именно дешевый китайский конструктор с дорогущим американским (на самом деле нет) принтером. Что здесь теплое, а что пушистое — решать Вам 🙂

Забегая вперед, скажу что результаты не однозначные. Итак, приступим:

MicroMake D1

  • Цена: от 17 до 31 т.р. (в зависимости от модели и комплектации)
  • Страна производитель: Разработано в Китае, производится в Китае.
  • Тип: Delta-принтер, FDM.
  • Материалы для печати: PLA, ABS и все что можно засунуть и расплавить в виде прутка.
  • Подогреваемый стол: Да (опционально за отдельные деньги).
  • Калибровка: Полностью автоматическая (программная коррекция).
  • Архитектура: Открытые исходники, как аппаратной так и программной части. Есть исходники прошивки и CAD-файлы самого принтера. Контроллер на основе Arduino.
  • Программное обеспечение: По умолчанию — opensource Cura, но возможно использование любого совместимого софта (а такого довольно много). Я предпочитаю Simplify 3D в качестве слайсера и Cura для автокалибровки.

MakerBot Replicator+

  • Цена: ~200 т.р.
  • Страна производитель: Разработано в США, производится в Китае.
  • Тип: Кортезианский принтер, FDM.
  • Материалы для печати: MakerBot PLA, MakerBot Tough PLA.
  • Подогреваемый стол: Нет (конструктивно не предусмотрен).
  • Калибровка: Автоматическая коррекция Z-offset, полуавтоматическая калибровка стола.
  • Архитектура: Закрытая проприетарная прошивка, чертежи принтера не доступны. Модификация карается лишением гарантии (в лучшем случае).
  • Программное обеспечение: Закрытый проприетарный слайсер, частично совместимо с другими программами. Можно напрямую печатать из некоторых CAD/CAM программ (тот же SolidWorks). Частично совместимо с другими программами — Simplify 3D умеет работать с этим принтером, но результат меня не порадовал.

Continue Reading →

Новый проект — 3D принтер fd (femto-delta).

Femto-Delta (f \delta) — супернизкобюджетный 3D-принтер.

Задача собрать 3D-принтер из говна и палок максимально доступных каждому деталей. По возможности избегая деталей, требующих изготовления или печати. Но куда от них денешься. 

Принтер скорее всего получится с минимальным рабочим объемом и не слишком высоким разрешением. Отсюда приставка фемто в названии.

В качестве механики предполагаю использовать шаговые двигатели и направляющие от DVD-привода по схеме дельта-принтера.

Я видел нечто подобное но в варианте с картезианской системой координат. Дельта должна быть гораздо компактнее.  Область печати получится примерно 5х5х5 см. Достаточно чтобынапечатать свисток. 

Скорее игрушка чем принтер. Мозги на ардуино. Экструдер и hot-end от 3d-ручки. 

Просто задумка на будущее. Просто чтобы не забыть. 

Работа с GSM-модулем SIM900

Для одного небольшого домашнего проекта мне понадобилась работа с GSM и DTMF-кодами.

Если кто не знает — DTMF-коды, это именно тот писк, который генерируется, когда ты нажимаешь клавиши в тональном наборе и используется в всяких IVR сценариях. («Ваш звонок очень важен для Вас, оставайтесь на линии, чтобы побеспокоить нашего очень занятого оператора нажмите клавишу # и ждите ответа«).

Выбор пал на GPRS-shield от Амперки. Который на самом деле оказался клоном шилда от Adafruit (как и многие другие шилды от амперки).

По началу я думал использовать с ним отдельно стоящий декодер DTMF. Но относительно не долгое гугление показало, что GSM-модуль SIM900 поддерживает аппаратное декодирование DTMF.

Для того, чтобы модуль начал понимать DTMF-сигналы — достаточно подать AT+ команду:

 AT+DDET=1 

Вообще, этот модуль — довольно интересен и поддерживает кучу разных программных вещей. И декодирование DTMF — одна из самых простых. Вообще говоря, поскольку декодер программный — в вашей версии прошивки его может не оказаться. Нужно проверять, а еще лучше скачать свежую версию прошивки модуля с сайта производителя вместе с дополнительными программными модулями.

В целом, модуль хороший, но не без заковык. Например — чтобы набрать номер нужно дать команду

 ATD79030000000; 

Причем, обратите внимание, последняя точка с запятой — обязательна. Без нее набора номера не произойдет.

В целом довольно интересно получается. Почувствовал себя на заре интернета — модемы, AT-команды.

Буду ковыряться дальше.

 

За сим раскланиваюсь,

Всегда Ваш

Powered by WordPress. Designed by WooThemes