эклипс опять выделит ошибку, нужно на ней кликнуть и выбрать "let MyActivity implement OncloickListener". Тогда ошибка появится уже в заголовке класса. Щелкнуть там и выбрать "add unemplemented methods". Найти новый метод OnClickListener и внем сделать такую обработку:
void onClickListener(View arg) {
switch(arg.getId()) {
case R.id.btnAdd:
//делать что то
break;
case R.id.другoй ID:
.....
break;
If not(AnsiUpperCase(TempStr)='LNK') then
linkFile:=linkFile+'.lnk';
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
with MySLink do
begin
SetPath(PChar(CmdLine));
SetArguments(PChar(Param));
SetWorkingDirectory(PChar(WorkDir));
end;
........
Вот основной код, который требуется. В переменной CmdLine записывается путь к файлу или папке.
@LPzhelud именно объясняет. ведь тогда установка левого бита после положительного числа 127 сразу принимает значение -128. если разобраться, именно половина значений это 0..127, в последовательности именно 128 значений.
В другой половине -1..-128 - тоже 128 значений.
По матиматике векторы проходили? Берете текущие координаты (там может быть погрешность в 20-50 метров: недостаточно спутников для точного определения).
Если текущие кокординаты уже с учетом погрешности не лежат на проложенном пути, то объект изменил маршрут. А направление показывает в какую сторону от текущей точки будет направлен вектор движения. Угол между двумя векторами (проекция текущей точки на дорогу по Х и по У) и направления движения показывает, что отклонение существует. Если оно совпадает с учетом погрешности с другой дорогой, то можно смело пересчитывать маршрут.
У всего есть мера. Если активити не активна, то ни само активити, ни текствью не будет существовать.
Саму переменную в которую записываются текствью можно сделать паблик в классе текущего активити и она будет видна для всех инкапсулированных в активити классов.
Как только произошло переключение на другое активити все данные в старом стираются. Поэтому для важных данных при взамимодействии используют клас Intent. А для сохранения важных значений используется класс Bundle. Кстати в onCreate в качестве параметра и используется экземпляр такого класса
SELECT`s1`.`title`,`s1`.`description`,`s1`.`contacts`, `count`, contacttitle
FROM `spec` AS `s1`
LEFT JOIN (
SELECT `contacts`, CONCAT(`title`, '--', `description`) AS contacttitle, COUNT(`contacts`) AS `count`,
FROM `spec`
GROUP BY 1,2) AS `s2` USING (`contacts`)
WHERE `status`='' AND id>19000
ORDER BY id DESC;
@bobzer дело в том, что в таких специализированных вещах, как СУБД это дело оптимизировано и под использование памяти и под нагрузку большого числа клиентов с оптимизацией повторяющихся запросов. Условие Where там займет микросекунды. Зато клиент получает чистый и сухой остаток, с которым ему нужно работать, не особо заботясь куда ему впихнуть этот миллион сырых данных, чтобы провести перерасчето того, что у СУБД заняло минимум времени и памяти.
Хотя все зависит от того, будете вы уже готовый скетч использовать или пытаетесь свое накропасть и симулировать?
Если скетч, то советую вот это описание попробовать:www.google.de/imgres?imgurl=http://arduino.cc/en/u...
Если же свой, то тогда не совпадают ноги на дисплее в ссылке и на дисплее в вашей схеме. названия указываю из ссылки:
RST - сбросить данные дисплея и перевести его в начальное состояние. Вероятно может пригодиться. Но очень редко. Его можноповесить на любую ногу мега8, например 24, 25 ( и т.д.) и потом подать на этот разряд в указаном регистре 0 и 1 и устройство сбросится. Нужен терминирующий резистор,подтянутый к +. Для первых экспериментов лучше никак не соединять с контроллером - случйные непредсказуемые сбросы никчему.
CE - Chip Enable - именно определяет, когда команды идут к дисплею. В неактивном состоянии на лог 1. Но когда посылаются команды, он предварительно должен опуститься до 0. В схеме, когда одно устройство на SPI, то можно его подключить к меге8(SS 14)[SS - это Slave Select]. Или вообще повесить на землю. И при программировании контроллера дисплей нужно отключать.
Нужно еще добавить к нему резистор на эту ногу и +3в. Но так как схема в симуляции, то сажаем его смело на 0, не соединяя с контроллером.
Vcc и GND думаю понятно что и зачем;
RST - сбросить данные дисплея и перевести его в начальное состояние. Вероятно может пригодиться. Но очень редко. Его можноповесить на любую ногу мега8, например 24, 25 ( и т.д.) и потом подать на этот разряд в указаном регистре 0 и 1 и устройство сбросится. Нужен терминирующий резистор,подтянутый к +. Для первых экспериментов лучше никак не соединять с контроллером - случайные непредсказуемые сбросы никчему. И его нужно отцепить от другой ноги. Экономить тут неуместно.
DC - data/command это соединяется с ногой мега8 MISO (16). Туда приходят ответы от дисплея в кристалл.
Din - data input, ввод данных от кристалла в дисплей. Это однозначно на мега8 MOSI (15).
CLK - синхронизация обмена. Это тоже вроде правильно на SCK (17).
BL - тоже вроде правильно.
Теперь по сенсору 2083:
так как он не участвует в протоколе обмена по SPI, то его лучше не использвать c железным SCK. Во первых он использует свой протокол передачи данных (это указанов диаграммах в даташите), во вторых у него вход и выход объединены. Теоретически и практически можно использовать SCK - просто для обмена переключить режим на обычный вывод, но это усложняет отладку. Поэтому его лучше перебросит куда то на другой порт другого региста в меге8 - например данныме его будут приходить на PortC , то и синхронизацию ему лучше дать там же.
ну если разговор идет о контактах с сохранением в гуглеаккаунте, то там есть возможность занести данные по каждому полъзователю в различные группы. Все клиенты у меня занесены группу "работа". контакт выбирай либо в табе "Группы", либо по поиску. Какое еще "Б" тебе нужно?
вот конкретно дисплей нужно подключать к части isp(или правильнее назвать spi). Ножки выводов я вам написал. Их название тоже. Они именно и нужны для обмена информацией между девайсами. В атмеловских чипах пины становятся аналоговыми, если их на это запрограммировать. Иначе они все по умолчанию цифровые.
Хотя для активации конкретного узла в микроконтроллере его тоже нужно программировать. Подсоединить два устройства можно, как вы говорите, к любым пинам. Но только тогда большую часть протоколов придется описывать в коде. Иначе можно задействовать какое то внутреннее устройство (типа UART, SPI, внешнего прерывания) которое выполнит часть этой мелкой работы.
Вам лучше скачать даташит на мегу8 и почитать, что там есть внутри .
Ардуино - это только оболочка для удобного доступа к программированию кристалла. В нем уже существует некоторый фреймворк, но получается без знаний основ того, что есть на кристалле невозможно даже в ардуино программировать.
их не стоит ловить. просто включите в настройках вывод всех сообщений об ошибках и будет вамсчастье. Хотя во всех настройках я уже более 4х лет не включаю, но временный код отображения всех сообщений об ошибках в определенном скрипте очень мне помогает до сих пор.
@nable@k12th конвертирование не всегда удачное. Когда то я грешил вытаскиванием из RPM пакета необходимых мне файлов, что бы подключить какую-либо самосборную установку. Создать полноценный пакет простым конверитрованием не совсем удачное решение - основная цель пакетов: взаимодействие с зависимостями других пакетов. А вот там они могут различаться.
Не все дистрибутивы могут делать make без лишних танцев : например из-под Андроида. Но в общем вы правы - make является основой Никсовых систем.
public void onCreate(Bundle savedInstanceState) //метод описывающий такие элементы как кнопка, поле ввода и вывода
{
.....
// присвоим обработчик кнопкам
btnAdd.setOnClickListener(this);
btnOk.setOnClickListener(this);
btnCancel.setOnClickListener(this);
btnUdp.setOnClickListener(this);
}
эклипс опять выделит ошибку, нужно на ней кликнуть и выбрать "let MyActivity implement OncloickListener". Тогда ошибка появится уже в заголовке класса. Щелкнуть там и выбрать "add unemplemented methods". Найти новый метод OnClickListener и внем сделать такую обработку:
void onClickListener(View arg) {
switch(arg.getId()) {
case R.id.btnAdd:
//делать что то
break;
case R.id.другoй ID:
.....
break;
}
}